当前位置: 首页 > 科技观察

一篇掌握所有命令行,包含73个“冷门但有用”的技能|GitHub11万星作品

时间:2023-03-20 00:57:10 科技观察

本文经AI新媒体量子位授权转载(公众号ID:QbitAI),转载请联系出处用于转载。作为程序员,我们都知道命令行的好处。然而,我实在是学不会,记不住。今天正好有一个项目总结了各种常用和冷门的命令行技巧,名为《命令行的艺术》,登上了GitHub热榜。乍一看,确实有点来头。单看星数,足足有112k。它的作者主要由19位程序员组成。此外,还有数十人做出了贡献。其内容主要与Linux命令行相关(有两章专门介绍macOS和Windows系统),涵盖基础、日常使用、文件和数据处理、系统调试、单行命令、“冷门但有用”等方面知识和技能,以非常简洁的方式+示例进行解释。一开始项目只是在Quora上传播,后来搬到GitHub上就变得不可控了。因为太干了,已经被翻译成包括中文在内的17种语言。那么,对于我们不熟悉的命令行技术,又要省事吗?附言。熟悉的也可以看看,毕竟还是有些“鬼门关”的。一篇掌握所有命令行本文使用的命令主要基于交互式Bash,共分8篇。基础部分主要要求你掌握命令行的基础知识,共12个小项,包括:会使用manbash命令查阅手册,会使用apropos查找文档,熟悉一段文字编辑器(推荐使用Vim);理解>,<,|,>>等符号,可以使用通配符,可以使用ssh进行远程命令行登录;熟悉Bash中的任务管理工具、基本文件管理工具、基本网络工具;了解正则表达式,知道git,知道如何搜索和安装包。日常使用章节基础知识学完后,这里有一些很日常的技巧,一共43个,比如:ctrl-r可以搜索命令行的历史记录,按右方向键修改不执行立即;ctrl-x+ctrl-e可以打开另一个编辑器输入当前正在编辑的命令,写长命令很方便;alias命令可以为常用命令创建快捷方式(eg.aliasll='ls-latr',创建一个名为ll的新命令的别名);在使用通配符匹配大量文件名时,经常会遇到“Argumentlisttoolong”的错误提示,这种情况下使用find或者xargs通常可以解决。这篇文章中有35篇关于文件和数据处理的文章。例如:要在当前目录下按文件名查找文件,可以使用find。-iname'something'命令;当你想转换不同格式的文件,如Markdown和HTML,使用pandoc;处理棘手的XML时,使用传世神器xmlstarlet;更改文件时,除了剪切和粘贴,不要忘记加入。本文还有很多系统调试文章,一共20篇,比如:使用curl和curl-I命令进行web调试,或者他们的好兄弟wget,或者比较时髦的httpie;检查磁盘使用情况时使用ncdu,比普通的du-sh*更省时;如果你删除了一个文件,但是发现通过du并没有释放预期的磁盘空间,请使用如下命令查看文件是否被进程占用:lsof|grep删除|grep"filename-of-my-big-file"...这部分单行命令指的是我们所说的单行命令,一共7条,比如:当你要计算所有的总和时文本文件第三列中的数字,以下命令可能比相同的生成的Python代码快三倍,代码密集度减少三倍:awk'{x+=$3}END{printx}'我的文件。这部分冷门但有用的文章也是全文最长的一篇,共73篇。你可以选择你想要的~macOS文章和Windows文章。技能不容错过。例如,在macOS中,如果你想在终端中将Option键用作alt键,只需打开“首选项->配置文件->键盘”,勾选“使用Option键作为Meta键”即可;由于macOS基于BSDUNIX,很多命令(如ps、ls、tail、awk、sed)与Linux中的命令有细微差别,需要注意。具体区别可以通过标题为“BSDGeneralCommandsManual”的手册页查看。在Windows中,你只需要安装一个Cygwin,就可以直接体验到Unixshell的强大——复用前6篇介绍的东西就可以了。所以在这篇文章中,作者也提供了一些Cygwin命令的使用技巧。更多详情,直接点击以下地址~项目主页:https://github.com/jlevy/the-art-of-command-line中文版:https://github.com/jlevy/the-art-of-命令行/blob/master/README-en.md