首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个超简单的命令行趣味教程(下)

......接教程(上)

命令行中级实用工具

sudo是什么?

你可能看过这幅漫画:

sudo(”superuser do”的缩写)是以超级用户权限执行命令,就像是“我是老板,按我说的做”。对于大多数产生较大影响的命令(如删除所有文件或安装新程序的命令),计算机要求你在命令前面加上“sudo”,然后还要输入计算机密码确保你真的知道自己在做什么。

作为一个新手,你不需要经常使用sudo,但当你继续深入编程时,你就必须熟悉这个命令的用法。

创建、移动、删除目录

到目前为止,我们一直在处理单个文件,还没涉及到目录。我们学到的命令如touch(创建)mv(移动)或cp(复制)不能直接用于操作目录。

用mkdir创建目录

mkdir ("make directory")是创建新目录的命令。尝试在当前位置用mkdir test命令创建一个名称为“test”的目录:

创建目录后运行ls确认是否创建成功。

用cd命令进入新目录,运行ls后,你会发现里面是空的。

用mv命令移动目录

这个命令与移动单个文件的命令相同。将一个目录移动到另一个目录中的命令格式为“ mv 目录名 目标位置名称”(跟操作文件一样):

是的,跟之前一样的操作。让我们把这个目录移回我们的主目录,命令是mv test ../。执行这个命令你必须位于包含test目录的文件夹中。注意,你可以用../符号向上一级目录移动文件!

将hello.txt文件移动到test目录中,使其不再为空目录。回到主目录(cd ..)然后将test目录移动到当前目录,后面加“.”, 所以格式为mv Music / test / .

试试看!我会在后续教程中详细讨论点的用法。

很酷,现在test目录中有了一个名为hello.txt的文件!如果要删除整个目录呢?

用rm -r命令删除目录

-r是什么?注意这是一个新的概念!

到目前为止我们学到的每个命令都有选项(或“标志”)。我们将首次通过删除test目录来学习使用选项。

首先,尝试使用删除命令”rm 要删除的东西的名称“来删除test目录。怎么了?

不能删除test,因为这是一个目录!怎么了?

当我们在命令中添加-r选项时,告诉它以递归方式删除——因此,不仅要删除目录,还要删除其中的所有内容。如果没有-r标志,则删除失败,因为命令行不知道是否要删除文件夹中的所有内容。使用-r,就等于你说,“开始吧,删除目录中所有内容”。

“真有趣!你可能已经知道了关于执行命令rm -rf /的可怕后果。你知道-r标志可以与其它许多标志一起使用,所以在这里添加了一个-f,意思是“强制删除”。 这个命令正在删除的东西是/,斜杠表示整个硬盘的顶级目录(通常是整个计算机)。所以,这个命令的意思是“强制删除所有内容,包括整个硬盘上的所有目录和文件”。太可怕了!如果是在过去,你可能只用了六个字符就搞坏了计算机。现在(是的!),计算机厂商已经变聪明了,这个命令不会执行,不用担心不小心打错字符而清空你的硬盘!”

如何将文件移动到当前目录中?

用.表示当前目录。

一旦你熟悉用命令遍历硬盘,你可能想要“进入”目录,然后将一个文件移动到该目录中。目前我们只了解如何移动在当前目录中的文件,其实我们也可以将其它地方的文件移动到当前的“位置”!

例如引号中这个命令”mv ../test.txt .” ,意思是说“将上一级目录中的test.txt移动到当前目录中”。最后一个点表示“当前位置“。非常酷!

使用通配符

指定文件时,你不必仅限于一个文件——你可以用通配符“*”来指向多个文件。这听起来令人困惑。用例子更容易解释!假设你想将目录中所有的.txt文件移动到另一个目录中。你就得使用这个命令”mv *.txt 新目录名“, 如:

非常妙!

等等,出了点问题

我的命令不起作用!

确认当前位于正确的目录中。我想复制一个文件,但经常忘记当前位于哪个目录。运行ls(“列出”目录中的所有文件)以确认当前目录中有你需要的文件。

我被卡住了,我不知道怎么回到命令行!

某些命令会用另一个界面覆盖当前的命令行窗口。或许你已经输入了很长的命令(mv thisfile.txt to/another/file/folder/wait/not/that/one) ,你又不想按退格键返回到命令行开始的地方。

在这种情况下,按下Control-C(同时按两个键)就行。它基本上是一个停止/重启命令,在大多数情况下可以重新输入命令。(有时写成^C)

(不起作用?尝试按“q”,“ESC”或“Control-D。”这听起来很不明确,但是当我面对一个不知道如何退出的奇怪界面时我会这样做——我把能记住的所有停止命令用一遍。向我这个有多年开发经验的人学习吧!)

我看不到以点开头的文件!

当你使用ls查看当前目录时,实际上只显示了可见文件。在命令中添加标志-a(“all”)以查看所有文件,包括以“.”开头的隐藏文件。

哇,这个目录中的文件多了好多耶。

显示隐藏文件!这就是命令行的优点:添加-a标志就可以很方便地查看目录中的所有文件,而在Finder中,查看这些隐藏文件要困难得多。

要显示更隐秘的东西,在命令中添加-l以列表方式显示文件,包括时间戳,所有者信息以及其它有用的信息。但是因为它是一个列表,所以不是以三种或四种或五种颜色显示,只有一个文件名列表:

哇,已经讲了很多了!

对吗?命令行“真的是”一个非常强大的工具。我们只是初略讲了一些简单的命令,希望你去了解更多命令,这样你就可以轻松地深入学习更多功能。

使用命令行,等于你直接与计算机对话——无需图形用户界面为你翻译。当你学习编程时,你会发现你可以在一个小窗口里做许多工作。

希望你觉得这是一个有趣味的教程!你可以在“ Hello Web App”论坛上提出任何问题,网址:https://discuss.hellowebapp.com

如果你还想深入学习,请你访问Hello Web App,上面有使用Django开发Web应用程序的课程和书。即使你是学习编程和命令行的新手,这本书也很容易上手,尝试一下,并通过实践来学习。网址:https://hellowebbooks.com/learn-django

谢谢朋友们,祝你的编程之旅顺利! ——特雷西

英文原文:https://hellowebbooks.com/learn-command-line/#hey-friends

译者:钱利鹏

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180715A0CBGO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券