Linux命令行之ls
掐指一算,本屌丝进入Linux界已然两年了,虽然如今在shell上敲命令敲得风生水起,然而蓦然回首,才发现其实自己对各种命令只是一知半解。
在使用Linux的入门阶段,敲命令只求迅速解决问题,享受成就感,这是我坚持下来的动力,我很享受这种“直接”和系统底层对话并解决问题的过程;然而,人不能一直停留在那个水平,Linux命令行博大精深,我要将这种享受升级,就不可避免的回炉重造——将以前常用的命令重新认识一边,系统的在脑海中整理一遍,唯有如此才能更有效、精准的用这个强大的工具解决各种问题。
今天,我就从最基本的ls命令开始。
ls是list的简称,顾名思义其作用就是列出或显示。ls后面的参数一般目录,ls将列出这些目录下都有哪些文件(包括目录)。该命令的基本格式为:
ls 选项 文件列表
其中选项可以省略;文件列表中的各个文件以空格分开。文件既可以是目录,也可以是普通的文本文件,但是对于普通文本文件只是简单的将其在命令行显示一下,没什么实际意义。如果ls后面什么也没有,默认将当前目录作为参数,即列出当前目录下的文件。
* ls输出结果时,是以列的方式按字典顺序排序的,这个其实可以自己观察一下 *
那么下面进入关键话题:ls的选项。
-a :列出隐藏文件,包括隐藏目录
很多目录中含有隐藏文件,就是以点号“.”开头的那些文件。如果不加-a选项默认是不会输出这些文件的。在图形界面中也是一样,可以打开自己的家目录,你所能看到的绝不会是家目录下的全部,在ubuntu系统中,你可以按下“Ctrl + H”,马上就会出现另外一大堆文件。-F:在目录文件后面加上正斜线“/”
这个参数用来区分目录文件和普通文件。其实默认情况下,ls的输出结果中,目录文件和普通文件会用不同的颜色显示;不过有些终端不支持颜色,导致所有文件使用同一种颜色,这时可以采用-F参数来加以区分。-R:递归地列出参数子目录中的文件。也就是说,子目录、孙目录以及所有的后代目录中的文件都将被列出。
-l:这个参数对普通文本文件也是有用的,它将以行的形式列出出各个文件的各位详细的信息,每个文件一行,每行的信息从左到右依次为:文件类型、文件权限、文件硬链接总数、文件所属的用户及组、文件大小(以字节Byte为单位)、文件上次修改时间、文件名。如下:
m@sys:~/program/C_codes$ ll
总用量 40
drwxrwxr-x 5 m m 4096 5月 12 19:47 ./
drwxr-xr-x 9 m m 4096 5月 6 22:59 ../
drwxrwxr-x 2 m m 4096 5月 12 20:12 algorithms/
-rwxrwxr-x 1 m m 7314 5月 10 18:26 a.out*
drwxrwxr-x 8 m m 4096 5月 12 20:12 .git/
-rw-rw-r-- 1 m m 24 5月 4 00:15 .gitignore
-rw-rw-r-- 1 m m 1399 4月 27 16:16 stone_scissors_cloth.c
-rw-rw-r-- 1 m m 322 5月 12 19:47 test.c
drwxrwxr-x 3 m m 4096 4月 24 11:24 tools/
上面的总用量到底是啥我还没搞清楚,以后补充。
- -c:按文件的最后一次修改时间排序,最近的在最前
- -d:将所有文件按照普通文件处理。有时候我们只想知道某个目录本身的信息,而不想列出其包含哪些文件,如下:
m@sys:~/program/C_codes/algorithms$ ls -ld /etc/
drwxr-xr-x 153 root root 12288 5月 12 20:16 /etc/
-r:反序排列
-S:按照文件的实际大小排序:
m@sys:~/program/C_codes/algorithms$ ls -Sl
总用量 40
-rwxrwxr-x 1 m m 7399 5月 12 20:11 a.out
-rw-rw-r-- 1 m m 1298 5月 6 17:10 heapsort.c
-rw-rw-r-- 1 m m 1139 5月 4 12:25 merge_sort.c
-rw-rw-r-- 1 m m 915 5月 9 13:43 quicksort.c
-rw-rw-r-- 1 m m 909 5月 12 20:12 stack.c
-rw-rw-r-- 1 m m 782 5月 4 14:50 search_array_sum.c
-rw-rw-r-- 1 m m 687 5月 2 21:28 binary_search.c
-rw-rw-r-- 1 m m 566 5月 4 00:10 insert_sort.c
-rw-rw-r-- 1 m m 97 4月 7 16:22 README.md
- -s:显示为每个文件分配的磁盘的块(block)的数量,正好解释了上面-l参数总用量的疑惑:
m@sys:~/program/C_codes/algorithms$ ls -sl
总用量 40
8 -rwxrwxr-x 1 m m 7399 5月 12 20:11 a.out
4 -rw-rw-r-- 1 m m 687 5月 2 21:28 binary_search.c
4 -rw-rw-r-- 1 m m 1298 5月 6 17:10 heapsort.c
4 -rw-rw-r-- 1 m m 566 5月 4 00:10 insert_sort.c
4 -rw-rw-r-- 1 m m 1139 5月 4 12:25 merge_sort.c
4 -rw-rw-r-- 1 m m 915 5月 9 13:43 quicksort.c
4 -rw-rw-r-- 1 m m 97 4月 7 16:22 README.md
4 -rw-rw-r-- 1 m m 782 5月 4 14:50 search_array_sum.c
4 -rw-rw-r-- 1 m m 909 5月 12 20:12 stack.c
- -1:不让所有文件挤在一行,每行只显示一个文件。注意是数字“1”
- -u:按最后访问时间排序;配合-l及-t参见man ls
以上就是我这次复习的结果,挑选了一些自己不太熟或好玩的选项。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。