原版英文书籍《Linux命令行》阅读记录3-解析文件的描述含义和阅读文件

Author Avatar
cuteximi 10月 13, 2018
  • 在其它设备中阅读本文章

背景:
阅读英文原作只为了更好地理解书中的精髓,当然也是为了更好地掌握书中的技巧。我们会坚持阅读全书,并记录书中的精髓。

深入研究长格式输出

上一篇文章讲到 ls 命令加上 -l 就会输出详细的长格式信息。类似于这样的:

-rw-r--r--   1 root  wheel      5 Apr  5 19:22 .CFUserTextEncoding
-r--r--r--   1 root  wheel     10 Oct  3  2017 .forward
drwxr-xr-x   3 root  wheel     96 Mar 16  2018 .oracle_jre_usage
-rw-------   1 root  wheel   3667 Sep 30 10:05 .sh_history
drwx------   3 root  wheel     96 Sep 18 22:02 .ssh
-rw-------   1 root  wheel  15886 Aug 30 19:37 .viminfo
drwx------  15 root  wheel    480 Mar 15  2018 Library

我会依次讲解每个部分的大概。
以第一行的数据为例:
-rw-r--r-- 1 root wheel 5 Apr 5 19:22 .CFUserTextEncoding
第一部分:-rw-r--r--

① - 代表文件类型,-代表普通文件,d代表目录。
②连续三个字符代表文件所有者的权限
③连续字符代表文件所属组的权限
④三个字符是文件其他所有人的权限

第二部分:1,代表文件的硬连接数
第三部分:root ,文件属于 root 用户
第三部分:wheel, 文件属于 wheel 组。
第四部分:5 ,文件大小
第六部分:Apr 5 19:22 ,文件上一次修改时间
第七部分:.CFUserTextEncoding , 文件名字

image.png

确认文件类型

在 linux 系统中,并不要求文件名称来反映文件内容。用 file 命令来确定文件的类型。

file filename

使用less浏览文件

The less command is a program to view text files.

为什么我们要查看文本文件呢? 因为许多包含系统设置的文件(叫做配置文件),是以文本格式存储的,阅读它们 可以更深入的了解系统是如何工作的。另外,许多系统所用到的实际程序(叫做脚本)也是以这种格式存储的。more 程序只能向前翻页,而 less 程序允许前后翻页

less 命令的使用规则:

less filename

运行 less 程序之后,可以使用下面这些命令来浏览文件。

命令行为
Page UP or b向上翻滚一页
Page Down or space向下翻滚一页
UP Arrow向上翻滚一行
Down Arrow向下翻滚一行
G移动到最后一行
1G or g移动到开头一行
/charaters向前查找指定的字符串
n向前查找下一个出现的字符串,这个字符串是之前所指定查找的
h显示帮助屏幕
q退出 less 程序
目录说明
/根目录,万物起源。
/bin包含系统启动和运行所必须的二进制程序。
/boot包含 Linux 内核、初始 RAM 磁盘映像(用于启动时所需的驱动)和 启动加载程序。有趣的文件:/boot/grub/grub.conf or menu.lst, 被用来配置启动加载程序。/boot/vmlinuz,Linux 内核。
/dev这是一个包含设备结点的特殊目录。“一切都是文件”,也适用于设备。 在这个目录里,内核维护着所有设备的列表。
/etc这个目录包含所有系统层面的配置文件。它也包含一系列的 shell 脚本, 在系统启动时,这些脚本会开启每个系统服务。这个目录中的任何文件应该是可读的文本文件。有趣的文件:虽然/etc 目录中的任何文件都有趣,但这里只列出了一些我一直喜欢的文件:/etc/crontab, 定义自动运行的任务。/etc/fstab,包含存储设备的列表,以及与他们相关的挂载点。/etc/passwd,包含用户帐号列表。
/home在通常的配置环境下,系统会在/home 下,给每个用户分配一个目录。普通用户只能 在自己的目录下写文件。这个限制保护系统免受错误的用户活动破坏。
/lib包含核心系统程序所使用的共享库文件。这些文件与 Windows 中的动态链接库相似。
/lost+found每个使用 Linux 文件系统的格式化分区或设备,例如 ext3文件系统, 都会有这个目录。当部分恢复一个损坏的文件系统时,会用到这个目录。这个目录应该是空的,除非文件系统 真正的损坏了。
/media在现在的 Linux 系统中,/media 目录会包含可移动介质的挂载点, 例如 USB 驱动器,CD-ROMs 等等。这些介质连接到计算机之后,会自动地挂载到这个目录结点下。
/mnt在早些的 Linux 系统中,/mnt 目录包含可移动介质的挂载点。
/opt这个/opt 目录被用来安装“可选的”软件。这个主要用来存储可能 安装在系统中的商业软件产品。
/proc这个/proc 目录很特殊。从存储在硬盘上的文件的意义上说,它不是真正的文件系统。 相反,它是一个由 Linux 内核维护的虚拟文件系统。它所包含的文件是内核的窥视孔。这些文件是可读的, 它们会告诉你内核是怎样监管计算机的。
/rootroot 帐户的家目录。
/sbin这个目录包含“系统”二进制文件。它们是完成重大系统任务的程序,通常为超级用户保留。
/tmp这个/tmp 目录,是用来存储由各种程序创建的临时文件的地方。一些配置导致系统每次 重新启动时,都会清空这个目录。
/usr在 Linux 系统中,/usr 目录可能是最大的一个。它包含普通用户所需要的所有程序和文件。
/usr/bin/usr/bin 目录包含系统安装的可执行程序。通常,这个目录会包含许多程序。
/usr/lib包含由/usr/bin 目录中的程序所用的共享库。
/usr/local这个/usr/local 目录,是非系统发行版自带程序的安装目录。 通常,由源码编译的程序会安装在/usr/local/bin 目录下。新安装的 Linux 系统中会存在这个目录, 并且在管理员安装程序之前,这个目录是空的。
/usr/sbin包含许多系统管理程序。
/usr/share/usr/share 目录包含许多由/usr/bin 目录中的程序使用的共享数据。 其中包括像默认的配置文件、图标、桌面背景、音频文件等等。
/usr/share/doc大多数安装在系统中的软件包会包含一些文档。在/usr/share/doc 目录下, 我们可以找到按照软件包分类的文档。
/var除了/tmp 和/home 目录之外,相对来说,目前我们看到的目录是静态的,这是说, 它们的内容不会改变。/var 目录存放的是动态文件。各种数据库,假脱机文件, 用户邮件等等,都位于在这里。
/var/log这个/var/log 目录包含日志文件、各种系统活动的记录。这些文件非常重要,并且 应该时时监测它们。其中最重要的一个文件是/var/log/messages。注意,为了系统安全,在一些系统中, 你必须是超级用户才能查看这些日志文件。

符号链接

有时候,你会看到输出这样的信息:

lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so

第一个l是什么?为什么有两个文件名呢?其实这是一个特殊的文件,叫做符号链接。 在大多数“类 Unix” 系统中, 有可能一个文件被多个文件名所指向。虽然这种特性的意义并不明显,但它真的很有用。

关于软连接和硬链接的区别以及意义,//todo

This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:http://blog.cuteximi.com/原版英文书籍《Linux命令行》阅读记录3-解析文件的描述含义和阅读文件/