在本章中,我们将重点讨论在终端上与Linux交互,也就是说,通过公开命令行界面(CLI)的shell与Linux交互。能够有效地使用shell来完成日常任务是非常重要的,为此,我们在这里重点讨论可用性。
首先,我们回顾一些术语,并简要介绍shell基础知识。然后我们来看看现代的、对人类友好的shell,比如Fish shell。我们还将研究shell中的配置和常见任务。之后,我们继续讨论如何使用终端多路复用器有效地在CLI上工作,使你能够使用本地或远程的多个会话。在本章的最后一部分,我们将转换话题,重点讨论在shell中使用脚本自动化任务,包括以安全、可靠和可移植的方式编写脚本的最佳实践,以及如何检查和测试脚本。
从CLI的角度来看,主要有两种方式与Linux交互。一种方式是手动的,也就是说,一个人坐在终端前,交互式地输入命令并使用输出。这种特殊的交互适用于你想在shell中执行的大多数日常操作,包括以下内容:
·列出目录、查找文件或查找文件中的内容。
·在目录之间或远程机器之间复制文件。
·从终端上阅读电子邮件、新闻或发送推文。
此外,我们还将学习如何同时方便高效地使用多个shell会话。
另一种操作模式是自动处理一种特殊文件中的一系列命令,shell为你解释并依次执行这些文件。这种模式通常称为shell脚本或直接称为脚本。你通常希望使用脚本,而不是手动重复某些任务。此外,脚本是许多配置和安装系统的基础。脚本确实非常方便,然而,如果没有预防措施,它们也会造成危险。所以,当你考虑写一个脚本时,请记住图3-1所示的XKCD网络漫画。
图3-1:自动化的XKCD( https://oreil.ly/GSKUb )。资料来源:Randall Munroe(在CC BY-NC 2.5许可下共享)
我强烈建议你有一个可用的Linux环境,并立即尝试这里显示的示例。有了这些,你准备好进行一些互动了吗?如果是,那么我们先来了解一些术语和基本的shell用法。