#yyds干货盘点#Linux使用最频繁的命令:ls 命令

时间:2022-12-21 11:20:51
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种分类符号:

  • 可执行文件, 添加一个后缀 *
  • 目录, 添加一个后缀 /
  • 软连接, 添加一个后缀 @