一文掌握所有命令行,包括73个“冷门但有用”的技巧|GitHub 11万标星之作

新闻 2022-10-24 丰色
435

19位程序员整理而成

丰色 发自 凹非寺

非常AI | 公众号 QbitAI

作为程序员,都知道命令行的好处。

奈何实在学不会、记不住。

今天,恰好有一个专门总结了各种常用和冷门命令行技巧的项目,号称《命令行的艺术》,登上了GitHub热榜。

一看,确实还有点来头。

光看标星数,就有足足112k

而它的作者,主要由19位程序员组成,除此之外,还有数十人作出了贡献。

其内容主要都与Linux命令行有关(另有两章专门讲macOS和Windows系统),覆盖了基础、日常使用、文件及数据处理、系统调试、单行命令、“冷门但有用”等多方面的知识和技巧,用很简洁的方式+示例予以了说明。

最开始,该项目只是在Quora上传播,后来挪到GitHub上后便火得一发不可收拾。

由于实在太干货,还被翻译成了17种语言,其中就包括中文。

那么,对于我们那不太熟的命令行技术,再挽救一下?

Ps. 熟的也可以看哦,毕竟还有一些“奇技淫巧”。

一文掌握所有命令行

文中所用命令主要基于交互式Bash,一共分为8篇。

基础篇

这篇主要需要你掌握命令行基础知识,一共12小项,包括:

  • 会用man bash命令查阅手册,会用apropos查找文档,熟悉一个文本编辑器(推荐Vim);
  • 懂得> 、 <、|、>>等符号的区别,会使用通配符,会使用ssh进行远程命令行登录;
  • 熟悉Bash中的任务管理工具、基本的文件管理工具、基本的网络工具;
  • 懂正则表达式,会git,懂得查找和安装软件包。

日常使用篇

基础知识完成后,这里要教的都是一些非常日常的技巧,一共43条,比如:

  • ctrl-r可以搜索命令行历史记录,而按下右箭头键可以不立即执行,进行修改;
  • ctrl-x+ctrl-e可再打开一个编辑器来输入当前正编辑的命令,这对于编写长命令很方便;
  • alias命令可以创建常用命令的快捷形式(eg. alias ll=’ls -latr’ ,就创建了一个别名 为ll新命令);
  • 当使用通配符匹配大量文件名时,常会遇到“Argument list too long”的错误信息,这种情况下换用find或xargs通常可以解决。

文件及数据处理篇

这篇有35条,比如:

  • 在当前目录下通过文件名查找一个文件,可以使用find . -iname ‘something‘命令;
  • 想要转换Markdown、HTML等不同格式的文件时,使用pandoc;
  • 处理棘手的XML时,用上古流传下来的神器xmlstarlet;
  • 更改文件时除了cut和paste,别忘了join。

系统调试篇

本篇也不少,共20条,比如:

  • 进行web调试时用curl和curl -I命令,或者它们的好兄弟wget,或者更潮的httpie;
  • 查看磁盘使用情况时用ncdu,它比普通du -sh *更节省时间;
  • 如果删除了一个文件,但通过du发现没有释放预期的磁盘空间,请用如下命令检查文件是否被进程占用:lsof | grep deleted | grep “filename-of-my-big-file”……

单行命令篇

这部分指的就是我们所说的one-liners命令,一共7条,比如:

想计算文本文件第三列中所有数的和时,下面的命令可能会比同等作用的Python代码速度快三倍、代码量少三倍:awk ‘{ x += $3 } END { print x }’ myfile。

冷门但有用篇

这部分是也算全文最长的一篇了,一共73条,各位可各取所需~

macOS篇和Windows篇

最后,对于使用macOS和Windows系统的程序员来说,也有一些小技巧不容错过。

比如在macOS中,如果你想在终端中将Option键当作alt键使用,那么只需打开“偏好设置 -> 描述文件 -> 键盘”,并勾选“使用Option键作为Meta键”;

由于macOS基于BSD UNIX,许多命令(例如ps,ls,tail,awk,sed)都和Linux中有微妙的不同,需要注意,具体区别可以通过标题为 “BSD General Commands Manual” 的man页面查看。

而在Windows中,只需安装一个Cygwin,你就可以直接感受Unix shell的威力了——前6篇介绍的东西复用就ok。

所以在这篇,作者也提供了一些Cygwin命令的使用技巧。

更多详细内容直接戳下面的地址~

项目主页:
https://github.com/jlevy/the-art-of-command-line

中文版:
https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md

相关文章