0316文件和目录管理(一)

2.1/2.2 系统目录结构
2.3 ls命令
2.4 文件类型
2.5 alias命令
2.6 相对和绝对路径
2.7 cd命令
2.8 建立和删除目录mkdir/rmdir
2.9 rm命令
2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail
2.14 文件和目录权限chmod
2.15 更改全部者和所属组chown
2.16 umasknode

目录结构树:http://www.apelearn.com/study_v2/linux_dir_tree.jpglinux

 

1、系统目录结构算法

ls /安全

/root/ root用户的家目录,存放配置文件bash

建立普通用户 : useradd 后跟用户名less

/home/user1/ 是普通用户user1的家目录ssh

 

tree 树形的形式显示目录和文件翻译

若是没有找到命令,须要先安装:yum install -y tree3d

tree --hep 能够查看经常使用选项日志

或man 显示一个文件的帮助文档:man tree

tree -L 2 / 最大目录为2层

 

/bin/ /sbin/ /usr/bin/ usr/sbin/ 存放经常使用命令

 

/sbin 存放 root 用户使用的命令,普通用户没法实用

/bin 存放普通用户的命令,root用户也能够实用

/boot/ 系统启动相关的文件,若是删掉里面的文件,系统将没法启动

/dev linux中的设备文件

/etc 系统的配置文件所在目录

/home 用户的家目录

/lib 存系统的库文件

/lib64 存系统的库文件,大部分命令会依赖一些库,查看命令依赖关系:ldd

/media 媒介目录,默认是空的

/mnt 挂在目录,默认是空的

/opt 空目录

/proc 系统启动的进程

/run 进程产生的临时文件,重启或关机会消失

/srv 是空的,存服务产生的文件

/sys 存系统内核相关的文件

/tmp 系统的临时目录

/usr 存放用户的文件 /usr/local/ 存放服务

/var 存放系统日志,重要目录

/usr/bin/、usr/sbin/、 /bin、 /sbin、/etc、/var、/usr/local 经常使用的目录

从centOS7系统之后,就再也不区分32位和64位版本,只有64位系统。(32和64识别的内存不一样)

2、ls 命令:

ls -l 列出文件的详细信息

第一列:权限

第二列:表示有多少文件使用了相同的inode,目录下面有几个子目录,数字就是几

第三列root,表示全部者是谁

第四列:所属组,root用户组

第五列:文件大小(单位可以使用ls -lh查看)

第六列:文件建立时间

第七列:文件名

使用ls -i anaconda-ks.cfg 列取anaconda-ks.cfg文件的inode,前面的33582978数字是inode号,inode号是储存除了文件名之外的全部文件信息

 

ls -lh 更直观的显文件大小

 

ls -la 查看目录下全部隐藏的文件 '.' 点开头的就是隐藏文件或目录 (ls -a)

. 当前目录 .. 上级目录

 

ls -lta t是时间的意思,按时间顺序排序

 

ls -d 显示目录自己。 若是不加-d,会把目录下的子目录和子文件列出来,若是加-d只显示目录自己

可使用man 查看更多命令

ls -ld 只列出文件夹

3、文件类型

几个经常使用的ls选项 -l -i -a -t -h -d

文件属性前面第一排就是文件类型,在权限前面

常见:

开头: ' - ' 是普通文件

开头: ' d ' 文件夹

开头: ' c ' 字符串设备,鼠标键盘

开头: ' l ' 软链接文件

开头: ' b ' 块设备,(光盘或磁盘)

开头: ' s ' 通讯文件

find 查看指定文件

 

4、alias 命令

alias就是命令的别名,是命令加选项的组合。能够理解给一个很长的命令设置一个简单外号, 这样能够方便操做。
alias的做用就是,能够简写命令

能够经过which查看命令别名

alias 命令的别名,查看有别名的命令,永久生效写到proflie中

自定义一个命令: alias tobe ='ls -lha'

取消自定义别名: unalias tobe

which命令:

which命令能够查看一个或多个命令、可执行文件的绝对路径。而且会显示命令的别名
which命令是经过遍历PATH环境变量路径的方式来查找文件的,
若是一个命令不存在于PATH中的任何一个路径下,使用which命令是查找不到的。

 

5、相对和绝对路径

绝对路径是从根开始的 ( /etc/sysconfig/network-scripts/ifcfg-ens33)

相对路径:相对当前我所在位置的路径(.ssh/authorized_keys相对路径,相对root)

查看当前目录:pwd

6、cd 命令 man cd 查看(可经过有道词典(或其余翻译软件)翻译)

change directory --> cd 切换所在目录

cd - 进入上次操做目录

cd      回到登陆用户家目录

cd ~ ~就是用户的家目录

cd .. 进入上一级目录

7、建立和删除目录mkdir rmdir

创建目录: mkdir  目录名

递归创建目录: mkdir -p /root/tobe1/1/2

可视化建立目录可以看到建立过程: mkdir -pv /root/tobe1/2/3/4

 

删除目录:rmdir 只能删除非空目录

建立空文件: touch  文件名

8、rm命令

rm 能够删除非空的文件,不能删除目录

rm -rf  文件/目录

-r  删除目录

-f 强制

!tree (!) 在命令里找最近一次使用过的tree命令

history 查看历史用过的命令

rm -rfv /root/tobe1/2/3/      v能够看到过程

 

9、环境变量PATH

添加环境变量

PATH=$PATH:/tmp/

设置永久的额环境变量

vi /etc/profile 设置开机都会去加载该命令,在文件最后一行加上该命令

去掉环境变量/tmp

从新赋值:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

10、cp 复制

cp  源文件 目标文件

cp /etc/passwd /tmp/1.txt

-r  复制目录

cp -r /root/tobe1/ /tmp/abc

若是当目标目录已经存在时,会把源目录放到目标目录下,若是不存在,会把源目录拷贝过来并更名字

 

tree !$ (!$表示上一个命令的最后一个参数,以空额或tab键分割)

 

cp -i (-i 安全选项,提示做用,若是不想出现提示,/usr/bin/cp /etc/passwd /tmp/1.txt直接使用cp命令是带-i 参数的)

 

-a 全部(包括文件属性一块儿复制)

 

11、mv命令

mv 剪切或更名

把1.txt更名成123.txt

 

mv  源文件  目标位置

把123.txt移动剪切到/tmp/目录下并更名成333.txt

若是当前不目录不存在至关于更名字,若是目标目录存在,会把源目录放到目标目录下面

 

cp mv 若是右边是一个目录,必定要带一个/

 

12、文档查看cat、more、less、head、tail

wc 能够查看一个文件的行数,cat /etc/passwd >> anaconda-ks.cfg 把passwd中的内容追加(增长)到anaconda-ks.cfg

 

cat 查看文件内容 cat -A 文件行尾加结束符

 

cat -n 显示行号

 

tac 倒叙查看文件内容

 

more 查看文件内容,不显示所有(只显示一页,按空格向下翻页,按ctrl B 向上翻页)

 

less 和more用法相同(支持方向键,快捷键 ctrl f 日后,b往前,看完后要按q键退出,而且能够经过/搜索,按n键向下查找,shift n向上看,?按n向上看,搜索同理,大写G直接到文本最后,小写g到文本最后最顶部)

head 查看文件前几行 head -n 2 anaconda-ks.cfg

查看anaconda-ks.cfg文件前两行

tail 查看文件后几行 tail -n 2 anaconda-ks.cfg

查看anaconda-ks.cfg文件前两行

 

tail -f anaconda-ks.cfg 动态显示文件内容 看日志时使用

 

十3、文件或目录权限chmod

 

一个文件有三个权限位 rw-(表明可读可写不可执行) ---(表明不可读不可写不可执行) ---(表明其余用户权限:不可读不可写不可执行)

第一段,文件的全部者的权限, 属主权限u=user        

第二段,所属组的权限 属组权限g=group

第三段:除了全部者和所属组其余用户的权限 其余人权限o=other

数字表示:

r 读 4

w 写 2

x 执行 1

- 表明不能够执行

rwx =7   rw- = 6    --x =1

rw-r--r-- = 644

权限通常也用数字表示,好比764,就是全部者(u) rwx,所属组(g) rw-,其余用户(o) r--

chmod 修改权限(只目录自己生效)

chmod  755  2.txt

chmod u=rwx,g=r,o=r 2.txt

chmod a(g/o)+x或a(g/o)-x 2.txt a表示全部

 

. 表明文件受制于selinux,若是开启selinux会有.只有更改配置文件,并关闭后在建立就不会存在.了

 

chmod -R (目录下的全部目录和文件的权限都会更改)

 

十4、更改全部者和所属组chown

chown -R (目录下的全部目录和文件的全部者和所属组都会更改)

chown = change owner 更有者
chown不只能够更改全部者,也能够更改所属组。
cat /etc/passwd来查看系统用户都有哪些。
用法:chown全部者:所属组 文件名/目录

chown user1(全部者):user2(所属组) 1.txt

chown :root(所属组) 1.txt 只更改了所属组

chown user1 1.txt 把1.txt的全部者更改成user1

 

chgrp user1 1.txt 使用chgrp 更改1.txt所属组

 

十5、umask

当咱们登陆系统以后建立一个文件老是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。
umask设置了用户建立文件的默认 权限,它与chmod的效果恰好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。
通常可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile或$[HOME]/.bashrc中设置umask值。
具体取决于Linux发行版,好比Fedora19下要更改本身的umask值,在$[HOME]/.profile或$[HOME]/.bash_profile下的增长umask的值覆盖不了/etc/profile中的配置值的,必须在$[HOME]/.bashrc下增长umask值才能够永久定义本身的umask值

系统root用户的umask值(普通用户的umask和root的umask值不一样)

命令的使用:    umask 022  时,文件 644  目录755

为002时,文件 664 ,目录775

目录=777- 022 = 755

文件=666- 022 = 644

当umask =003时:

文件算法666(rw-rw-rw-) -  003(-------wx)=rw-rw-r--=664

目录算法777(rwxrwxrwx) -  002(-------wx)=rwxrwxr--=775

umask值的含义:

能够看到,当前用户的umask值为0022,那么这个0022是什么意思呢?
首先这里有4位数,第一位是特殊权限相关的,咱们暂且无论,只要关注后面3位数就能够了。其次咱们要说明的是在默认权限的设置上,文件和目录是不同的。那么文件和目录的默认权限分别是怎样的呢?

默认状况下,咱们新建一个文件是不须要具备可执行权限的,所以对于文件而言,其默认的最大权限就是666,表示对于文件拥有者、同个群组的其余用户和不一样群组的其余用户都具备可读和可写权限。
对于目录而言,可执行权限与用户是否能进入该目录有关,所以默认状况下,目录的全部权限都对外开放,即默认的最大权限为777,表示对于文件拥有者、同个群组的用户和不一样群组的其余用户都具备可读、可写和可执行权限。

这里要注意的是umask的值表示的是文件或目录的“默认最大值”须要减掉的权限。以上述umask值0022为例,因为文件的默认最大权限为666,第二位是0,表示的是不须要减掉任何权限,所以对于文件拥有者而言,而权限就是6;第三位为2,表示的是须要减掉可写权限,所以对于同个群组的其余用户而言,其权限就是4;第四位仍是2,表示须要减掉可写权限,所以对于不一样群组的其余用户而言,其权限就是4。故0022表示的是该用户新建的文件的默认权限是644。

咱们新建一个文件验证一下便知:

能够看到,当前的umask值是0022,咱们新建的文件1.txt的默认权限是-rw-r--r--,即644,与上述分析的一致。
对于目录而言,则有些不一样,咱们仍是以umask值0022为例进行分析。上文说了,目录的默认最大权限是777,第二位为0,表示的是不须要减掉任何权限,因此对于目录拥有者而言,其权限为7;第三位为2,表示的是须要减掉可写权限,所以对于同个群组的其余用户而言,其权限是可读可执行,即5;第四位为2,表示的是须要减掉可写权限,所以对于不一样群组的其余用户而言,其权限是可读可执行,即5。故0022表示的是该用户新建一个目录的默认权限为755。

咱们新建一个目录验证一下便知:

能够看到,目录dir1的权限为drwxr-xr-x,即755,与上述分析的一致。

配置文件: /etc/profile

相关文章
相关标签/搜索