linux基本命令之ls

ls == list,根据不同的选项,列举指定目录或文件的相关信息,是Unix/Linux下最常用的命令之一,cd到某一目录下后执行的第一个命令。

ls命令格式:ls [OPTION]... [FILE]...

列举文件信息(默认为当前目录)。

ls

无参数:显示当前目录下的文件和目录(隐藏文件除外)。
Folder: 显示Folder目录中的文件和子目录。
File:显示File文件信息(默认为文件名)。
复制代码
1 [loong@localhost ~]$ ls
2 Desktop  regex  src.tar  time_test.c  vimcdoc-1.7.0  VMwareTools
3 [loong@localhost ~]$ ls /usr
4 bin  games    kerberos  libexec  sbin   src  X11R6
5 etc  include  lib       local    share  tmp
6 [loong@localhost ~]$ ls time_test.c 
7 time_test.c
复制代码

 ls -a

-a选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件)和.目录和..目录。

1 [loong@localhost ~]$ ls -a /usr
2 .   bin  games    kerberos  libexec  sbin   src  X11R6
3 ..  etc  include  lib       local    share  tmp

ls -A

-A选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件),但不包括.目录和..目录。

1 [loong@localhost ~]$ ls -A /usr
2 bin  games    kerberos  libexec  sbin   src  X11R6
3 etc  include  lib       local    share  tmp

ls -l

-l选项的ls命令将列举当前目录或指定目录中文件或者子目录的详析信息。

复制代码
1 [loong@localhost ~]$ ls -l
2 total 48
3 drwxr-xr-x 3 loong loong 4096 Mar 27 21:12 Desktop
4 drwxrwxr-x 2 loong loong 4096 Jan 13 16:01 regex
5 drwxrwxr-x 6 loong loong 4096 Feb 15 10:57 src.tar
6 -rw-rw-r-- 1 loong loong  153 Mar 27 19:47 time_test.c
7 drwxrwxrwx 3 loong loong 4096 Mar 27 19:29 vimcdoc-1.7.0
8 drwxrwxr-x 3 loong loong 4096 Jan 10 00:18 VMwareTools
复制代码

 

ls -l列举的信息包含7个以Tab的域:

  • 第一个域:第一个字符指明了文件类型
    • -: 普通文件;
    • d: 目录文件;
    • l: 符号链接;
    • s: socket文件;
    • b: 块设备;
    • c: 字符设备;
    • p: 管道文件。

    后面的9个字符指明了文件的访问权限:每三位指明一类用户的权限,分别是文件属主、同组用户、其它用户,权限分为读(r)、写(w)、执行(x)。

  • 第二个域:链接数。普通文件至少为1,目录至少为2(.和..);
  • 第三域:文件属主;
  • 第四域:用户组;
  • 第五域:文件大小,其中目录大小通常为块大小的整数倍;
  • 第六域:文件的最近修改日期和时间,修改文件意味着对其内文件或子目录的增添和修改;
  • 第七域:文件名

ls -t

按文件的修改时间列举文件,最近修改的在前。

1 [loong@localhost ~]$ ls
2 Desktop  regex  src.tar  time_test.c  vimcdoc-1.7.0  VMwareTools
3 [loong@localhost ~]$ ls -t
4 Desktop  time_test.c  vimcdoc-1.7.0  src.tar  regex  VMwareTools

ls -r

以相反顺序列举文件。

1 [loong@localhost ~]$ ls
2 Desktop  regex  src.tar  time_test.c  vimcdoc-1.7.0  VMwareTools
3 [loong@localhost ~]$ ls -r
4 VMwareTools  vimcdoc-1.7.0  time_test.c  src.tar  regex  Desktop

ls -1

单独行列举文件。

复制代码
1 [loong@localhost ~]$ ls
2 Desktop  regex  src.tar  time_test.c  vimcdoc-1.7.0  VMwareTools
3 [loong@localhost ~]$ ls -1
4 Desktop
5 regex
6 src.tar
7 time_test.c
8 vimcdoc-1.7.0
9 VMwareTools
复制代码

ls -F

可视化显示文件类型。

1 [loong@localhost ~]$ ls
2 Desktop  regex  src.tar  time_test.c  vimcdoc-1.7.0  VMwareTools
3 [loong@localhost ~]$ ls -F
4 Desktop/  regex/  src.tar/  time_test.c  vimcdoc-1.7.0/  VMwareTools/
  • / : 目录
  • nothing : 普通文件.
  • @ :符号链接文件
  • * :可执行文件

ls -latr

组合选项,即是说,各个选项可以结合使用,除了互相排斥的选项,例如-a和-A。
复制代码
1 [loong@localhost Desktop]$ ls
2 VMwareTools-8.1.4-227600.tar.gz  vmware-tools-distrib
3 [loong@localhost Desktop]$ ls -latr
4 total 94984
5 drwxr-xr-x  7 loong loong     4096 Jan 23  2010 vmware-tools-distrib
6 -r--r--r--  1 loong loong 97129687 Jan 23  2010 VMwareTools-8.1.4-227600.tar.gz
7 drwxr-xr-x  3 loong loong     4096 Mar 27 21:12 .
8 drwx------ 28 loong loong     4096 Mar 27 21:34 ..
复制代码

使用alias

使用alias会更加方便,我系统当前帐号中定义的alias有:

复制代码
 1 [loong@localhost Desktop]$ alias
 2 alias l.='ls -d .* --color=tty'
 3 alias ll='ls -l --color=tty'
 4 alias ls='ls --color=tty'
 5 alias vi='vim'
 6 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 7 [loong@localhost Desktop]$ l.
 8 .  ..
 9 [loong@localhost Desktop]$ ll
10 total 94968
11 -r--r--r-- 1 loong loong 97129687 Jan 23  2010 VMwareTools-8.1.4-227600.tar.gz
12 drwxr-xr-x 7 loong loong     4096 Jan 23  2010 vmware-tools-distrib
复制代码

ps:前3个alias定义在/etc/profile.d/目录下的colorls.csh和colorls.sh中,具体是哪个就不清楚了。

系统信息:

1 [loong@localhost /]$ cat /etc/redhat-release 
2 CentOS release 5.7 (Final)
3 [loong@localhost /]$ uname -a
4 Linux localhost.localdomain 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:52 EST 2012 i686 i686 i386 GNU/Linux

以上参考:http://www.dutor.net/index.php/2010/06/cmd-ls/

 

模糊列举: 其中,*代表任意个字符(包括0个),?代表一个字符。

ls /etc/a*e

列出/etc/目录下以字母a开头且以字母e结尾的目录和文件。

1 [loong@localhost /]$ ls /etc/a*e
2 /etc/adjtime  /etc/asound.state

ls /bin/l?

列出/bin/目录下以字母b开头的目录和文件,且目录名或文件名的长度为2.

1 [loong@localhost /]$ ls /bin/l?
2 /bin/ln  /bin/ls


ls |more

当要显示的文件数太多(如/usr/bin/下的文件),这是一页屏不能显示,如果直接运行“ls /usr/bin”,则不能看见最前面的文件。这时用到通道“|more”,来显示多页屏输出(按空格显示下一页,回车显示下一行)。

复制代码
 1 [loong@localhost /]$ ls /usr/bin |more
 2 [
 3 411toppm
 4 a2p
 5 a2ps
 6 ab
 7 ac
 8 aconnect
 9 acpi_listen
10 activation-client
11 addftinfo
12 addr2line
13 addresses
14 afs5log
15 alacarte
16 alsamixer
17 amidi
18 amixer
19 amtu
20 amuFormat.sh
21 animate
22 anytopnm
23 aplay
24 aplaymidi
25 --More--
【注】此用法类似与windows下的cmd命令“dir /p”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值