命令行教程,第一部分 — 导航目录
如果你已经在 Mac 上打开了 Terminal 应用程序,或者在 Windows 上打开了 Git Bash 应用程序,那么你可以开始执行此命令行教程。
教程概述
在本教程中,你将学习如何使用命令行浏览文件和文件夹,创建、打开、移动和删除文件和文件夹以及运行 Python 文件。
我们先来了解如何导航电脑的文件系统。花点时间考虑如何使用传统的鼠标和图形用户界面(GUI)导航计算机。下面显示的 GUI 提供了一个用于在计算机上执行任务的可视界面。
虽然上图显示了 Mac 上的 GUI,但 Windows 的基本元素是相同的。你可能会注意到以下内容:
- 显示了图形化表现的文件和文件夹的窗口;
- 通过鼠标点击来实现的导航文件或文件夹的打开过程;
- 点击后更新的窗口,显示打开的文件夹内容;
- 通过导航历史记录前进或后退的选项。
比较
让我们用一个具体的例子来比较,使用 GUI 和使用命令行来导航文件的过程。对于这个例子,请考虑以下的示例文件结构。
要继续本节中的任务,请在自己的计算机上完成以下步骤:
- 在桌面上,创建一个
TopSecret
文件夹; - 在
TopSecret
文件夹中,创建另一个文件夹,名称为Notes
; - 在
TopSecret
文件夹中,再创建一个文件夹,名称为Photos
; - 最后,在
Photos
文件夹中,添加一张图片(任何图片都可以),并命名图片为adorable.jpg
。
我们在这个例子中的任务是导航至桌面,打开 TopSecret
文件夹,打开 Photos
文件夹,打开(查看)adorable.jpg
图片。
通过 GUI 导航
使用 GUI,导航将如下所示:
使用命令行导航
使用命令行,导航意味着与计算机的不同类型的交互。在我们浏览导航过程之前,你需要熟悉一些新的术语和命令。
我们首先定义一个目录。目录只不过是文件夹的另一个名称。当我们在命令行工作时,我们将把文件夹称为目录。
计算机的文件和文件夹的结构就像一棵树。最开始是根目录,最终分支到许多其他文件夹(每个文件夹都有可能包含更多的文件夹和文件)。当我们浏览计算机文件系统时,我们在做的,实际上是在这个类似树结构的某些分支上来回走动。当我们进入一个命令行界面时,我们应该将自己看作是位于计算机上的某个特定位置 —— 这意味着我们目前位于某个目录中。默认情况下,当我们打开 shell 时,我们从计算机上的 Home
文件夹开始,用一个波浪符号(~
)表示。
我们可以在 shell 中注意到一个光标出现在一个美元符号($
)之后。这就是我们输入命令的地方。
pwd
命令
第一个对我们有用的命令叫做 pwd
,代表“显示当前工作目录”(print working directory)。当我们键入这个命令并按下键盘上的 RETURN
或 ENTER
键时,shell 将会响应,输出一个绝对路径,通向计算机文件结构系统中我们所在的位置。下面示例中的输出路径 —— / Users / udacity
—— 包含一系列用斜杠(/
)分隔的文件夹名称,给出从计算机根目录到我们当前位置的路径。
注意: 默认情况下,当我们打开 shell 时,我们将从我们电脑的主目录开始,在命令提示符里以一个波浪符号(~
)表示。你自己的计算机主目录路径可能会因你的用户名和操作系统而异。
ls
命令
要查看目录的内容,我们可以使用 ls
(意为 list 列出)命令,如下所示。
注意: 如果要查看目录中的所有文件(包括隐藏的文件),可以添加一个标志 - ls -a
- 列出所有内容。隐藏的文件将在它们的名称前面出现一个 .
。
open
命令
如果要打开文件或目录,可以在 Mac 上使用 open
命令。请注意,如果你在 Windows 上使用 Git Bash(根据之前的安装说明),你很可能必须使用 start
命令而不是 open
。最后,Ubuntu 用户需要使用 xdg-open
命令。
要使用 open
命令,你可以键入 open
,后跟一个空格,然后是你要打开的文件或目录的名称。例如,如果你从主目录开始,并且看到它包含一个 Downloads
目录,则可以通过键入以下内容打开 Downloads
目录:
~ $ open Downloads
打开 Downloads
目录将打开一个窗口(通过 GUI)显示该目录的内容。
注意: 为了更高的效率,你可以使用键盘上的 TAB
键自动补齐当前目录下的文件和目录的名称。你可能会注意到,自动补齐目录名称将添加一个尾部斜杠(/
)。
要打开当前目录,你可以输入以下命令:
~ $ open .
这个 .
在这个命令中表示你的当前目录。
cd
命令
回想以下,当你打开 shell 时,你是从你的计算机主目录开始的,缩写为~
提示符。如果要从主目录跳转到另一个目录,可以使用 cd
命令,意为更改目录(change directory)。
要跳转到一个不同的目录,你需要提供新目录的名称,例如,从主目录跳转到桌面:
~ $ cd Desktop
以上命令可以使你从主目录移动到桌面目录,如下所示。
请注意,当我们当前目录从主目录~
更改为 Desktop
目录时,提示文本也从~ $
更改为 ~/Desktop $
。这是因为默认情况下,提示符 $
之前的文本设置为在计算机文件结构中显示当前位置的绝对路径。如果你曾深入到计算机文件结构中,这可能是一个有用的提示。(或者,你可以随时使用 pwd
命令显示出你的工作目录!)
更改目录后,你可以轻松访问该目录中包含的文件和文件夹。请注意下面的图片,ls
命令现在显示 Desktop
的内容,而不再是主目录的内容。
正如我们可以进入到更深一层的计算机文件结构中,我们也可以回到上一层目录,如下所示:
~/Desktop $ cd ..
使用 ..
表示父目录,或者说是我们当前工作目录的上一级目录。
最后,无论我们在哪里,只要我们单纯地键入 cd
命令,不带任何的目标目录,我们将会回到主目录。
现在,你已经学习了 pwd
、ls
、open
和 cd
命令,你将能够用命令行导航计算机上的目录。
我们来回顾一下本教程开始时设置的比较 —— 使用 GUI 导航示例文件结构,使用命令行导航该结构。
通过 GUI 导航涉及下列步骤:
- 导航到桌面
- 打开“TopSecret”文件夹
- 打开“Photos”文件夹
- 查看“adorable.jpg”图片
相较而言,通过命令行可以有很多种方法达成同样的目的。一种方法是通过计算机的文件结构(从主目录开始),直到达到并打开 adorable.jpg
文件。你可以使用以下一系列命令来做到这一点:(下图中有对应的输出显示)
~ $ cd Desktop
~/Desktop $ cd TopSecret
~/Desktop/TopSecret $ ls
~/Desktop/TopSecret $ cd Photos
~/Desktop/TopSecret/Photos $ ls
~Desktop/TopSecret/Photos $ open adorable.jpg
事实证明,如果你将目录路径“链接”在一起,你可以使用较少的命令到达相同的目标。例如,你可以使用单个命令直接导航到 Photos
目录,然后从工作目录中打开 adorable.jpg
文件:
~ $ cd Desktop/TopSecret/Photos
~/Desktop/TopSecret/Photos $ open adorable.jpg
能够使用命令行导航你的计算机是一项非常有用的技能。在下一页,你将学习如何创建和删除文件和目录。