您的位置:首页 > 运维架构 > Linux

Linux 操作系统初探

2015-10-26 00:41 603 查看
我们已经知道了如何在文件系统中跳转,是时候开始 Linux 操作系统之旅了。

我们先学习一些对研究 Linux 系统有帮助的命令。

ls — 列出目录内容

file — 确定文件类型

less — 浏览文件内容

ls 乐趣

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

yu@ubuntu:~$ ls
a.out    Documents  examples.desktop  Pictures  Templates
Desktop  Downloads  Music             Public    Videos


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

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


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

yu@ubuntu:~$ ls ~ /usr
/home/yu:
a.out    Documents  examples.desktop  Pictures  Templates
Desktop  Downloads  Music             Public    Videos

/usr:
bin  games  include  lib  local  sbin  share  src


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

yu@ubuntu:~$ ls -l
total 44
-rw-rw-r-- 1 yu yu    0 Oct 25 04:44 a.out
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Desktop
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Documents
drwxr-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 -lt
total 44
-rw-rw-r-- 1 yu yu    0 Oct 25 04:44 a.out
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Desktop
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Documents
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Downloads
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Music
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Pictures


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

yu@ubuntu:~$ ls -lt --reverse
total 44
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Pictures
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Music
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Downloads
drwxr-xr-x 2 yu yu 4096 Oct 25 00:41 Documents
drwxr-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 命令有大量的选项:



深入研究长格式输出

就拿以下输出示例:

-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.out
a.out: empty


用 less 浏览文件内容

less 命令是一个用来浏览文本文件的程序。

纵观 Linux 系统,有许多人类可读的文本文件。

less 程序为我们检查文本文件 提供了方便。

什么是“文本”?

文本是简单的字符与数字之间的一对一映射。

它非常紧凑。五十个字符的文本翻译成五十个字节的数据。

文本只是包含 简单的字符到数字的映射,理解这点很重要。

为什么我们要查看文本文件呢?

因为许多包含系统设置的文件(叫做配置文件),是以文本格式存储的,阅读它们 可以更深入的了解系统是如何工作的。

另外,许多系统所用到的实际程序(叫做脚本)也是以这种格式存储的。

less 命令是这样使用的:

less filename


一旦运行起来,less 程序允许你前后滚动文件。

例如,要查看一个定义了系统中全部用户身份的文件,输入以下命令:

yu@ubuntu:~$ less /etc/passwd


一旦 less 程序运行起来,我们就能浏览文件内容了。

按下“q”键, 退出 less 程序。

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



less 属于”页面调度器”程序类,这些程序允许通过页方式,在一页中轻松地浏览长长的文本文档。

然而 more 程序只能向前分页浏览,而 less 程序允许前后分页浏览,它还有很多其它的特性。

旅行指南

做做以下练习:

cd 到给定目录

列出目录内容 ls -l

如果看到一个有趣的文件,用 file 命令确定文件内容。

如果文件看起来像文本,试着用 less 命令浏览它。

普通用户是很难把东西弄乱的。

在 Linux 中,没有秘密存在!

Linux 系统中的目录:







符号链接

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: