△ 也可以是火车司机
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
熟练使用命令行,是成为一个老司机必备的技能。
这里有一份入门&进阶指南,名字叫“命令行的艺术”,在GitHub收获了5万标星。
技巧覆盖面广,且富含具体的例子。主要为Linux所写,却也有Mac和Windows的专用章节。
项目作者Joshua Levy说:
文章并不长,但当你掌握这里列出的所有技巧时,你就学会很多关于命令行的东西了。
他还说了:
这份资源不仅能帮助刚接触命令行的新手,对有经验的人也大有裨益。
从诞生之初到今天,项目被翻成了16种语言。就是说,如果感觉中文有翻译腔,可以回去看英文原版 (手动狗头) 。
那么,先来观察一下,老司机是怎样炼成的。
基础篇 & 日常篇
这份资源主要专注在交互式 Bash,但也有许多技巧可以用在其他shell和普通Bash脚本里。
基础篇
所以,萌新就从Bash的基础知识开始学习。然后:
要熟悉一种基于文本的编辑器;学会用man命令阅读文档。
还有,用apropos查找文档。要知道有些命令不对应可执行文件,而是Bash内置好的。可以用help和help-d来获得帮助信息。
另外,要学会用>和<来重定向输入和输出,用|来重定向管道;还要用通配符*和引用,了解引用中‘和”的区别。
……
包括Bash中的任务管理工具,文件管理工具,网络管理工具等等,都要在这一篇里熟络起来。
此篇共分12条技能,算是比较短的一篇了。
基础打好之后,进入:
日常使用篇
顾名思义,这里实现的是一些日常技巧。
比如,为了方便长命令的编辑,用ctrl-x ctrl-e打开一个编辑器,来输入当前正编辑的命令;
比如,用xargs (或parallel)。这个非常给力。你可以控制每行的参数个数 (-L) 和***并行数 (-P) 。如果不确定它会不会照你想的做,就先用xargs echo查一下。另外,用-I{}也很方便。
比如,对ssh设置做些小优化可能很有用,比如这个~/.ssh/config文件包含了防止特定网络环境下连接断开、压缩数据、多通道等选项:
- 1TCPKeepAlive=yes
- 2 ServerAliveInterval=15
- 3 ServerAliveCountMax=6
- 4 Compression=yes
- 5 ControlMaster auto
- 6 ControlPath /tmp/%r@%h:%p
- 7 ControlPersist yes
注意,日常部分有44条技能。请君坚持修炼完成,然后前往下一章节。
各类专门技巧
首先,是文件及数据处理技能,一共33条:
比如,用ag在源代码或数据文件里检索 (grep -r 同样可以做到,但相比之下 ag 更加先进) 。比如,将HTML 转为文本:lynx -dump -stdin。比如,当你要处理棘手的 XML 时候,xmlstarlet 算是上古流传下来的神器了。……
后面还有系统调试技巧20条,和单行脚本技巧7条 (每条都有例子) 。
以及别忘了,冷门但有用的工具,是一个大大大大大列表。
至此,各种技巧已分类仔细,就算是老司机也可以按照自己的需要,找到一些好用的方法了。
还有更多
学到这里,Linux用户可能已经吃饱了。
项目里还有Mac的专用技巧,以及Windows的专用技巧,决定先不详述,大家可以自行探索。
***,作者毫不吝惜地列举了其他人类出品的各种命令行指南:
各路资源排山倒海向你涌来,再不学习可能就要被淹了。
传送门:
https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md