内容简介

1、第二部分第一课:终端Terminal,好戏上场

2、第二部分第二课预告:命令行,世界尽在掌握


终端Terminal,好戏上场

随着第一部分的结束,我们进入了第二部分(小编你这好像是废话...)。

也许是第一部分有点偏理论,而且安装Linux的发行版Ubuntu系统又比较难概述,所以小编备受折磨之后,有点“青年痴呆”也是正常。

但我向你保证,从这一部分开始,好戏正式上演!

经过第一部分的洗礼,我们了解了Linux的历史和很多概念,如何安装Linux,Linux的桌面环境和图形界面是怎样。

也许大家对于Linux系统还是不太适应,特别是使用过Windows系统的朋友。

但是不可讳言,我们目前所看到的Linux系统的图形界面和Windows并没有太多不同,浏览器也是点击就打开的,文件夹也是可视化的,安装软件也不是太难。

但是Linux的独特性从这一课才会慢慢显露。如果你是Windows的老用户,你会发现这是一个全新的世界。而且,很可能你之前并没有这样的经验,或许你会说你用Dos编写过东西,那个不算好吗。

马上要介绍的叫做终端(英语是Terminal)的东西,可以说它的世界是无限广阔的。几乎没有一个人敢说把终端的东西全部学会了,总是会有新东西等待我们去发现。

所谓“一入终端深似海,从此妹子是路人”。

开玩笑啦,学好Linux技术,熟悉终端命令行,迎娶白富美,走向人生巅峰不是难事。


为什么要有终端呢?

在正式纵身于终端的海洋之前,先来学习一些“救生知识”,以免“溺水”。

毕竟好景还很长,我们可不想“眼睁睁地看着你,却无能为力,任你消失在终端的尽头...”。

上图就是一个终端的大致印象。此终端后面的背景还真是一片海洋,好应景...

那么我们首先来考虑这样一些问题:

《为什么我们要发明终端,而不是一开始就用图形界面?

毕竟鼠标+图形界面是更直观的嘛。

难道只是为了装高端专业,才故意搞这么复杂,就为了让人觉得信息技术只能由一些内行的人来做么?

为什么没把终端去掉呢?这都过时啦。》

都是好问题。我们一一来回答。

Q:为什么我们要发明终端,而不是一开始就用图形界面?

A:这个其实第一部分的第一课我们就已经讲过了。回答是:因为我们没有选择的余地。终端刚被发明出来的时候是大概在1970年代初,那是一个即使黑白两色的屏幕都是奢侈的年代,那个时候电脑的计算能力还远远不如我隔壁邻居的姐姐的儿子的哥哥的手中的一个计算器。是的,就是这么艰难。在今天看来再普通不过的五颜六色的图形界面和鼠标操作,其实是需要很高的处理能力的。在当时“黑暗的旧社会”,臣妾实在是做不到啊。因此,终端就成了当时操控电脑的唯一方式。

Q:毕竟鼠标+图形界面是更直观的嘛。

A:是的,我完全同意您的看法。终端确实不如真正的图形界面那么直观。在我们刚开始学信息技术时,肯定是图形界面更容易上手。而且现在Linux下的图形界面(Gnome,Unity,KDE,等)的易用程度也越来越高了,并不比Windows的图形界面难用多少。终端确实是初学者的一个门槛。

Q:难道只是为了装高端专业,才故意搞这么复杂,就为了让人觉得信息技术只能由一些内行的人来做么?

A:一开始,终端中的命令确实会让人不适应。然后你可能会说:“这堆没意义的字母组合不就是为了显示没有多少人能用终端么?”(言下之意就是只有高端的程序员才能使用终端)。然而,完全不是这样的。这样做都是经过信息技术专家深思熟虑的:

  1. 终端里的命令更简短,简洁:这都是为了节省时间。我们举个例子,在终端中有一个比较常用的命令 pwd,用于显示当前所在目录。那假如要更直观,我可能得这样写这个命令:inwhichdirectoryamirightnow (我现在在哪个目录里),写个几百遍你就知道发明这个pwd命令的专家是多么人道了。

Q:为什么没把终端去掉呢?这都过时啦。

A:自从图形界面被发明之后,为什么还没删除终端这个陈旧的技术呢?很多人也许都有这个疑问。但要知道,我们学习终端的操作也许比图形界面要花多得多的时间,但是一旦掌握了如何使用终端里的命令,那么常常可以比图形界面更快,更高,更强。而且,有些操作还真的只能依靠终端来完成,求助于图形界面就显得很没意思啦。

举个例子:

在一个目录里,有各种文件类型:文本文件,图片,音频,视频。如果你想知道这里面有多少个JPEG类型的图片。在图形界面下不容易吧?

但是在终端里,直接一句命令搞定:

ls -l | grep jpg | wc -l

显示结果例如:

108

怎么样?短短数秒我们就得到我们想要的答案了。假如是图形界面,能这么快捷吗?

我们还可以把统计的数目存储到一个文本文件里:

ls -l | grep jpg | wc -l > jpeg_nb.txt

我们甚至还可以用一句命令:先统计这个数目,保存到jpeg_nb.txt文件里,再把这个文件用email传给一个朋友。

所以说:终端命令行绝不会过时。

你会发现,Linux的终端的命令大部分都和Unix一样,名字一样,用法也基本相同。这并不是说Linux的命令的源代码是拷贝或者抄袭Unix的,只是功能一样而已,这些Linux命令的源码还是辛勤的GNU项目的全世界各地的极客们努力写出来的。

之后GNU开源项目就和Linux操作系统内核(由Linus Torvalds编写)合并了,成为了一个完整的操作系统,称为GNU/Linux。只不过后来人们简称为Linux了。当然,这些在第一部分第一课中都详述了。

那么,好处是什么呢?

终端的命令几乎没改变过,自从20世纪6,7十年代。因此,今天一位垂垂老矣的Unix用户,在Linux操作系统中也可以“健步如飞”呢。因为命令基本都是一样的。而且在未来的很多年中都将是这样。所以说,虽然终端命令行一开始也许花你一些时间来入门,但它是可以吃一辈子的老本。这酸爽~ 到了我70岁再去编程赚外快呗。

下一课开始,我们将正式学习终端的命令行了,这些命令在Unix和Linux中几乎是一样的。而且,在基于Unix设计理念的很多其他操作系统里也是一样的。毕竟Unix是祖字辈的。

因此,接下去我们学习的各种终端命令,你也可以用在基于Unix系统的苹果的Mac OS X系统里。

如果你是苹果Mac OS X系统的用户,那么你可以打开一个Unix的终端,来体验一下终端的操作:

  1. 前往->实用工具(也可以用快捷键:cmd+shift+U):

  2. 点击终端那个图标,就打开了一个终端。

如果你觉得这样太麻烦,你也可以把终端放到桌面上的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的这些快捷键是:

  1. Ctrl + Alt + F1 : terminal 1 (tty1)

  2. Ctrl + Alt + F2 : terminal 2 (tty2)

  3. Ctrl + Alt + F3 : terminal 3 (tty3)

  4. Ctrl + Alt + F4 : terminal 4 (tty4)

  5. Ctrl + Alt + F5 : terminal 5 (tty5)

  6. Ctrl + Alt + F6 : terminal 6 (tty6)

  7. Ctrl + Alt + F7 : 回到图形界面(感谢上帝~)

所以一共有6个控制台可供选择。

在你开始测试前,一定要记得如何离开真正的黑乎乎的终端噢:按Ctrl + Alt + F7三个键。

你可以任选一个终端进入,比如说我们要进入terminal 1,那么就可以使用快捷键组合:Ctrl + Alt + F1

你的屏幕可能会闪烁几下,不要害怕。然后你就进入真正的终端啦,如下图:

真是“一夜回到解放前,乌漆麻黑一大片”。在使用此终端前,需要先登录。

输入你之前安装Ubuntu时注册的用户名,回车:

再输入你的密码(在你输入密码的时候,屏幕是不会显示你输入的任何内容的,连星号也没有),回车。就可以使用tty1了。

你也可以用类似的方式进入其他终端(一共有六个同时存在的终端,tty1~tty6)。

好了,现在,演示完毕,我们可以退出此终端了,按下:Ctrl + Alt + F7

我们就回到了我们的图形界面桌面。

真正的终端还是很有用的,虽然对于初学者来说有点吓人。不过要知道,很多基于Linux的服务器是没有图形界面的,所有的操作也就是在这么个黑色的大框子里进行。

而且有时候当我们的电脑出了问题之后,需要在真正的终端里解决问题。


图形模式的终端

受了点“真正”终端界面的小刺激之后,我们来看看我们目前通常使用的终端模式。即使是最疯狂的Linux用户也更喜欢使用图形模式下的终端。

原因有很多:

  1. 图形模式的终端更加亲民,而且你使用终端的时候,还可以使用其他图形界面的应用程序,比如使用聊天软件和朋友聊天等。

  2. 屏幕分辨率更大,所以我们可以在终端里显示更多的内容。

  3. 我们可以自定义终端的外观,甚至给它换个背景。

  4. 我们还可以用鼠标(是的,在图形模式的终端里,鼠标也可以派上用场)来复制,粘贴文本等。

因此,我们在之后的课程中都会继续使用图形模式的终端。

那么,如何打开一个图形模式的终端呢?

  1. 如果你是在Unity桌面下,那么可以调出系统搜索框。Ubuntu 14.04 有一个被称作 Super 键的功能键,其实就是 Windows 系统中的 Win 功能键。也就是大多数键盘上那个带有微软徽标的按键,只不过在 Ubuntu 系统中被称作 Super 键。按下这个键与用鼠标点击桌面左上角那个 Ubuntu 徽标按钮的效果是一样的。可以看到 Super 键的功能其实就是一个搜索框,可以搜索电脑和网络上各种软件、资料和一切你需要的东西。然后你再搜索框中输入“terminal”,就可以看到终端被找出来了:

    你可以将 “Terminal” 锁定在任务栏或者放在桌面成为快捷方式,这样以后就不需要每次都通过 Super 键来启动。

  2. 可以用快捷键来调出终端:Ctrl + Alt + T。当然你也可以在快捷方式里自己修改调出终端的快捷方式组合,不一定要用系统默认的。


总结

  1. 终端是个奇妙的东西,一开始它的低颜值,高难度可能会令我们灰心气馁。但是入门之后,你会发现终端命令行是如此强大,简直飞一般的感觉。而且终端可以帮助我们完成一些图形界面做不到的工作,且能化繁为简。

  2. 虽然我们可以借助快捷键(Ctrl + Alt + F1 ~ F6)来进入tty1 ~ tty6这六个真正的全屏幕的终端,但是我们平时还是最常用图形模式的终端。


第二部分第二课预告

今天的课就到这里,一起加油吧!

下一课我们学习:命令行,世界尽在掌握

【Linux探索之旅】第二部分第一课:终端Terminal,好戏上场的更多相关文章

  1. 【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?

    内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢!   开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱 ...

  2. 【Linux探索之旅】第二部分第二课:命令行,世界尽在掌握

    内容简介 1.第二部分第二课:命令行,世界尽在掌握 2.第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:“小编,你为什么每次都要起这么非主 ...

  3. 【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见

    内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是 ...

  4. 【C语言探索之旅】 第二部分第一课:模块化编程

    内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...

  5. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 .第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的吗 ...

  6. 【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕

    内容简单介绍 1.第二部分第一课:面向对象初探.string的惊天内幕 2.第二部分第二课预告:掀起了"类"的盖头来(一) 面向对象初探,string的惊天内幕 上一课<[C ...

  7. 【Linux探索之旅】第一部分第六课:Linux如何安装在虚拟机中

    内容简介 1.第一部分第六课:Linux如何安装在虚拟机中 2.第二部分第一课预告:终端Terminal,好戏上场 Linux如何安装在虚拟机中 虽然我们带大家一起在电脑的硬盘上安装了Ubuntu这个 ...

  8. 【Web探索之旅】第二部分第一课:客户端语言

    内容简介 1.第二部分第一课:客户端语言 2.第二部分第二课预告:服务器语言 第二部分:Web编程语言和工具 大家好.上一个部分我们学习了Web的一些基本概念: 什么是Web? Internet和We ...

  9. 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?

    内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的, ...

随机推荐

  1. Linux查看硬盘使用时间等信息

    查看硬盘信息的很多命令,都需要root权限,如果普通用户无法看到信息,请切换至root: 1.查看硬盘使用时间等信息 硬盘使用时间很重要,硬盘理论寿命是3万小时以上 $ sudo smartctl - ...

  2. poj 1220 NUMBER BASE CONVERSION(短除法进制转换)

    题目连接:1220 NUMBER BASE CONVERSION 题目大意:给出两个进制oldBase 和newBase, 以及以oldBase进制存在的数.要求将这个oldBase进制的数转换成ne ...

  3. CF 518D(概率dp)

    传送门:Ilya and Escalator 题意:有n个人排队进车厢,每秒只能进一个人,而且第1个人进了后面的人才能进,第一个人每秒进入车厢的概率为p,不进的概率为1-p,求t秒后进入车厢总人数的数 ...

  4. CentOS Kernel Source Install

    http://linuxmoz.com/centos-kernel-source-install/

  5. Linux中进行挂起(待机)的命令说明

    /*********************************************************************  * Author  : Samson  * Date   ...

  6. 为什么使用 React? Edit on GitHub

    为什么使用 React? React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库.很人多认为 React 是 MVC 中的 V(视图). 我们创造 ...

  7. a标签中调用js的几种方法

    1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议 ...

  8. 提高SQL执行效率

    原文地址:http://www.cnblogs.com/hlxs/archive/2012/05/07/2487082.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ...

  9. Android编程之LayoutInflater的inflate方法实例

    假设你不关心其内部实现,仅仅看怎样使用的话,直接看这篇就可以. 接上篇,接下来,就用最最简单的样例来说明一下: 用两个布局文件main 和 test: 当中,main.xml文件为: <?xml ...

  10. Java4Android之BlockingQueue

    在研究Smack的源码的时候,我对它的连接Connection以及派生类XMPPConnection的关注是最多的,由于一个即时通信程序,它的网络模块必是它的核心. 而我非常在乎它是怎样实现的. 在收 ...