目录

 

1、目录结构的介绍

1.1、用户主目录

1.2、路径名

2、创建和删除目录

2.1、mkdir命令

2.2、rmdir命令

3、改变工作目录和显示目录内容

3.1、cd命令

3.2、pwd命令

3.3、ls命令

4、链接文件的命令

4.1、硬链接

4.2、符号链接

4.3、ln命令

5、改变文件或目录存取权限的命令

5.1、用户和权限

5.1.1、用户主

5.1.2、用户组

5.2.3存取权限

5.2、chmod命令

5.3、umask命令

6、改变用户组和文件主的命令

6.1、chgrp命令

6.2、chown命令


1、目录结构的介绍


Linux文件系统采用带链接的树形目录结构,即只有一个根目录(通常用“ / "表示),其中含有下级子目录或文件的信息。

1.1、用户主目录

当注册进入系统时,用户会有一个自己的目录,称为用户主目录,通常在 /home目录下。如下图所示:

图 a

1.2、路径名

路径名包括绝对路径名和相对路径名。

绝对路径名:指的是从根目录出发到目标文件或目录所经过的文件层次结构。绝对路径总是以“ / "开头,表示从根目录开始。

相对路径名:指的是从当前工作目录到目标文件或目录所经过的文件层次结构。相对路径不能以“ / "开头。

每一个目录的前两项分别是" . "表示该目录本身," .. "表示该目录的父目录。故可以使用" cd ../"一层一层的返回父目录,直到根目录。

补充知识点:pwd 命令可以查看当前所在的工作目录。

2、创建和删除目录


2.1、mkdir命令

(1)一般格式:

mkdir [选项] dirname

(2)功能介绍:

mkdir命令用来创建目录。默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录。

(3)常用选项:

-p,--parents一次递归创建多级目录,即若新建目录所指的路径中能够有些目录尚不存在,则可以自动创建他们
-m,--mode=MODE新建目录的同时设置目录的权限为MODE,权限MODE用给定的八进制数字表示
-v显示目录的创建过程

(4)注意:

最好采用前后一致的命名方式来区别文件和目录。例如目录名可以用大写字母开头,这样便容易区分,在目录列表目录名就出现在前面。

(5)示例:

mkdir -m 700 /home/linuxprobe/test        (在/home/linuxprobe目录下创建test目录,并且只用文件主有读、写和执行权限,其他人无权访问)

mkdir -p A/B/C/D        (在当前工作目录下递归创建A/B/C/D各级目录)

mkdir Dir1 Dir2        (同时创建Dir1和Dir2目录) 

2.2、rmdir命令

(1)一般格式:

rmdir [选项] dirname

(2)功能介绍:

rmdir命令可以删除一个或多个空目录,相当于 rm -d。

(3)常用选项:

-p用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
-i,--ignore-fail-on-non-empty忽略由于删除非空目录时导致命令出错而产生的错误信息
-v显示命令的详细执行过程
-- help显示命令的帮助信息
-- -- version显示命令的版本信息

(4)注意:

删除目录时必须要有对其父目录的写权限。

rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有“-R”选项的rm命令。

当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

(5)示例:

rmdir Empty        (在当前目录下删除Empty空文件夹)

rmdir -p A/B/C        (递归地删除A/B/C目录)

3、改变工作目录和显示目录内容


3.1、cd命令

(1)一般格式:

cd [选项] [路径]

(2)功能介绍:

cd命令用于改变工作目录。如果给cd命令提供的路径是一个普通文件或一个不存在的目录,或者是无权使用的一个目录,那么系统将显示一条出错信息。

若路径省略,即 cd 命令,则切换至使用者的用户主目录。

(3)常用选项:

-P如果切换的目标目录是一个符号链接,则直接切换到符号链接指向的目标目录
-L如果切换的目标目录是一个符号链接,则直接切换到符号链接名所在的目录

(4)注意:

“~”表示为用户目录的意思,“.”则是表示目前所在的目录,“..”则表示当前目录位置的上一级目录。

(5)示例:

cd ~        (切换到用户主目录)

cd /home/linuxprobe        (切换到用户linuxprobe主目录下)

cd ../..        (将当前目录向上移动两级)

3.2、pwd命令

(1)一般格式:

pwd

(2)功能介绍:

pwd命令不带任何选项,用来查询当前所在的工作目录。

(3)常用选项:

(4)注意:

(5)示例:

pwd        

3.3、ls命令

(1)一般格式:

ls [选项] [目录或文件]

(2)功能介绍:

ls命令列出指定目录的内容。

若给出的参数是目录,则命令将列出其中所有子目录与文件的信息;若给出的参数是文件,则将列出有关该文件属性的一些信息。在默认情况下输出条目按字母顺序排列。若没有给出参数,将显示当前工作目录下所有子目录和文件的信息。

(3)常用选项:

-a,all显示指定目录下所有文件及目录 (包括以“.”开头的隐藏文件)
-A,--almost-all同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-b,--escape当文件名字包含不可显示的字符时,则用\ddd(3位八进制数)形式显示该字符
-i,--inode在输出的第一列显示文件的 I节点号
-l

使用长格式列出文件及目录信息。输出的信息分成多列,依次是:文件类型与权限  链接数  文件主  文件大小 创建或最近修改的时间  文件名 

了解更多请点击

-t根据最后的修改时间排序,最新的优先。若两个文件的修改时相同,则按文件名的字典顺序排列
-R,--recursive递归列出所有子目录
-r,--reverse将文件以相反次序显示(默认依英文字母次序)。若指定按时间属性排序,则最近创建的文件排在前面。
-S根据文件大小排序,从大到小
-d,--directory若参数是目录,则只显示它的名字,不显示其内容
-L,--dereference若指定的名称是一个符号链接文件,则显示链接所指向的原始文件,而不是链接文件本身。
-m用“ , "隔开各文件和目录的名字
-n,--numeric-uid-gid输出格式与-l选型相同,只是在输出中文件主和文件组是用相应的UID和GID来表示,而不是实际的名称。
-o与-l选项相同,只是不显示组用户信息
-F,--classify在列出的文件名后面加上不同的符号,以区分不同类型的文件。/:表示目录;*:表示可执行文件;@:表示符号链接文件;|:表示管道文件;=:表示socket文件
-p在目录名后面附加一个表示类型的标号,即“ / "
-q,--hide-contiol-chars将文件名中不可显示的字符用” ?“代替

(4)注意:

(5)示例:

ls -F        (列出当前目录的内容,并标出文件的属性)

ls -ail        (列出当前目录的所有内容包括隐藏内容,并显示它们的I节点号)

4、链接文件的命令


Linux具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同的目录下,但必须有不同的文件名,或者被链接的文件有相同的文件名,但是存放在不同的目录下。这样只要对一个目录下的该文件进行修改,就可以完成对所有目录下同名链接文件的修改。对于某个文件的各链接文件,可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性。

文件链接有两种:硬链接符号链接

4.1、硬链接

在其他目录或本目录中增加目标文件的一个目录项,这样一个文件就登记在多个目录中,就是建立了硬链接

这些目录项会使用同一个目标文件的I节点号。

文件的硬链接数可以在目录的长格式(ls -l [路径])的第二列中看到,无额外链接的文件的链接数为1。

当删除一个文件时,其链接文件仍然存在,除非一个文件的链接数为0,否则不会从文件系统中被物理地删除。

硬链接有如下限制:

  1. 不能对目录文件创建硬链接。
  2. 不能在不同的文件系统之间创建硬链接。也就是说,链接文件和被链接文件必须位于同一个文件系统中。

4.2、符号链接

符号链接(软链接)是将一个路径名连接到一个文件。这些文件是一种特别类型的文件。事实上,他只是一个文本文件,其中包含源文件的路径名,并且不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的

与硬链接不同,符号链接确实是一个新文件,具有不同的I节点号;而硬链接没有创建新文件。

符号链接没有硬链接的限制,可以对目录文件创建符号链接,也可以在不同文件系统之间创建符号链接。

符号链接保持了链接与源文件或目录之间的区别:

①删除源文件或目录,只输出数据,不会删除链接。一旦以同样文件名创建源文件,链接将继续指向该文件的新数据。(符号链接可以对一个不存在的文件名进行链接。)

②在目录长列表格式中,符号链接以一种特殊的文件类型显示出来,其第一个字母是 

③符号链接的大小是其链接文件的路径名的字节数。

④当用ls -l 命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录。

例如:lrwxrwxrwx  … 14 时间 /etc/motd->/original_file

其中,14正好说明原文件名“ /original_file ”有14个字符构成。

通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似windows一样的快捷方式。

4.3、ln命令

(1)一般格式:

 ln [选项] [源文件或目录] [目标文件或目录]

(2)功能介绍:

ls命令用来创建链接。默认情况下,建立的是硬链接。ln命令会增加链接数,rm命令会减少链接数。

(3)常用选项:

-s,--symbolic对源文件建立符号链接,而非硬链接
-d,-F,--directory此选项允许超级用户(root)对目录建立硬链接。(这与系统有关,有的系统不允许这样做)
-i,--interactive交互模式,在覆盖原有文件之前,先询问用户。用户同意后才执行覆盖
-f强制创建链接,即使目标文件已经存在
-n把指向目录的符号链接视为一个普通文件
-b为每个已存在的目标文件创建备份文件
-v详细信息模式,输出指令的详细执行过程

(4)注意:

使用 ln -s 命令建立符号链接时,源文件最好采用绝对路径,这样就可以在任何工作目录下使用符号链接文件,而无需来回切换工作目录。

(5)示例:

ln  /home/linuxprobe/a.txt  /home/user1/b.txt        (将/home/linuxprobe目录下的a.txt链接到目录/home/user下的文件b.txt)

ln  -s  /home/user1/test  /home/user2/n.txt        (在目录/home/user2下创建一个符号链接文件,使它指向/home/user1/test目录)

5、改变文件或目录存取权限的命令


5.1、用户和权限

5.1.1、用户主

Linux为每个文件都分配了一个文件所有者,称为文件主,并赋予文件主唯一的注册名。

对文件的控制取决于文件主或超级用户(root)。

文件的所有关系是可变的,可以将文件或目录的所有权转让给其他用户,但只有文件主或超级用户才有权改变文件的所有关系。文件所有权的标志是用户ID(UID)。

chown命令可以更改某个文件或目录的所有权。

如果改变了文件或目录的所有权,原文件主将不再拥有该文件或目录的权限。

5.1.2、用户组

当系统管理员为用户建立账号后,会分配一个组ID和一个特定的用户组名。通常这些组名包含有相同需求的用户,如一个开发部门的所有成员。采用组方式有助于增强系统使用的安全性。

一个组也可以是另一个组的成员。

在Linux系统中,每个文件隶属于一个用户组。当创建一个文件或目录时,系统会赋予它一个用户组关系,在该用户组内的所有成员都可以使用此文件或目录。

文件用户组关系的标志是GID。文件的GID只能由文件主或超级用户来修改。利用chgrp命令可以改变文件的GID。

5.2.3存取权限

Linux系统中每个文件和目录都有存取许可权限,用来确定谁可以通过何种方式对文件和目录进行访问和操作。

Linux系统规定了4中用户:①文件主(owner)②同组用户(group)③可以访问系统的其他用户④超级用户(root),具有管理系统的特权。

存取权限规定了3中访问文件或目录的方式:①读(r);②写(w)③可执行或查询(x)

当使用ls -l 命令显示文件或目录的详细信息时,最左边一列为文件的存取权限。一共有10位,其中各位的含义如图:

图 b

5.2、chmod命令

(1)一般格式:

(1)以符号模式改变权限

chmod key 文件名

其中key由以下三部分组成:

[who] [操作运算符] [mode]

(2)以绝对方式改变权限

chmod mode 文件名

(2)功能介绍:

chmod命令用于改变或设置文件或目录的存取权限。

只有文件主或超级用户才有权用chmod命令改变文件或目录的存取权限。

(3)说明:

在以符号模式改变权限时,key的三部分解释如下

[who]指的是操作对象,可以是下述字母中的任一个或者他们的组合。

  • u:用户(user),即文件或目录的所有者。
  • g:同组(group)用户,即与文件属主有相同组ID的所有用户。
  • o:其他(others)用户。
  • a:所有(all)用户。它是系统默认值

[操作符号]可以是:

  • +:添加某个权限。
  • -:取消某个权限。
  • =:赋予给定权限并取消其他所有权限(如果有)

[mode]表示的权限可用下述字母的任意组合:

  • r:可读。
  • w:可写。
  • x:可执行或查询。
  • X:只有目标文件对某些用户是可执行的或该目标文件是目录时,才追加x(可执行)属性。
  • s:在文件执行时,把进程的属主或组ID置为该文件的文件属主。方式“u+s"设置文件的用户ID位,”g+s"设置组ID位。
  • t:保存程序的文本到交换设备上。
  • u:与文件属主拥有一样的权限。
  • g:与和文件属主同组的用户拥有一样的权限。
  • o:与其他用户拥有一样的权限。

这三个部分必须按顺序输入。可以用多个key,但必须以“ , "隔开。

以绝对方式设置或改变文件的存取权限: 

用数字1和0表示图 b中的9个权限位,置为1表示有相应权限,置为0表示没有相应权限。例如:

 rwxr-xr--,用二进制数字表示是111 101 100

为了记忆和表示方便,通常将这9位二进制数用等价的3个0~7的八进制数表示,即从右到左,3个二进制数换算成一个八进制数。上面的二进制数就等价于八进制数:754

mode是由1~4位八进制数字组成的,从左到右各位数字的含义是:第1位表示用户ID(数字4)、组ID(数值2)和粘着属性(数值1)第2位表示文件主权限第3位表示组用户权限第4位表示其他用户权限。

(4)注意:

(5)示例:

chmod a+x ex1        (将文件ex1的权限改为所有用户都有执行权限)

chmod u=rx,g=x,o=  ex1        (将文件ex1的权限重新设置为文件主可以读和执行,组用户可以执行,其他用户无权访问)

chmod 0664 ex1        (使文件ex1的文件主和同组用户具有读、写权限,其他用户只可读)

5.3、umask命令

(1)一般格式:

umsak [-S] mode

(2)功能介绍:

umsak命令用来设置限制新建文件权限的掩码。

(3)说明:

用户每次注册进入系统时,系统都会自动执行umsak命令并设置掩码mode(默认值是0022)当以后创建新文件时,该文件最初的权限位将受到掩码限制。当然,用户可以通过再次执行umask命令来改变默认值,新权限将会覆盖旧权限。

mode的表示方式有两种:数字方式符号方式

若mode以数字开头,则被解释为数字方式。

若mode不是以数字开头,则被解释为符号形式。

(4)注意:

不能使用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。但是如果创建的是目录或通过编译程序创建的一个可执行文件,那么将不受此限制。这种情况会设置文件的执行权限。

(5)示例:

umask        (以八进制显示当前的掩码)

umask -S        (以符号形式显示当前掩码)

umask u=rwx,g=rx,o=        

6、改变用户组和文件主的命令


6.1、chgrp命令

(1)一般格式:

chgrp [选项] 组名 文件列表

其中  组名  可以是用户组ID或用户组名。文件列表可以是通配符。

若用户不是该文件的文件主或超级用户,则不能改变该文件的组。

(2)功能介绍:

chgrp命令用来该变文件或目录所属的用户组。

(3)常用选项:

-c效果类似”-v”参数,但仅回报更改的部分
-f不显示错误信息
-h对符号连接的文件作修改,而不更动其他任何相关文件
-R递归处理,将指定目录下的所有文件及子目录一并处理
-v显示指令执行过程
--reference把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

(4)注意:

(5)示例:

chgrp -R cool /usr/linuxcool        (将/usr/linuxcool及其子目录下的所有文件的用户组改为cool)

6.2、chown命令

(1)一般格式:

chown [选项] 用户或组 文件名

用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。

(2)功能介绍:

chown命令用来改变某个文件或目录的所有者和所属的组。

(3)常用选项:

-R递归地改变指定目录即其所有子目录、文件的文件主。
-c若该文件拥有者确实已经更改,才显示其更改动作
-f若该文件拥有者无法被更改也不要显示错误讯息
-h只对于连结(link)进行变更,而非该 link 真正指向的文件
-v显示拥有者变更的详细资料
--help显示辅助说明
--version显示版本

(4)注意:

只有文件主和超级用户root才能使用该命令。

(5)示例:

chown -R liu /home/mengqc        (将目录/home/mengqc及其下面的所有文件、子目录的文件主改为liu

Logo

更多推荐