第一行代码Linux命令行(图灵原创典范“第一行代码”系列新作,Linux命令行入门教程,双色印刷,主要讲的是什么

计算机与互联网 操作系统 李超,王晓晨
简介: Linux命令行入门教程,兼顾实用性与趣味性的图文讲解方式,300个命令行代码示例与20个常用命令随查表,解决90%真实工作场景问题,适用于Linux/macOS/Windows用户。

前言

原谅我这一生不羁放纵爱自由。

——Beyond,《海阔天空》

电影《黑客帝国》中,人们生活在由计算机创造的虚拟世界 Matrix 里,这是个时尚光鲜、赏心悦目的现代化大都市,人们在这里辛勤工作、努力奋斗,上演自己的人生故事;而在真实世界,他们浑身插满管子躺在吊舱中,靠营养液维持生命。少数人从吊舱中醒来,发现身处由机器控制的大工厂,人只是为机器提供能源的电池。这些醒来的人中,有些人选择回到 Matrix,忘掉真实世界,另一部分人则努力摆脱被机器控制的命运,夺回在阳光下自由生活的权利。

随着信息技术的快速发展,我们的信息媒介从电报升级到电话,再升级到文字、语音、视频流畅传输的互联网,Matrix 与真实世界的差距越来越小——人们被外表可爱、使用贴心的各种应用包围着,在算法的悉心“照料”下,听“想听”的话、看“想看”的剧,沉浸在“作为世界主宰者”的感觉里。

但这终究不是生活的全部,总有那么一些时刻,我们希望能够从塑料感十足的“乌托邦”中抽身而出,回到真实世界,虽然辛苦,却更有意义。

命令行就是我们从 Matrix 回到真实世界的那部电话。它不是一张单程票,我们仍然可以继续使用那些熟悉的图形用户界面应用,它只是提供了对于未来的另一种选择,或者说一种更本质、更优雅的解决方案。对于数字世界的消费者,它外表古怪不讨人喜欢,而对于真实世界中的创造者和探索者,它却是日常工作不可或缺的可靠伙伴。

为什么要学习命令行

我们平时使用的“应用”大多是图形用户界面应用(以下简称“图形应用”),比如我们在手机、Windows 笔记本上用的聊天、购物、游戏、音乐应用;偶尔你还会注意到一些人通过键盘在“黑色的窗口”里输入字符运行程序,这个黑色的窗口我们习惯上叫它“命令行”(command line,或者 console),那些运行在里面的程序就叫“命令行界面应用”(以下简称“命令行应用”)。如果你觉得前面的 Matrix 虽然很酷,但有点儿摸不着头脑,那么接下来,我们就分三点简单直白地说说与图形应用相比,命令行应用的主要特点。

学习曲线虽然先陡后平,但是掌握新工具的综合成本很低

图形应用用来娱乐和购物确实很方便,作为开发工具呢,一开始也是很方便的,但图形化的展示方式和开发模式,导致不同应用之间协同工作的难度很大,用户往往为了分析数据学习 Excel,为了做 Web 后端开发学习在 PyCharm 里写 Django 代码,为了开发 Java 代码学习 Eclipse、IntelliJ,为了管理代码学习 Sourcetree……好吧,那我们就拼命一个一个地学习,可是当我们终于熟悉了这些应用之后,发现大家又在用 Python 做数据分析,用 VSCode 写 Java 代码了,之前学的 Excel 帮不上忙不说,又冒出来个 Anaconda 要学习……工具层出不穷,跟着走学不胜学,不跟着走又怕落伍。命令行应用正好相反,一开始需要花点儿时间熟悉它的套路,一旦掌握之后你就会发现:所有命令行应用的使用方法基本一样——一通百通,掌握新工具的成本接近于零。

功能强大效率高,硬件配置要求低

一个命令行应用就像一块积木,可以方便地与其他命令行应用组合在一起,进而完成高度复杂的任务。这就像只要掌握 26 个字母,就可以组合出近乎无限的单词。你输入的每条命令都可以保存到文件里,变成脚本自动执行,还能通过自动补全功能将重复劳动几乎减少到零。相较于命令行如此丰富、自动化的应用,它却几乎没有“启动”这个概念,按下回车键立刻开始工作。即使运行 Windows、macOS 卡顿的老旧电脑,也能在命令行的世界里重返青春。

开源、免费、开放

绝大多数命令行应用是开发者为了解决自己遇到的问题而编写的,而不是专门为“用户”开发的,因为这一点,命令行应用的丰富程度远高于图形应用。而且命令行应用多采用开源方式分发,免费使用。如果你对实现原理感兴趣,可以方便地阅读、调试代码,还可以提出问题,与作者互动,甚至提交自己的改进,成为贡献者(contributor)——像那些科学家、艺术大师一样,在人类技术发展的长河里留下自己的名字。

版权:人民邮电出版社