Linux系统之ls命令的基本使用
- 一、ls命令介绍
- 二、ls命令的使用帮助
- 2.1 命令格式
- 2.2 命令选项
- 2.3 使用帮助
- 三、ls命令的基本使用
- 3.1 列出当前目录中的所有文件和目录
- 3.2 列出指定目录中的所有文件和目录
- 3.3 显示文件的详细信息
- 3.4 列出所有文件和目录
- 3.5 显示目录本身,
- 3.6 按照文件名的字母倒序显示
- 3.7 按照文件大小进行排序
- 3.8 按照文件的修改时间进行排序
- 3.9 查询文件或目录的inode号
- 3.10 显示文件大小
- 四、总结
一、ls命令介绍
ls命令
是Linux操作系统中的一个常用命令,在Linux中是使用率较高,用于显示目录中的文件和子目录。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
二、ls命令的使用帮助
2.1 命令格式
ls [选项] [目录或文件名]
2.2 命令选项
- 下面是ls命令的常用选项
- `-a`:列出所有文件和目录,包括以.开头的隐藏文件和目录;
- `-l`:以长列表的方式列出文件和目录的详细信息,包括文件权限、文件大小、创建时间等;
- `-h`:配合-l选项使用,以人类可读的格式显示文件大小,如1.2K、3.4M等;
- `-r`:倒序显示文件和目录;
- `-t`:按照文件或目录的修改时间排序;
- `-S`:按照文件或目录的大小排序;
- `-i`:显示文件或目录的inode号;
- `-d`:显示目录本身的信息,而不是目录下的文件和目录。
2.3 使用帮助
- help帮助
ls --help
- man帮助手册
man help
三、ls命令的基本使用
3.1 列出当前目录中的所有文件和目录
- 列出当前目录下的所有文件和目录
[root@server-01 log]# ls
anaconda cloudinit-deploy.log dmesg maillog messages-20230813 sa spooler-20230806 yum.log
audit cloud-init.log dmesg.old maillog-20230806 messages-20230820 secure spooler-20230813 yum.log-20230101
boot.log cron ecs_network_optimization.log maillog-20230813 messages-20230827 secure-20230806 spooler-20230820
boot.log-20221121 cron-20230806 grubby maillog-20230820 mongodb secure-20230813 spooler-20230827
btmp cron-20230813 grubby_prune_debug maillog-20230827 mysqld.log secure-20230820 tallylog
btmp-20230801 cron-20230820 journal messages ntpstats secure-20230827 tuned
chrony cron-20230827 lastlog messages-20230806 rhsm spooler wtmp
3.2 列出指定目录中的所有文件和目录
- 列出指定目录下的所有文件和目录,ls后面跟目录的相对路径或者绝对路径。
[root@server-01 log]# ls /var/log/
anaconda cloudinit-deploy.log dmesg maillog messages-20230813 sa spooler-20230806 yum.log
audit cloud-init.log dmesg.old maillog-20230806 messages-20230820 secure spooler-20230813 yum.log-20230101
boot.log cron ecs_network_optimization.log maillog-20230813 messages-20230827 secure-20230806 spooler-20230820
boot.log-20221121 cron-20230806 grubby maillog-20230820 mongodb secure-20230813 spooler-20230827
btmp cron-20230813 grubby_prune_debug maillog-20230827 mysqld.log secure-20230820 tallylog
btmp-20230801 cron-20230820 journal messages ntpstats secure-20230827 tuned
chrony cron-20230827 lastlog messages-20230806 rhsm spooler wtmp
[root@server-01 log]#
3.3 显示文件的详细信息
- 以长列表的方式列出文件和目录的详细信息,包括文件权限、文件大小、创建时间等:
[root@server-01 log]# ls -l boot.log
-rw------- 1 root root 0 Nov 21 2022 boot.log
3.4 列出所有文件和目录
- 列出所有文件和目录,包括以.开头的隐藏文件和目录:
[root@server-01 ~]# ls -a
- addon-local-path-provisioner.yaml .bash_profile .cshrc imgurl .mongorc.js p .pydistutils.cfg .tcshrc web
. .bash_history .bashrc .dbshell install.py .mysql_history .pip .ssh .viminfo 贪吃蛇.sh
.. .bash_logout .cache .docker .links NodeBB .pki ta1.sh .vimrc
3.5 显示目录本身,
- 列出当前目录本身的信息,而不显示其下的文件和目录:
[root@server-01 ~]# ls -d /root
/root
- 显示目录本身的详细信息
[root@server-01 ~]# ls -ld /root
dr-xr-x---. 13 root root 4096 Aug 31 18:53 /root
3.6 按照文件名的字母倒序显示
- 按照文件名的字母倒序显示文件或目录
[root@server-01 test]# ls -r ./
z.txt x.txt v.txt t.txt s.txt q.txt o.txt m.txt k.txt i.txt g.txt file05 file03 file01 d.txt b.txt
y.txt w.txt u.txt test.txt r.txt p.txt n.txt l.txt j.txt h.txt f.txt file04 file02 e.txt c.txt a.txt
3.7 按照文件大小进行排序
- 使用-S选项可以按照文件大小进行排序:
[root@server-01 test]# ls -Slh /var/log/
total 4.3M
-rw------- 1 root utmp 2.6M Jul 10 07:48 btmp-20230801
-rw-r--r--. 1 root root 286K Aug 31 18:21 lastlog
-rw-r--r-- 1 root root 183K Nov 21 2022 cloud-init.log
-rw------- 1 root root 122K Aug 20 03:10 cron-20230820
-rw------- 1 root root 122K Aug 27 03:32 cron-20230827
-rw------- 1 root root 122K Aug 13 03:25 cron-20230813
-rw------- 1 root root 122K Aug 6 03:12 cron-20230806
-rw------- 1 root root 87K Aug 27 03:32 messages-20230827
-rw------- 1 root root 85K Aug 20 03:10 messages-20230820
-rw------- 1 root root 84K Aug 13 03:25 messages-20230813
-rw-rw-r--. 1 root utmp 84K Aug 31 18:21 wtmp
-rw------- 1 root root 84K Aug 6 03:12 messages-20230806
-rw------- 1 root root 81K Aug 31 19:01 cron
-rw------- 1 root utmp 65K Aug 31 17:47 btmp
-rw------- 1 root root 58K Aug 31 19:01 messages
-rw------- 1 root root 53K Aug 31 18:22 secure
-rw-r--r-- 1 root root 33K Nov 20 2022 dmesg.old
-rw-r--r-- 1 root root 33K Nov 21 2022 dmesg
-rw------- 1 root root 31K Nov 21 2022 boot.log-20221121
-rw------- 1 root root 27K Aug 26 13:19 secure-20230827
-rw-r----- 1 mysql mysql 14K Nov 25 2022 mysqld.log
drwxr-xr-x. 2 root root 4.0K Jul 11 2019 anaconda
3.8 按照文件的修改时间进行排序
- 按照文件的修改时间进行排序
[root@server-01 test]# ls -t ./
b a.txt c.txt e.txt g.txt i.txt k.txt m.txt o.txt q.txt s.txt u.txt w.txt y.txt test.txt file02 file04
a b.txt d.txt f.txt h.txt j.txt l.txt n.txt p.txt r.txt t.txt v.txt x.txt z.txt file01 file03 file05
3.9 查询文件或目录的inode号
- 查询文件inode号
[root@server-01 test]# ls -i a.txt
2509796 a.txt
- 查询目录的inode号
[root@server-01 test]# ls -i /var/
131423 adm 131487 crash 131426 empty 131428 gopher 131087 lib 131420 lock 131433 mail 131435 opt 131419 run 131074 tmp
131424 cache 131425 db 131427 games 131443 kerberos 131432 local 131422 log 131434 nis 131436 preserve 131437 spool 131440 yp
- 查询空目录的inode号
[root@server-01 test]# stat aFile: ‘a’Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd01h/64769d Inode: 560335 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2023-08-31 19:07:38.707582291 +0800
Modify: 2023-08-31 19:02:36.406455154 +0800
Change: 2023-08-31 19:02:36.406455154 +0800Birth: -
注意:当你创建一个空文件时,操作系统会自动为该文件分配一个唯一的inode号,用于标识该文件。然而,ls -i命令显示的是文件的inode号和文件名,如果一个文件是空文件,那么文件名是空的,ls -i命令将不会显示该文件的inode号。
3.10 显示文件大小
- 列出当前目录下所有文件和目录的详细信息,并以人类可读的方式显示文件大小
[root@server-01 test]# ls -lh /var/log
total 4.3M
drwxr-xr-x. 2 root root 4.0K Jul 11 2019 anaconda
drwx------. 2 root root 4.0K Aug 17 13:01 audit
-rw------- 1 root root 0 Nov 21 2022 boot.log
-rw------- 1 root root 31K Nov 21 2022 boot.log-20221121
-rw------- 1 root utmp 65K Aug 31 17:47 btmp
-rw------- 1 root utmp 2.6M Jul 10 07:48 btmp-20230801
drwxr-xr-x. 2 chrony chrony 4.0K Apr 13 2018 chrony
-rw-r--r-- 1 root root 0 Jul 11 2019 cloudinit-deploy.log
-rw-r--r-- 1 root root 183K Nov 21 2022 cloud-init.log
-rw------- 1 root root 81K Aug 31 19:10 cron
-rw------- 1 root root 122K Aug 6 03:12 cron-20230806
-rw------- 1 root root 122K Aug 13 03:25 cron-20230813
-rw------- 1 root root 122K Aug 20 03:10 cron-20230820
-rw------- 1 root root 122K Aug 27 03:32 cron-20230827
-rw-r--r-- 1 root root 33K Nov 21 2022 dmesg
-rw-r--r-- 1 root root 33K Nov 20 2022 dmesg.old
-rw-r--r-- 1 root root 343 Nov 21 2022 ecs_network_optimization.log
-rw------- 1 root root 0 Jul 11 2019 grubby
-rw-r--r--. 1 root root 0 Jul 11 2019 grubby_prune_debug
drwxr-sr-x+ 3 root systemd-journal 4.0K Jul 11 2019 journal
-rw-r--r--. 1 root root 286K Aug 31 18:21 lastlog
-rw------- 1 root root 0 Aug 27 03:32 maillog
-rw------- 1 root root 0 Jul 30 03:24 maillog-20230806
-rw------- 1 root root 0 Aug 6 03:12 maillog-20230813
-rw------- 1 root root 0 Aug 13 03:25 maillog-20230820
-rw------- 1 root root 0 Aug 20 03:10 maillog-20230827
-rw------- 1 root root 58K Aug 31 19:10 messages
-rw------- 1 root root 84K Aug 6 03:12 messages-20230806
-rw------- 1 root root 84K Aug 13 03:25 messages-20230813
-rw------- 1 root root 85K Aug 20 03:10 messages-20230820
-rw------- 1 root root 87K Aug 27 03:32 messages-20230827
drwxr-xr-x 2 mongod mongod 4.0K Nov 24 2022 mongodb
-rw-r----- 1 mysql mysql 14K Nov 25 2022 mysqld.log
drwxr-xr-x 2 ntp ntp 4.0K Apr 13 2018 ntpstats
drwxr-xr-x. 2 root root 4.0K Jul 11 2019 rhsm
drwxr-xr-x 2 root root 4.0K Aug 31 00:00 sa
-rw------- 1 root root 53K Aug 31 18:22 secure
-rw------- 1 root root 219 Jul 31 01:28 secure-20230806
-rw------- 1 root root 2.5K Aug 10 04:44 secure-20230813
-rw------- 1 root root 1.3K Aug 19 18:17 secure-20230820
-rw------- 1 root root 27K Aug 26 13:19 secure-20230827
-rw------- 1 root root 0 Aug 27 03:32 spooler
-rw------- 1 root root 0 Jul 30 03:24 spooler-20230806
-rw------- 1 root root 0 Aug 6 03:12 spooler-20230813
-rw------- 1 root root 0 Aug 13 03:25 spooler-20230820
-rw------- 1 root root 0 Aug 20 03:10 spooler-20230827
-rw-------. 1 root root 0 Jul 11 2019 tallylog
drwxr-xr-x. 2 root root 4.0K Jul 11 2019 tuned
-rw-rw-r--. 1 root utmp 84K Aug 31 18:21 wtmp
-rw------- 1 root root 2.3K Jan 26 2023 yum.log
-rw------- 1 root root 3.3K Dec 2 2022 yum.log-20230101
四、总结
ls
是 Linux 中使用频繁的命令,主要用于展示当前或指定目录下的文件及子目录;它可以通过附加选项来增强功能,例如-l
用于提供详细的列表视图,而-a
则用来显示包括隐藏文件在内的所有文件;此外,ls
支持颜色高亮显示,帮助用户直观地区分不同类型的文件;颜色配置可通过环境变量LS_COLORS
自定义,增加文件管理的效率;ls
还能处理多个目录参数,并与其他命令结合使用,增强了其实用性和灵活性。