探究操作系统

摘要:已经知道了如何在文件系统跳转了,接下来学习一些对研究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并不好用,比如它只能向前翻页。所以有了lesslessmore的改进版。

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”系统中,有可能一个文件被多个文件名所指向。

硬链接

还有一种链接类型,叫做硬链接。硬链接同样允许文件有多个名字,但是硬链接以不同的方法来创建多个文件名。

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务