8

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

 1 year ago
source link: https://www.qbitai.com/2022/10/38841.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

head.jpg丰色 2022-10-24 13:07:21 来源:量子位

19位程序员整理而成

丰色 发自 凹非寺

量子位 | 公众号 QbitAI

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

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

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

dd33ee1bc8e4484ebe9cdb1e3cc14e09~tplv-tt-shrink:640:0.image

一看,确实还有点来头。

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

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

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

d10bdb870d24477a8dc9db7d83c43bf6~tplv-tt-shrink:640:0.image

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

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

b58e891d0a924a74a13ef5f0fb56beda~tplv-tt-shrink:640:0.image

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

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条,各位可各取所需~

026a6d2bfe81423e9a285e7fa7035156~tplv-tt-shrink:640:0.image

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

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK