要利用任何Linux系统,你需要对Linux的文件和目录(也称文件夹)了解。 Linux shell命令行中,文件和目录不是直观看见。需要使用:cd、ls、pwd等shell命令在目录之间切换。
Linux文件被收集到目录中,目录形成一个层级或树状结构:
一个目录可能包含其他目录,这些目录被称为子目录,子目录本身可能包含其他文件和子目录,以此类推,无穷无尽。最顶层的目录被称为根目录,由斜杠(/)表示。
Linux文件系统(部分)。根目录位于顶部。“dan”目录的绝对路径是/home/dan。
我们用一种叫做路径的“名称和斜杠”语法来引用文件和目录。例如,这个路径:
/one/two/three/four
指的是根目录 /,其中包含一个名为one的目录,one包含一个名为two的目录,two包含一个名为three的目录,three包含一个最终的文件或目录,名为four。任何以斜杠开头的路径,从根目录一直下来的,都被称为绝对路径。
路径不必是绝对的:它们可以相对于根目录以外的某个目录。在[上图]中,有两个不同的目录都叫做bin,其绝对路径是*/bin和/usr/bin。如果我们只是提到“bin目录”,并不清楚我们是指哪一个(并且可能还有许多其他的bin目录)。更多的上下文是必要的。任何时候你引用一个不以斜杠开头的路径,比如bin*,它就被称为相对路径。
要理解相对路径,你需要知道你在Linux文件系统中的“位置”。这个位置被称为你的当前工作目录(或者就叫“当前目录”)。每个shell都有一个当前工作目录,当你在该shell中运行命令时,它们相对于那个目录进行操作。例如,如果你的shell在*/usr目录中,你运行一个引用相对路径bin的命令,你实际上是在引用/usr/bin。一般来说,如果你的当前目录是/one/two/three,一个相对路径a/b/c会指向绝对路径/one/two/three/a/b/c*。
两个特殊的相对路径分别被记作 .(一个句点)和…(两个连续的句点)。前者表示你的当前目录,后者表示你的父目录,即上一级。所以如果你的当前目录是*/one/two/three,那么.就表示这个目录,…就表示/one/two*。
你使用cd命令将你的shell从一个目录“移动”到另一个目录:
→