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

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

本文介绍MacOS上命令行的用法,Linux和Windows版即将上线。

简介

大家好,我是特蕾西•奥斯本,《Hello Web Books》的作者,我的网站https://hellowebbooks.com为大家提供了轻松学习入门级网络知识的视频和书籍。

2010年我自学了编程,从此我的世界打开了另一扇门。我经历了从使用别人的工具到自己编写一些小程序,再到创建一个公司的历程。我喜欢编程,感觉像是我能与电脑对话,告诉电脑去执行任务。

在学习编程的过程中,学习“命令行”是第一步。这是非常可怕的一步——没有图形或按钮,只是一个空白的区域,你可以输入命令,但谁知道后台发生了什么呢?

但是,当你学到一定程度并使用命令行时,你就可以使用像Python这样的编程语言,请相信我:它并不像看起来那么可怕。

什么是命令行?

在计算机上我们已经习惯了用程序来做所有的事情。例如,用Finder窗口浏览硬盘,创建新文件和文件夹,删除文件以及浏览存储在系统中的每个文件。

Finder窗口,用来浏览硬盘上文件的用户界面。

我们可以在命令行中做同样的事情 —— 浏览系统、查看文件,更新或更改文件——只是没有图形界面而已(包括按钮和下拉列表),不能点击鼠标,必须输入命令才能得到想要的结果。

Mac上的命令行,只有一个等待输入的空白区域。

是的,有点烦人,我们必须要记住各种命令。其实不用担心,你无需记住一切!这本小册子会教你一些简单的知识(最后有一个备忘单),你可以在编程过程中慢慢记住其它命令。

Unix是什么?

你可能会注意到其它教程经常会提到“Unix”。 Unix本质上是一类操作系统,Mac和Linux是其中的一部分。很多教程都把命令行称为“Unix命令行”,因为Mac和Linux等计算机使用同一组命令与计算机交互(所以,嘿,你在这里学到的一切都可以在Linux上使用!)

Windows与其它操作系统稍有不同。值得庆幸的是,对于Windows用户,有很多使用Unix命令的程序。总的来说,编程教程和工具都默认使用Unix命令,因此Windows用户需要另外安装程序来使用命令行。

我不打算从Unix开始讲起,因为怕你被其它教程迷惑,所以在这里给你一点点提示!

本教程有什么不同?

我将跳过大部分技术细节,将理论概括为简单的解释。并不是觉得你笨才这样做!其它许多的教程都是这么想的:“好吧,让我们解释一切正在发生的事情!完整、完整、详细、确切的工作原理!”

如果你像我一样,当一个解释变得过于冗长时,你就开始茫然。在这个教程里我不想这样做。有些阅读本教程的人会说,“嗯,这在技术上并不完全正确......”—— 我不想在技术上完全正确。我只是为了让你(亲爱的读者)感觉舒服。

让我们开始吧!

可怕的空白命令行

你的用户名和计算机名,然后$是你开始输入命令的位置。

回到这个有各种功能的空白页面!

在上面的示例中,我的用户名是“limedaring”,计算机名为“Orion”,因此你看到的内容会有所不同,显示的是你自己的用户名和计算机名。

$是提示符。在大部分编程教程中你都会看到如下格式的命令:

$ 你输入的命令

这些教程使用$符号来提醒这是你要键入的位置,省略了用户名和计算机名。

列出我们当前目录中的文件

ls

我们学习的第一个命令是ls,它是“list”(列表)的缩写。你会注意到命令是尽可能地缩短的,在你习惯并反复输入这些命令时会很有用。输入很少的字符!

键入ls并按Enter键,看看会发生什么:

嘿,看起来很熟悉!打开一个新的Finder窗口,然后单击左侧边栏中的用户名。有相同的文件/文件夹!

命令行始终在用户目录中运行。就像你可以在Finder中单击文件夹以查看文件夹中的内容一样,你可以使用命令行浏览文件夹(在此我们称为“目录”)中的内容。

更改目录

cd

在Finder中,我可以点击“Music”,看看该文件夹的内容。在命令行中,我可以使用命令cd(“changedirectory”)来“打开”该目录。

点击“Music”,你可以看到文件夹中的内容。

我用cd命令进入了Music目录,与Finder窗口相比,看起来有点单调。

在命令行截图中,我进入了Music。想象一下,你进入了这个目录。命令行会显示当前位于Music目录中。现在,可以使用ls查看目录中的内容,与在Finder中看到的一样。

看看Music文件夹中有什么?

就是那个iTunes文件夹!

在Finder窗口中,你可以点击并查看这些文件夹的内容。 Finder本质上是在幕后执行了cd和ls命令,并以漂亮的图形显示结果,而不仅仅是用文本显示。

我们可以再次使用cd和ls命令查看iTunes文件夹中的内容:

等等,我们不断进入下一级目录,怎样才能回到之前的位置呢?

更改目录返回到原来的目录

cd ..

在命令行中,我们不能通过点击鼠标的方式去到某个地方。如何回到用户主目录并不是很直观!为此,使用命令cd ..返回:

我们甚至可以用点和斜线组合的方式一次返回多层目录:

已经返回主目录!我习惯用ls再次查看目录中的内容以确定当前位置。

返回太多? 用ls查看当前目录中的内容,再用cd命令去到我们想去的位置:

“返回”过头了,当前目录包含了用户主目录。

通过cd 进入你的用户目录(你自己的用户名)。

还有更好玩的!你可以将文件夹拖到命令行里面以到达任何你想去的目录!因为没有gif动态图,这个有点难以说明。你只需在你的命令行输入cd(不要忘记cd之后的空格),然后点击Finder中的文件夹不要松开,并将其拖动到命令行窗口上。计算机会将该文件夹的路径放入命令行,很便捷!

将文件夹拖到命令行中需要输入的位置,就会自动键入路径!

新建、移动和删除文件

从这开始你会觉得有趣了。我们可以使用命令行在硬盘上创建,移动和删除文件!

创建文件

touch

用touch命令可以创建文件。在touch 命令后加上文件名及后缀就行。

让我们创建一个新文件hello.txt。无论在哪个位置(可能在你的主目录中),请键入touch hello.txt。没有任何创建成功的消息或其它提示,因此用ls命令查看你所在目录的内容以确认该文件已创建。

你可以在Finder中看到这个文件:

也许我们不希望这个文件出现在主目录中。不用在Finder中单击/拖动它,可以用命令行将其移动到另一个目录。

移动文件

mv

移动文件的命令是mv("move"的缩写),看起来很直观。我们还需要在命令行添加一些其它内容,以便让计算机知道要移动的文件以及目标位置。

要将文件移动到主文件夹中的Music文件夹,我会输入“mv 文件名 目标文件夹”—— 所以,执行mv hello.txt Music 会将hello.txt文件移动到Music文件夹中:

请注意,仍然不会有移动成功的消息或任何确认信息,因此你可以在当前目录用ls命令确认它已消失,然后用cd命令进入目标目录并再次使用ls确认该文件出现在这个新目录中:

我们之前学过../符号用于返回目录,也可以用于移动文件到上一级目录:

下面我们学习如何通过命令行复制文件。

复制文件

cp

cp是“copy”的缩写,这也是一个很直观的命令!复制文件的格式为 “cp 文件名 文件副本的新名称”。因此要复制hello.txt这个文件并命名为goodbye.txt, 需要在命令行执行以下命令:cp hello.txt goodbye.txt

记住,通常情况下没有任何提示表示运行成功! 运行ls命令检查新文件是否出现。

(仅供参考:如果你想复制目录而不是个别文件,请耐心一点,稍后就会讲到这个问题!)

新建两个空文件是不是有点傻?我们来学习如何删除文件。

删除文件

rm

rm是"remove"的缩写,执行这个命令要相当小心。当你使用命令行删除文件时,没有相应的垃圾箱或回收站,你不能还原意外的删除。文件消失了。

(像git这样能跟踪文件变化的版本控制系统很好用。强烈建议你在所有编程项目中使用git,以便保存更新并在需要时从备份中恢复。敬请期待git使用指南!)

因为goodbye.txt只是一个副本(而且还是空的),没有什么用处,我们现在要把它删除,格式为”rm 文件名”(这里是rm goodbye.txt):

同样没有删除成功的提示,所以要检查文件goodbye.txt是否消失。

但是敲命令好累啊!

之前我一直让你从键盘输入所有内容(对不起)。输入命令时,你可以用命令自动补全方法及其它工具来节省时间(更重要的是能防止输入错误。)

按Tab键自动补全命令

当你输入的命令是对文件进行操作时(例如将文件从当前目录移动到另一个目录中),命令行可以自动补全文件名。

尝试使用mv移动文件。记住,完整命令是“mv 文件名 目标目录”,mv之后的这两串字符都可以自动补全。

如果它没有自动补全(如果计算机的扬声器打开就会发出令人沮丧的“嘟嘟”音),这意味着自动补全功能没有发现以你输入字母开头的文件名或目录,所以不能找到你指定的文件或位置。

当你处理长文件名时,这非常方便!输入一个字符,按Tab键自动补全命令将成为你的第二个习惯。

(注意:当你输入一个字符并按下Tab键自动补全时,你只听到了“嘟”一声而没有自动补全。这通常意味着有多个文件与你输入的字符匹配,所以你需要多键入一些字符,直到你有足够的字符匹配你正在寻找的确切文件!)

按向上方向键获取之前用过的命令

如果你发现在重复输入同样的命令(或者重复运行你编写的脚本),按向上方向键就会获得之前输入过的命令!在找到要重新运行的命令后按下“Enter”键就开始运行。非常方便。

未完,请接下篇。

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

译者:钱利鹏

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券