Linux命令总结之ls
ls命令是Linux命令中使用最频繁的命令之一,我们进入Linuxi系统之后使用的第一个命令就会是ls命令。我们每天频繁地使用它,本文将向你们具体地介绍ls的使用方法。
一.ls命令概述
ls:List即列表的意思。当我们学习的时候要知道某个命令的英文全称,这样更有助于我们记住命令并了解命令的意思。
ls命令用于显示文件目录列表,和Windows
系统下DOS命令dir类似。当执行ls命令时,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示。当不加参数时,默认列出当前目录的列表信息。ls
命令使用频率非常高,参数也非常多,多达四五十个,本文只介绍一部分常用的参数,其他参数可以通过man
命令查看帮助手册。
[root@contos7 tmp]# man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
二.ls命令语法
ls [选项] [目录或文件名]
1.ls 不带任何选项地列出文件,我们是不能看到像文件类型、大小、修改日期和时间、权限以及链接这样具体的信息的。
[root@centos6 ~]# ls
a Desktop i Music R w
A Documents I n s W
acltxt Downloads install.log N S x
anaconda-ks.cfg e install.log.syslog o t X
b E j O T y
B etc2018-07-24 J p Templates Y
bin f k P u z
bin.disk.sh F K Pictures U Z
c g l Public v
C G L q V
d h m Q Videos
D H M r vimrc
2.ls -l(-l是字母不是“1”)就能展示出是文件还是目录,它的大小、修改日期和时间、文件或目录的名字以及文件的属主和它的权限。
[root@centos6 ~]# ls -l
total 128
-rw-r--r--. 1 root root 0 Jul 10 20:29 a
-rw-r--r--. 1 root root 0 Jul 10 20:29 A
-rw-r--r--. 1 root root 0 Jul 11 08:00 acltxt
-rw-------. 1 root root 1493 Jul 10 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Jul 10 20:29 b
-rw-r--r--. 1 root root 0 Jul 10 20:29 B
drwxr-xr-x. 2 root root 4096 Jul 24 09:29 bin
-rw-r--r--. 1 root root 119 Jul 24 09:20 bin.disk.sh
-rw-r--r--. 1 root root 0 Jul 10 20:29 c
-rw-r--r--. 1 root root 0 Jul 10 20:29 C
-rw-r--r--. 1 root root 0 Jul 10 20:29 d
-rw-r--r--. 1 root root 0 Jul 10 20:29 D
drwxr-xr-x. 2 root root 4096 Jul 10 11:53 Desktop
drwxr-xr-x. 2 root root 4096 Jul 10 11:53 Documents
drwxr-xr-x. 2 root root 4096 Jul 10 11:53 Downloads
-rw-r--r--. 1 root root 0 Jul 10 20:29 e
-rw-r--r--. 1 root root 0 Jul 10 20:29 E
drwxr-xr-x. 119 root root 12288 Jul 24 08:36 etc2018-07-24
-rw-r--r--. 1 root root 0 Jul 10 20:29 f
-rw-r--r--. 1 root root 0 Jul 10 20:29 F
3.ls -a 浏览隐藏文件,列出所有文件包括以‘.’开头的隐藏文件。(Linux下隐藏文件是以 . 开头的,如果存在,那么..代表父目录)
[root@centos6 ~]# ls -a
. Documents j R
.. Downloads J s
a e k S
A E K .ssh
.abrt .esd_auth l t
acltxt etc2018-07-24 L T
anaconda-ks.cfg f .local .tcshrc
b F m Templates
B g M u
.bash_history G Music U
.bash_logout .gconf n v
.bash_profile .gnome2 N V
.bashrc .gnote .nautilus Videos
bin .gnupg o .viminfo
bin.disk.sh .gtk-bookmarks O vimrc
c .gvfs p w
C h P W
.cache H Pictures x
.config i Public X
.cshrc I .pulse .Xauthority
d .ICEauthority .pulse-cookie y
D .imsettings.log q Y
.dbus install.log Q z
Desktop install.log.syslog r Z
4.ls -R 选项能递归列出子目录
[root@centos6 ~]# ls -R
.:
a b c Desktop E g i j l Music O Public R T v w y
A B C Documents etc2018-07-24 G I J L n p q s Templates V W Y
acltxt bin d Downloads f h install.log k m N P Q S u Videos x z
anaconda-ks.cfg bin.disk.sh D e F H install.log.syslog K M o Pictures r t U vimrc X Z
./bin:
backup.sh disk.sh
./Desktop:
./Documents:
./Downloads
5. ls -c 和-lt一起使用,显示列表并且以ctime(文件状态最后改变时间)排序。和-l
一起使用:显示ctime并且以文件名排序。其他情况,以ctime排序
[root@centos6 ~]# ls -clt
total 128
-rw-r--r--. 1 root root 8 Jul 24 11:49 vimrc
drwxr-xr-x. 2 root root 4096 Jul 24 09:29 bin
-rw-r--r--. 1 root root 119 Jul 24 09:20 bin.disk.sh
drwxr-xr-x. 119 root root 12288 Jul 24 09:13 etc2018-07-24
-rw-r--r--. 1 root root 0 Jul 11 08:00 acltxt
-rw-r--r--. 1 root root 0 Jul 10 20:29 W
-rw-r--r--. 1 root root 0 Jul 10 20:29 X
-rw-r--r--. 1 root root 0 Jul 10 20:29 Y
-rw-r--r--. 1 root root 0 Jul 10 20:29 Z
-rw-r--r--. 1 root root 0 Jul 10 20:29 P
-rw-r--r--. 1 root root 0 Jul 10 20:29 Q
-rw-r--r--. 1 root root 0 Jul 10 20:29 R
-rw-r--r--. 1 root root 0 Jul 10 20:29 S
-rw-r--r--. 1 root root 0 Jul 10 20:29 T
-rw-r--r--. 1 root root 0 Jul 10 20:29 U
-rw-r--r--. 1 root root 0 Jul 10 20:29 V
-rw-r--r--. 1 root root 0 Jul 10 20:29 J
[root@centos6 ~]# ls -cl
total 128
-rw-r--r--. 1 root root 0 Jul 10 20:29 a
-rw-r--r--. 1 root root 0 Jul 10 20:29 A
-rw-r--r--. 1 root root 0 Jul 11 08:00 acltxt
-rw-------. 1 root root 1493 Jul 10 19:42 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Jul 10 20:29 b
-rw-r--r--. 1 root root 0 Jul 10 20:29 B
drwxr-xr-x. 2 root root 4096 Jul 24 09:29 bin
-rw-r--r--. 1 root root 119 Jul 24 09:20 bin.disk.sh
-rw-r--r--. 1 root root 0 Jul 10 20:29 c
-rw-r--r--. 1 root root 0 Jul 10 20:29 C
-rw-r--r--. 1 root root 0 Jul 10 20:29 d
-rw-r--r--. 1 root root 0 Jul 10 20:29 D
drwxr-xr-x. 2 root root 4096 Jul 10 11:53 Desktop
drwxr-xr-x. 2 root root 4096 Jul 10 11:53 Documents
drwxr-xr-x. 2 root root 4096 Jul 10 11:53 Downloads
-rw-r--r--. 1 root root 0 Jul 10 20:29 e
-rw-r--r--. 1 root root 0 Jul 10 20:29 E
drwxr-xr-x. 119 root root 12288 Jul 24 09:13 etc2018-07-24
-rw-r--r--. 1 root root 0 Jul 10 20:29 f
6.ls -d 仅列出目录本身,而不是列出目录里的内容列表。
[root@localhost /]# ls -d /home #仅列出/home目录本身
/home
[root@localhost /]# ls /home #列出/home目录里的内容
sgl software
# 加上-l参数,比较的更清楚一些:
[root@localhost /]# ls -ld /home
drwxr-xr-x 4 root root 4096 Nov 18 22:05 /home
[root@localhost /]# ls -l /home
total 16
drwx------ 16 sgl sgl 4096 Oct 17 2015 sgl
drwxr-xr-x 3 root root 4096 Nov 14 05:13 software
7.ls -n 和-l类似,只是显示的所属用户和组不是名称而是对应的id
[root@centos6 ~]# ls -ln
total 128
-rw-r--r--. 1 0 0 0 Jul 10 20:29 a
-rw-r--r--. 1 0 0 0 Jul 10 20:29 A
-rw-r--r--. 1 0 0 0 Jul 11 08:00 acltxt
-rw-------. 1 0 0 1493 Jul 10 19:41 anaconda-ks.cfg
-rw-r--r--. 1 0 0 0 Jul 10 20:29 b
-rw-r--r--. 1 0 0 0 Jul 10 20:29 B
drwxr-xr-x. 2 0 0 4096 Jul 24 09:29 bin
-rw-r--r--. 1 0 0 119 Jul 24 09:20 bin.disk.sh
-rw-r--r--. 1 0 0 0 Jul 10 20:29 c
-rw-r--r--. 1 0 0 0 Jul 10 20:29 C
-rw-r--r--. 1 0 0 0 Jul 10 20:29 d
-rw-r--r--. 1 0 0 0 Jul 10 20:29 D
drwxr-xr-x. 2 0 0 4096 Jul 10 11:53 Desktop
drwxr-xr-x. 2 0 0 4096 Jul 10 11:53 Documents
drwxr-xr-x. 2 0 0 4096 Jul 10 11:53 Downloads
-rw-r--r--. 1 0 0 0 Jul 10 20:29 e
-rw-r--r--. 1 0 0 0 Jul 10 20:29 E
drwxr-xr-x. 119 0 0 12288 Jul 24 08:36 etc2018-07-24
-rw-r--r--. 1 0 0 0 Jul 10 20:29 f
-rw-r--r--. 1 0 0 0 Jul 10 20:29 F
-rw-r--r--. 1 0 0 0 Jul 10 20:29 g
-rw-r--r--. 1 0 0 0 Jul 10 20:29 G
-rw-r--r--. 1 0 0 0 Jul 10 20:29 h
-rw-r--r--. 1 0 0 0 Jul 10 20:29 H
8.ls -lh 显示文件大小。以字节为单位看大小可能会不方便,1.5K读起来比1493字节更简单。要这么做,我们可以使用-h与-l结合的参数。-h参数意味着便于人识别。
[root@centos6 ~]# ls -lh
total 128K
-rw-r--r--. 1 root root 0 Jul 10 20:29 a
-rw-r--r--. 1 root root 0 Jul 10 20:29 A
-rw-r--r--. 1 root root 0 Jul 11 08:00 acltxt
-rw-------. 1 root root 1.5K Jul 10 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Jul 10 20:29 b
-rw-r--r--. 1 root root 0 Jul 10 20:29 B
drwxr-xr-x. 2 root root 4.0K Jul 24 09:29 bin
-rw-r--r--. 1 root root 119 Jul 24 09:20 bin.disk.sh
-rw-r--r--. 1 root root 0 Jul 10 20:29 c
-rw-r--r--. 1 root root 0 Jul 10 20:29 C
-rw-r--r--. 1 root root 0 Jul 10 20:29 d
-rw-r--r--. 1 root root 0 Jul 10 20:29 D
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Desktop
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Documents
9.ls -lhS 在我们可以显示文件大小之后,我们希望以文件大小排序。我们可以使用-S参数来这么做。这列表会从大到小排序。
[root@centos6 ~]# ls -lhS
total 128K
-rw-r--r--. 1 root root 50K Jul 10 19:41 install.log
drwxr-xr-x. 119 root root 12K Jul 24 08:36 etc2018-07-24
-rw-r--r--. 1 root root 9.8K Jul 10 19:38 install.log.syslog
drwxr-xr-x. 2 root root 4.0K Jul 24 09:29 bin
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Desktop
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Documents
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Downloads
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Music
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Pictures
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Public
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Templates
drwxr-xr-x. 2 root root 4.0K Jul 10 11:53 Videos
-rw-------. 1 root root 1.5K Jul 10 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 119 Jul 24 09:20 bin.disk.sh
-rw-r--r--. 1 root root 8 Jul 24 11:49 vimrc
-rw-r--r--. 1 root root 0 Jul 10 20:29 a
-rw-r--r--. 1 root root 0 Jul 10 20:29 A
10.如果我们希望只列出目录,可以用-d选项
[root@centos6 ~]# ls -d */
bin/ Documents/ etc2018-07-24/ Pictures/ Templates/
Desktop/ Downloads/ Music/ Public/ Videos/
3.ls的其他使用
1.ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。
2. ls -s 在每个文件的后面打印出文件的大小。 size(大小)。
3.ls -t 按时间进行文件的排序 Time(时间)
4. ls -A 列出除了"."和".."以外的文件。
5.ls可以结合管道符”|“来进行一下复杂的操作。比如: ls | less用于实现文件列表的分页,ls
[root@contos7 ~]# ls |less
1.sh
a
access_log
anaconda-ks.cfg
a.sh
b
bin
b.sh
Desktop
Documents
Downloads
initial-setup-ks.cfg
Music
Pictures
Public
Templates
testdir
Videos
(END)...skipping...
6.计算当前目录下的文件数量
[root@contos7 ~]# ls -l |grep "^-"|wc -l
8
最后说一下Linux下一些文件颜色的含义:
绿色---->代表可执行文件
红色---->代表压缩文件
深蓝色---->代表目录
浅蓝色----->代表链接文件
灰色---->代表其它的一些文件