ls命令是英文 list 的简写形式。我们用它来列出文件。
它的用法就是在任何目录下直接执行 ls,或者在 ls 后接目录路径(包括相对路径和绝对路径)。当然我们还可以使用一些选项,让我们可以看到更多信息。
命令的选项很多,大飞认为比较实用的的可能有如下几个,个人觉得结合英文解释最容易记住:
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 -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这样最普通的命令也有很多门道,这里也只是涵盖大飞觉得可能比较常用的一部分。基于理解选项含义的情况下多加练习,并思考在什么场景下哪些信息可能比较有用,哪些选项能够适用,对更牢固地掌握命令非常有帮助。