SpongeBob

人生三种境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

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下一些文件颜色的含义:

        绿色---->代表可执行文件

        红色---->代表压缩文件

        深蓝色---->代表目录

        浅蓝色----->代表链接文件

        灰色---->代表其它的一些文件

 

 

 

posted on 2018-07-24 19:45  青山揽流萤  阅读(362)  评论(0编辑  收藏  举报

导航