仗剑走天涯

Just Do It!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

01 Linux档案与目录管理

Posted on 2015-07-20 17:02  三颗油  阅读(384)  评论(0编辑  收藏  举报

Contents

1. 目录与路径    1

1.1绝对路径和相对路径    1

1.2 cd 变换目录    1

1.4 mkdir 建立新目录    2

1.5 rmdir 删除空目录    3

1.6 $PATH(必须大写)执行指令的路径    4

1.7 ls档案与目录的检视    4

1.8 cp,rm,mv复制删除和移动    6

2. 档案内容查阅    7

2.1 cat 由第一行开始显示档案内容    7

3. 档案时间与新建档案    10

3.1档案的时间参数    10

3.2 创建档案    11

3.3 修改档案时间    11

4. 档案与目录的默认权限与隐藏权限    12

4.1 chgrp 更改档案目录的所属群组    12

4.2 chown 更改档案目录的拥有者    12

4.3 chmod 更改档案目录的权限    12

4.4 umask档案预设权限    16

4.5 chattr档案的隐藏属性    17

4.6 lsattr 显示档案的隐藏属性    19

4.7 档案的特殊权限    20

 

 

1. 目录与路径

1.1绝对路径和相对路径

        绝对路径:一定有根目录/写起,例如:/usr/share/doc

        相对路径:不是由根目录/写起,例如:由/usr/share/doc要到/usr/share/man, 可以使用如下命令

        

        相对路径意指:相对于当前工作目录的路径

        .代表当前目录;..代表上级目录

    1.2 cd 变换目录

        

        Cd是change directory 的缩写,是用来变换工作目录的指令。

        

        Cd – 回到刚刚的那个目录也就是/usr/share/doc

        Cd .. 回到上级目录

        TIPs:Linux默认指令列默认模式(bash shell)具有档案自动补齐功能,可以使用[Tab]键来达成你目录的完整性

    1.3 pwd 显示目前所在的目录

        Pwd是print working directory,显示当前目录所在的路径

        

        #pwd –P 显示真正的目录,而不是链接目录,例如/var/mail目录指向的是/var/spool/mail(链接目录相当于windows下的快捷方式)

        

    1.4 mkdir 建立新目录

        #mkdir 目录名

        #mkdir –p 目录1/目录2/目录3…. (创建递归目录,子目录,子子目录)

        

        #mkdir –m 711 test0 (创建带权限的目录)

        

        1.5 rmdir 删除空目录

        #rmdir 目录名

        #rmdir –p目录1/目录2/目录3…. (删除递归目录,子目录,子子目录)

        

        #rmdir只能删除空目录

        #touch filename(新建档案123)

        

        #rm –r 非空目录(可以删除非空目录)

        

        1.6 $PATH(必须大写)执行指令的路径

#ls 是查阅文件属性的指令,它位于/bin/ls(绝对路径),为什么我们在任何目录下都可以执行#ls指令呢?这是由于环境变量PATH所致。当我们执行ls指令时,系统会依照PATH的设定去每个PATH定义癿目录下搜寻文件名为ls的可执行文件, 如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先被搜寻到的同名指令先被执行!

 

#echo $PATH (查看PATH定义的路径)

 

 

 

 

PATH下的每个目录中间用冒号:隔开,每个目录是有先后顺序的。你可以发现不管是root还是普通用户sky,PATH下都有/bin目录,所以在任何路径下都可以通过PATH来找到/bin/ls来执行ls指令。

 

1.7 ls档案与目录的检视

        

        

ls 最常被使用到的功能还是那个 -l 的选项,为此,很多distribution 在预设的情况中, 已经将 ll (L 的小写) 设定成为 ls -l 的意思了!其实,那个功能是 Bash shell 的 alias 功能

        1.8 cp,rm,mv复制删除和移动

        #cp 源文件 目标文件

        #cp i 源文件 目标文件(若目标已经存在,在覆盖时会询问动作的进行)

        #cp r 源文件 目标文件(递归复制目录)

        #cp a 源文件 目标文件(连同文件的属性一并复制过去)

        #rm f 档案或目录(强制删除)

        #rm –i 档案或目录(删除前询问)

        #rm –r 档案或目录(递归删除)

        #mv移动档案与目录或更改名称

        

2. 档案内容查阅

 

2.1 cat 由第一行开始显示档案内容

    cat 是 Concatenate (连续)的简写, 主要的功能是将一个档案的内容连续印出在屏幕上面!

 

    

2.2 tac从最后一行开始显示

2.3 nl 显示的时候,顺道显示出行号

2.4 more 分页显示档案内容

2.5 less 与more类似,但是可以往前翻页

2.6 head 只看头几行,默认显示10行

可以看到man.config一共有152行

#head –n -100 /ect/man.config        列出前面的52行,后面的100行不显示

 

2.7 tail 只看尾巴几行

#tail –n -100 /etc/man.config        列出100行后面的所有内容,也就是100-152行,前面的99行不会显示。

如果要显示/etc/man.config第11行到第20行,如何实现呢?

2.8 od 以二进制的方式读取档案内容

执行文档通常是binary file 二进制格式,如果用上面的指令读取其内容时,会显示乱码,这是就要用到od指令

例:将/usr/bin/passwd的内容以8进制存储值与ASCII的对照表显示

3. 档案时间与新建档案

    3.1档案的时间参数

  • Modification time(mtime)--档案内容更改的时间
  • Status time(ctime)--档案权限或属性更改的时间
  • Access time(atime)--档案的内容被取用的时间,比如cat

 

3.2 创建档案

    

    

    3.3 修改档案时间

    

4. 档案与目录的默认权限与隐藏权限

    档案的权限有rwx读写执行;目录的属性有d – l 目录、档案、链接档案等

    4.1 chgrp 更改档案目录的所属群组

    #chgrp [-R] 组名 档案目录名 // -R表示递归,目录的子目录,子子目录

    4.2 chown 更改档案目录的拥有者

    #chown [-R] 拥有者 档案目录

    #chown [-R] 拥有者:组名 档案目录 //同时更改拥有者和所属组

    4.3 chmod 更改档案目录的权限

  • #chmod [-R] xyz 档案目录 // x,y,z分别代表拥有者,所属组,其他用户的权限,比如x=7(r+w+x),r=4,w=2,x=1
  • #chmod [-R] u=rwx,go=rx 档案目录 //u=user;g=group;o=other;a=all
  • #chmod [-R] a+w 档案目录 //+代表增加权限,-代表删除权限,=代表赋予权限,a+w这里表示所有用户都增加w写的权限

     

    实例:

    在/tpm下创建test目录,在test目录下创建123文本档案,我们可以看到在root用户下创建的档案和目录,所属主和所属组都是root,这里我们将test目录及其目录下的所有档案目录(这里只有123档案)的所属主设置成sky,所属组设置成user组。并且除了自己sky以外的其他用户只有读和操作的权限。

        

        切换到普通用户sky,并编辑123档案,编辑内容"hello my Linux"

        

        切换到普通用户tyang3,可以查看/tmp/test下的档案,但是无权更改写里面的内容

        

        

        切换到sky用户,除了自己以外,其他用户对test目录的权限只有r只读的权限

        

        再切换到其他用户tyang3,无法访问sky用户的test目录及查看其内部的档案

        

        将/tmp/test目录权限更改为对其他用户只有x执行的权限,我们发现其他用户tyang3可以进入目录,但是无法查看目录内的档案

        

        

        总结:

        r--: 用户无法进入目录,也无法访问目录内的档案

        --x: 用户可以进入目录,但是无权操作,比如ls,cp

        r-x: 用户可以进入目录,也可以进行操作,但是无法修改目录内档案的内容

        4.4 umask档案预设权限

        当我们创建档案或目录时,都会有个默认的权限,umask的分数指的是默认值需要减掉的权限,r,w,x分别是4、2、1分

  • #umask        //数字形态的权限设定分数,第一组数字是特殊权限用的,其他三组为用户权限
  • #umask –S        //符号类型显示设定的权限

            

  • 创建档案

    创建档案时,预设是没有可执行X权限,只有rw的权限,即-rw-rw-rw-,所以umask最大的分值是666分

  • 创建目录

    创建目录时,权限默认值是drwxrwxrwx,所以umask最大分值是777分

            如上图所示,root管理员umask默认值是0022,我们只看后三位022,

Root管理员创建档案时,所属主user不减权限(0),所属组group减掉w权限(2),其他用户也减掉w权限(2),所以最后创建的档案权限是-rw-r—r--

Root管理员创建目录时,所属主user不减权限(0),所属组group减掉w权限(2),其他用户也减掉w权限(2),所以最后创建的目录权限是drwxr-xr-x

Bingo!Bingo!完全正确,有兴趣的同仁可以切换到普通用户进行测试。

如何修改umask的默认值?

#umask 修改值

 

Root管理员的umask默认是022,而普通用户umask默认是002

4.5 chattr档案的隐藏属性

        用法:#chattr [+—=] [ASacdistu] 档案或目录

        

        

        实例:创建attrtest档案,并添加i的属性(不能删除、改名、创建链接)

        

        取消档案i的权限

        

    4.6 lsattr 显示档案的隐藏属性

        

        

    4.7 档案的特殊权限