13.4. 使用 cd 命令来改变所在目录

只要你知道你所在的位置(你的当前目录),以及它与你想转换到的位置间的关系,要改变所在目录是很容易的。

要改变所在目录,使用 cd 命令。只使用这个命令本身总是会把你返回到你的主目录;要转换到其它目录中,需要一个路径名(pathname)

你可以使用绝对(absolute)相对(relative) 路径名。绝对路径从 /(指代根)开始,然后循序到你所需的目录;相对路径从你的当前目录开始,你的当前目录可以是任何地方。下面的树形图显示了 cd 的运行方式。

/
/directory1
/directory1/directory2
/directory1/directory2/directory3

如果你当前是在 directory3 之下,你想转换到 directory1,你需要移到目录树的上一层。

执行命令

cd directory1 

当你还在 directory3 目录中,这个命令会给你一个错误消息,向你说明该目录不存在。这是因为在 directory3 之下并没有 directory1 目录。

要向上移到 directory1,键入:

cd /directory1

这是一个绝对路径的例子。它告诉 Linux 从目录树的顶端(/)开始向下一直转换到 directory1 为止。如果一个路径的第一个字符是 /,那么这个路径就是绝对路径,否则,它就是相对路径。

使用绝对路径会允许你转换到从 / 目录开始的目录中,它要求你知道完整的路径。使用相对路径允许你转换到相对于你目前所在的目录的目录中。如果你要改换到你的当前目录下的子目录中,使用相对路径就会很方便。

命令 cd .. 告诉你的系统向上移到你当前所在目录的直接上级目录中去。要向上移两级目录,请键入 cd ../.. 命令。

用下面的练习来测试一下你目前所学的关于绝对路径和相对路径的知识。在你的主目录下,键入相对路径:

cd ../../etc/X11

在以上例子中,使用了全命令之后,你应该是在目录 X11 中,其中你会发现与 X 窗口系统相关的配置文件和目录。

看一看你的最后一个 cd 命令。你让你的系统:

  1. 向上移动一级,转到你的登录目录的父目录中去(可能是 /home);

  2. 然后,再向上移动到该目录的父目录中去(根目录或 / 目录);

  3. 再次,向下移动到 etc 目录中;

  4. 最后,移到 X11 目录中;

相反地,使用一个绝对路径会更快地把你带到 /etc/X11 目录中去。例如:

cd /etc/X11

绝对路径以根目录(/)起首,然后向下移到你指定的目录中。

注记注记
 

在你标明要访问的目录或文件的相对路径之前,请一定要确保你知道自己所在的工作目录。但是,如果你标明的是到另一个目录或文件的绝对路径,你则不必担心你在文件系统中的位置。如果你不能肯定,键入 pwd 命令,你当前的工作目录就会在屏幕上显示出来,你可以用它来作为使用相对路径名来转换目录的向导。

命令功能
cd把你送回到你的登录目录
cd ~也会把你送回到你的登录目录
cd /把你带到整个系统的根目录
cd /root把你带到根用户或超级用户(在安装时创建的帐号)的主目录;你必须是根用户才能访问该目录
cd /home把你带到 home 目录,用户的登录目录通常贮存在此处
cd ..向上移动一级目录
cd ~其他用户如果其他用户授予你相应权限了的话,它会把你带到其他用户的登录目录
cd /dir1/subdirfoo无论你在哪一个目录中,这个绝对路径都会把你直接带到 subdirfoo 中,即 dir1 的子目录
cd ../../dir3/dir2这个相对路径会把你向上移动两级,转换到根目录,然后转到 dir3,然后转到 dir2 目录中去

表 13-1. cd 选项

现在,你应该开始理解如何改换所在目录。当你改换到根用户的登录目录(超级用户帐号)中时,看一看会发生什么。键入:

cd /root

如果你没有以根用户身份登录,你在访问该目录时会看到 denied permission(拒绝权限)

拒绝到根用户和其他用户的帐号(或登录目录)的访问是 Linux 系统防止有意或无意篡改的一种措施。请参阅第 13.14 节

要改换到根登录和根目录,使用 su 命令。

su

窍门窍门
 

命令 su 的意思是“substitute users”(代替用户),它允许你暂时以其他用户身份登录。当你只键入 su 命令本身然后按 [Enter] 键,你仍位于自己的登录 shell 中(你的用户的主目录),但是你的身份已变成根用户(又称超级用户)。键入 su - 使你变成带有根登录 shell 的根用户 — 这就如同你原本就以根用户身份登录一样。

你一给出根口令,就会看到命令提示符已发生改变,这种改变显示了你新获得的超级用户状态,根帐号的称号在提示符的前端,“#”在提示符的后端。

当你要使用根用户身份进行的工作结束后,在提示下键入 exit 命令,你就会返回到你的用户帐号。