命令行基础工具的更佳替代品
命令行听起来有时候会很吓人，特别是在刚刚接触的时候，你甚至可能做过有关命令行的噩梦。然而渐渐地，我们都会意识到命令行实际上并不是那么吓人，反而是非常有用。实际上，没有命令行正是每次我使用 Windows 时让我感到崩溃的地方。这种感觉上的变化是因为命令行工具实际上是很智能的。 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的， 但还远说不上是足够强大。 如果你想使你的命令行生涯更加愉悦， 这里有几个程序你可以下载下来替换原来的默认程序， 它还可以给你提供比原始程序更多的功能。 dfc 作为一个 LVM 使用者,
命令行 dfc dog advcp htop mtr
222.66.175.253
原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！
微博评论
2014-10-20T11:33:00.000
103.3.189.154
噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！
微博评论
2014-10-20T12:33:01.000
103.3.189.154
Repost
微博评论
2014-10-20T12:33:01.000
103.3.189.154
常用命令的高级替代品，赞！//@Linux中国:噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！
微博评论
2014-10-20T12:33:01.000
202.117.10.211
dog这个不错呀
微博评论
2014-10-20T13:03:00.000
61.132.138.212
干货[馋嘴]
微博评论
2014-10-20T14:03:00.000
211.142.238.26
//@Linux中国:噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！
微博评论
2014-10-20T15:33:01.000
58.22.135.91
//@Linux中国:噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！
微博评论
2014-10-20T16:03:00.000
59.108.83.42
原来的命令都用惯了，看到这里列出的一些命令还是蛮好用的，尤其是那个acp和amv哇，不过觉得这些功能还是最好酌情整合到原来的命令中去，这样原来的命令行工具才能不断进化，变得越来越强大，而且能够与时俱进，增强易用性．
朩ダo○
2014-10-20T22:01:08.000
222.210.217.93
Windows是可以通過多種方式在命令行查詢磁盤空間
来自 - 四川成都 的 Firefox/Linux 用户
2014-10-20T22:53:22.000
114.245.3.227
想改需要取得原来程序的维护者的同意和支持，有时候并不可行。。。
linux
2014-10-20T23:13:58.000
14.131.252.31
嗯嗯！不错，这些需要单独安装的吧？功能真不错！
来自 - 北京 的 Safari/Linux 用户
2014-10-20T23:25:24.000
218.66.62.190
牢记命令行。//@Linux中国:噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！
微博评论
2014-10-22T13:33:00.000
140.206.169.86
这些命令哪里有下。。。。。。。
来自 - 上海 的 Chrome/Windows 用户
2014-10-22T13:57:47.000
116.25.162.114
用centos的朋友在YUM里可能找不到dfc这个工具，我找了很久找到了，贴出地址，需要的朋友可以下载来自己编译<br />
projects.gw-computing.net/projects/dfc/files<br />
解压后README里有详细步骤
来自 - 广东深圳 的 Firefox/Linux 用户
2014-10-23T13:59:24.000
123.120.54.16
谢谢！
linux
2014-10-23T20:31:25.000
58.49.40.70
额。advcp我找了很久没有找到。 哪位有地址发一下。
来自 - 湖北武汉 的 Chrome/Windows 用户
2014-11-04T09:32:25.000
61.148.243.8
请按译者注自己构建一个试试。
linux
2014-11-04T12:47:29.000
117.149.0.75
来学习学习，advcp还不错
Sawyer [Firefox 52.0|Ubuntu]
2017-04-20T18:35:55.000
命令行听起来有时候会很吓人，特别是在刚刚接触的时候，你甚至可能做过有关命令行的噩梦。然而渐渐地，我们都会意识到命令行实际上并不是那么吓人，反而是非常有用。实际上，没有命令行正是每次我使用 Windows 时让我感到崩溃的地方。这种感觉上的变化是因为命令行工具实际上是很智能的。 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的， 但还远说不上是足够强大。 如果你想使你的命令行生涯更加愉悦， 这里有几个程序你可以下载下来替换原来的默认程序， 它还可以给你提供比原始程序更多的功能。 dfc 作为一个 LVM 使用者,
命令行听起来有时候会很吓人，特别是在刚刚接触的时候，你甚至可能做过有关命令行的噩梦。然而渐渐地，我们都会意识到命令行实际上并不是那么吓人，反而是非常有用。实际上，没有命令行正是每次我使用 Windows 时让我感到崩溃的地方。这种感觉上的变化是因为命令行工具实际上是很智能的。 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的， 但还远说不上是足够强大。 如果你想使你的命令行生涯更加愉悦， 这里有几个程序你可以下载下来替换原来的默认程序， 它还可以给你提供比原始程序更多的功能。


### dfc


作为一个 LVM 使用者, 我非常喜欢随时查看我的硬盘存储器的使用情况. 我也从来没法真正理解为什么在 Windows 上我们非得打开资源管理器来查看电脑的基本信息。在 Linux 上， 我们可以使用如下命令：



```
$ df -h

```

![](/data/attachment/album/201410/19/225759fkfn0xjby2v0fb0f.jpg)


该命令可显示电脑上每一分卷的大小、 已使用空间、 可用空间、 已使用空间百分比和挂载点。 注意， 我们必须使用 "-h" 选项使得所有数据以可读形式显示(使用 GiB 而不是 KiB)。 但你可以使用 [dfc](http://projects.gw-computing.net/projects/dfc) 来完全替代 df， 它不需要任何额外的选项就可以得到 df 命令所显示的内容， 并且会为每个设备绘制彩色的使用情况图, 因此可读性会更强。


![](/data/attachment/album/201410/19/225456mdwhg9uthulax7u6.jpg)


另外， 你可以使用 "-q" 选项将各分卷排序， 使用 "-u" 选项指定你希望使用的单位， 甚至可以使用 "-e" 选项来获得 csv 或者 html 格式的输出.


### dog


Dog 比 cat 好， 至少这个程序自己是这么宣称的。 你应该相信它一次。 所有 cat 命令能做的事， [dog](http://archive.debian.org/debian/pool/main/d/dog/) 都做的更好。 除了仅仅能在控制台上显示一些文本流之外， dog 还可以对其进行过滤。 例如， 你可以使用如下语法来获得网页上的所有图片：



```
$ dog --images [URL] 

```

![](/data/attachment/album/201410/19/225519wkqo0okkus70zkdd.jpg)


或者是所有链接：



```
dog --links [URL] 

```

![](/data/attachment/album/201410/19/225827yyacj1vmceac1a1a.jpg)


另外， dog 命令还可以处理一些其他的小任务， 比如全部转换为大写或小写， 使用不同的编码， 显示行号和处理十六进制文件。 总之, dog 是 cat 的必备替代品。


### advcp


一个 Linux 中最基本的命令就是复制命令： cp。 它几乎和 cd 命令地位相同。 然而， 它的输出非常少。 你可以使用 verbose 模式来实时查看正在被复制的文件， 但如果一个文件非常大的话， 你看着屏幕等待却完全不知道后台在干什么。 一个简单的解决方法是加上一个进度条： 这正是 advcp (advanced cp 的缩写) 所做的！ advcp 是 [GNU coreutils](http://www.gnu.org/software/coreutils/) 的一个 [补丁版本](http://zwicke.org/web/advcopy/)， 它提供了 acp 和 amv 命令， 即"高级"的 cp 和 mv 命令. 使用语法如下：



```
$ acp -g [file] [copy] 

```

它把文件复制到另一个位置， 并显示一个进度条。


![](/data/attachment/album/201410/19/225551scimbifntk60zc96.jpg)


我还建议在 .bashrc 或 .zshrc 中设置如下命令别名：



```
alias cp="acp -g"
alias mv="amv -g"

```

(译者注: 原文给出的链接已貌似失效, 我写了一个可用的安装脚本放在了我的 [gist](https://gist.github.com/b978fc93b62e75bfad9c) 上, 用的是 AUR 里的 [patch](https://aur.archlinux.org/packages/advcp)。)


(译者注：由于 GIST 被封，所以我将这个构建脚本贴到这里，大家可以使用它来构建一个自己用的二进制程序。)



```
#!/usr/bin/env bash
set -e
 
tmpdir=$(mktemp -t -d advcp.XXXXXX)
cd ${tmpdir}
 
wget https://aur.archlinux.org/packages/ad/advcp/advcp.tar.gz
tar xf advcp.tar.gz
 
source advcp/PKGBUILD
 
wget http://ftp.gnu.org/gnu/coreutils/coreutils-"${_pkgver}".tar.xz
tar xf coreutils-"${_pkgver}".tar.xz
 
cd coreutils-"${_pkgver}"
 
echo "[1mPatching...[0m"
patch -p1 -i ../advcp/advcpmv-"${_pkgver}"_"${pkgver}".patch || exit 1
 
echo "[1mStart making...[0m"
./configure || exit 1
make || exit 1
 
sudo install -Dm 755 "${PWD}"/src/cp /usr/local/bin/acp
sudo install -Dm 755 "${PWD}"/src/mv /usr/local/bin/amv
 
echo "[1mInstallation succeeded![0m"
echo "[1mDon't forget to add \"alias cp='acp -g'\" and \"alias mv='amv -g'\" in your bashrc![0m"
```

 


### The Silver Searcher


[the silver searcher](https://github.com/ggreer/the_silver_searcher) 这个名字听起来很不寻常（银搜索...）， 它是一款设计用来替代 grep 和 [ack](http://xmodulo.com/2014/01/search-text-files-patterns-efficiently.html) 的工具。 The silver searcher 在文件中搜索你想要的部分， 它比 ack 要快， 而且能够忽略一些文件而不像 grep 那样。（译者注： 原文的意思貌似是 grep 无法忽略一些文件， 但 grep 有类似选项） the silver searcher 还有一些其他的功能，比如彩色输出， 跟随软连接， 使用正则表达式， 甚至是忽略某些模式。


![](/data/attachment/album/201410/19/225833ebz3mbfxfh1183r3.jpg)


作者在开发者主页上提供了一些搜索速度的统计数字， 如果它们的确是真的的话， 那是非常可观的。 另外， 你可以把它整合到 Vim 中， 用一个简洁的命令来调用它。 如果要用两个词来概括它， 那就是： 智能、快速。


### plowshare


所有命令行的粉丝都喜欢使用 wget 或其他对应的替代品来从互联网上下载东西。 但如果你使用许多文件分享网站， 像 mediafire 或者 rapidshare。 你一定很乐意了解一款专门为这些网站设计的对应的程序， 叫做 [plowshare](https://code.google.com/p/plowshare/)。 安装成功之后， 你可以使用如下命令来下载文件：



```
$ plowdown [URL] 

```

或者是上传文件:



```
$ plowup [website name] [file] 

```

前提是如果你有那个文件分享网招的账号的话。


最后， 你可以获取分享文件夹中的一系列文件的链接：



```
$ plowlist [URL] 

```

或者是文件名、 大小、 哈希值等等：



```
$ plowprobe [URL] 

```

对于那些熟悉这些服务的人来说， plowshare 还是缓慢而令人难以忍受的 jDownloader 的一个很好的替代品。


### htop


如果你经常使用 top 命令， 很有可能你会喜欢 [htop](http://hisham.hm/htop/) 命令。 top 和 htop 命令都能对正在运行的进程提供了实时查看功能， 但 htop 还拥有一系列 top 命令所没有的人性化功能。 比如， 在 htop 中， 你可以水平或垂直滚动进程列表来查看每个进程的完整命令名， 还可以使用鼠标点击和方向键来进行一些基本的进程操作(比如 kill、 (re)nice 等)，而不用输入进程标识符。


![](/data/attachment/album/201410/19/225627nisp9s1dxjjg1px9.jpg)


### mtr


系统管理员的一个基本的网络诊断工具traceroute可以用于显示从本地网络到目标网络的网络第三层协议的路由。mtr（即“My Traceroute”的缩写）继承了强大的traceroute功能，并集成了 ping 的功能。当发现了一个完整的路由时，mtr会显示所有的中继节点的 ping 延迟的统计数据，对网络延迟的定位非常有用。虽然也有其它的 traceroute的变体（如：tcptraceroute 或 traceroute-nanog），但是我相信 mtr 是traceroute 工具里面最实用的一个增强工具。


![](/data/attachment/album/201410/19/225843bqh698h889yhlurs.jpg)


总的来说， 这些十分有效的基本命令行的替代工具就像那些有用的小珍珠一样， 它们并不是那么容易被发现， 但当一旦你找到一个， 你就会惊讶你是如何忍受这么长没有它的时间！ 如果你还知道其他的与上面描述相符的工具， 请在评论中分享给我们。




---


via: <http://xmodulo.com/2014/07/better-alternatives-basic-command-line-utilities.html>


作者：[Adrien Brochard](http://xmodulo.com/author/adrien) 译者：[wangjiezhe](https://github.com/wangjiezhe) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

