Linux: Shell 神器, 神器软件, 命令行软件

ag比grep、ack更快的递归搜索文件内容。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

tig字符模式下交互查看git项目,可以替代git命令。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

myclimysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

jq: json文件处理以及格式化显示,支持高亮,可以替换python -m json.tool。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

shellcheckshell脚本静态检查工具,能够识别语法错误以及不规范的写法。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

yapfGoogle开发的python代码格式规范化工具,支持pep8以及Google代码风格。

mosh:基于UDP的终端连接,可以替代ssh,连接更稳定,即使IP变了,也能自动重连。

fzf命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl-r历史命令搜索简直完美。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

PathPicker(fpp):在命令行输出中自动识别目录和文件,支持交互式,配合git非常有用。

运行以下命令:

git diff HEAD~8 --stat | fpp

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

htop: 提供更美观、更方便的进程监控工具,替代top命令。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

axel多线程下载工具,下载文件时可以替代curl、wget。

axel -n 20 http://centos.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

sz/rz交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。

cloc代码统计工具,能够统计代码的空行数、注释行、编程语言。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

ccache高速C/C++编译缓存工具,反复编译内核非常有用。使用起来也非常方便:

gcc foo.c

改成:

ccache gcc foo.c

tmux:终端复用工具,替代screen、nohup。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

neovim: 替代vim。

script/scriptreplay: 终端会话录制。

script -t 2>time.txt session.typescript # 录制开始
# your commands
exit # 录制结束

回放:

scriptreplay -t time.txt session.typescript

you-get: 非常强大的媒体下载工具,支持youtube、google+、优酷、芒果TV、腾讯视频、秒拍等视频下载。

还有mac专有的pbcopy/pbpaste:

把命令行输出拷贝到系统粘贴板:

cat test.sh| pbcopy

把系统粘贴板内容拷到终端:

pbpaste

mac下的say命令支持多种语言(英语、普通话、粤语)文本朗读,支持各种销魂恐怖的语气。跑这个命令感受下,小心被吓着了:

for i in `say -v '?' | cut -d ' ' -f 1`; do echo $i && say -v "$i" 'Hello World';done

更具体的列表可参考:int32bit/dotfiles

pm:在 bash / zsh 中迅速切换项目目录

将你常去的目录添加到 pm 中,然后一条命令进行切换:

cd projects/awesome-project
pm add awesome-project

上面的 pm add + 名称,可以将当前目录存储到 pm 中,并取一个名字。

类似的方法再添加几个目录,然后用 pm list 查看一下现在添加了哪些:

pm list
# awesome-project
# another-project

然后使用 pm go + 名字,迅速切换到该目录:

pm go awesome-project
# Current project: awesome-project

最后还有一个命令:pm remove + 名字,进行删除。

cgasm:命令行查询汇编指令

Intel x86/x64 开发者手册,上千页的 PDF 里漫游,效率很低,对不对?cgasm 支持本地模糊搜索,比如查询 aes 相关的指令:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

看 Intel 的 PDF 你要这么搞很费力吧?默认 cgasm + 指令,会显示简介。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

当然,具体使用你会需要看更详细的说明,那么可以使用 cgasm -v aesenc,将会显示和开发手册 PDF里一致的内容:指令字节码,编码模式,状态影响,伪操作码描述和等价的 Intrinsic 等详细内容,比搜网页和查询 PDF效率高多了。

owncloud:DropBox 的开源替代品,提供命令行客户端 owncloudcmd

后端开发经常再不同的主机上跳来跳去,同步一些常用文件变得必不可少,当然你可以放到 DropBox 里,但我的 DropBox 账号只有一个,个人文件太多,不想再各种主机上乱放,且我发现 Linux 下的 DropBox 命令行客户端有时候会 100% cpu 占用,死循环了。

使用 owncloud 当然要搭建公网服务端,这有一定门槛,但如果你有一台 vps 或者公网固定 ip 的服务器,可以用 docker 直接拉一个 owncloud 服务器下来就行,五分钟都不到。作为 DropBox 的代替品 owncloud 我很喜欢它一句口号:你的数据,你掌握。

把 owncloudcmd 工具放到 crontab 里面,每五分钟对你的 ~/.cloud/ 目录进行一次同步,你直接修改一台机器上的 ~/.cloud/ 下面的文件,基本上一处修改,所有地方就及时自动同步上了,比用 git 同步常用资料方便多了。

ncdu:可视化的空间分析程序

你发现有人把 /home 空间撑爆了,影响了大家的工作,你愤怒了一层层的 du,一层层的 cd,整个过程就像刨垃圾堆一样的恶心,后来发现了 ncdu 这个基于 ncurses 的空间分析程序:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

不但能用光标上下键移动,回车还可以进入对应目录又可以查看最新的占用,很快就揪出了占用空间最大的罪魁祸首。

glances:更强大的 htop / top 代替者

htop 代替 top,glances 代替 htop:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

信息比 htop 丰富了不少,更全了,对吧?除了命令行查看外,glances 还提供页面服务,让你从页面上随时查看某服务器的状态。

mc :内容浏览/预览

即便能舒适的呆在终端命令行里工作的人,有时候面对有些事情,也会感到烦躁,比如浏览一个目录的结构和里面文件内容,比如从源文件夹选择拷贝一批特定的文件到目标文件夹,这时候你需要 mc ,对就是前面 mcedit 的父项目 midnight commander ,安装方法同 mcedit:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

和原来 Windows 下的 Total Commander 很类似,直接光标上下移动浏览文件,按 TAB键切换左右窗口,支持鼠标,支持内容预览,让你快速了解一堆文件夹里有些什么东西,按 F3 可以唤出 mcedit 预览文件,还可以用二进制查看文件内容,F4可以编辑文件。

ranger:内容浏览/预览

另一款内容预览软件,界面没有 mc 那么漂亮,标记拷贝也没它强,但是预览功能做的很不错,如果你习惯 vim 键位的话,你会发现ranger有些地方比 mc做的好不少:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

上下键(或者j, k)移动光标,内容预览自动出现在右边,左键可以回退上一层目录,q退出,如果你对预览很依赖,你会喜欢上 ranger 这款软件,apt-get 直接安装即可。

dstat:vmstat 代替者

可能不少人都用过,但是本问题下好像没人提?

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

能输出比 vmstat 更加:美观,整洁,强大的内容。

cheat:命令行笔记

就是各种 cheat sheet ,比如经常搞忘 redis 命令的话,你可以新建 ~/.cheat/redis 这个文件,写一些内容,比如:

cat /etc/passwd | redis-cli -x set mypasswd
redis-cli get mypasswd
redis-cli -r 100 lpush mylist x
redis-cli -r 100 -i 1 info | grep used_memory_human:
redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
redis-cli --scan --pattern '*:12345*'

然后使用的时候,cheat redis 命令就可以显示出来刚才新建的 cheat sheet 了:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

同样 cheat 本身还自带了很多常用 cheat sheet,比如你可以试试:

cheat tar      # 当你忘记 tar 命令时候
cheat vim      # vim cheat sheet
cheat rsync    # 文件同步的 cheat sheet

忘记 Vim 怎么退出了?没关系 cheat vim 就可以显示 vim cheat sheet了,对于一些重要的,但是不常用的,经常搞忘的东西,特别有用,比如我最痛恨的 https + svn 搭建过程,第一次查资料弄好,然后忘了,半年后又要再弄时又得全部重新查找资料,然后又忘记了,有了这个就比较好办。

再比如 rsync 的用法,我就老记不住,man rsync 又是废话连篇不着重点,看它自带的 cheat 效率提高不少,注意时常更新,作者会不断添加 cheat sheet。

这显然比你查询网页开 evernote 效率来的快,使用环境变量 DEFAULT_CHEAT_DIR 可以设定 ~/.cheat 以外的个人 cheat 目录,一般很多人都会在 github 上建立一个个人配置文件的项目,里面放满自己的 vim / zsh / bash 等配置,现在可以把个人 cheat 文件也纳入这个项目的管理,这样你就比较方便的能在不同的机器上同步你自己建立的各种 cheat sheet 了。

随着你自定义了越来越多的 cheat sheet,你的工作效率会变得越来越高。

multitail:多重 tail

通常你不止一个日志文件要监控,怎么办?终端软件里开多个 tab 太占地方,可以试试这个工具:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

上面演示了同时监控两个日志文件,有高亮显示不同内容,当然还可以同时监控更多日志:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

也许你会问,这和 tmux + tail 有什么区别?区别大了,multitail 可以做太多 tmux + tail 做不了的事情了,比如:

  • 日志色彩高亮
  • 窗口自动管理,自动调整大小。
  • 多个日志文件窗口可以合并到一个里面,就像一个 log 文件一样查看。
  • 临时显示/隐藏某个日志文件窗口。
  • 可以对所有日志文件进行同一关键字搜索。
  • 日志过滤,外部正则表达式工具分析。
  • 众多常见服务的日志高亮模板,如:tcpdump,apache,squid,strace

等等,自己到它主页看吧,比 tmux + tail 强多了,操作也比 tmux 方便。

bro:以用例为主的帮助系统

man 以外的帮助系统有很多,除去 cheat, tldr 外,还有一款有意思的帮助系统 — bro,它是以用例为主的帮助,所有用例都是由用户提供,并且由用户投票筛选出来的:

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

比如我们查看 cut 命令的帮助,就运行 “bro cut”,显示内容如图,查看按投票多少排序,你如果觉得哪条解释比较好,你可以投赞成票,或者反对票。

安装很简单,先安装 ruby 和 ruby-dev ,然后:

gem install bropages

即可,相比由某些官方写的帮助文档,这种知乎式的帮助筛选方法,更容易将最好的帮助信息筛选出来。

thefuck: github.com/nvbn/thefuck

用途是每次命令行打错了以后,打一句fuck就会自动更正命令。比如apt-get打成了aptget。fuck以后自动变成apt-get。但还是没加sudo。再fuck,成功!

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

又比如git branch打成了git brnch。fuck!更正成git branch。

又比如python打成了puthon。fuck!一秒变python。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

而且关键是每次打命令和内心os完全一致,有种人机合一的快感。fuck!

  • tldr: 如果你经常不想详读man文档,那么你应该试试这个小工具。

$ man tar

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件

$ tldr tar

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件
  • cloc: 用来统计代码行数,统计结果比较分类比较详细,支持大部分编程语言。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件
  • figlet: 将输入字符转换成艺术字体。

Linux: Shell 神器, 神器软件, 命令行软件
Linux: Shell 神器, 神器软件, 命令行软件
  • mackup: 应用偏好设置备份和同步工具。支持多种云盘,支持大部分应用程序的配置文件(也可以自定义)。

 

更多:https://www.zhihu.com/question/59227720

 

本文:Linux: Shell 神器, 神器软件, 命令行软件

One Comment

Leave a Reply