Linux 命令行的世界 :3.探索操作系统
既然我们已经知道了如何在文件系统中跳转,是时候开始 Linux 操作系统之旅了。然而在开始之前,我们先学习一些对研究Linux 系统有帮助的命令。
ls —列出目录内容
file —确定文件类型
less —浏览文件内容
ls 可能是用户最常使用的命令了,这自有它的道理。通过它,我们可以知道目录的内容,以及各种各样重要文件和目录的属性。只要简单地输入 ls 就能看到在当前目录下所有文件和子目录的列表。除了当前工作目录以外,也可以指定别的目录。
[root@localhost /]# ls /usr/
backups bin etc games include lib lib64 libexec local sbin share src tmp
甚至可以列出多个指定目录的内容。在下面例子中,将会列出用户根目录(用字符“∼”代表)和/usr 目录的内容:
[root@localhost /]# ls ~ /usr/
/root:
anaconda-ks.cfg rhel-server-7.9-x86_64-dvd.iso 模板 图片 下载 桌面
initial-setup-ks.cfg 公共 视频 文档 音乐
/usr/:
backups bin etc games include lib lib64 libexec local sbin share src tmp
我们也可以改变输出格式,来得到更多的细节:使用 ls 命令的“-l”选项,则结果以长模式输出。
[root@localhost /]# ls -l
总用量 28
drwxr-xr-x 3 atouser atouser 22 1月 30 1998 ATO
drwxr-xr-x 2 rsync rsync 6 1月 5 11:00 backup
lrwxrwxrwx. 1 root root 7 1月 1 1998 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 11月 23 16:46 boot
drwxr-xr-x 3 root root 33 1月 5 10:56 copylog
drwxr-xr-x 19 root root 3240 11月 23 16:45 dev
drwxr-xr-x. 155 root root 8192 1月 11 15:34 etc
drwxr-xr-x. 12 root root 133 1月 11 15:34 home
lrwxrwxrwx. 1 root root 7 1月 1 1998 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 1月 1 1998 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 12月 15 2017 media
dr-xr-xr-x 9 root root 4096 6月 28 2022 mnt
drwxr-xr-x. 3 root root 16 1月 6 1998 opt
dr-xr-xr-x 399 root root 0 11月 23 16:45 proc
dr-xr-x---. 14 root root 4096 2月 8 14:28 root
drwxr-xr-x 48 root root 1420 2月 8 06:49 run
lrwxrwxrwx. 1 root root 8 1月 1 1998 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 12月 15 2017 srv
dr-xr-xr-x 13 root root 0 12月 4 09:47 sys
drwxrwxrwt. 18 root root 4096 2月 8 17:08 tmp
drwxr-xr-x. 14 root root 170 1月 10 15:56 usr
drwxr-xr-x. 20 root root 282 1月 1 1998 var
我们将学习一个非常重要的知识点,即大多数命令是如何工作的。命令名经常会带有一个或多个用来更正命令行为的选项,更进一步,选项后面会带有一个或多个参数,这些参数是命令作用的对象。所以大多数命令看起来像这样:command -options arguments。
当然,许多命令也允许把多个短选项串在一起使用。下面这个例子,ls 命令有两个选项,“l”选项产生长格式输出,“t”选项按文件修改时间的先后来排序。
[root@localhost /]# ls -l
总用量 28
drwxr-xr-x 3 atouser atouser 22 1月 30 1998 ATO
drwxr-xr-x 2 rsync rsync 6 1月 5 11:00 backup
lrwxrwxrwx. 1 root root 7 1月 1 1998 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 11月 23 16:46 boot
drwxr-xr-x 3 root root 33 1月 5 10:56 copylog
drwxr-xr-x 19 root root 3240 11月 23 16:45 dev
drwxr-xr-x. 155 root root 8192 1月 11 15:34 etc
drwxr-xr-x. 12 root root 133 1月 11 15:34 home
lrwxrwxrwx. 1 root root 7 1月 1 1998 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 1月 1 1998 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 12月 15 2017 media
dr-xr-xr-x 9 root root 4096 6月 28 2022 mnt
drwxr-xr-x. 3 root root 16 1月 6 1998 opt
dr-xr-xr-x 398 root root 0 11月 23 16:45 proc
dr-xr-x---. 14 root root 4096 2月 8 14:28 root
drwxr-xr-x 48 root root 1420 2月 8 06:49 run
lrwxrwxrwx. 1 root root 8 1月 1 1998 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 12月 15 2017 srv
dr-xr-xr-x 13 root root 0 12月 4 09:47 sys
drwxrwxrwt. 18 root root 4096 2月 8 17:08 tmp
drwxr-xr-x. 14 root root 170 1月 10 15:56 usr
drwxr-xr-x. 20 root root 282 1月 1 1998 var
加上长选项“–reverse”,则结果会以相反的顺序输出:
[root@localhost /]# ls -lt --reverse
总用量 28
lrwxrwxrwx. 1 root root 7 1月 1 1998 bin -> usr/bin
lrwxrwxrwx. 1 root root 8 1月 1 1998 sbin -> usr/sbin
lrwxrwxrwx. 1 root root 9 1月 1 1998 lib64 -> usr/lib64
lrwxrwxrwx. 1 root root 7 1月 1 1998 lib -> usr/lib
drwxr-xr-x. 20 root root 282 1月 1 1998 var
drwxr-xr-x. 3 root root 16 1月 6 1998 opt
drwxr-xr-x 3 atouser atouser 22 1月 30 1998 ATO
drwxr-xr-x. 2 root root 6 12月 15 2017 srv
drwxr-xr-x. 2 root root 6 12月 15 2017 media
dr-xr-xr-x 9 root root 4096 6月 28 2022 mnt
dr-xr-xr-x 399 root root 0 11月 23 16:45 proc
drwxr-xr-x 19 root root 3240 11月 23 16:45 dev
dr-xr-xr-x. 4 root root 4096 11月 23 16:46 boot
dr-xr-xr-x 13 root root 0 12月 4 09:47 sys
drwxr-xr-x 3 root root 33 1月 5 10:56 copylog
drwxr-xr-x 2 rsync rsync 6 1月 5 11:00 backup
drwxr-xr-x. 14 root root 170 1月 10 15:56 usr
drwxr-xr-x. 155 root root 8192 1月 11 15:34 etc
drwxr-xr-x. 12 root root 133 1月 11 15:34 home
drwxr-xr-x 48 root root 1420 2月 8 06:49 run
dr-xr-x---. 14 root root 4096 2月 8 14:28 root
drwxrwxrwt. 18 root root 4096 2月 8 17:08 tmp
正如我们先前知道的,“-l”选项导致 ls 的输出结果以长格式输出。这种格式包含大量的有用信息。选一个文件,来看下各个输出字段的含义:
drwxr-xr-x. 20 root root 282 1月 1 1998 var
第一个字符指明文件类型。在不同的类型之间,开头的“-”说明是一个普通文件,“d”表明是一个目录。其后三个字符(rwx)是文件所有者的访问权限,再其后的三个字符(r-x)是文件所属组中成员的访问权限,最后三个字符(r-x)是其他所有人的访问权限。
18 文件硬连接数目。
root 文件所有者的用户名
root 文件所属用户组的名字
282 以字节数表示的文件大小
1月 1 1998 上次修改文件的时间和日期
var 文件名
我们将用file命令来确定文件的类型。可以这样调用命令: file filename
less 命令是一个用来浏览文本文件的程序。less程序为我们检查文本文件提供了方便。
在计算机中,有许多方法可以表达信息。所有的方法都涉及到,在信息与一些数字之间确立一种关系,而这些数字可以用来代表信息。最早也是最简单的一种表达法,叫做 ASCII 文本。文本是简单的字符与数字之间的一对一映射。它非常紧凑。五十个字符的文本翻译成五十个字节的数据。文本只是包含简单的字符到数字的映射,理解这点很重要。
为什么我们要查看文本文件呢?因为许多包含系统设置的文件(叫做配置文件),是以文本格式存储的,阅读它们可以更深入的了解系统是如何工作的。另外,许多系统所用到的实际程序(叫做脚本)也是以这种格式存储的。
less命令是这样使用的:
less filename
一旦运行起来,less 程序允许你前后滚动文件。例如,要查看一个定义了系统中全部用户身份的文件,输入以下命令:
less /etc/passwd
如果文件内容多于一页,那么我们可以上下滚动文件。按下“q”键,退出 less 程序。
下一步,我们将在文件系统中漫游,来了解 Linux 系统的工作原理。这会可以先温习下跳转命令。我们会发现很多有趣的文件都是纯人类可读文本。下面旅行开始,做做以下练习:
1. cd 到给定目录
2. 列出目录内容 ls -l
3. 如果看到一个有趣的文件,用 file 命令确定文件内容
4. 如果文件看起来像文本,试着用 less 命令浏览它
在系统中漫游时,不要害怕四处看看。普通用户是很难把东西弄乱的。那是系统管理员的工作!如果一个命令抱怨一些事情,不要管它,尝试一下别的东西。花一些时间四处看看。系统是我们自己的,尽情地探究吧。
列出了一些我们可以浏览的目录。随意尝试!
/ 根目录,万物起源
/bit 包含系统启动和运行所必须的二进制程序
/boot 包含Linux 内核、初始RAM磁盘映像和 启动加载程序
/dev 这是一个包含设备节点的特殊目录。“一切都是文件”也适用于设备
/etc 这个目录包含所有系统层面的配置文件
/root root账户的根目录
/usr 包含普通用户所需要的所有程序和文件
/var 存放动态文件,包含各种数据库、假脱机文件、用户邮件等
/var/log 包含日志文件、各种系统活动的记录。
完整的 Linux 文件系统层次体系标准可通过以下链接找到:https://www.pathname.com/fhs/