仅从字面上看,可能无法理解“终端机”(Terminal)的含义。其实这是一个来自20世纪的名词。那个时代的计算机很贵,不像现在几乎每个人都有计算机可以用(有的人可能还不止一台)。公司内部通常会有一台大型的计算机主机,谁要使用这台计算机,需要自己拿着显示器和键盘去接,然后在上面操作,这些末端的操作设备便统称为“终端机”。终端机本身通常不是一台计算机,它没有运算能力,仅用来显示数据及输入数据,所有的计算都是在主机上进行的。而现在所说的终端机,大多是指计算机程序员用于操作程序代码的窗口,如图3-1所示。
图3-1
其实终端机就是供使用者输入命令、与计算机进行交互的。大家看到的画面应该与我的不一样,因为这是我定制的终端机设置。
如要在macOS操作系统中开启终端机,可以单击右上角的“放大镜”按钮,搜索“terminal”,结果如图3-2所示。
图3-2
在搜索结果中找到并启动它。
而在Windows操作系统中,按“Windows+X”组合键,在弹出的菜单中选择“命令提示符”选项,即可进入一个类似终端机的窗口。
如果在Windows操作系统中使用Git,在安装完Git for Windows套件之后,便会有一个Git CMD或Git Bash程序可以使用,它可以让你比较顺利地使用Git命令。
在学习Git的过程中,很多命令都是在终端机环境下操作的。大部分初学者习惯使用图形界面工具,而不熟悉命令该如何输入,或者输入的命令是什么意思,这是让新手觉得困难的地方。表3-1中介绍了几个在终端机环境下常用的系统命令。
表3-1 终端机环境下常用的命令
不同的操作系统,命令也会不太一样。下面在macOs/Linux操作系统中使用这些命令。
1. 目录切换及显示
在使用Git时,命令要在正确的目录下才能正常运行,所以学会目录的切换是很重要的。
# 切换到 /tmp目录(绝对路径) $ cd /tmp # 切换到my_project目录(相对路径) $ cd my_project # 往上一层目录移动 $ cd .. # 切换到使用者的home / project 下的namecards 目录 # 这个 "~" 符号表示home 目录 $ cd ~/project/namecards/ # 显示当前所在目录 $ pwd /tmp
如果是在Windows操作系统中,命令如下。
# 切换到D槽的5xruby 目录(绝对路径) C:\> cd D:\5xruby # 切换到5xruby 目录(相对路径) D:\> cd 5xruby # 往上一层目录移动 D:\5xruby> cd .. # 显示当前所在目录 D:\5xruby> cd D:\5xruby
2. 文件列表
ls命令可列出当前目录下的所有文件及目录。后面接的-al参数中,a是指以小数点开头的文件(如.gitignore)也会显示,l则是完整文件的权限、所有者,以及创建、修改的时间。
$ ls -al total 56 drwxr-xr-x 18 user wheel 612 Dec 18 02:20 . drwxrwxrwt 24 root wheel 816 Dec 18 02:19 .. -rw-r--r-- 1 user wheel 543 Dec 18 02:19 .gitignore -rw-r--r-- 1 user wheel 1729 Dec 18 02:19 Gemfile -rw-r--r-- 1 user wheel 4331 Dec 18 02:20 Gemfile.lock -rw-r--r-- 1 user wheel 374 Dec 18 02:19 README.md -rw-r--r-- 1 user wheel 227 Dec 18 02:19 Rakefile drwxr-xr-x 10 user wheel 340 Dec 18 02:19 app drwxr-xr-x 8 user wheel 272 Dec 18 02:20 bin drwxr-xr-x 14 user wheel 476 Dec 18 02:19 config -rw-r--r-- 1 user wheel 130 Dec 18 02:19 config.ru drwxr-xr-x 4 user wheel 136 Dec 18 02:41 db drwxr-xr-x 4 user wheel 136 Dec 18 02:19 lib drwxr-xr-x 4 user wheel 136 Dec 18 02:23 log drwxr-xr-x 9 user wheel 306 Dec 18 02:19 public drwxr-xr-x 9 user wheel 306 Dec 18 02:19 test drwxr-xr-x 7 user wheel 238 Dec 18 02:23 tmp drwxr-xr-x 3 user wheel 102 Dec 18 02:19 vendor
3. 创建文件、目录
$ touch index.html
如果index.html文件本来不存在,touch命令会创建一个名为index.html的空白文件;如果index.html文件本来就已经存在,则touch命令只会改变该文件的最后修改时间,不会改动原本的内容。
$ mkdir demo
mkdir命令会在当前所在目录下创建一个名为demo的目录。
4. 文件操作
复制文件index.html,并将副本命名为about.html:
$ cp index.html about.html
把文件index.html更名为info.html:
$ mv index.html info.html
刪除文件index.html:
$ rm index.html
删除这个目录中所有的.html文档:
$ rm *.html
在Windows操作系统下,则需把cp、mv及rm命令分别替换为copy、move及del命令。
这些命令看起来很难,但不用担心,在学习过程中用到的Git命令其实都不会太复杂,多试几次就能上手,不要因为命令输入错误就有失败感。
另外,在运行命令后,不管成功或失败,通常都会有消息显示在界面上。对于这些消息,切勿一带而过,务必要仔细阅读(最好把它念出来)。很多新手一看到信息就以为命令运行成功了,但事实上可能是错误信息。
不要害怕输入命令,不要害怕错误信息,加油!