终端机(Terminal)可能是Mac上最多一班用户害怕的程序之一,它命令行(Command Line)的「传统」界面,对 GUI 原住民或者对于早期电脑有恐惧的人,是一个巨大的恶梦。 然而,时至 2019 年这个「传统」的程序还存在,甚至对于熟悉 Linux 系统或是比较进阶的用户来说,可能还觉得这个功能是让你能真正发挥 Mac 能力的工具之一。
今天这篇文章,简单介绍五个 Mac 上的终端机指令跟概念,让你稍微可以认识一下这个东东。
(本篇对于完全没有经验的用户会有点难读,但是我们尽量会在前后段把重要的名词做足解释。 )
简单而重要的概念:用户、超级用户

在终端机中,除非是本来就使用超级用户 (如 root) 使用,否则有一些目录(directory) 是没有办法直接访问的,直接打出命令只会出现「存取遭拒」的字样。 例如以一般用户在根目录使用一般用户就没办法建立文件夹,这时就要使用超级用户,先打上 sudo 再输入指令,这时候系统就会要你打管理员的密码,就可以以超级用户的身份执行这个指令。
— — 等等,你应该还没看懂上面这个段落,这里跟大家简单介绍一下「根目录」还有「家目录」的概念。 根目录,一般来说我们用 「/」 的符号表示,表示的是一个文件系统(例如 C 槽)的最上层的目录,就像你进到 C 槽,你就会看到一些系统的文件夹,这时候你在的位置(在 Windows 显示为 C:/)就是 C 槽的根目录。
而《家目录》目前还没提到,但是你一进到终端机就会看到一个 「~」 的符号,这个符号是家目录的意思。 而家目录就是你现在的用户的文件目录,在家目录中存的文件,一般来说就是你的「桌面」、「我的文件」这些文件夹。 到你的桌面的位置,就会是 「~/Desktop」意思是「家目录中的桌面文件夹」。
在终端机的概念中,每个「文件夹」一个目录,因为它就是一个列出在这个硬盘在这个区块所存的文件夹或是文件。
touch,「碰一下」那个文件

第二个介绍的指令是一个有点莫名其妙的指令。 这个指令简单来说是「碰一下」那个文件。 这个指令实际做的事情,例如你输入 touch hello.txt,如果你的这个目录下本来就有 hello.txt 的文件,它就会「碰一下」这个文件,如此一来看到的最新更新时间就会是最新的。 如果是用一些同步的网络硬盘程序,可能就会因为这个「碰一下」的动作,而强迫那个同步程式重新同步你所指定的文件。
但是要是你要「碰一下」的文件原本没有存在在这个目录下的话,它就会马上制造一个文件出来,例如你的目录下本来没有 hello.txt的文件,它就会马上创造一个 hello.txt 的空白文字文件!
「cd、ls」,这里有什么?

在终端机中最常用到的两个指令,应该莫过于cd跟 ls 两个指令了。 cd 是 change directory (更换目录)的简写。 举例来说,如果你在家目录 「~」,你想要更换到子目录「桌面」(Desktop),你就可以用 cd Desktop 或是 cd ~/Desktop 的方式。
而如果你现在在一个目录下,如果你要看到整个目录下「非隐藏文件」的文件的话,最直接的方法就是使用 ls 的指令,终端机就会把这个目录下的能看见得文件跟子目录(文件夹)都列出来了!
mkdir,创造文件夹

好的,既然我们已经知道要怎么列出子目录跟文件,也知道怎么切换目录了,接着要讲的就是要怎么「制造新的目录」,用比较正常人类的语言来说,就是要怎么用终端机「创建文件夹」。
这就要使用 mkdir 的指令了。 使用这个指令最直接的方法,就是直接储存在当前的目录下,这时候只要输入 mkdir (子目录名称)就可以创建文件夹了。 这时候要注意的是,如果在这个目录下你没有我们第一点提到的存取权限,你就会需要用到我们前面提到的sudo指令来访问。
如果你不是要在当前目录创建文件夹,你可以先切换到想要的文件夹,或是直接在 mkdir 后面放上路径,例如 mkdir ~/Pictures/Wallpaper/ ,就会在家目录下的「图片」(Pictures) 目录(文件夹)下,创建一个 Wallpaper 的子目录。
「mv、cp、rm」——移动、复制、删除
知道要怎么创建子目录之后,就是要怎么把文件从一个目录移动到另一个目录了。 这个动作其实相当直观,使用的指令是 mv,基本的动作就是 mv (要移动的东西)(要被移动到的位置)。 举例来说,要把家目录下的桌面上的一个 hello.txt 档移动到上层的家目录中,就可以在桌面目录下使用 mv hello.txt ~ ,或是另一个逻辑下,这边可以使用「上层」的概念,mv ./hello.txt .. /。
在终端机的环境下,“./”表示的是当层目录,“.. /」表示的则是上层目录。 因此上面的那个指令就是把当层目录的文件移动到上层目录的意思。 这个概念同时也常用在前面介绍的 cd 指令下。 如果我现在在 Desktop 目录下,而我要回到家目录,我可以使用 cd ~ 的方式,但是因为桌面文件夹在家目录下面,这边我们也可以使用 cd .. 的方式回到上层目录。
最后 mv 指令也可以用在帮文件更名的时候,例如我要将在桌面上的 hello.txt 文件更名为 heLLo.txt,我就可以使用 mv hello.txt heLLo.txt 的方式,就可以把文件更名了!
类似使用方法的指令还有 cp 是作为复制的功能,「搬运」的使用情况几乎跟 mv 一样。 而rm是用来将一个文件删除,例如删除文件rm hello.txt,或是删除文件夹rm -r folder。
今天的入门篇先到这边,之后再找个机会介绍更深入的使用方法,可能也才能够让大家感受到终端机真正的魅力。