第 2 章 走进 shell

本章内容

  • 访问命令行
  • 通过Linux控制台终端访问CLI
  • 通过图形化终端仿真器访问CLI
  • 使用GNOME终端仿真器
  • 使用Konsole终端仿真器
  • 使用xterm终端仿真器

在Linux早期,可以用来工作的只有shell。那时,系统管理员、程序员和系统用户都端坐在Linux控制台终端前,输入shell命令,查看文本输出。如今,伴随着图形化桌面环境的应用,想在系统中找到shell提示符来输入命令都变得困难起来。本章讨论了如何进入命令行环境,带你逐步了解可能会在各种Linux发行版中碰到的终端仿真软件包。

2.1 进入命令行

在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell所提供的文本命令行界面(command line interface,CLI)。CLI只能接受文本输入,也只能显示出文本和基本的图形输出。
由于这些限制,输出设备并不需要多华丽。通常只需要一个简单的哑终端就可以使用Unix 系统。所谓的哑终端无非就是利用通信电缆(一般是一条多线束的串行电缆)连接到Unix系统上的一台显示器和一个键盘。这种简单的组合可以轻松地向Unix系统中输入文本数据,并查看文本输出结果。
如你所知,如今的Linux环境相较以前已经发生了巨大变化。所有的Linux发行版都配备 了某种类型的图形化桌面环境。但是,如果想输入shell命令,仍旧需要使用文本显示来访问shell的CLI。于是现在的问题就归结为一点:有时还真是不容易在Linux发行版上找到进入CLI 的方法。

2.1.1 控制台终端

进入CLI的一种方法是让Linux系统退出图形化桌面模式,进入文本模式。这样在显示器上就只有一个简单的shell CLI,跟图形化桌面出现以前一样。这种模式称作Linux控制台,因为它仿真了早期的硬接线控制台终端,而且是一种同Linux系统交互的直接接口。
2
Linux系统启动后,它会自动创建出一些虚拟控制台。虚拟控制台是运行在Linux系统内存中的终端会话。无需在计算机上连接多个哑终端,大多数Linux发行版会启动5~6个(有时会更多) 虚拟控制台,你在一台计算机的显示器和键盘上就可以访问它们。

2.1.2 图形化终端

除了虚拟化终端控制台,还可以使用Linux图形化桌面环境中的终端仿真包。终端仿真包会在一个桌面图形化窗口中模拟控制台终端的使用。图2-1展示了一个运行在Linux图形化桌面环境中的终端仿真器。
第 2 章 走进 shell - 图1
图2-1 运行在Linux桌面上的终端仿真器
图形化终端仿真只负责Linux图形化体验的一部分。完整的体验效果需要借助多个组件来实现,其中就包括图形化终端仿真软件(称为客户端)。表2-1展示了Linux图形化桌面环境的不同组成部分。
表2-1 图形界面的组成

名 称 例 子 描 述
客户端 图形化终端仿真器,桌面环境,网络浏览器 请求图形化服务的应用
显示服务器 Mir,Wayland Compositor,Xserver 负责管理显示(屏幕)和输入设备(键盘、鼠标、触 摸屏)
窗口管理器 Compiz,Metacity,Kwin 为窗口加入边框,提供窗口移动和管理功能
部件库 Athenal(Xaw),X Intrinsics 为桌面环境中的客户端添加菜单以及外观项

要想在桌面中使用命令行,关键在于图形化终端仿真器。可以把图形化终端仿真器看作GUI 中(in the GUI)的CLI终端,将虚拟控制台终端看作GUI以外(outside the GUI)的CLI终端。理解各种终端及其特性能够提高你的命令行体验。

2.2 通过 Linux 控制台终端访问 CLI

在Linux的早期,在启动系统时你只会在显示器上看到一个登录提示符,除此之外就没别的了。之前说过,这就是Linux控制台。它是唯一可以为系统输入命令的地方。
尽管在启动时会创建多个虚拟控制台,但很多Linux发行版在完成启动过程之后会切换到图形化环境。这为用户提供了图形化登录以及桌面体验。这样一来,就只能通过手动方式来访问虚拟控制台了。
在大多数Linux发行版中,你可以使用简单的按键组合来访问某个Linux虚拟控制台。通常必须按下Ctrl+Alt组合键,然后按功能键(F1~F7)进入要使用的虚拟控制台。功能键F1生成虚拟控制台1,F2键生成虚拟控制台2,F3键生成虚拟控制台3,F4键生成虚拟控制台4,依次类推。

说明 Linux发行版通常使用Ctrl+Alt组合键配合F1或F7来进入图形界面。Ubuntu使用F7,而RHEL则使用F1。最好还是测试一下自己所使用的发行版是如何进入图形界面的。

文本模式的虚拟控制台采用全屏的方式显示文本登录界面。图2-2展示了一个虚拟控制台的文本登录界面。
第 2 章 走进 shell - 图2
图2-2 Linux虚拟控制台登录界面
注意,在图2-2中第一行文本的最后有一个词tty2。这个词中的2表明这是虚拟控制台2,可以通过Ctrl+Alt+F2组合键进入。tty代表电传打字机(teletypewriter)。这是一个古老的名词,指的是一台用于发送消息的机器。

说明 不是所有的Linux发行版都会在登录界面上显示虚拟控制台的tty号。

在login:提示符后输入用户ID,然后再在Password:提示符后输入密码,就可以进入控制台终端了。如果你之前从来没有用过这种方式登录,那要注意在这里输入密码和在图形环境中输入不太一样。在图形环境中,输入密码的时候会看到点号或星号,但是在虚拟控制台中,输入密码的时候什么都不会显示。
2
登入虚拟控制台之后,你就进入了Linux CLI。记住,在Linux虚拟控制台中是无法运行任何图形化程序的。
一旦登录完成,你可以保持此次登录的活动状态,然后在不中断活动会话的同时切换到另一个虚拟控制台。你可以在所有虚拟控制台之间切换,拥有多个活动会话。在使用CLI时,这个特性为你提供了巨大的灵活性。
还有一些灵活性涉及虚拟控制台的外观。尽管虚拟控制台只是文本模式的控制台终端,但你可以修改文字和背景色。
比如可将终端的背景色设置成白色、文本设置成黑色,这样可让眼睛轻松些。登录之后,有好几种方法可实现这样的修改。其中一种方法是输入命令setterm -inversescreen on,然后按回车键,如图2-3所示。注意,在途中我们使用选项on启用了inversescreen特性。也可以使用选项off关闭该特性。
第 2 章 走进 shell - 图3
图2-3 启用了inversescreen的Linux虚拟控制台
另一种方法是连着输入两条命令。输入setterm –background white,然后按回车键, 接着输入setterm –foreground black,再按回车键。要注意,因为先修改的是终端的背景色,所以可能会很难看清接下来输入的命令。
在上面的命令中,你不用像inversescreen那样去启用或关闭什么特性。共有8种颜色可供选择,分别是black、red、green、yellow、blue、magenta、cyan和white(这种颜色在有些发行版中看起来像灰色)。你可以赋予纯文本模式的控制台终端富有创意的外观效果。表2-2 展示了setterm命令的一些选项,可以用于增进控制台终端的可读性,或改善外观。

表2-2 用于设置前景色和背景色的setterm选项

选 项 参 数 描 述
-background black 、red 、green 、yellow 、blue 、magenta、cyan或white 将终端的背景色改为指定颜色
-foreground black 、red 、green 、yellow 、blue 、
magenta、cyan或white
将终端的前景色改为指定颜色
-inversescreen on或off 交换背景色和前景色
-reset 将终端外观恢复成默认设置并清屏
-store 将终端当前的前景色和背景色设置成-reset选项的值

如果不涉及GUI,虚拟控制台终端访问CLI自然是不错的选择。但有时候需要一边访问CLI, 一边运行图形化程序。使用终端仿真软件包可以解决这个问题,这也是在GUI中访问shell CLI的一种流行的方式。接下来的部分将介绍能够提供图形化终端仿真的常见软件包。

2.3 通过图形化终端仿真访问 CLI

相较于虚拟化控制台终端,图形化桌面环境提供了更多访问CLI的方式。在图形化环境下, 有大量可用的图形化终端仿真器。每个软件包都有各自独特的特性及选项。表2-3列举出了一些流行的图形化终端仿真器软件包及其网址。
表2-3 流行的图形化终端仿真器软件包

名 称 网 址
Eterm http://www.eterm.org
Final Term http://finalterm.org
GNOME Terminal https://help.gnome.org/users/gnome-terminal/stable
Guake https://github.com/Guake/guake
Konsole Terminal http://konsole.kde.org
LillyTerm http://lilyterm.luna.com.tw/index.html
LXTerminal http://wiki.lxde.org/en/LXTerminal
mrxvt https://code.google.com/p/mrxvt
ROXTerm http://roxterm.sourceforge.net
rxvt http://sourceforge.net/projects/rxvt
rxvt-unicode http://software.schmorp.de/pkg/rxvt-unicode
Sakura https://launchpad.net/sakura
st http://st.suckless.org
Terminator https://launchpad.net/terminator
Terminology http://www.enlightenment.org/p.php?p=about/terminology
tilda http://tilda.sourceforge.net/tildaabout.php
UXterm http://manpages.ubuntu.com/manpages/gutsy/man1/uxterm.1.html
Wterm http://sourceforge.net/projects/wterm
xterm http://invisible-island.net/xterm
Xfce4 Terminal http://docs.xfce.org/apps/terminal/start
Yakuake http://extragear.kde.org/apps/yakuake

尽管可用的图形化终端仿真器软件包不少,但本章只重点关注其中常用的三个。它们分别是GNOME Terminal、Konsole Terminal和xterm,通常都会默认安装在Linux发行版中。

2.4 使用 GNOME Terminal 仿真器

GNOME Terminal是GNOME桌面环境的默认终端仿真器。很多发行版,如RHEL、Fedora和CentOS,默认采用的都是GNOME桌面环境,因此GNOME Terminal自然也就是默认配备了。不过其他一些桌面环境,比如Ubuntu Unity,也采用GNOME Terminal作为默认的终端仿真软件包。它使用起来非常简单,是Linux新手的不错选择。这部分将带你学习如何访问、配置和使用GNOME 终端仿真器。

2.4.1 访问 GNOME Terminal

每个图形化桌面环境都有不同的方式访问GNOME终端仿真器。本节讲述了如何在GNOME、Unity和KDE桌面环境中访问GNOME Terminal。

说明 如果你使用的桌面环境并没有在表2-3中列出,那你就得逐个查看桌面环境中的各种菜单来找到GNOME终端仿真器。它在菜单中通常叫作Terminal。

在GNOME桌面环境中,访问GNOME Terminal非常直截了当。找到左上角的菜单,点击Applications,从下拉菜单中选择System Tools,点击Terminal。如果写成简写法的话,这一系列操作就像这样:Applications ➪ System Tools ➪ Terminal。
图2-1就是一张GNOME Terminal的图片。它展示了在CentOS发行版的GNOME桌面环境中访问GNOME Terminal。
在Unity桌面环境中,访问GNOME终端得费点事。最简单的方法是Dash ➪ Search,然后输入Terminal。GNOME终端会作为一个名为Terminal的应用程序显示在Dash区域。点击对应的图标就可以打开GNOME终端仿真器了。

窍门在一些Linux发行版的桌面环境中,例如Ubuntu的Unity,可以使用快捷键Ctrl+Alt+T快速访问GNOME终端。

在KDE桌面环境中,默认的仿真器是Konsole终端仿真器。必须通过菜单才能访问。找到屏幕左下角名为Kickoff Application Launcher的图标,然后依次点击Application ➪ Utilities ➪ Terminal。
在大多数桌面环境中,可以创建一个启动器(launcher)访问GNOME Terminal。启动器是桌面上的一个图标,可以利用它启动一个选定的应用程序。这是个很棒的特性,可以让你在桌面环境中快速访问终端仿真器。如果不想使用快捷键或是你的桌面环境中无法使用快捷键,这个特性就尤为有用。
例如,在GNOME桌面环境中,要创建一个启动器的话,可以在桌面中间单击右键,在出现的下拉菜单中选择Select Create Launcher…,然后会打开一个名为Create Launcher的窗口。在Type 字段中选择Application 。在Name字段中输入图标的名称。在Command 字段中输入gnome- terminal。点击Ok,保存为新的启动器。一个带有指定名称图标的启动器就出现在了桌面上。双击就可以打开GNOME终端仿真器了。

说明 在Command字段中输入gnome-terminal时,输入的实际上是用来启动GNOME终端仿真器的shell命令。在第3章中会学到如何为gnome-terminal这类命令加入特定的命令行选 项来获得特殊的配置,以及如何查看可用的选项。

在GNOME终端仿真器应用中,菜单提供了多种配置选项,应用本身也包含了很多可用的快捷键。了解这些选项能够增进GNOME Terminal CLI的使用体验。

2.4.2 菜单栏

GNOME Terminal的菜单栏包含了配置选项和定制选项,可以通过它们使你的GNOME Terminal符合自己的使用习惯。接下来的几张表格简要地描述了菜单栏中各种配置选项以及对应的快捷键。

说明 在阅读书中所描述的这些GNOME Terminal菜单选项时,要注意的是,这和你所使用的Linux发行版的GNOME Terminal的菜单选项可能会略有不同。因为一些Linux发行版采用的GNOME Terminal的版本比较旧。

表2-4展示了GNOME Terminal的File菜单下的配置选项。File菜单中包含了可用于创建和管理所有CLI终端会话的菜单项。
表2-4 File菜单

名 称 快 捷 键 描 述
Open Terminal Shift+Ctrl+N 在新的GNOME Terminal窗口中启动一个新的shell会话
Open Tab Shift+Ctrl+T 在现有的GNOME Terminal窗口的新标签中启动一个新的shell会话
New Profile 定制会话并将其保存为配置文件(profile),以备随后再次使用
Save Contents 将回滚缓冲区(scrollback buffer)中的内容保存到文本文件中
Close Tab Shift+Ctrl+W 关闭当前标签中的会话
Close Window Shift+Ctrl+Q 关闭当前的GNOME Terminal会话

注意,和在网络浏览器中一样,你可以在GNOME Terminal会话中打开新的标签来启动一个全新的CLI会话。每个标签中的会话均被视为独立的CLI会话。

窍门 并不是非得点击菜单项才能进入File菜单中的选项。大多数选项可以通过在会话区域中点击右键找到。

表2-5所展示的Edit菜单中的菜单项用于处理标签内的文本内容。可以使用鼠标在会话窗口中的任意位置复制、粘贴文本。
表2-5 Edit菜单

名 称 快 捷 键 描 述
Copy Shift+Ctrl+C 将所选的文本复制到GNOME的剪贴板中
Paste
Paste Filenames
Shift+Ctrl+V 将GNOME剪贴板中的文本粘贴到会话中
粘贴已复制的文件名和对应的路径
Select All 选中回滚缓冲区中的全部输出
Profiles 添加、删除或修改GNOME Terminal的配置文件
Keyboard Shortcuts 创建快捷键来快速访问GNOME Terminal的各种特性
Profile Preferences 编辑当前会话的配置文件

Paste Filenames菜单项只有在最新版的GNOME Terminal中才能找到,因此在你的系统中可能会看不到。
表2-6所展示的View菜单中包含用于控制CLI会话窗口外观的菜单项。这些选项能够为视力有缺陷的用户带来帮助。
表2-6 View菜单

名 称 快 捷 键 描 述
Show Menubar 打开/关闭菜单栏
Full Screen F11 打开/关闭终端窗口全桌面显示模式
Zoom In Ctrl++ 逐步增大窗口显示字号
Zoom Out Ctrl+- 逐步减小窗口显示字号
Normal Size Ctrl+0 恢复默认字号

要注意的是,如果关闭了菜单栏显示,会话的菜单栏就会消失。不过你可以在任何一个终端会话窗口中点击右键,然后选择Show Menubar,轻而易举地找回菜单栏。
表2-7所展示的Search菜单中的菜单项用于在终端会话中进行简单的搜索。这些搜索类似于在网络浏览器或字处理软件中进行的操作。
表2-7 Search菜单

名 称 快 捷 键 描 述
Find Shift+Ctrl+F 打开Find窗口,提供待搜索文本的搜索选项
Find Next Shift+Ctrl+H 从终端会话的当前位置开始向前搜索指定文本
Find Previous Shift+Ctrl+G 从终端会话的当前位置开始向后搜索指定文本

表2-8所展示的Terminal菜单中的菜单项用于控制终端仿真会话的特性。这些菜单项并没有对应的快捷键。
表2-8 Terminal菜单

名 称 描 述
Change Profile 切换到新的配置文件
Set Title 修改标签会话的标题
Set Character Encoding 选择用于发送和显示字符的字符集
Reset 发送终端会话重置控制码
Reset and Clear 发送终端会话重置控制码并清除终端会话显示
Window Size List 列出可用于调整当前终端窗口大小的列表

Reset选项非常有用。某天,你可能不小心让终端会话显示了一堆杂乱无章的字符和符号。这时候根本识别不出什么文本信息。这通常是因为在屏幕上显示了非文本文件。可以通过选择Reset或Reset and Clear让屏幕恢复正常。
表2-9所展示的Tabs菜单中的菜单项用于控制标签的位置以及活动标签的选择。这个菜单只有在打开多个标签会话时才会出现。
表2-9 Tabs菜单

名 称 快 捷 键 描 述
Next Tab Ctrl+PageDown 使下一个标签成为活动标签
Previous Tab Ctrl+PageUp 使上一个标签成为活动标签
Move Tab Left Shift+Ctrl+PageUp 将当前标签移动到前一个标签的前面
Move Tab Right Shift+Ctrl+PageDown 将当前标签移动到下一个标签的后面
Detach Tab 删除该标签并使用该标签会话启动一个新的GNOME Terminal窗口
Tab List 列出当前正在运行的标签(选择一个标签,转入对应的会话)
Terminal List 列出当前正在运行的终端(选择一个终端,转入对应的会话。当打开多个窗口会话的时候才会出现该菜单项)

最后,Help菜单包含了两个菜单项。Contents提供了一份完整的GNOME Terminal手册,可供你研究GNOME Terminal的各个菜单项和特性。About菜单项可以告诉你当前运行的GNOMETerminal的版本。
除了GNOME终端仿真软件包,另一个常用的软件包是Konsole Terminal。两者在很多方面类似。不过两者间存在的差异还是让我们很有必要单独开辟一节来讲解的。
2

2.5 使用 Konsole Terminal 仿真器

KDE桌面项目拥有自己的终端仿真软件包:Konsole Terminal。Konsole软件包具备基本的终端仿真特性,另外还包含了一些更高级的图形应用程序功能。本节描述了Konsole Terminal的特性及其用法。

2.5.1 访问 Konsole Terminal

Konsole Terminal是KDE桌面环境的默认终端仿真器,可以通过KDE环境的菜单系统轻而易举地访问到。在其他桌面环境中,访问Konsole Terminal就要麻烦一点了。
在KDE桌面环境中,可以通过点击屏幕左下角名为Kickoff Application Launcher的图标来访问Konsole Terminal。然后点击Applications ➪ System ➪ Terminal (Konsole)。

说明 你可能会在KDE菜单环境中看到两个终端菜单项。如果是这样的话,下方包含文字Konsole 的Terminal菜单项就是Konsole终端。

在GNOME桌面环境中,通常并没有默认安装Konsole终端。如果已经安装过的话,你可以通过GNOME的菜单系统进行访问。在屏幕左上角点击Applications ➪ System Tools ➪ Konsole。

说明 你的系统中可能并没有安装Konsole终端仿真软件包。如果想安装的话,请阅读第9章来学习如何在命令行中安装软件。

如果在Unity桌面环境中安装了Konsole,可以通过Dash ➪ Search,然后输入Konsole进行访问。Konsole Terminal会作为一个名为Konsole的应用程序显示在Dash区域。点击对应的图标打开Konsole终端仿真器。
图2-4展示了在CentOS Linux发行版的KDE桌面环境中访问Konsole Terminal。
记住,在大多数桌面环境中,可以创建一个启动器来访问如Konsole Terminal这样的应用程序。需要用于启动器启动Konsole终端仿真器的命令是konsole。另外,如果已经安装过Konsole Terminal的话,可以在其他的终端模拟器中输入konsole,然后按回车键来启动。
和GNOME Terminal类似,Konsole Terminal也通过菜单提供了一些配置选项和快捷键。接下来将会逐一讲述这些选项。

第 2 章 走进 shell - 图4

图2-4 Konsole Terminal

2.5.2 菜单栏

Konsole Terminal的菜单栏包含了查看和更改终端仿真会话特性所需的配置及定制化选项。下面的几张表格简要描述了菜单选项及其快捷键。

窍门 在活动会话区域中点击右键时,Konsole Terminal会弹出一个简单的菜单。一些菜单项可以在这个非常方便的菜单中找到。

表2-10中所展示的File菜单提供了可用于在当前窗口或新窗口中打开新标签的选项。
表2-10 File菜单

名 称 快 捷 键 描 述
New Tab Ctrl+Shift+N 在现有的Konsole Terminal窗口的新标签中启动一个新的shell会话
New Window Ctrl+Shift+M 在新的Konsole Terminal窗口中启动一个新的shell会话
shell 打开采用默认配置文件的shell
Open Browser Here 打开默认的文件浏览器应用
Close Tab Ctrl+Shift+W 关闭当前标签中的会话
Quit Ctrl+Shift+Q 退出Konsole Terminal仿真应用

在首次启动Konsole Terminal时,菜单中唯一列出的配置文件就是shell。随着越来越多的配置文件被创建及保存,它们的名字都会出现在菜单中。

说明 在阅读书中所描述的Konsole Terminal菜单项时,要注意的是,这可能会和你使用的Linux 发行版中的Konsole Terminal有所不同。因为一些Linux发行版中采用的Konsole Terminal 仿真软件包的版本比较旧。
2
表2-11中所展示的Edit菜单提供了可用于处理会话中的文本内容的选项。除此之外,可以管理标签名称的选项也在此列。
表2-11 Edit菜单

名 称 快 捷 键 描 述
Copy Ctrl+Shift+C 将选择的文本复制到Konsole的剪贴板中
Paste Ctrl+Shift+V 将Konsole剪贴板中的文本粘贴到会话中
Rename Tab Ctrl+Alt+S 修改标签会话的标题
Copy Input To 开始/停止将会话输入复制到所选的其他会话中
Clear Display 清除终端会话中的内容
Clear & Reset 清除终端会话中的内容并发送终端会话重置控制码

Konsole有一种很好的方法来跟踪每个标签会话中正在进行的活动。你可以使用Rename Tab 菜单项对标签进行命名,使其符合当前执行的任务。这可以帮助我们知道那些打开的标签究竟是干什么的。
表2-12所展示的View菜单中的菜单项用于控制Konsole Terminal窗口中单个会话的视图。除此之外,可监视终端会话活动的选项也在此列。
表2-12 View菜单

名 称 快 捷 键 描 述
Split View 控制显示在Konsole Terminal窗口中的多个标签会话
Detach View Ctrl+Shift+H 删除一个标签会话并使用该标签中的会话启动一个新的Konsole Terminal窗口
Show Menu Bar 打开/关闭菜单栏
Full Screen Mode Ctrl+Shift+F11 打开/关闭终端窗口的全屏模式
Monitor for Silence Ctrl+Shift+I 打开/关闭无活动标签(tab silence)的特殊消息
Monitor for Activity Ctrl+Shift+A 打开/关闭活动标签(tab activity)的特殊消息
Character Encoding 选择用于发送和显示字符的字符集
Increase Text Size Ctrl++ 逐步增大窗口显示字号
Decrease Text Size Ctrl+- 逐步减小窗口显示字号

菜单项Monitor for Silence用于指明无活动标签。如果在当前标签会话内超过10秒钟没有出现新的文本内容,那该标签就成了无活动标签。这允许你在等待应用程序输出时切换到另一个标签。

由菜单项Monitor for Activity所打开的活动标签功能会在标签会话中出现新的文本内容时发出一条消息。这一选项能让你注意到应用程序产生了新的输出。
Konsole为每个标签保存了一个叫作回滚缓冲区的历史记录。这个历史记录中包含了已经不在当前终端可视区域中的文本内容。默认的是在回滚缓冲区内保存最近的1000行文本。表2-13所展示的Scrollback菜单中的菜单项可用于查看该缓冲区。
表2-13 Scrollback菜单

名 称 快 捷 键 描 述
Search Output Ctrl+Shift+F 打开Konsole Terminal窗口底部的Find窗口,提供回滚文本搜索选项
Find Next F3 在回滚缓冲区历史记录中查找下一个匹配的文本
Find Previous Shift+F3 在回滚缓冲区历史记录中查找上一个匹配的文本
Save Output 将回滚缓冲区中的内容保存在一个文本文件或HTML文件中
Scrollback Options 打开Scrollback Options窗口来配置回滚缓冲区选项
Clear Scrollback 删除回滚缓冲区中的内容
Clear Scrollback & Reset Ctrl+Shift+X 删除回滚缓冲区中的内容并重置终端窗口

你也可以使用窗口可视区域中的滚动条向后翻看回滚缓冲区中的内容。另外,也可以使用Shift+UpArrow逐行向后翻看,或是使用Shift+PageUp逐页(24行)向后翻看。
表2-14中所展示的Bookmarks菜单中的菜单项可用于管理Konsole Terminal窗口中的书签。书签能够保存活动会话的目录位置,让你随后可以在相同会话或新的会话中轻松返回之前的位置。
表2-14 Bookmark菜单

名 称 快 捷 键 描 述
Add Bookmark Ctrl+Shift+B 在当前目录位置上创建新的书签
Bookmark Tabs as Folder 为当前所有的终端标签会话创建一个新的书签
New Bookmark Folder 创建新的书签文件夹
Edit Bookmarks 编辑已有的书签

表2-15所展示的Settings菜单中的菜单项可用于定制和管理配置文件。另外,你还可以为当前的标签会话再添加些许功能。这些菜单项并没有对应的快捷键。
表2-15 Settings菜单

名 称 描 述
Change Profile 将所选的配置文件应用于当前标签
Edit Current Profile 打开Edit Profile窗口,提供配置文件配置选项
Manage Profiles 打开Manage Profile窗口,提供配置文件管理选项
Configure Shortcuts 创建Konsole Terminal命令快捷键
Configure Notifications 创建定制化的Konsole Terminal方案及会话

Configure Notifications项允许将会话中发生的特定事件与不同的行为关联起来。当出现某个事件时,就会触发指定的行为(或一系列行为)。
表2-16中所展示的Help菜单中的菜单项给出了完整的Konsole手册(如果你的Linux发行版中已经安装了KDE手册)以及标准的About Konsole对话框。
2
表2-16 Help菜单

名 称 快 捷 键 描 述
Konsole Handbook 包含了完整的Konsole手册
What’s This? Shift+F1 包含了终端部件的帮助信息
Report Bug 打开Submit Bug Report(提交bug报告)表单
Switch Application Language 打开Switch Application’s Language(切换应用程序语言)表单
About Konsole 显示当前Konsole Terminal的版本
About KDE 显示当前KDE桌面环境的版本

有一份相当全面的文档可以帮助你使用Konsole终端仿真器软件包。除此之外,在你碰到程序故障的时候,还可以使用Bug Report表单向Konsole Terminal开发人员提交问题。
相较于另一个流行的软件包xterm,Konsole终端仿真器软件包算是年轻一代了。在下一节中, 我们将探望一下“老古董”xterm。

2.6 使用 xterm 终端仿真器

最古老也是最基础的终端仿真软件包是xterm。xterm软件包在X Window出现之前就有了,通常默认包含在发行版中。
尽管xterm是功能完善的仿真软件包,但是它并不需要太多的资源(如内存)来运行。正因为如此,在专门为老旧硬件设计的Linux发行版中,xterm非常流行。有些图形化桌面环境就用它作为默认终端仿真器软件包。
xterm软件包尽管没有提供太多炫目的特性,但是却把一件事做到了极致:它能够仿真旧式终端,如DEC公司的VT102、VT220以及Tektronix 4014终端。对于VT102和VT220终端,xterm甚至能够仿真VT序列色彩控制码,让你可以在脚本中使用色彩。

说明 DEC VT102及VT220盛行于20世纪80年代和90年代初期,用于连接Unix系统的哑文本终端。VT102/VT220不仅能显示文本,还能够使用块模式图形显示基本的图形结构。由于在很多商业环境中这种终端访问方式仍在使用,因而使得VT102/VT220仿真依然流行。

图2-5展示了运行在图形化Linux桌面中的xterm。可以看出,它非常朴素。
如今得花点心思才能把xterm终端仿真器找出来。它常常并没有被包含在桌面环境的菜单中。

第 2 章 走进 shell - 图5

图2-5 xterm终端

2.6.1 访问 xterm

在Ubuntu的Unity桌面中,xterm是默认安装的。可以通过Dash ➪ Search,然后输入xterm进行访问。xterm会作为一个名为XTerm的应用出现在Dash区域。点击对应的图标就可以打开xterm 终端仿真器。

说明 在Ubuntu中搜索xterm时,你可能会看到另一个叫作UXTerm的终端。这只不过是加入了Unicode支持的xterm仿真器软件包而已。

GNOME和KDE桌面环境中并没有默认安装xterm。你得先安装它(可以参阅第9章安装软件包)。安装完成之后,你必须从另一个终端仿真器中启动xterm。打开一个终端仿真器进入CLI, 输入xterm并按回车键。记住,也可以创建桌面启动器来启动xterm。
xterm包让你可以使用命令行参数设置自己的特性。下面的内容将讨论这些特性以及如何进行修改。

2.6.2 命令行参数

xterm的命令行参数非常多。你可以控制大量的特性来对终端仿真实施定制,例如允许或禁止某种VT仿真。

说明 xterm包含数量众多的配置选项,在此无法一一列举。在bash手册中有大量的文档可供参考。第3章中会讲到如何阅读bash手册。另外,xterm开发团队也在其网站上提供了很好的帮助:http://invisible-island.net/xterm/

可以通过向xterm命令加入参数来调用某些配置选项。例如,要想让xterm仿真DEC VT100 终端,可以输入命令xterm -ti vt100,然后按回车键。表2-17给出了一些可以配合xterm终端仿真器使用的参数。
2
表2-17 xterm命令行参数

参 数 描 述
-bg color 指定终端背景色
-fb font 指定粗体文本所使用的字体
-fg color 指定文本颜色
-fn font 指定文本字体
-fw font 指定宽文本字体
-lf filename 指定用于屏幕日志的文件名
-ms color 指定文本光标颜色
-name name 指定标题栏中的应用程序名称
-ti terminal 指定要仿真的终端类型

一些xterm命令行参数使用加号(+)或减号(-)来指明如何设置某种特性。加号表示启用某种特性,减号表示关闭某种特性。不过反过来也行。加号可以表示禁止某种特性,减号可以表示允许某种特性,例如在使用bc参数的时候。表2-18中列出了可以使用+/-命令行参数设置的一些常用特性。
表2-18 xterm +/-命令行参数

参 数 描 述
ah 启用/禁止文本光标高亮
aw 启用/禁止文本行自动环绕
bc 启用/禁止文本光标闪烁
cm 启用/禁止识别ANSI色彩更改控制码
fullscreen 启用/禁止全屏模式
j 启用/禁止跳跃式滚动
l 启用/禁止将屏幕数据记录进日志文件
mb 启用/禁止边缘响铃
rv 启用/禁止图像反转
t 启用/禁止Tektronix模式

要注意,不是所有的xterm实现都支持这些命令行参数。你可以在xterm启动后,使用-help 参数来确定你所使用的xterm实现支持哪些参数。
现在你已经了解了三种终端仿真器软件包,重要的问题是:哪个是最好的终端仿真器。对于这个问题,并没有权威的答案。要使用哪个仿真器软件包取决于你的个人需求。不过,能有这么多选择总是好事。

2.7 小结

为了着手学习Linux命令行命令,得先能访问命令行。在图形化界面的世界里,有时会费点周折。本章讨论了能够获得Linux命令行的一些不同的界面。
首先,我们讲解了通过虚拟控制台终端(不涉及GUI的终端)和通过图形化终端仿真软件包(GUI中的终端)访问CLI时的不同。简要对比了两种访问方式之间的差别。
接下来,我们详细探究了通过虚拟控制台终端访问CLI,包括像更改背景色这类控制台终端配置选项。
在学习了虚拟控制台终端之后,本章还讲述了利用图形化终端仿真器访问CLI,其中主要涉及三种终端仿真器:GNOME Terminal、Konsole Terminal以及xterm。
本章还讨论了GNOME桌面项目的GNOME终端仿真软件包。GNOME Terminal通常默认安装在GNOME桌面环境中。藉由菜单以及快捷键,它可以很方便地设置多种终端特性。
然后讨论了KDE桌面项目的Konsole终端仿真软件包。Konsole Terminal通常默认安装在KDE桌面环境中。它提供了诸多漂亮的特性,例如能够监测到空闲的终端。
最后讲到的是xterm终端仿真器软件包。xterm是Linux中第一个可用的终端仿真器。它能够仿真旧式终端硬件,如VT和Tektronix终端。
下一章将开始接触Linux命令行。你将从中学习到Linux文件系统导航以及创建、删除、处理文件所需的命令。