第16章 Bash
“除了计算机编程外,我想不出还有其他让我感兴趣的工作。我可以无中生有地创造出精美的范式和结构,在此过程中也解决了无数的小谜团。
——皮特·范德林登(Peter Van Der Linden)
本章将学习使用一种被称为Bash的命令行接口(command-line interface)。命令行接口是一种可以支持用户输入指令,并由操作系统执行的程序。Bash则是大部分类UNIX操作系统都具备的命令行接口实现。因此,本章中命令行接口和命令行可交替使用。
笔者刚得到第一份编程工作时,犯了将所有时间都用来练习编程的错误。当然,要想做到职业编程的水平,需要一定的天赋。但是还有其他应该掌握的技能,比如命令行的使用。命令行是除了编码之外,其他工作的“控制中心”。
例如,本书后续章节将会提到如何使用包管理器安装他人的程序,以及如何使用版本控制系统与他人进行协作。这两个工具都需要从命令行进行操作。另外,如今大部分软件都需要从互联网获取数据,而世界上大部分Web服务器运行的都是Linux系统。这些服务器没有图形化的用户界面,只能通过命令行访问。
命令行、包管理器、正则表达式和版本控制,这些都是程序员工具库中的核心成员。笔者所共事过的团队中,没有成员不擅长使用这些工具。
当你以编程为职业时,也需要做到可以熟练使用上述工具。笔者花了很长时间才做到这点,也很后悔当初没有更早地学习如何使用这些工具。
16.1 跟随练习
如果你使用的是Ubuntu或UNIX系统,那么计算机中会自带