ls命令介绍
ls命令是英文 list 的简写形式。我们用它来列出文件。
它的用法就是在任何目录下直接执行 ls,或者在 ls 后接目录路径(包括相对路径和绝对路径)。当然我们还可以使用一些选项,让我们可以看到更多信息。
命令的选项很多,大飞认为比较实用的的可能有如下几个,个人觉得结合英文解释最容易记住:
- -l 表示 long,以长列表格式显示文件的详细信息。这个选项非常有用,有点类似于我们在Windows下的查看–详细信息
- -a 表示 all,列出所有文件(包括隐藏文件)
- -h 表示 human-readable,将文件大小自动进行单位换算,比较易读
- -t 表示 time,按时间顺序将结果排序,最新修改的排最前面
- -r 表示 reverse,列出结果时,将顺序反转,一般和 -t 搭配使用
- -R 表示 Recursive,递归显示所有子目录中的文件
- -S 表示 Size,按文件大小排序,最大的文件排最前面
常用组合
ls -l
[root@itdafei /]# ls -l
total 20
lrwxrwxrwx. 1 root root 7 Dec 6 05:49 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Nov 15 07:53 boot
drwxr-xr-x. 21 root root 3440 Dec 6 06:30 dev
drwxr-xr-x. 74 root root 8192 Dec 6 07:29 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 Dec 6 05:49 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Dec 6 05:49 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
dr-xr-xr-x. 118 root root 0 Dec 6 06:30 proc
dr-xr-x---. 2 root root 135 Dec 1 20:35 root
drwxr-xr-x. 25 root root 740 Dec 6 07:20 run
lrwxrwxrwx. 1 root root 8 Dec 6 05:49 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x. 13 root root 0 Dec 6 06:30 sys
drwxrwxrwt. 11 root root 4096 Dec 6 07:29 tmp
drwxr-xr-x. 13 root root 155 Nov 15 07:48 usr
drwxr-xr-x. 19 root root 267 Nov 15 07:55 var
PS: 这个命令以长列表格式显示了根目录 / 下的文件列表。每行一个文件(或目录),仅仅知道这么执行命令可能是不够的。在很多场景下,一些信息比如文件大小、类型、最后修改时间对管理员来说很重要。这里每行的信息分为多个字段来分别表示了这些信息,我们有必要了解各个字段的含义。
ls -ltrh
[root@itdafei /]# ls -ltrh
total 20K
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
drwxr-xr-x. 13 root root 155 Nov 15 07:48 usr
dr-xr-xr-x. 5 root root 4.0K Nov 15 07:53 boot
drwxr-xr-x. 19 root root 267 Nov 15 07:55 var
dr-xr-x---. 2 root root 135 Dec 1 20:35 root
lrwxrwxrwx. 1 root root 9 Dec 6 05:49 lib64 -> usr/lib64
lrwxrwxrwx. 1 root root 8 Dec 6 05:49 sbin -> usr/sbin
lrwxrwxrwx. 1 root root 7 Dec 6 05:49 lib -> usr/lib
lrwxrwxrwx. 1 root root 7 Dec 6 05:49 bin -> usr/bin
dr-xr-xr-x. 116 root root 0 Dec 6 06:30 proc
dr-xr-xr-x. 13 root root 0 Dec 6 06:30 sys
drwxr-xr-x. 21 root root 3.4K Dec 6 06:30 dev
drwxr-xr-x. 25 root root 740 Dec 6 07:20 run
drwxr-xr-x. 74 root root 8.0K Dec 6 07:29 etc
drwxrwxrwt. 11 root root 4.0K Dec 6 07:29 tmp
PS: 同样是上面的列表,我们添加了t选项按时间排序。r选项将顺序逆转,这样最后修改过的文件排到最下。
h选项将超过 1KB的文件以K为单位显示,超过1MB的文件以M为单位...
题外话
我们使用 alias 命令查看 ls 时,可以看到它本身已经有搭配选项:
alias ls
alias ls=‘ls --color=auto’
这表示我们执行ls 会自动添加 --color=auto 选项,这个选项是自动用颜色区分不同的文件类型。
主流Linux发行版中都有一个ll命令,它其实是ls的变体,也通过别名的方式实现。
alias ll
alias ll='ls -alF --color=auto'
如果你的显示不是这个,执行一下: alias ll='ls -alF --color=auto' 可以自定义。
这里的 -F 选项可能并不常用,它是 classify 的意思,表示添加分类符号后缀。常见有3种分类符号:
- 可执行文件, 添加一个后缀 *
- 目录, 添加一个后缀 /
- 软连接, 添加一个后缀 @
更快捷的 ll 命令
所以很多情况下我们可以直接用 ll 快捷命令。如果有必要,我们还可以在 ll 后添加更多的选项。比如大飞个人觉得 ll -trh 或者 ll -h 就非常实用:
[root@itdafei /]# ll -trh /tmp
total 4.0K
drwxrwxrwt. 2 root root 6 Nov 15 07:49 .XIM-unix/
drwxrwxrwt. 2 root root 6 Nov 15 07:49 .X11-unix/
drwxrwxrwt. 2 root root 6 Nov 15 07:49 .Test-unix/
drwxrwxrwt. 2 root root 6 Nov 15 07:49 .ICE-unix/
drwxrwxrwt. 2 root root 6 Nov 15 07:49 .font-unix/
drwx------. 3 root root 17 Dec 1 20:05 systemd-private-d12d73f3efdd4609b1fa2504ccdd3a9d-chronyd.service-V5EEto/
drwx------. 3 root root 17 Dec 2 03:53 systemd-private-97026637bd484de686f41c2d30eb7db9-chronyd.service-SGTWqZ/
drwx------. 3 root root 17 Dec 5 08:04 systemd-private-5b85ad4d997b47f5af2b9af1a8c25c63-chronyd.service-7hwuG3/
drwxr-xr-x. 17 root root 224 Dec 6 05:49 ../
drwx------. 3 root root 17 Dec 6 06:30 systemd-private-223cd0284a0a487dab1c3d3972ba694e-chronyd.service-gSmb4B/
drwxrwxrwt. 11 root root 4.0K Dec 6 07:29 ./
PS:这里的命令 'll -trh /tmp' 等同于 'ls -alFtrh /tmp'。
这里我们留意到有几个以点开头的文件:
./
../
.XIM-unix/
... ...
这些就是Linux下的隐藏文件,需要在 a 选项的加持下才显示。其中
./ 表示当前目录
../ 表示当前目录的父目录
这根我们在Windows的命令提示符下用DOS命令比如dir是一个概念:
C:\Users\itdafei 的目录
2022/12/14 17:21 <DIR> .
2022/12/14 17:21 <DIR> ..
2022/07/18 14:16 <DIR> .idlerc
学习方法
Linux系统下命令众多,加上命令的各种选项更是数不胜数。即使是ls这样最普通的命令也有很多门道,这里也只是涵盖大飞觉得可能比较常用的一部分。基于理解选项含义的情况下多加练习,并思考在什么场景下哪些信息可能比较有用,哪些选项能够适用,对更牢固地掌握命令非常有帮助。