作为一名Web开发者,Linux命令行是每天必用的工具。我整理了一些能够提高日常生产力的小工具。一些工具可以作为系统自带命令的替代品,另一些则提供操作系统没有的功能。希望能对大家有帮助。
所有命令均在Ubuntu 18.04上测试过。
1.grep => ack, ag
ack和ag是两个文本搜索工具,比自带的grep要好用得多。在指定目录下搜索文本时,它们不需要像grep那样指定各种命令行选项,输出结果也会包含文件名和行号,并且会高亮显示搜索关键字。
两者的基本功能很相似,所以可以任选一个安装。在Ubuntu 18.04上可以使用以下命令安装:
- # Install ack
- $ sudo apt install ack
- # Install ag
- $ sudo apt install silversearcher-ag
在Ubuntu 16.04上,ack的包名是ack-grep,所以你需要使用 sudo apt install ack-grep来安装。
2.fzf: 模糊查找
fzf是个模糊查找工具,主要用于命令行自动补齐,它可以查找文件名、进程名甚至环境变量。与系统自带的自动补齐相比,fzf能用列表的方式显示备选项,并且会即时根据输入内容进行过滤,不用像自带的自动补齐那样反复按tab键并在密密麻麻的结果中找了。
fzf不在Ubuntu的包里,所以需要从源代码来安装:
- git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
- ~/.fzf/install
安装之后,可以用**的格式来完成大部分补齐:
- vim **<TAB> # select files from current dir and edit
- vim ../**<TAB> # select files from parent dir and edit
- kill -9 <TAB> # auto complete process to kill
- export **<TAB> # auto complete env var to export
- <C-R> # search command line history
更多用法请参见项目主页:https://github.com/junegunn/fzf。
3.TheFuck:命令行拼写更正
输入命令时最让人头疼的就是输入了很长的命令之后发现开头打错了一个字母,或者忘了写sudo。TheFuck就是用来解决这个问题的。
用以下命令安装:
- $ sudo apt install thefuck
然后需要将下面的命令加入到~/.bashrc中:
- eval $(thefuck --alias)
重新登录(或者通过 source ~/.bashrc重新加载)后,试试下面的操作:
- $ apt install git
- E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
- E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
- $ fuck
- sudo apt install git [enter/↑/↓/ctrl+c]
- Reading package lists... Done
- Building dependency tree
4.top => htop
htop命令十分出名,这里就不再赘述了。可以完全替换top命令。
- $ sudo apt install htop
- $ htop
5.traceroute => mtr
在查找网络问题时,mtr命令更好用,而且比系统自带的traceroute命令更快。
- $ sudo apt install mtr
跟踪路由只需要输入:
- $ mtr 8.8.8.8
该命令将启动一个GUI,显示路由跟踪的过程和结果。如果你喜欢文本界面,可以加入-t参数:
- $ mtr -t 8.8.8.8
6.df => pydf
pydf可以用更简洁的方式显示磁盘使用状态。
- $ sudo apt install pydf
7.mc:文件管理器
mc的全称是GNU Midnight Commander,是个命令行下非常好用的文件管理器。它采用左右两个窗口的形式管理文件,并且还支持FTP和SFTP。当你需要操作许多文件却又无法访问GUI时,比如在远程服务器上,那么mc是***的选择。
提示:mc使用了F1~F10功能键。如果你的环境中F1~F10无法使用(比如通过终端模拟器使用mc,而功能键被绑定到了菜单上),那么可以使用Esc -> 0~9代替。
8.ftp => lftp
尽管现在FTP协议已经不流行了,但有时候访问旧的资源时还是需要的。lftp是个非常优秀的命令行FTP客户端。与系统自带的ftp相比,lftp支持mput和mget命令,可以用通配符上传和下载文件,还有强大的mirror命令可以下载或上传整个目录。它甚至可以用torrent下载BitTorrent协议的文件!
- $ sudo apt install lftp
9.wget => aria2
aria2是个轻量级的下载工具,支持HTTP/HTTPS、FTP、SFTP、BitTorrent,而且最重要的是支持多线程下载。因此一般来说它的下载速度比wget快得多。它还支持断点续传。使用示例请参见aria2的主页(https://aria2.github.io/)。
- $ sudo apt install aria2
- $ aria2c https://example.com/ubuntu.iso
10.nnn:文件分析工具
磁盘空间紧张时我经常会用du -sh *命令找出占用空间很大的文件和目录并删除它们。nnn可以做得更好。只需执行nnn然后按大写的S,即可看到所有目录和文件的大小。
- $ sudo apt install nnn