zoukankan      html  css  js  c++  java
  • 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命令的列表了。这些命令有多少是你已经知道了呢?你是否在日常的工作中使用这些命令?在下面的评论中让我们了解一下吧!!

  • 相关阅读:
    二叉树线索化。。。
    如何通过指针访问虚函数表,并且调用里面的方法
    进程间通信IPC
    什么时候该用assert
    高并发服务端分布式系统设计概要(上)
    C语言读写文件
    Linux 与 BSD 有什么不同?
    extern "C" 使用
    C语言字符数组的定义与初始化
    Linux守护进程
  • 原文地址:https://www.cnblogs.com/YungMing/p/4361086.html
Copyright © 2011-2022 走看看