Linux探索之旅 | 第二部分第一课:终端Terminal,好戏上场
《Linux探索之旅》全系列
内容简介
- 第二部分第一课:终端Terminal,好戏上场
- 第二部分第二课预告:命令行,世界尽在掌握
终端Terminal,好戏上场
上一课 Linux探索之旅 | 第一部分测试题 中,我们做了一些简单的测试题。
随着第一部分的结束,我们进入了第二部分(小编你这好像是废话...)。
也许是第一部分有点偏理论,而且安装Linux的发行版Ubuntu系统又比较难概述,所以小编备受折磨之后,有点“青年痴呆”也是正常。
但我向你保证,从这一部分开始,好戏正式上演!
经过第一部分的“洗礼”,我们了解了Linux的历史和很多概念,如何安装Linux,Linux的桌面环境和图形界面是怎样。
也许大家对于Linux系统还是不太适应,特别是使用Windows系统的朋友。
但是不可讳言,我们目前所看到的Linux系统的图形界面和Windows并没有太多不同,浏览器也是点击就打开的,文件夹也是可视化的,安装软件也不是太难。
但是Linux的独特性从这一课才会慢慢显露。如果你是Windows的老用户,你会发现这是一个全新的世界。
而且,很可能你之前并没有这样的经验。或许你会说你用Dos编写过东西,那个不算好吗。
马上要介绍的叫做终端(英语是Terminal)的东西,可以说它的世界是无限广阔的。几乎没有一个人敢说把终端的东西全部学会了,总是会有新东西等待我们去发现。
所谓“一入终端深似海,从此妹子是路人”。
开玩笑啦,学好Linux技术,熟悉终端命令行。
升职加薪,当上总经理,出任CEO,迎娶白富美,走向人生巅峰,指(zi)日可待啊~
为什么要有终端呢?
在正式纵身于终端的“海洋”之前,先来学习一些“救生知识”,以免“溺水”。
毕竟好景还很长,我可不想“眼睁睁地看着你,却无能为力,任你消失在终端的尽头...”。
上图就是一个终端的大致印象。此终端后面的背景还真是一片海洋,好应景...
那么我们首先来考虑这样一些问题:
为什么我们要发明终端,而不是一开始就用图形界面?
毕竟鼠标+图形界面是更直观的嘛。
难道只是为了装高端专业,才故意搞这么复杂,就为了让人觉得信息技术只能由一些内行的人来做么?
为什么没把终端去掉呢?这都过时啦~
都是好问题。我们一一来回答。
Q:为什么我们要发明终端,而不是一开始就用图形界面?
A:这个其实第一部分的第一课我们就已经讲过了。回答是:因为我们没有选择的余地。终端刚被发明出来的时候大概在1970年代初,那是一个即使黑白两色的屏幕都是奢侈的年代,那个时候电脑的计算能力还远远不如我隔壁邻居的姐姐的儿子的哥哥的手中的一个计算器。是的,就是这么艰难。在今天看来再普通不过的五颜六色的图形界面和鼠标操作,其实是需要很高的处理能力的。在当时“黑暗的旧社会”,臣妾实在是做不到啊。因此,终端就成了当时操控电脑的唯一方式。
Q:毕竟鼠标+图形界面是更直观的嘛。
A:是的,我完全同意您的看法。终端确实不如真正的图形界面那么直观。在我们刚开始学信息技术时,肯定是图形界面更容易上手。而且现在Linux下的图形界面(Gnome,Unity,KDE,等)的易用程度也越来越高了,并不比Windows的图形界面难用多少。终端确实是初学者的一个门槛。
Q:难道只是为了装高端专业,才故意搞这么复杂,就为了让人觉得信息技术只能由一些内行的人来做么?
A:一开始,终端中的命令确实会让人不适应。然后你可能会说:“这堆没意义的字母组合不就是为了显示没有多少人能用终端么?”(言下之意就是只有高端的程序员才能使用终端)。然而,完全不是这样的。这样做都是经过信息技术专家深思熟虑的:
终端里的命令更简短,简洁,这都是为了节省时间。我们举个例子,在终端中有一个比较常用的命令 pwd,用于显示当前所在目录。那假如要更直观,我可能得这样写这个命令:inwhichdirectoryamirightnow (这个长单词其实是In which directory am I right now的连写,是英语“我现在在哪个目录里”的意思),写个几百遍你就知道编写这个pwd命令的专家是多么“人道”了。
Q:为什么没把终端去掉呢?这都过时啦。
A:自从图形界面被发明之后,为什么还没删除终端这个陈旧的技术呢?很多人也许都有这个疑问。但要知道,我们学习终端的操作也许比图形界面要花多得多的时间,但是一旦掌握了如何使用终端里的命令,那么常常可以比图形界面更快、更高、更强。而且,有些操作还真的只能依靠终端来完成,求助于图形界面就显得很没意思啦。
举个例子:
在一个目录里,有各种文件类型:文本文件,图片,音频,视频。如果你想知道这里面有多少个JPEG类型的图片。在图形界面下不容易吧?
但是在终端里,直接一句命令搞定:
ls -l | grep jpg | wc -l
显示结果例如:
108
怎么样?短短数秒我们就得到我们想要的答案了。假如是图形界面,能这么快捷吗?
我们还可以把统计的数目存储到一个文本文件(jpeg_nb.txt)里:
ls -l | grep jpg | wc -l > jpeg_nb.txt
我们甚至还可以用一句命令:先统计这个数目,保存到jpeg_nb.txt文件里,再把这个文件用email传给一个朋友。
ls -l | grep jpg | wc -l > jpeg_nb.txt | mail -s "jpeg number" [email protected]
所以说:终端命令行绝不会过时。
你会发现,Linux的终端的命令大部分都和Unix一样,名字一样,用法也基本相同。
这并不是说Linux的命令的源代码是拷贝或者抄袭Unix的,只是功能一样而已,这些Linux命令的源码还是GNU项目的全世界各地的极客们努力写出来的。
之后GNU开源项目就和Linux操作系统内核(由Linus Torvalds编写)合并了,成为了一个完整的操作系统,称为GNU/Linux。
只不过后来人们简称为Linux了。当然,这些在Linux探索之旅 | 开宗明义+第一部分第一课:什么是Linux?中都详述了。
那么,好处是什么呢?
终端的命令几乎没改变过,自从20世纪6,7十年代。
因此,今天一位垂垂老矣的Unix用户,在Linux操作系统中也可以“健步如飞”呢。因为命令基本都是一样的。
而且在未来的很多年中都将是这样。所以说,虽然终端命令行一开始也许花你一些时间来入门,但它是可以吃一辈子的“老本”。这酸爽~ 到了我70岁继续编程赚外快呗。
下一课开始,我们将正式学习终端的命令行了,这些命令在Unix和Linux中几乎是一样的。而且,在基于Unix设计理念的很多其他操作系统里也是一样的。毕竟Unix是“祖字辈”的。
因此,接下去我们学习的各种终端命令,你也可以用在基于修改过的Unix系统的苹果的Mac OS X系统里。
如果你是苹果Mac OS X系统的用户,那么你可以打开一个Unix的终端,来体验一下终端的操作:
前往->实用工具(也可以用快捷键:cmd+shift+U):
点击终端那个图标,就打开了一个终端。
如果你觉得这样太麻烦,你也可以把终端放到桌面上的Dock中,方便下次启动:
真正的终端,有点令人畏惧
那么问题来了:如何在我们目前Ubuntu的桌面环境(Gnome,Unity或KDE)下来打开终端呢?
方法是比较多的。在Linux系统中,我们经常可以通过几种不同的方法来达到同一目的。
首先,我们将介绍一个一般不太会用到的方法:进入真正的终端。
什么是“真正”的呢?
可以说是完全没有图形界面的,就是一个黑乎乎的框子,黑底白字,然后你在里面只能用键盘来输入。
我们可以通过快捷键的组合来快速地进入真正的终端。
不过,在开始之前,请先了解如何从这些真正的终端里退出来,回到我们的Ubuntu桌面。
不然您可能会很囧...
假定目前你所在的是Ubuntu的桌面中,如下图,是在Unity桌面当中
我们将���用组合快捷键来进入到被称为tty的终端里(也称为控制台(英语是Console))。
什么是tty呢?
在Linux中,TTY也许是跟终端有关系的最为混乱的术语。
TTY是TeleTYpe的一个缩写。Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘阅读和发送信息的东西,和古老的电报机区别并不是很大。
之后,当计算机只能以批处理方式运行时(当时穿孔卡片阅读器是唯一能使程序载入运行的方式),电传打字机成为唯一能够被使用的“实时”输入/输出设备。最终,电传打字机被键盘和显示器终端所取代。
控制台(Console)
在Linux 系统中,计算机显示器通常被称为控制台终端(Console)。
它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。
当你在控制台上登录时,使用的是tty0。使用Ctrl+Alt+[F1-F6]组合键时,我们就可以切换到tty1、tty3等上面去。
tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)。
因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。只有在单用户模式下,才允许用户登录控制台。
也许定义比较抽象,不过并不需要大家太理解这块内容。
登录TTY的这些快捷键是:
Ctrl + Alt + F1 : terminal 1 (tty1)
Ctrl + Alt + F2 : terminal 2 (tty2)
Ctrl + Alt + F3 : terminal 3 (tty3)
Ctrl + Alt + F4 : terminal 4 (tty4)
Ctrl + Alt + F5 : terminal 5 (tty5)
Ctrl + Alt + F6 : terminal 6 (tty6)
Ctrl + Alt + F7 : 回到图形界面(感谢上帝~)
所以一共有6个控制台可供选择。
在你开始测试前,一定要记得如何离开真正的黑乎乎的终端噢:
按Ctrl + Alt + F7三个键。
你可以任选一个终端进入,比如说我们要进入terminal 1,那么就可以使用快捷键组合:Ctrl + Alt + F1
你的屏幕可能会闪烁几下,不要害怕。然后你就进入真正的终端啦,如下图:
真是“一夜回到解放前,乌漆麻黑一大片”。在使用此终端前,需要先登录。
输入你之前安装Ubuntu时注册的用户名,回车:
再输入你的密码(在你输入密码的时候,屏幕是不会显示你输入的任何内容的,连星号也没有),回车。就可以使用tty1了。
你也可以用类似的方式进入其他终端(一共有六个同时存在的终端,tty1~tty6)。
好了,现在,演示完毕,我们可以退出此终端了,按下:Ctrl + Alt + F7
我们就回到了我们的图形界面桌面。
真正的终端还是很有用的,虽然对于初学者来说有点吓人。不过要知道,很多基于Linux的服务器是没有图形界面的,所有的操作也就是在这么个黑色的大框子里进行。
而且有时候当我们的电脑出了问题之后,需要在真正的终端里解决问题。
图形模式的终端
受了点“真正”终端界面的小刺激之后,我们来看看我们目前通常使用的终端模式。即使是最疯狂的Linux用户也更喜欢使用图形模式下的终端。
原因有很多:
图形模式的终端更加亲民,而且你使用终端的时候,还可以使用其他图形界面的应用程序,比如使用聊天软件和朋友聊天等。
屏幕分辨率更大,所以我们可以在终端里显示更多的内容。
我们可以自定义终端的外观,甚至给它换个背景。
我们还可以用鼠标(是的,在图形模式的终端里,鼠标也可以派上用场)来复制,粘贴文本等。
因此,我们在之后的课程中都会继续使用图形模式的终端。
那么,如何打开一个图形模式的终端呢?
如果你是在Unity桌面下,那么可以调出系统搜索框。Ubuntu 14.04 有一个被称作 Super 键的功能键,其实就是 Windows 系统中的 Win 功能键。
也就是大多数键盘上那个带有微软徽标的按键,只不过在 Ubuntu 系统中被称作 Super 键。按下这个键与用鼠标点击桌面左上角那个 Ubuntu 徽标按钮的效果是一样的。
可以看到 Super 键的功能其实就是一个搜索框,可以搜索电脑和网络上各种软件、资料和一切你需要的东西。
然后你再搜索框中输入“terminal”,就可以看到终端被找出来了:
你可以将 “Terminal” 锁定在任务栏或者放在桌面成为快捷方式,这样以后就不需要每次都通过 Super 键来启动。
可以用快捷键来调出终端:Ctrl + Alt + T。当然你也可以在快捷方式里自己修改调出终端的快捷方式组合,不一定要用系统默认的。
总结
- Linux终端是个奇妙的东西,一开始它的低颜值,高难度可能会令我们灰心气馁。
- 但是入门之后,你会发现终端命令行是如此强大,简直飞一般的感觉。就是这个feel,倍儿爽~ 享受“弹指间,一切尽在掌握”的感觉。
- 而且终端可以帮助我们完成一些图形界面做不到的工作,且能化繁为简。
- 虽然我们可以借助快捷键(Ctrl + Alt + F1 ~ F6)来进入tty1 ~ tty6这六个真正的全屏幕的终端,但是我们平时还是比较常用图形模式的终端。
第二部分第二课预告
今天的课就到这里,一起加油吧!
下一课我们学习:Linux探索之旅 | 第二部分第二课:命令行,世界尽在掌握