第02章:浏览
Last updated
Was this helpful?
Last updated
Was this helpful?
除了打字,首先需要学习的,是如何浏览 Linux 文件系统。本章我们将介绍下列命令:
pwd
列出当前工作目录(Print name of current working directory)
cd
变更目录(Change directory)
ls
列出目录内容(List directory contents)
一如 Windows,类 UNIX 操作系统,如 Linux,使用分层目录结构(hierarchical directory structure)来组织文件。这意味着它们是用树状目录模式(目录 directory 在其它系统中有时会被称为文件夹 folder)来容纳文件和其它目录的。文件系统中的第一个目录被称为根目录(root directory),根目录包含文件和子目录,子目录又包含了更多的文件和子目录,以此类推。
注意,不同于 Windows 中每个存储设备都有各自独立的文件系统树,类 UNIX 系统如 Linux,无论有多少存储设备附加到计算机中,始终仅有一个单独的文件系统树。存储设备是由系统管理员(System administrator)随意附加(attached)——或者更正确地来说是——加载(mounted)到树上的各个不同的点上的。
多数人大概都熟悉如下图所示的图形文件管理器中所展示的文件系统树。请注意这系统树通常都是倒着显示的,换言之,根显示在上部,而各分支逐层显示在下方。
然而,命令行是没有图片的,所以我们需要用不同于图形界面的方法来浏览文件系统。
想象一下,文件系统是个形状颠倒的树状迷宫,而我们恰在其中。在任何时刻,我们总是在一个目录之中,我们能看到这目录中的文件,以及该目录的上级路径(即父目录 parent directory)和所有下级子目录。我们所在的这个目录就叫作当前工作目录(current working directory)。要显示当前工作目录,我们需要使用 pwd
(print working directory)命令。
当我们首次登录系统(或者开启一个终端模拟器会话),我们的当前工作目录被设置在我们的家目录(home directory)。每个用户帐户都有一个给定的家目录,普通用户仅被允许在此处存储文件。
列出当前工作目录的文件和目录,我们用 ls
命令。
实际上,我们可以用 ls
命令列出任何目录中的内容,而不仅仅是当前工作目录,还有更多有趣的事情可以做。我们将在下一章详细介绍 ls
。
要变更你的工作目录(树形结构迷宫中,我们所在的位置),我们要使用 cd
命令。在 cd
后键入想要到达的路径名(pathname)。路径名是我们沿树的分支到达我们想要的目录的路径。路径名可以表述为以下两种不同方式中的任何一种:绝对路径或相对路径。先来看绝对路径。
一个绝对路径名以根目录(/
)开始,一个分支跟着一个分支,一直到你想要达到的路径为止。例如,在系统中有一个目录是大部分系统程序的安装目录,/usr/bin
。这意味着从根目录开始,有一个 usr
目录包含这 bin
目录。
现在我们看到我们已经切换工作目录到 /usr/bin
。注意到提示符有怎样的变化了吗?为方便起见,它通常设置为自动显示工作目录的名称。
绝对路径以根目录开始,一直达到目的地,相对路径总以当前工作目录开始。要做到这一点,要用到一组特殊符号来表示在文件系统树中的相对位置。这些特殊符号就是 .
(dot) 和 ..
(dot dot)
「.
」符号指向工作目录,「..
」符号指向工作目录的上级目录。让我们再次切换工作目录到 /usr/bin
来看一下相对路径是如何工作的。
好,现在我们想要切换工作目录到 /usr/bin
的上级目录 /usr
。我们能用两种不同的方法做。一种是绝对路径:
一种是相对路径:
两种不同的方法,得到的结果是相同的。我们应该用哪种方法呢?应该选用最简洁的命令!
同样的,我们能用两种方法把工作目录从 /usr/
切换到 /usr/bin
。一种是绝对路径:
一种是相对路径:
现在,我必须在此指出一个重点。在绝大多数情况下,你可以省略 ./
。它是被隐含的。键入:
具有相同的作用。一般来说,如果你不指定路径名,就会被假定为从工作目录开始。
在表 2-1 中我们看到一些能快速切换当前工作目录的方法。
表 2-1:cd 快捷键
快捷键
结果
cd
切换到当前用户的家目录
cd -
切换到上一个工作目录
cd ~user_name
切换到指定用户名的家目录
关于文件名的重要事实
以
.
开头的文件名是隐藏文件。这意味着必须使用ls -a
命令才能显示这些文件,仅ls
命令则无法显示这些文件。当你的帐户被创建的时候,就已经有几个隐藏文件被创建在你的家目录中,用以配置你的帐户。下面我们将会更近距离地接触这些文件中的一部分,以了解如何自定义你的系统环境。另外,有些应用程序也会在你的家目录中存放一些隐藏文件,以保存其环境配置和设置文件。Linux 中的文件名和命令,和 Unix 一样是大小写敏感的。File1 和 file1 代表两个不同的文件。
Linux 没有「文件扩展名」(file extension)的概念。你可以随你喜好来命名文件。一个文件的内容和用途通过其它方式来确定。尽管类 Unix 系统不使用文件扩展名来确定一个文件的内容和用途,一些应用程序还是会需要「文件扩展名」。
尽管 Linux 支持长文件名,允许包含空格和一些标点符号,最好还是把文件名中的标点符号限制在句点(
.
)、横线(-
)和下划线(_
)三者之中。最重要的,就是不要在文件名中置入空格。如果你想要在文件名中的单词之间表示空白字符,请使用下划线字符。日后你肯定会感谢你自己的这个举动。
本章中我们学习了 shell 如何处理系统目录结构。我们学习了绝对路径和相对路径,以及一些切换目录的基本命令。下一章中,我们将用这些知识继续探索现代 Linux 系统。