第01章:什么是 Shell
当我们说起「命令行」时,我们实际上是指称 shell (此单词不翻译)。Shell 是一个程序,负责将通过键盘输入的命令带入操作系统并执行命令。几乎所有 Linux 发行版都会提供一个名叫 bash 的 GNU 项目。bash 是「Bourne Again SHell」的缩略语,是原生 Unix shell 程序 sh (由 Steve Bourne 所写)的增强替代品。
终端模拟器
当我们使用图形用户界面的时候,我们需要一个叫作「终端模拟器」的程序来跟 shell 交互。如 KDE 中的 Konsole 和 GNOME 中的 gnome-terminal,此外还有许多供 Linux 使用的终端模拟器,它们基本上只做相同的一件事:将我们接入 shell。
第一次击键
所以,让我们开始吧,运行终端模拟器。当它启动后,我们可以看到类似这样的界面:
这被称为命令提示符(shell prompt),无论何时,当 shell 准备接受输入的状态下,命令提示符就会显示在终端模拟器中,它也会有依赖于各种发行版的各种显示变化,不过通常会包含 username@machinename
(用户名@机器名)紧跟着的是当前的工作目录(~
),还有一个美元符号($
) 。
注意:如果最后一个字符是镑符号(#
)而非美元符号($
),说明当前终端会话具有超级管理员权限(superuser privileges),这意味着我们是以根用户(root)登录或者我们选择了一个具有超级管理员权限的终端模拟器。
假设到目前为止,一切状况正常,让我们在命令行中随便写一些东西:
shell 会告诉我们这个命令毫无意义,并且会给我们再次输入的机会:
命令历史
当我们键入向上箭头键(↑),我们可以看到上一次输入的命令「kaekfjaeifj
」再次出现在提示符之后,这就是命令历史(command history),大多数 Linux 发行版会记住之前输入的 500 条命令。当键入向下箭头键(↓)时,之前的命令就消失了。
光标的移动
按下向上箭头键,重新调出之前的命令,现在尝试使用左右箭头键,知道我们该如何把光标定位到命令行中的任意位置了吧,这样会使我们更方便地编辑命令。
关于鼠标和焦点的二三言
除了键盘之外,在终端模拟器中你也可以使用鼠标。这是 X Window 系统(图形用户界面的底层引擎)的内建机制,以便支持更快捷的复制和粘贴技术。如果你按住鼠标左键并拖动它以高亮选中某些文本,这些文本将会复制到 X 系统提供的缓存中,按下鼠标中键会将这些文本粘贴到当前光标位置。试一试吧。
注意:不要尝试使用 Ctrl-c 和 Ctrl-v 在终端窗口中复制粘贴,不会有效果的。早于 Microsoft Windows 多年,这些组合键就已经在 shell 中被分配给了其它意义。
你的图形桌面环境(大多数是 KDE 或者 GNOME)为了努力表现的像 Windows,或许会采取「点击聚焦」(click to focus)的聚焦策略(focus policy)。这意味着你需要点击一个窗口才能使其得到聚焦(即被激活)。这与传统的 X 窗口行为「焦点跟随鼠标」(即只需要将鼠标滑过窗口,就能使其得到聚焦)是相违背的。窗口在被点击之前是不会转到前台的,但是它还是能接受输入。将聚焦策略设置为「焦点跟随鼠标」会使得复制粘贴技术更有用。如果你可以的话,尝试一下(有些桌面环境,例如 ubuntu 的 unity 已经不再支持这一策略了)。我觉得如果你试过之后,应该为更喜欢这种策略,你可以在窗口管理的配置程序中找到这个设置。
尝试一些简单的命令
既然我们已经知道如何键入命令,让我们尝试一些简单的命令。第一个命令 date
。这个命令显示当前的日期和时间。
与之相关的一个命令是 cal
,默认情况下会显示当前月份的日历。
想要了解当前磁盘驱动器的可用空间,键入 df
命令:
同样,要显示当前可用内存容量,键入 free
命令:
结束终端会话
要结束一个终端会话,我们可以关闭终端模拟器或者在 shell 提示符后键入 exit
命令:
幕后控制台
即便我们没有运行终端模拟器,还是会有几个终端会话持续运行在图形桌面之后,那就是虚拟终端(virtual terminals)或虚拟控制台(virtual consoles),在多数 Linux 发行版中,这些会话可以通过按键 Ctrl-Alt-F1 到 Ctrl-Alt-F6 接入。当接入到一个会话后,它会提供一个登录提示符,让我们键入用户名和密码。可以通过按键 Alt-F1 到 Alt-F6 来切换虚拟控制台。要回到图形桌面,请按 Alt-F7。
总结
作为本书的起始章节,我们接触到了 shell 并第一次看到了命令行,学习了如何开启并结束一个终端会话。我们也了解到如何提交一下简单的命令,并执行一些小的命令行内编辑。看起来不怎么可怕是吧?
扩展阅读
Last updated
Was this helpful?