ls命令学习记录2

1.用不同的颜色显示内容

ls --color
除了使用-F选项在文件和文件夹名称后面附加特殊的符号,还可以让shell用不同的颜色显示内容,这样就能够用另一种方法把不同的内容进行分类,将它们区分开来。

$ ls --color
adblock_filters.txt   fixm3u      pix2tn.pl
addext                flash.xml   pop_login
address_book.csv      getip       procmail

下表列举了所有常见的颜色关联(但特定的Linux发行版本中这些颜色的含义可能会有所不同)。
表颜色和文件类型

颜  色含  义
默认的shell文本颜色普通文件
绿色可执行文件
蓝色目录
紫红色符号链接文件
黄色管道(FIFO)
紫红色套接字(socket)
红色压缩文件(.tar、.zip、.deb、.rpm)
紫红色图片文件(.jpg、.gif、.png、.tiff)
紫红色音频文件(.mp3、.ogg、.wav)

也可以使用dircolors命令修改这些颜色配置。
结合–color和-F选项,当前目录中有哪些类型的文件一目了然。

$ ls -F --color
adblock_filters.txt       fixm3u*        pix2tn.pl*
addext*                   flash.xml*     pop_login*
address_book.csv          getip*         procmail/

2.显示权限、所有者等详细信息

ls -l
了解文件和文件夹的更多信息,例如它们的大小、所有者,以及谁可以对它们进行什么样的处理?为了获取这些信息,需要使用-l选项(或—format=long)。

$ ls -l ~/bin
total 2951
-rw-r--r-- 1 scott scott   15058  2005-10-03 18:49 ➥adblock_filters.txt
-rwxr-xr-- 1 scott root       33  2005-04-19 09:45 ➥addext
-rwxr--r-- 1 scott scott     245  2005-10-15 22:38 ➥backup
-rwxr-xr-- 1 scott root      190  2005-04-19 09:45 ➥convertsize
drwxr-xr-x 2 scott scott      48  2005-04-19 09:45 ➥credentials

-l选项代表long,可以看到,它提供了目录中文件的大量数据。我们按从右到左的顺序依次介绍你看到的内容。
最右边一列是最简单的内容:所列文件的名称。将-F选项加到-l上,如ls-lF。设置颜色也非常容易,就是用ls -lF --color。
向左一列,接下来看到的是日期和时间。这是文件最后被修改的时间,包括日期(按照年—月—日的格式)和时间(按照24小时制的格式)。
再向左一列是文件的大小(单位是字节)。
再往左的两列分别是文件的所有者和所属的组。从前面的列表可以看到,几乎每个文件都属于用户scott和组scott,只有addext和convertsize文件例外,它们属于用户scott和组root。
再向左,紧接着最后一列,这一列包含了一个数字。如果你正在处理一个文件,这个数字可以告诉你该文件有多少个硬链接(hard link);如果它是目录,这个数字是指该目录中包含有多少项内容。
现在轮到最左边的第一列了:每个文件和目录的真正权限。每个代码有10个字符,分成4组(虽然看起来不是这样的)。第一组由第一个字符组成;第二组由第二个到第四个字符组成;第三组包括第五个到第七个字符组成;第四组,即最后一组由第八个到第十个字符组成。例如,可以将credentials目录的权限划分成d|rwx|r-x|r-x。
第一组告诉你它是什么类型的文件。前面已经看到-F和–color选项用不同的方式来展现这一内容,-l也是如此。d表示credentials是目录,而第一个位置上的–则表示该项是一个文件(即便文件是可执行的,ls–l仍然只用一个-来表示,所以-F和–color选项可以为你提供更多的信息)。当然在第一个位置还可能看到其他选项,详细内容如表2-3所示。
表 权限字符和文件类型

字  符含  义
普通文件
可执行文件
d目录
l符号链接文件
s套接字(socket)
b块设备(block device)
c字符设备(character device)
p命名管道(named pipe)

接下来的9个字符(组成第二组、第三组、以及第四组)分别代表对文件的所有者、文件的组,以及系统中所有其他用户的权限。以在前面显示的addext文件为例,它的权限是rwxr-xr–,这表明所有者scott的权限是rwx,组(在这个例子中还是scott)的权限是r-x,系统中其他用户的权限是r–。
每个例子中,r表示“允许读取”,w表示“允许改写”(改写意味着修改和删除),x表示“允许执行”,–则表示“不允许执行这个操作”。如果原本应该出现r字符的位置,现在出现的是-,则表示“不允许读取”。这一点对于w和x也同样适用。
这时再看看addext和它的权限rwxr-xr–,所有者scott可以读取、改写和执行文件;组(root)的成员可以读取和执行文件,但是不能改写文件;主机上的其他任何人(通常称为“world”)能够读取文件,但是不能改写文件或者把它作为程序运行。

然而,目录文件则有些不同了。对于一个文件来说,r、w、x权限的意义非常明确,即读、写(或修改)或者执行这个文件。
r:对于目录这种情况,r表示用户可以使用ls命令列出目录的内容。
w:则表示用户可以在目录中增加更多的文件,重命名已经存在的文件,或者删除不再需要的文件。
x:相当于为了运行命令而访问目录的权力(需要访问和使用目录中的文件),或者是访问目录中的子目录。

以相反的顺序显示列表内容

ls -r
如果你不喜欢-l选项使用的默认字母顺序,则可以使用-r(或者–reverse)选项,以相反的顺序来排列显示内容。

$ ls -lar ~/
-rw-------  8800 2005-10-18 19:55 .bash_history
drwxr-xr-x   592 2005-10-18 11:22 .Azureus
-rw-r--r--  1026 2005-09-25 00:11 .audacity
drwx------    72 2005-09-16 19:14 .aptitude
drwxr-xr-x   200 2005-07-28 01:31 alias

说明 要记住,这里使用的是-r,而不是-R。-r表示反向,而-R则表示递归。
当使用-l选项时,输出的结果按照文件和文件夹名称的字母顺序来排序。添加-r选项后,将以相反的顺序输出结果,但仍然是基于文件名排序的。也要记住,在使用ls命令时,如果你想将输入的命令和选项的默认输出结果按相反的顺序排列,可以随时增加这个-r选项。

按文件的扩展名排序

ls -X
文件名称并不只是字母排序时唯一可用的排序对象。也可以对文件的扩展名进行字母顺序的排序。换句话说,你可以使用ls命令把所有以.doc结尾的文件分为一组,接着是以.jpg结尾的文件,最后是以.txt结尾的文件。使用-X选项(或–sort=extension);如果你想按相反的顺序排序,只需加上-r选项(或者–reverse)。

$ ls -lX ~/src
drwxr-xr-x     320 2005-10-06 22:35 backups
drwxr-xr-x    1336 2005-09-18 15:01 fonts
-rw-r--r-- 2983001 2005-06-20 02:15 install.tar.gz
-rw-r--r-- 6683923 2005-09-24 22:41 DuckDoom.zip

在结果中,最先显示的是文件夹(毕竟,它们没有文件扩展名),后面接着显示具有扩展名的各个文件。尤其是注意install.tar.gz这个文件有两个扩展名,但ls命令在排序时使用最后一个扩展名(.gz)。

按日期和时间排序

ls -t
按字母排序是不错,但是有时还需要按日期和时间对目录的内容进行排序。要想这样做,可以在-l选项的基础上使用-t选项(或者–sort=time);要按相反顺序排序,可以在-l选项的基础上使用-tr选项(或者–sort=time –reverse)。

$ ls -latr ~/
-rw-------   8800 2005-10-18 19:55 .bash_history
drwx------    368 2005-10-18 23:12 .gnupg
drwxr-xr-x   2760 2005-10-18 23:14 bin
drwx------    168 2005-10-19 00:13 .Skype

除了最后一项以外,其他所有项都是在同一天修改的。如果不使用-r选项,结果将按相反的顺序排列,最后一项会出现在第一个位置。
说明 注意在前面这个命令中一次使用了4个选项:-latr。你原本可以用-l -a -t –r来代替上述选项,但是谁愿意输入所有这么多连字符呢?将所有选项组合成一个大选项更快捷,也更容易。这些选项的加长版本(以两个连字符开始,由一个或者两个单词组成的选项)就不能组合在一起,而必须单独输入,如-la --sort=time --reverse。

按文件大小进行排序

ls -S
除了按照文件名或者扩展名的字母顺序,以及日期和时间对文件排序,还可以使用-S(或–sort=size)选项按照文件大小来排序。

$ ls -laS ~/
-rw-r--r--  109587 2005-10-19 11:53 .xsession-errors
-rw-------   40122 2005-04-20 11:00 .nessusrc
-rwxr--r--   15465 2005-10-12 15:45 .vimrc
-rw-------    8757 2005-10-19 08:43 .bash_history

当按照文件大小排序时,体积最大的文件会排在第一位。要按相反顺序排序,让体积最小的文件排在第一位,只需使用-r选项。

用K、M和G显示文件大小

ls -h
在上一节中,.vimrc文件那一行上的15 465表示这个文件大概有15 KB,但是需要自己动脑将字节转换为相应的千字节、兆字节或者吉字节并不总是很方便。通常,使用-h(或–human-readable)选项会更方便,也更容易理解。

$ ls -laSh ~/
-rw-r--r--  100K 2005-10-19 11:44 .xsession-errors
-rw-------   40K 2005-04-20 11:00 .nessusrc
-rwxr--r--   16K 2005-10-12 15:45 .vimrc
-rw-------  8.6K 2005-10-19 08:43 .bash_history

在这个例子中,K代表千字节(kilobyte)。如果文件足够大,还会看到代表兆字节(megabyte)的M,甚至是代表吉字节(gigabyte)的G。或许你会问,使用-h选项时,为什么.nessusrc文件的40 122字节显示为40 KB。记住,1 KB等于1024字节,用40 122除以1 024时,得到的是39.1816406千字节,ls–h就取整为40 KB。1 MB实际上是1 048 576字节,1 GB则是1 073 741 824字节。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Shell命令时,以下是一些重要的注意事项和学习建议: 1. 基本语法:Shell命令通常由命令名称和参数组成。命令名称是要执行的操作,而参数则提供了命令所需的信息。了解Shell命令的基本语法是学习的第一步。 2. 命令帮助:大多数Shell都提供了内置的命令帮助功能。通过使用命令后跟`--help`或`-h`选项,或者使用`man`命令(例如`man ls`)来获取有关特定命令的详细信息。 3. 常用命令:有一些常见的Shell命令对于日常使用非常有用。这些包括`cd`(更改目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`rm`(删除文件或目录)等。逐步学习和掌握这些命令是很重要的。 4. 管道和重定向:Shell命令非常强大,可以通过管道和重定向符号将多个命令组合在一起。了解如何使用管道(`|`)将一个命令的输出作为另一个命令的输入,并使用重定向符号(`>`、`>>`、`<`)来控制输入和输出。 5. 脚本编写:Shell脚本是一种将多个命令组合在一起以自动化任务的方法。学习如何编写简单的Shell脚本可以提高工作效率。 6. 实践和练习:最重要的是进行实践和练习。尝试使用不同的Shell命令来完成各种任务,并在实际场景中应用所学知识。 记住,Shell命令学习是一个逐步的过程。开始时可能会有些困惑,但随着实践和经验的积累,你会变得越来越熟练。希望这些提示对你有帮助!如有任何具体问题,随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值