15个名不见经传的Unix命令

本文翻译自:15 Little-Known Unix Commands

每个开发者都需要掌握一定的终端使用能力。对于不可能总是在某台电脑旁边工作的你来说,你需要远程登录这台电脑。虽然图形用户界面可以很轻松的帮你完成这些,但是通常速度都比终端访问要慢(毕竟终端只是一些文字的交流!)。

无论你对于使用终端来说是初学者还是有经验的用户,我敢肯定你都想接触一些新的技巧和窍门。在这篇文章中,我将介绍15个你可能没有听说过的Unix命令。

注意: 在这篇文章中,我将使用方括号表示任意变量。当你实际运行这些命令时,你应该把这些替换成实际的值,同时移除方括号。例如,我们的第一个例子, man [command] 可以用作 man cdman grep

1. man

让我们以一个简单的命令开始吧。 这个 man 命令表示 “manual” (手册)的意思,例如 文档。如果你想了解任何一个Unix 命令,你可以执行下面的命令:

man [command]

对于这个 man 命令最简单的使用列子,就是查看 man 自身的文档说明:

man man

man 不一定是个鲜为人知的命令,你可以在任何的Unix 终端中找到它。

然而,有些特殊的用法在普通的教程里就可能没有讲过了。

如果你想知道更多关于你的ASCII码的知识,可以试试这个:

man ascii

是否曾经想知道 pico-femto- 哪个比较小? 可以试试获取unit 前缀的信息:

man units

还有很多类似这样的手册,其中有些也非常有趣!(提示: 试试 man xkill)。我将留给你自己去试试了,同时,我们继续讨论其它的命令。

2. cd -

如果你正在某个目录中进行某项工作,突然意外地变成了另一个目录,有一种很简单的方法回到之前的目录。只需要运行下面的代码,就可以回到之前的工作目录了:

cd -

3. sudo !!

上面这个由 XKCD绘制的漫画说明了 sudo 命令在Unix系统中的重要性。*sudo *会以管理员的权限去运行一个命令,你指定的用户会被添加到sudo-ers 组里面。

假设你没有使用sudu 前缀来运行一个命令。如果你不想再次输入相同的命令,你可以使用下面的命令来自动加上sudo 前缀给上一条命令并运行。

sudo !!

4. mtr

mtr 是一个强大的网络诊断工具。它结合了traceroute和ping命令的功能:

mtr [hostname]

mtr 会检查主机(运行这条mtr命令的主机)到远程主机([hotname])之间的网络连接 。这是mtr 命令发送的详细数据内容,全面地解析了这个命令。

5. [space] command

频繁使用终端的用户可能会知道,他们所运行的每一条命令都会记录在一个文件里面 ~/.bash_history。当运行命令时如果不想纪录这个命令,只需要在命令的前面空一格就可以:

[space] [command]

6. jot

jot 顾名思义就是生成一些文本 - 从数字字符到胡言乱语。 如果你想产生某一范围内的数字,可以运行下面的命令:

jot [number_of_numbers] [starting_number]

如果你只提供一个参数,它会产生从1到这个数字参数的值。

这个 -r 选项会产生随机的数字。语法如下:

jot -r [number_of_numbers] [lower_limit] [upper_limit]

这个 -b 选项会重复一个给定值的次数。对于其它的选项,可以运行 man jot 或者查看这篇教程

7. df

在我们教程中相对简单的命令, df 表示 “disk free”(磁盘空间),会显示你的磁盘可用的剩余空间。

8. pkill

pkill 或者 “ process kill” 终止一个运行中的进程。当一个应用没有响应时,这个命令非常好用。语法如下:

pkill [application_name]

对于这个命令一个有趣或者残忍的用例就是,当你有能力登录进远程某一台有用户正在使用的机器时,可以检查他们正在运行什么程序,然后运行 pkill 命令来终止该应用。当这个用户在向四周查看谁在搞恶作剧的时候记得保持镇定。当然,你要确保它不是一个关键的应用程序或一些可能会丢失的重要工作!

9. ddate

Discordian 日历是另一种格式的日历,1 YOLD 表示 公元前1166年。ddate 命令就是显示这个Discordian 日历。

10. cal

如果你只是想要古老的文字型的日历,只需要输入 cal 来获取好看的,当前月份的日历:

上面只是默认的视图。 cal命令手册列举了各种可用选项,可以用不同的方式来展示月份。

11. tac

你可能听说过 cat命令。它有一系列有用的功能,包括 创建,复制,合并和展示文本文件。 而这个tac 命令有同样的功能,只不过是反转过来显示而已!看一下效果:

12.w

w 命令显示了当前有哪个用户登录到了你的系统中。它用列表来展示当前登录的用户,同时显示一些额外的信息,例如系统负载和运行时间:

13. factor

如果你想因式分解某一个数字,不用找其它的。仅仅运行下面的代码:

factor [number]

14. yes

回到一个有趣的命令上, yes 会打印一个字符串很多次。

yes [string]

如果你不提供一个字符串,它递归打印“y”直到你停止命令。这个命令以非常快的速度去打印这个字符串,以至于我无法在命令运行时截取一张终端的运行时图片。如果你在做一些可疑的事情时,刚好有人经过,确保你运行这个命令来混淆他们的视觉(仅限于不了解Shell编程的人).

注意:如果你打算运行这个命令,你应该知道停止这个命令的唯一方法就是 * CTRL+C/CMD+C * 或者关闭这个终端。

15.nl

nl 命令会给文本附上行号。最好是通过使用其他一些命令的输出作为参数。把其它命令的输出当作参数的方法是使用管道 (“|”)。我们来看看两个例子:

还知道其它的吗?

这样,我们就结束了这个你可能没有见过的Unix命令的列表了。这些命令有多少是你已经知道了呢?你是否在日常的工作中使用这些命令?在下面的评论中让我们了解一下吧!!

posted @ 2014-07-11 21:37  剑尖  阅读(309)  评论(0编辑  收藏  举报