手记

Linux下最平凡也使用最频繁的命令:ls 命令

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这样最普通的命令也有很多门道,这里也只是涵盖大飞觉得可能比较常用的一部分。基于理解选项含义的情况下多加练习,并思考在什么场景下哪些信息可能比较有用,哪些选项能够适用,对更牢固地掌握命令非常有帮助。

0人推荐
随时随地看视频
慕课网APP