Linux命令格式与目录处理命令ls
1 Linux命令格式
命令格式:命令 [-选项] [参数]
(1)选项:用来调整命令的功能,用以使得前面的命令根据需要得出不同的结果,展示不同的内容。
(2)参数:命令操作的对象,表示该命令是针对什么操作的,可能是一个进程,一个用户,一个文件甚至是一个目录。
例:
[root@localhost ~]#ls -la /etc
说明:
1)个别命令使用不遵循此格式;选项和参数是可选的,例如ls命令可以不跟任何选项和参数也可以执行,但是有些命令后面是不可以省略选项和参数的,甚至有的命令需要带多个选项、多个参数才能执行,即不遵循此格式。
2)当有多个选项时,可以写在一起;例如:-la命令就是“-l -a”两个命令合在一起写的,并且绝大多数命令选项的先后顺序是可以颠倒的(有些命令不可以)。
3)简化选项与完整选项:例如:-a 等于 --all,Linux系统中习惯于用一个“-”来调用简化选项(如-a),用两个“--”来调用完整选项(如--all)。
2 目录处理命令ls
命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
应用示例:
[root@localhost ~]#ls
命令执行结果如图1所示:
图1 ls命令操作结果
示例说明:该命令后面没有带任何的选项和参数,表示显示当前所在目录下的文件(只有文件名,没有其他详细一点的信息)。一般情况下初始登录后的所在位置都是用户的家目录,此处示例就表示root用户的家目录下的文件。
补充说明:图1中所显示的三个文件就是当前Linux的安装日志文件。
[root@localhost ~]#ls -a
命令执行结果如图2所示:
图2 ls -a命令操作结果
示例说明:显示所有文件(只有文件名,没有其他详细一点的信息),包括隐藏文件(以“.”开头的文件)。选项“a”表示“all”,即“所有”。
补充说明:在Linux系统中,以“.”开头的文件就是隐藏文件,隐藏文件的设计初衷是为了告诉用户:这是一个系统文件,如果没有特殊的要求,或者除非你确定需要操作它,否则不要乱动它。Linux系统中,要把一个文件进行隐藏,只需要更改文件名即可(即在文件名前面再加一个“.”)。
以上就是是查看当前目录下的文件的操作命令示例,那么如果需要查看其它目录下的文件的话,可以直接在“ls”命令后面指定任何一个目录来进行查询。例如:
[root@localhost ~]#ls /
命令执行结果如图3所示:
图3 ls命令查看指定目录下的文件信息
示例说明:查看根目录下的文件。
上述示例展示的都只是查看文件的基本命令,从示例结果中我们可以看到,我们通过命令所能看到的只有文件的文件名,没有其他任何的文件说明信息。下面就来介绍如何通过ls命令查看文件的更多相关信息。
[root@localhost ~]#ls -l
命令执行结果如图4所示:
图4 ls -l长格式显示文件信息
示例说明:详细信息显示。选项“l”表示“long”,即“长格式”。长格式显示的好处是比普通ls命令显示结果多出了一些文件的属性信息。
补充说明:从图4中可以看到,每一个文件的信息显示格式都被分成了7个部分。例如:
-rw-r--r--. 1root root 7572 6月 7 23:35 install.log.syslog
其中:
(1)第一部分:文件类型(第1个字符)+权限(后9个字符)。如上“-rw-r--r--”。
表示该文件的文件类型,以及Linux的三个用户类分别对其拥有的操作权限。
具体说明如下:
1)第1字符表示文件类型:
“-”:二进制文件;
“d”:目录;
“l”:软链接文件。
补充:Linux系统中还有几类不常见的系统特殊文件类型:字符设备文件、块设备文件、套接字文件和管道符文件。
2)后9个字符分为三个部分,分别对应不同的用户类,且每个部分都标记相应的用户类所拥有的权限。
rw- r-- r--
u g o
(A)Linux系统中的三种权限类分别是:r 读;w 写;x执行。
说明:
a)对文件来说,执行权限x是它的最高权限,权限的分配原则是:够用就好!也就是说只要够使用,就不应该给最大的权限。所以通常情况下,文件的所有者可能也没有对该文件的执行操作权限。
b)一般来说,对于文件,读写权限就足够了,执行权限只有当我们需要让这个文件运行的时候,比如说它是个命令,或者是个脚本,但是如果是个日志,那就不需要执行权限了。
c)用户类不拥有某种操作权限时,在该权限的显示位置将会显示一个“-”表示该用户类没有此项操作权限。
(B)Linux系统中每个文件把用户分成了三类,分别表征用户和文件之间的关系:
第一类:u 所有者(user) 文件的创建者,只能有一个,但是可以变更。
第二类:g 所属组(group) 一个用户集合,该集合内的用户拥有相同的操作权限。
第三类:o 其他人(other) 既不是所有者,也不是所属组的剩余用户类。
如上所示“rw-r--r--”中:
a)“rw-”表示该文件的所有者拥有对该文件的读写操作权限,没有执行操作权限;
b)“r--”表示该文件的所属组拥有对该文件的读操作权限,没有写操作权限和执行操作权限;
c)“r--”表示其他人拥有对该文件的读操作权限,没有写操作权限和执行操作权限;
(2)第二部分:引用计数。
代表该文件曾经被调用或者引用的次数。(引用计数对于文件和目录来讲,只在硬链接这里才有作用)
如上所示的数字“1”表示该文件被调用或引用了1次。
(3)第三部分:所有者(u)。
如上所示“root”表示该文件的所有者是root用户。
(4)第四部分:所属组(g)
如上所示“root”表示该文件的所属组是root用户组。
(5)第五部分:文件大小(默认单位是字节Byte)
如上所示“7572”,表示该文件的大小为7572个字节。
可以看到,这种不带单位的文件大小显示方式是不太直观的,那么针对这个问题,Linux的操作命令还提供了一个“-h”选项,这是一个很多命令都支持的通用选项。“h”表示“human”,也就是“人性化显示”。在显示文件大小的时候会视实际情况附带显示诸如“K”、“M”、“G”等等的单位信息。例如:
[root@localhost ~]#ls -lh
命令执行结果如图5所示:
图5 ls -lh命令操作结果
(6)第六部分:该文件最后一次被修改的时间
如上所示“6月 7 23:35”表示该文件最后一次被修改的时间为6月7日的晚上11点35分。
补充说明:在Linux系统中本身是没有“创建时间”这个概念的。但是有文件的访问时间,即“文件的最后一次访问时间”、“文件的状态修改时间”和“文件的数据修改时间”。但是如果一个文件从创建以来就没有被修改过,那么这里显示的实际上就是该文件的创建时间。
(7)第七部分:文件名
如上所示的文件名为“install.log.syslog”。
再来看看ls命令的最后一个选项“-d”。首先举一个例子,比如说我想查看某一个目录的详细信息,那么如果我通过如下命令进行查看将会得到一个什么样的显示结果:
[root@localhost ~]#ls -l /etc
命令执行结果如图6所示:
图6 ls –l命令查看指定目录下的文件详细信息
可以看到,仅仅只是通过长格式选项显示的结果中显示却是指定目录下的很多很多的文件详细信息,而非目录本身的详细信息。那么要查看指定目录本身的详细信息,我们就要用到“-d”选项了,这个选项一般是跟“-l”选项结合起来使用的。例如:
[root@localhost ~]#ls -ld /etc
命令执行结果如图7所示:
图7 ls -ld命令操作结果
示例说明:查看目录属性。选项“d”表示“directory”,即“目录”。显示当前目录本身的详细信息,而不显示目录下的信息。
补充知识:i节点(inode)
类似于索引id,用于唯一标志某个文件,相当于索引号。可以通过“ls -i”命令行后面跟文件名或者目录来查看指定文件或者指定目录下的文件的i节点。例如:
[root@localhost ~]#ls -i
[root@localhost ~]#ls -i /
[root@localhost ~]#ls -i /etc/issue
命令执行结果如图8所示:
图8 查看i节点信息
示例说明:查看当前目录下的文件的i节点、根目录下的文件的i节点,以及指定文件的i节点。