Linux 操作系统初探

来源:互联网 发布:八爪盒子 知乎 编辑:程序博客网 时间:2024/04/30 22:41

我们已经知道了如何在文件系统中跳转,是时候开始 Linux 操作系统之旅了。
我们先学习一些对研究 Linux 系统有帮助的命令。

ls — 列出目录内容

file — 确定文件类型

less — 浏览文件内容


ls 乐趣

通过它,我们可以知道目录的内容,以及各种各样重要文件和目录的属性:

yu@ubuntu:~$ lsa.out    Documents  examples.desktop  Pictures  TemplatesDesktop  Downloads  Music             Public    Videos

除了当前工作目录以外,也可以指定要列出内容的目录,就像这样:

yu@ubuntu:~$ ls /usrbin  games  include  lib  local  sbin  share  src

甚至可以列出多个指定目录的内容。在这个例子中,将会列出用户家目录(用字符“~”代表)和/usr 目录的内容:

 yu@ubuntu:~$ ls ~ /usr/home/yu:a.out    Documents  examples.desktop  Pictures  TemplatesDesktop  Downloads  Music             Public    Videos/usr:bin  games  include  lib  local  sbin  share  src

我们也可以改变输出格式,来得到更多的细节,加“-l”长模式输出:

yu@ubuntu:~$ ls -ltotal 44-rw-rw-r-- 1 yu yu    0 Oct 25 04:44 a.outdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Desktopdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Documentsdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Downloads-rw-r--r-- 1 yu yu 8445 Oct 25 00:17 examples.desktop

选项和参数

学习一个非常重要的知识点,大多数命令是如何工作的。
命令名经常会带有一个或多个用来更正命令行为的选项, 更进一步,选项后面会带有一个或多个参数,这些参数是命令作用的对象。
所以大多数命令看起来像这样:

command -options arguments

大多数命令使用的选项,是由一个中划线加上一个字符组成,例如,“-l”。
但是许多命令,包括来自于 GNU 项目的命令,也支持长选项,长选项由两个中划线加上一个字组成。

许多命令也允许把多个短选项串在一起使用。
下面这个例子,ls 命令有两个选项, “l” 选项产生长格式输出,“t”选项按文件修改时间的先后来排序。

 yu@ubuntu:~$ ls -lttotal 44-rw-rw-r-- 1 yu yu    0 Oct 25 04:44 a.outdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Desktopdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Documentsdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Downloadsdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Musicdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Pictures

加上长选项 “–reverse”,则结果会以相反的顺序输出:

yu@ubuntu:~$ ls -lt --reversetotal 44drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Picturesdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Musicdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Downloadsdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Documentsdrwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Desktop-rw-rw-r-- 1 yu yu    0 Oct 25 04:44 a.out

ls 命令有大量的选项:
ls命令


深入研究长格式输出

就拿以下输出示例:

-rw-r--r-- 1 yu yu 8445 Oct 25 00:17 examples.desktop

-rw-r–r–
对于文件的访问权限。第一个字符指明文件类型。
在不同类型之间, 开头的“-”说明是一个普通文件,“d”表明是一个目录。
其后三个字符是文件所有者的 访问权限,再其后的三个字符是文件所属组中成员的访问权限,最后三个字符是其他所 有人的访问权限。

1:文件的硬链接数目。
yu: 文件属主的用户名。
yu: 文件所属用户组的名字。
8445:以字节数表示的文件大小。
Oct 25 00:17:上次修改文件的时间和日期。
examples.desktop:文件名。


确定文件类型

file 命令来确定文件的类型。
在 Linux 系统中,并不要求文件名来反映文件的内容。然而,一个类似 “picture.jpg” 的文件名,我们会期望它包含 JPEG 压缩图像,但 Linux 却不这样要求它。
可以这样调用 file 命令:

 file filename

当调用 file 命令后,file 命令会打印出文件内容的简单描述。例如:

yu@ubuntu:~$ file a.outa.out: empty

用 less 浏览文件内容

less 命令是一个用来浏览文本文件的程序。
纵观 Linux 系统,有许多人类可读的文本文件。
less 程序为我们检查文本文件 提供了方便。

什么是“文本”?
文本是简单的字符与数字之间的一对一映射。
它非常紧凑。五十个字符的文本翻译成五十个字节的数据。
文本只是包含 简单的字符到数字的映射,理解这点很重要。

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

less 命令是这样使用的:

less filename

一旦运行起来,less 程序允许你前后滚动文件。
例如,要查看一个定义了系统中全部用户身份的文件,输入以下命令:

yu@ubuntu:~$ less /etc/passwd

一旦 less 程序运行起来,我们就能浏览文件内容了。
按下“q”键, 退出 less 程序。

下表列出了 less 程序最常使用的键盘命令:
less命令

less 属于”页面调度器”程序类,这些程序允许通过页方式,在一页中轻松地浏览长长的文本文档。
然而 more 程序只能向前分页浏览,而 less 程序允许前后分页浏览,它还有很多其它的特性。


旅行指南

做做以下练习:

cd 到给定目录
列出目录内容 ls -l
如果看到一个有趣的文件,用 file 命令确定文件内容。
如果文件看起来像文本,试着用 less 命令浏览它。

普通用户是很难把东西弄乱的。
在 Linux 中,没有秘密存在!

Linux 系统中的目录:
01
02
03


符号链接

我们可能会看到一个目录,列出像这样的一条信息:

lrwxrwxrwx 1 yu yu 8445 Oct 25 00:17 libc.so.6 -> libc-2.6.so

注意看,为何这条信息第一个字符是“l”,并且有两个文件名呢?
这是一个特殊文件,叫做符号链接(也称为软链接或者 symlink )。
在大多数“类 Unix” 系统中, 有可能一个文件被多个文件名所指向。虽然这种特性的意义并不明显,但它真地很有用。

比方说,我们安装了文件 “foo” 的 2.6 版本,它的 文件名是 “foo-2.6”,然后创建了叫做 “foo” 的符号链接,这个符号链接指向 “foo-2.6”。 这意味着,当一个程序打开文件 “foo” 时,它实际上是打开文件 “foo-2.6”。 现在,每个人都很高兴。依赖于 “foo” 文件的程序能找到这个文件,并且我们能知道安装了哪个文件版本。 当升级到 “foo-2.7” 版本的时候,仅添加这个文件到文件系统中,删除符号链接 “foo”, 创建一个指向新版本的符号链接。这不仅解决了版本升级问题,而且还允许在系统中保存两个不同的文件版本。 假想 “foo-2.7” 有个错误(该死的开发者!),那我们得回到原来的版本。 一样的操作,我们只需要删除指向新版本的符号链接,然后创建指向旧版本的符号链接就可以了。

在上面列出的目录(来自于 Fedora 的 /lib 目录)展示了一个叫做 “libc.so.6” 的符号链接,这个符号链接指向一个 叫做 “libc-2.6.so” 的共享库文件。
这意味着,寻找文件 “libc.so.6” 的程序,实际上得到是文件 “libc-2.6.so”。


硬链接

讨论到链接问题,我们需要提一下,还有一种链接类型,叫做硬链接
硬链接同样允许文件有多个名字, 但是硬链接以不同的方法来创建多个文件名。


学习知识来源:http://billie66.github.io/TLCL/book/zh/chap04.html

0 0
原创粉丝点击