让我们尝试第一个命令:pwd(print working directory,输出工作目录的缩写)。在shell中输入pwd,然后按回车键或返回键。此命令会显示当前目录的路径,即shell所在的目录路径:
在本例中,shell告诉我们,当前的工作目录是angel,而angel在Users目录下。
whoami命令可以让shell告诉我们当前登录的用户名:
使用ls命令可以列出当前目录的内容:
使用cd加上目录名可以进入对应的目录:
使用两点,可以回退一步,到父级目录:
上面两个更改目录的cd命令,使用的是相对路径。相对路径(relative path)是指相对于当前位置的路径。例如,如果想使用相对路径来更改目录,我们只需要这样写:
可以使用一点(.)来表示当前目录。下面是另一种切换到Documents/Video目录的方式:
我们也可以使用绝对路径(absolute path)来更改目录,它是指相对于根目录的路径。根目录用斜杠符号(/)表示。让我们尝试使用绝对路径来转到根目录:
现在,让我们回到主目录。主目录也有一个专门的快捷方式——波浪号(~):
使用mkdir命令创建新目录,后面跟着我们想要创建的目录名:
我们在工作目录中创建了一个名为tmp的新目录,它包含一个名为mechanics的新目录。我们也可以用两步来完成同样的事情,首先创建tmp目录:
然后将路径切换到tmp(cd tmp),并创建mechanics目录:
两种方式的结果完全一致。
使用cd命令进入新目录中:
要创建一个新文件,可以使用touch命令加上文件名:
向文件中写入文本可以使用输入重定向,3.6节会进一步讲解这个方法:
上面的命令比我们目前见到的其他命令要更复杂。它分为两个部分。符号>的左侧是第一部分,使用echo命令输出文本“write me to the file”。我们可以单独运行这个命令,看看它能做些什么:
如你所见,echo命令只是简单地输出我们传递给它的内容。使用符号>,我们可以将输出目标从标准输出(指shell)重定向到某文件,从而将信息写入该文件,而不是输出到shell上。
为了证明我们做到了这一点,让我们使用cat命令来读取文件内容:
cat命令会输出文件内容。该命令是concatenate的缩写,它会拼接传递给它的文件内容。事实上,我们可以将同一个文件重复传递到cat,以查看拼接结果:
现在让我们删除刚才创建的文件和目录。
使用rm命令删除文件:
这个文件已经彻底消失:使用命令行时,没有垃圾桶或其他安全机制。因此,在删除文件或目录时,我们需要格外小心。
让我们退出tmp/mechanics文件夹,返回上上级目录:
对于空目录,我们可以使用命令行选项-d进行删除。命令行选项(command line option)是可以传递给命令以修改其行为的参数。命令行选项以两种形式出现:短横线后跟一个或多个小写字母,如-f,或双短横线后跟单个或复合词,如--file或--file-name。
删除空目录代码如下:
如你所见,shell返回了一个错误信息,因为tmp不是空目录(它有一个子目录)。如果想删除一个目录及其所有子目录,可以使用选项-r:
如果目录或子目录中存在文件,上面的命令不会生效。当我们想要删除不包含文件的目录时,这个命令很有用,因为如果文件存在,它不会删除任何东西,这是一个安全措施。删除带文件的目录,可以使用选项-rf:
使用rm-rf命令需要非常小心。这个命令可能会造成一些严重的、无法恢复的伤害。
表3-1汇总了本节探讨的所有命令。
表3-1 文件和目录相关的shell命令
(续)
现在我们已经知道了在计算机中进行目录移动的基本命令,让我们看看使用Windows Subsystem for Linux的一些细节。
每次打开Linux子系统,shell所在的工作目录就会被设置为Linux子系统的主目录。你可以使用pwd命令来显示当前目录:
WSL有自己的目录,与你的计算机不相连。但是,因为你是在Windows系统上编写本书代码,因此需要访问C盘的方式。WSL提供了一种简单方式。
本地驱动盘的路径在Linux子系统的一个名为/mnt的目录中。使用cd命令进入/mnt,然后列出其内容:
使用绝对路径(从/开始)转到/mnt很关键。ls命令列出了我的两个驱动盘:C盘和D盘。要打开其中的一个,只需更改目录:
现在,WSL的工作目录已经是C盘。你可以找到主目录或其他文件夹来编写代码:
Ubuntu已经安装了Python3版本。你可以在shell中检查已安装的版本:
使用Ubuntu的命令行工具apt可以将Python更新到最新版本。首先,你需要更新apt包,确保其为最新版本。执行这个命令需要超级用户(superuser)权限。你可以在要执行的命令前添加sudo(superuser do的缩写)来获取。超级用户运行任何命令都需提供密码:
当你输入密码时,shell将保持空白,不会显示任何内容,这主要是出于安全考虑。一旦包更新完成,你就可以升级Python版本:
可以确定Python3已经是Ubuntu上的最新的稳定版本了。现在可以学习如何运行Python脚本了。