电脑技术学习

对话 UNIX:第 2 部分: 做得多不如做得巧

dn001

  前面的部分主要关注的是如何减少在命令行中的输入。当然,还有许多内容需要学习,因为 Shell 环境非常丰富。然而请记住,功能越强大,生产能力就越大(要对蜘蛛侠说声抱歉,因为修改了原话)。

  为了保留以前输入的内容和保存以前的所有设置,Unix Shell 分别提供了别名和启动文件。别名 是您所创建的快捷方法。每次 Shell 启动时都会读取启动文件,这是保存(和共享)所有 Shell 设置的理想的地方,如 Shell 变量(选项)、环境变量和别名。

  别名是一个简短的序列,您可以使用它来代替一个较长的命令。您可以把别名看作是一个命令行的缩写。无需输入:

$ find /home/joe -type f -name '*.txt' -print | xargs grep -l "Monthly Report"

  在命令提示符处,您可以输入已经创建的别名:

$ findreports

  Shell 减少了工作的复杂程度,它会将 findreports 替换成其扩展形式。要创建 findreports 别名,可以输入:

alias findreports='find $HOME -type f -name "*.txt" -print |
 xargs grep -l "Monthly Report"'

  必须使用单引号确定每个别名的界限。如果您需要在别名中使用引号,那么可以使用双引号。Z Shell 别名可以包含许多 Shell 基本单位,包括变量、管道、重定向、其他别名和其他 Shell 操作数,如清单 9 所示。

  清单 9. Z Shell 基本单位

$ alias ll='/bin/ls -l'
$ ll -d 2002*
drwxrwxr-x 2 www-data  www-data  4096 Jan 16 2002 2002-02
drwxrwxr-x 2 www-data  www-data  4096 Jan 22 2002 2002-03
drwxrwxr-x 2 www-data  www-data  4096 Apr 15 2002 2002-04
drwxrwxr-x 2 www-data  www-data  4096 Apr 19 2002 2002-05
...
$ alias lt='ll -t'
$ lt -d 2002*
drwxrwxr-x 2 www-data www-data 4096 Apr 19 2002 2002-05
drwxrwxr-x 2 www-data www-data 4096 Apr 15 2002 2002-04
drwxrwxr-x 2 www-data www-data 4096 Jan 22 2002 2002-03
drwxrwxr-x 2 www-data www-data 4096 Jan 16 2002 2002-02
$ alias m='pinky | grep mstreicher'
$ m
mstreicher Martin Streicher   ...
$ alias snap='pinky >> ~/.pinky'
$ snap
$ snap
$ cat ~/.pinky
Login      Name      TTY   Idle  When       Where
mstreicher Martin Streicher  pts/0  Jun 18 16:40 cpe-071-065-224-025.nc.res.rr.com
Login      Name      TTY   Idle  When       Where
mstreicher Martin Streicher  pts/0  Jun 18 16:40 cpe-071-065-224-025.nc.res.rr.com

标签: