对话 UNIX: 适用于任何 UNIX 系统的 10 个出色的工具

来源:developerWorks 中国 作者:Martin Streicher
  
UNIX® 工具一直在变化。本文介绍 10 个有用的工具,其中一些是您以前可能不太关注的工具,一些是新工具。

与日常用语一样,UNIX 工具一直在变化。经常会出现新工具,同时老工具常常会改进以适应新的最佳实践。一些工具非常常用,其他工具不太常用。一些工具经久不衰,有些工具完全过时了。为了顺畅地操作 UNIX,您必须了解最新的 “行话”。

表 1 列出了 对话 UNIX 系列中以前讨论过的 11 个重要的软件包。


表 1. 重要的 UNIX 工具
名称 用途
Cygwin 一种适用于 Windows® 操作系统的与 UNIX 相似的 shell 和构建环境
fish 一种交互性很强的 shell,具有针对命令名、选项和文件名的自动展开和语法彩色标记功能
locate 构建并搜索所有文件的数据库
rename 对大型文件集合进行批量重命名
rsync 高效地本地或远程同步文件和目录
Screen 创建和管理虚拟的持久的控制台
Squirrel 一种跨平台的脚本编程 shell
tac 以相反的次序输出输入,首先输出最后一行(tac 的作用与 cat 相反)
type 判断一个命令是别名、可执行程序、内置的 shell 还是脚本
wget 使用命令行下载文件
zsh 一种高级的 shell,提供自动补全、高级的操作数重定向和高级替换

在这一期中,我们讨论另外 10 个实用程序和应用程序,它们可以扩展或改进现有的更著名的 UNIX 包。它们涉及从通用存档转换器到高速 Web 浏览器的多个领域。

根据您使用的 UNIX 风格不同,有时候必须安装新的软件包。可以从源代码构建它们,如果包管理软件提供等效的二进制包,也可以直接安装,这会节省时间和精力。例如,如果使用 Debian 风格的 Linux®,那么可以使用 apt-get 直接安装本期讨论的许多实用程序。





用 apropos 寻找命令

UNIX 的命令太多了,所以很容易忘记某个实用程序的名称;对于不常使用的工具,尤其可能出现这种情况。如果您正在努力回想一个命令名,那么试试 apropos(或等效的 man -k)。例如,如果您要找一个计算器,那么只需运行 apropos calculator:

$ apropos calculator
bc (1)        - An arbitrary precision calculator language
dc (1)        - An arbitrary precision calculator

bc 和 dc 都是命令行计算器。

每个 UNIX 手册页都有简短的描述,apropos 在描述中搜索指定的关键字。关键字可以是字面值(比如 calculator),也可以是正则表达式(比如 calc*)。如果使用后一种形式,那么一定要把表达式放在引号("")中,以防止 shell 解释特殊字符:

$ apropos "calcu*"
allcm (1)     - force the most important Computer-Modern-fonts to be calculated
allec (1)     - force the most important Computer-Modern-fonts to be calculated
allneeded (1) - force the calculation of all fonts now needed
bc (1)        - An arbitrary precision calculator language
dc (1)        - An arbitrary precision calculator





在命令行上运行计算

如上所示,dc 是在每个 UNIX 系统上都可以找到的计算器。如果不带参数运行 dc,就会进入交互模式,可以编写和运算 Reverse Polish Notation (RPN) 表达式:

$ dc
5
6 
* 
10
/ 
p
3

但是,可以在命令行上做所有这些工作。指定 -e 选项并提供要运算的表达式。同样,要把表达式放在引号中,以防止 shell 解释它:

$ dc -e "5 6 * 10 /"
3





用 pgrep 寻找进程

您可能无数次使用 ps aux | grep ... 寻找进程。这当然是有效的,但是有一种更高效的搜索进程的方法。请试试 pgrep。

例如,以下命令寻找 strike 的所有登录 shell(其中的 strike 是用户名):

$ pgrep -l -u strike zsh 
10331 zsh
10966 zsh

pgrep 命令提供筛选选项,允许按用户名(上面给出的 -u)、进程组、组等筛选进程。配套的实用程序 pkill 接受 pgrep 的所有选项和一个信号,它把这个信号发送给与给定的条件匹配的所有进程。

例如,命令 pkill -9 -u strike zsh 与 pgrep -u strike zsh | xargs kill -9 等效。





用 pwgen 生成安全密码

UNIX 中每个重要的子系统都需要自己的密码。电子邮件、远程登录和超级用户特权都需要密码,这些密码最好各不相同而且难以通过自动化攻击猜测或推断出来。另外,如果希望开发生成账户的脚本,就需要一个可靠的随机安全密码来源。

pwgen 实用程序是一个用来生成密码的小程序。可以把密码设定为更容易记忆的或更安全的,还可以指定密码是否包含数字、符号、元音和大写字母。

许多 UNIX 系统都有 pwgen。如果没有,也很容易构建它:

$ # As of March 2009, the latest version is 2.06
$ wget http://voxel.dl.sourceforge.net/sourceforge/\
  pwgen/pwgen-2.06.tar.gz
$ tar xzf pwgen-2.06.tar.gz
$ cd pwgen-2.06
$ ./configure && make && sudo make install

下面是一些使用示例:

  • 输出容易记忆的密码集合:
    $ pwgen -C
    ue2Ahnga Soom0Lu0 Hie8aiph gei9mooD eiXeex7N 
    Wid4Ueng taShee3v Ja3shii8 iNg0viSh iegh5ouF 
    ...
    zoo8Ahzu Iefev0ch MoVu4Pae goh1Ak6m EiJup5ei 
    

  • 生成一个安全的密码:
    $ pwgen -s -1
    oYvy9WWa
    

  • 生成一个安全的密码,其中不包含含糊(即容易混淆的)字符,至少包含一个非字母数字字符:
    时间:2009-07-13 15:03 来源:developerWorks 中国 作者:Martin Streicher 原文链接

好文,顶一下
(4)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量