之前闹了个笑话,为了SSH去百度搜了Mac版本Putty。
随后我对终端的操作进行了补习,再此也分享给大家。
什么是终端?
当谈到命令时,我们实际上指的是shell。shell是一个接收由键盘输入的命令,并将其传递给操作系统来执行的程序。几乎所有的Linux发行版都提供shell程序,该程序来自于称之为bash的GNU项目。bash是Bourne Again Shell的首字母缩写,Bourne Again Shell基于这样一个事实,即bash是sh的增强版本,而sh是最初的UNIX shell程序,由Steve Bourne编写。
我们总在说在终端中如何操作,那么终端到底是什么呢?为什么它会有这么大的权利?
要说清终端是什么,我们先来看看操作系统的组成。简化来说,操作系统分为两个部分,一部分称作内核,另一部分成为用户交互界面。内核部分负责系统的全部逻辑操作,由海量命令组成,这一部分是系统运行的命脉,不与用户接触;交互界面则是开机之后所有我们所看到的东西,比如窗口,软件,应用程序等等。
那么我们若我们想对系统内核的某些操作逻辑做出一些修改,应该怎么办呢?终端就是连接内核与交互界面的这座桥,它允许用户在交互界面上打开一个叫做「Terminal 终端」的应用程序,在其中输入命令,系统会直接给出反馈。
因为终端这座桥,实际允许用户间接控制系统内核,也就是系统的大脑,因此它理论上具备控制一切的权利。
如何打开终端?
终端是系统中一个应用程序,你可以直接在所有程序中找到它,点击打开就行。直接在启动台中搜索【Terminal】或者终端就能找到他。
基础知识
本节会从零开始,一步步讲解基础知识。若你只想查看实际命令,可以完全跳过这一部分。
终端启动后,就会进入一个问你要指令的状态,你只需要将指令输入在光标后,按下键盘回车,指令就会被执行。
那么什么是命令?命令就是你告诉电脑希望它做什么的那句话。若我现在希望告诉电脑说 hi,这句话的命令就是 say hi,就这么简单。
命令由三个部分组成,第一个部分是命令对象,在 say hi 这个命令中,「say」 是我们的命令对象,我们希望电脑说话;第二个部分是修饰命令对象的关键词,可有可无,若我希望电脑说话时慢一点,可以输入
1 |
say -r 200 This is Ilanluo.com |
这里的 「-r 200」 则是修饰说话语速的关键词;第三部分是命令内容,这里填写希望电脑说的内容是「This is Ilanluo.com」这句话,回车之后电脑会语音说出上面这句话。
终端运行常常离不开对文件,文件夹的操作。
当你需要使用终端对文件夹进行操作时,终端需要你告诉它,你想要修改的文件在哪里,这时我们需要了解路径的概念。系统中的每一个文件都有一个存放位置,这一存放位置就称作路径。
终端启动后,它的默认路径在当前用户文件夹的根目录上,为了确定这一点,你可以输入 pwd 命令来查看当前路径。在下图中,输入命令后,终端告诉我当前路径是
1 |
/Users/longwenping |
路径的一般写法为 /文件夹名/文件夹名,但路径其实分为两种。一种叫相对路径,另一种叫绝对路径,它们两有什么区别呢?
我们从当前路径说起,当前路径指的是现在终端所处的位置,若你想改变当前路径,则可以输入 cd /其他文件夹。比如我希望系统将当前路径改为所有应用程序文件夹,则输入
1 |
cd /Applications |
在下图中可以看到,Legolas 前出现了一个 Applications,表示当前路径已经在应用程序文件夹中。
刚刚提到的路径的一般写法 「/文件夹名/文件夹名」,它指的其实就是绝对路径,你必须指定它从根目录一直到达具体的文件夹。
与其相对的是相对路径,相对路径允许你告诉终端从现在开始,接下来应该怎么走。相对路径的书写方法实在绝对路径前加一个 。
若你现在已经处在应用程序文件夹中,想前往其中的一个名叫MAMP的子文件夹应该怎么办?
下图中,当前位置的绝对路径是 /Applications/MAMP,但由于我已经处于 /Applications 文件夹中,因此可以使用相对路径的写法
1 |
cd ./MAMP |
表示将当前路径转到MAMP文件夹。
当你想要查看当前路径下有什么文件时,可以使用 ls 命令,它会列举当前路径下的全部文件,若你希查看进阶设定,比如列举当前路径下的全部文件并展开所有子文件夹,可以在 ls 命令后加上 -R 的识别符,新指令就变成了 ls -R,运行结果如下,可以看到我放在资源文件夹中的所有子文件都被显示出来了。
讲到这里,你也许会发现自己的终端已经满满当当的了,看着不舒服,这时可以使用 clear指令来清屏,运行结果如下。
以上讲的所有指令,都是无害指令,这里的无害指的是不会对系统文件造成破坏,但是还有一些指令,可以瞬间删掉你的整个系统,若你知道这些指令的用法那也没问题,但若是不小心根据网上的教程用了从而误删了东西就不好了。内核为了确保你知道某些指令的用法,要求你必须在这些有风险的指令前加输 sudo,这就是所谓的超级管理员指令,它会在你密码确认后,赋予 sudo 之后的命令最高权限,可以进行任何操作。
比如我需要把电脑上的 Windows 分区彻底删除时,只需要输入下面这串代码,一瞬间整个磁盘分区就会被删除:
1 |
sudo diskutil eraseVolume free none diskx |
到这里为止,终端的非常基础教学就已经讲完了,这只是略过了终端海量指令中最常见的一小部分,毕竟终端控制的是整个系统的内核,其指令库非常之大,没有办法全部讲完。那么,当你在网上见到一个新命令的时候,怎么知道它该如何用?你可以使用 man 指令查看其用法,比如,当你见到了一个磁盘管理命令 diskutil,可以使用 man diskutil来查看这个磁盘管理命令的具体用法说明,想要退出这个说明按下键盘 Q 即可。
若你使用的是带有触控条的 Mac,可以点按触控条按钮进行快速更改终端颜色,添加书签等操作。
若你想要完全自定义终端,可以在「终端 – 偏好设置 – 描述文件」中进行更改。
好了,本文大致就讲这么多。
本文来自王禹效 ,本文观点不代表蓝洛水深立场,转载请联系原作者。