探究操作系统
摘要:已经知道了如何在文件系统跳转了,接下来学习一些对研究Linux系统有帮助的命令。
探究操作系统
本章讲解以下命令:
- ls —列出目录内容(list show)
- file —确定文件类型
- less —浏览文件内容
ls乐趣
通过ls
命令,可以知道目录的内容,以及各种各样重要文件和目录的属性。
列出当前工作目录的内容:
xuxg@xuxg-ubuntu:~$ ls
baidunetdisk Desktop Downloads MyHexoBlog Public Templates
baidunetdiskdownload Documents Music Pictures snap Videos
列出指定目录的内容:
xuxg@xuxg-ubuntu:~$ ls /usr
bin games include lib libexec local sbin share src
列出多个指定目录的内容:
xuxg@xuxg-ubuntu:~$ ls ~ /usr
/home/xuxg:
baidunetdisk Desktop Downloads MyHexoBlog Public Templates
baidunetdiskdownload Documents Music Pictures snap Videos
/usr:
bin games include lib libexec local sbin share src
改变输出格式,获得更多细节:
xuxg@xuxg-ubuntu:~$ ls -l
total 48
drwxrwxr-x 6 xuxg xuxg 4096 Feb 17 19:56 baidunetdisk
drwxrwxr-x 3 xuxg xuxg 4096 Feb 23 10:43 baidunetdiskdownload
drwxr-xr-x 2 xuxg xuxg 4096 Mar 10 15:27 Desktop
drwxr-xr-x 4 xuxg xuxg 4096 Mar 10 09:50 Documents
drwxr-xr-x 4 xuxg xuxg 4096 Mar 10 15:22 Downloads
drwxr-xr-x 2 xuxg xuxg 4096 Feb 6 18:49 Music
drwxr-xr-x 8 xuxg xuxg 4096 Mar 10 16:10 MyHexoBlog
drwxr-xr-x 2 xuxg xuxg 4096 Mar 7 13:01 Pictures
drwxr-xr-x 2 xuxg xuxg 4096 Feb 6 18:49 Public
drwxr-xr-x 5 xuxg xuxg 4096 Feb 19 18:45 snap
drwxr-xr-x 2 xuxg xuxg 4096 Mar 10 15:27 Templates
drwxr-xr-x 2 xuxg xuxg 4096 Mar 7 13:13 Videos
使用
ls
命令的-l
选项,则结果以长模式输出。
选项和参数
大多数命令的格式如下:
command -options arguments
其中command
为命令名,-options
为用来更正命令行为的一个或多个选项,arguments
是一个或多个参数。
- 大多数命令使用的选项是短选项,即一个中划线加上一个字符组成,例如
-l
,但是也有许多命令支持长选项,即两个中划线加上一个字组成,如--reverse
。 - 许多命令允许把多个短选项串在一起使用。
例子:
ls -lt --reverse
两个短选项串在了一起,
-l
选项产生长格式输出,-t
选项按文件修改时间先后来排序。长选项--reverse
则将结果以相反顺序输出。
ls
命令有大量的选项。下表列出最常使用的选项。
短选项 | 长选项 | 描述 |
---|---|---|
-a | –all | 列出所有文件,包括文件名以. 开头的隐藏文件。 |
-d | –directory | 列出目录本身。与-l 配合使用,可以看到指定目录的详细信息,而不是目录中的内容。 |
-F | –classify | 在列出的每个名字后加一个指示符。例如,如果是目录名,则会加一个/ 字符。 |
-h | –human-readable | 当以长格式输出时,以人类可读的格式,而不是以字节数显示文件的大小。 |
-l | 以长格式显示结果。 | |
-r | –reverse | 以相反顺序显示结果。通常,ls命令的输出结果按字母升序排列。 |
-S | 输出结果按文件大小来排序。 | |
-t | 输出结果按修改时间来排序。 |
深入探究长格式输出
-l
选项使得ls
的输出结果以长格式输出,这种格式包含了大量信息。
xuxg@xuxg-ubuntu:~$ ls -l
total 48
drwxrwxr-x 6 xuxg xuxg 4096 Feb 17 19:56 baidunetdisk
drwxrwxr-x 3 xuxg xuxg 4096 Feb 23 10:43 baidunetdiskdownload
drwxr-xr-x 2 xuxg xuxg 4096 Mar 10 15:27 Desktop
drwxr-xr-x 4 xuxg xuxg 4096 Mar 10 09:50 Documents
drwxr-xr-x 4 xuxg xuxg 4096 Mar 10 15:22 Downloads
drwxr-xr-x 2 xuxg xuxg 4096 Feb 6 18:49 Music
drwxr-xr-x 8 xuxg xuxg 4096 Mar 10 16:10 MyHexoBlog
drwxr-xr-x 2 xuxg xuxg 4096 Mar 7 13:01 Pictures
drwxr-xr-x 2 xuxg xuxg 4096 Feb 6 18:49 Public
drwxr-xr-x 5 xuxg xuxg 4096 Feb 19 18:45 snap
drwxr-xr-x 2 xuxg xuxg 4096 Mar 10 15:27 Templates
drwxr-xr-x 2 xuxg xuxg 4096 Mar 7 13:13 Videos
选第一行的文件,来看一些各个输出字段的含义:
字段 | 含义 |
---|---|
drwxrwxr-x | 对于文件的访问权限。第一个字符指明文件类型。在不同类型之间,开头为- 说明是一个普通文件,d 表明是一个目录。其后三个字符是文件所有者的访问权限,再其后的三个字符是文件所属组中成员的访问权限,最后三个字符是其他所有人的访问权限。 |
6 | 文件的硬链接数目。 |
xuxg | 文件所有者的用户名。 |
xuxg | 文件所属用户组的名字。 |
4096 | 以字节数表示的文件大小。 |
Feb 17 19:56 | 上次修改文件的时间和日期。 |
baidunetdisk | 文件名。 |
为什么第五列都是4096呢?
因为这样列出来的大小不包含目录内的文件。也就是说4096是说这个文件夹本身的大小是4096个字节。至于其包含的文件有多大,这样是列不出来的。
记住Linux一切皆文件的思想,目录本身也是一个文件啊。
确定文件类型
Linux系统不要求文件名来反映文件的内容,所以我们使用file
命令来确定文件类型。
xuxg@xuxg-ubuntu:~/Downloads$ ls
0307_1.jpg GCC_4_7_0.zip iris.data wps-office_11.1.0.9126_amd64.deb
_config.yml geekpanda64.ico _posts
fenx.png geekpanda.ico timg.jpeg
GCC_4_7_0 gzhqrcode.jpg wechatpay.jpg
xuxg@xuxg-ubuntu:~/Downloads$ file iris.data
iris.data: ASCII text
用less浏览文件内容
less
命令用来浏览文本文件。
什么是“文本”
在计算机中,有许多方法可以表达信息。所有的方法都涉及到,在信息与一些数字之间确立一种关系,而这些数字可以用来代表信息。毕竟,计算机只能理解数字,这样所有的数据都被转换成数值来表示。有些数值表达法非常复杂(例如压缩的视频文件),而其它的就相当简单。最早也是最简单的一种表达法,叫做 ASCII 文本。文本只是包含简单的字符到数字的映射
为什么我们要查看文本文件呢?
许多包含系统设置的文件(叫做配置文件),是以文本格式存储的,阅读它们可以更深入的了解系统是如何工作的。
许多系统所用到的实际程序(叫做脚本)也是以这种格式存储的。
一旦运行起来,less
程序允许你前后滚动文件。例如,要查看一个定义了系统中全部用户身份的文件,输入以下命令:
less /etc/passwd
下表列出了less
程序最常使用的键盘命令。
命令 | 行为 |
---|---|
Page UP 或 b | 向上翻滚一页 |
Page Down 或 space | 向下翻滚一页 |
上箭头 | 向上翻滚一行 |
下箭头 | 向下翻滚一行 |
G | 移动到最后一行 |
g | 移动到开头一行 |
/characters | 向前查找指定的字符串characters |
n | 向前查找下一个出现的字符串,这个字符串是之前所指定查找的 |
h | 显示帮助屏幕 |
q | 退出 less 程序 |
less is more (色即是空)
其实,早期Unix系统有个命令叫more
,但是这个more
并不好用,比如它只能向前翻页。所以有了less
,less
是more
的改进版。
less
这个名字对习语“less is more”开了个玩笑。
Linux中部分目录的作用
目录 | 评论 |
---|---|
/ | 根目录,万物起源。 |
/bin | 包含系统启动和运行所必须的二进制程序。 |
/boot | 包含 Linux 内核、初始 RAM 磁盘映像(用于启动时所需的驱动)和启动加载程序。 |
/dev | 这是一个包含设备结点的特殊目录。“一切都是文件”,也适用于设备。在这个目录里,内核维护着所有设备的列表。 |
/etc | 这个目录包含所有系统层面的配置文件。 |
/home | 在通常的配置环境下,系统会在/home 下,给每个用户分配一个目录。 |
/lib | 包 含 核 心 系 统 程 序 所 使 用 的 共 享 库 文 件。 这 些 文 件 与Windows 中的动态链接库相似。 |
/lost+found | 当部分恢复一个损坏的文件系统时,会用到这个目录。这个目录应该是空的,除非文件系统真正的损坏了。 |
/media | /media 目录会包含可移动介质的挂载点,U盘等介质连接到计算机之后,会自动地挂载到这个目录结点下。 |
/opt | 这个/opt 目录被用来安装“可选的”软件。 |
/proc | 这个/proc 目录很特殊。从存储在硬盘上的文件的意义上说,它不是真正的文件系统。相反,它是一个由 Linux 内核维护的虚拟文件系统。它所包含的文件是内核的窥视孔。这些文件是可读的,它们会告诉你内核是怎样监管计算机的。 |
/root | root 帐户的家目录。 |
/sbin | 这个目录包含“系统”二进制文件。它们是完成重大系统任务的程序,通常为超级用户保留。 |
/tmp | 这个/tmp 目录,是用来存储由各种程序创建的临时文件的地方。一些配置导致系统每次重新启动时,都会清空这个目录。 |
/usr/bin | /usr/bin 目录包含系统安装的可执行程序。通常,这个目录会包含许多程序。 |
/usr/share | /usr/share 目录包含许多由/usr/bin 目录中的程序使用的共享数据。其中包括像默认的配置文件、图标、桌面背景、音频文件等等。 |
符号链接
在我们到处查看时,我们可能会看到一个目录,列出像这样的一条信息:
lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so
为何这条信息第一个字符是l
,并且有两个文件名呢?
这是一个特殊文件,叫做符号链接(也称为软链接或者 symlink )。在大多数“类 Unix”系统中,有可能一个文件被多个文件名所指向。
硬链接
还有一种链接类型,叫做硬链接。硬链接同样允许文件有多个名字,但是硬链接以不同的方法来创建多个文件名。