2013年(21)
分类: IT职场
2013-02-14 14:02:17
如果你曾经在Linux shell命令行提示符下输入过命令,你可能已经使用了bash。毕竟,它是多数现代的GNU/Linux版本的缺省命令行shell。bash shell是进入Linux操作系统的首个界面。它接受,解释并执行你的命令,并且向你提供shell脚本和自动任务执行的编译模块。
bash包含了一些功能强大的工具和方便之处。如果你是经常要用到命令行的用户,这些可以减少你相当多的输入。本文给出了十个最有用的工具:
1.轻松调用先前的命令
bash在一个历史缓冲区中保留你执行的命令,并且允许你通过上和下的光标键在先前的命令间循环以再次调用它们。甚至为了更快速的重新调用,可以通过输入少量命令字符然后跟组合键 Ctrl-R来“快速查找”先前执行的命令;然后bash将扫描命令历史以匹配命令并在控制台显示它们。重复按Ctrl-R可以在整个匹配的命令列表中进行循环。
2.使用命令别名
如果你频繁地使用参数相同的某个命令,你可以让bash为它创建一个别名。这个别名将组合需要的参数,所以你无需记住它们或每次手工输入它们。例如,如果你经常使用ls -l以获得详细的目录列表,你可以使用这个命令:
bash> alias ls="ls -l"
这样就创建了自动包含-l选项的别名。一旦该别名被创建,在bash提示符下输入ls将调用该别名就输出ls -l。
你可以通过调用没有任何参数的别名获得可用别名的列表,你也可以用unalias命令删除别名。
3.使用文件名自动补全
bash在命令提示符下支持文件名自动补全。要使用该特性,输入文件名的前几个字符,然后按Tab键。bash将扫描当前的目录以及搜索路径中的所有其他目录以匹配该文件名。如果只找到一个匹配,bash将为你自动补全该文件名。如果找到多个匹配,将提示你选择一个。
4.使用快捷键以高效地编辑命令行
bash为命令行的浏览和编辑支持许多快捷键。快捷键Ctrl-A将光标移动到命令行的开始处,而快捷键Ctrl-E将光标移动到命令行的末尾。快捷键Ctrl-W直接删除光标前的字,而快捷键Ctrl-K直接删除光标前的所有字符。你可以用Ctrl-Y撤销一个删除。
5.获得新邮件的自动通知
通过设置$MAILPATH变量指向你的本地邮件池,你可以配置bash自动向你通知新邮件。例如,命令为:
bash> MAILPATH="/var/spool/mail/john"
bash> export MAILPATH
这时,bash每次有新消息进入john的邮件池时向john的控制台输出一个通知。
在后台运行任务
6.在后台运行任务
bash允许你在后面运行一个或多个任务,并且可选择地挂起或重新开始任何当前任务。要在后台运行一个任务,在其命令行后面添加一个&记号。例子如下:
bash> tail -f /var/log/messages &
[1] 614
这种方式的每个后台任务都被分配一个任务ID,并在控制台输出。任务可以用命令fg jobnumber从后台调到前台,jobnumber是你想调到前台的任务ID。举例如下:
bash> fg 1
任何时候在bash提示符下输入jobs都可以获得正在执行的任务的列表。
7.快速跳转到经常使用的目录
你可能已经知道$PATH变量列出bash的“搜索路径”,当它在当前目录下无法找到请求的文件时将搜索的目录。然而,bash也支持$CDPATH变量,它列出当试图改变目录时cd命令可访问的目录列表。要使用这个特性,分配一个目录列表给$CDPATH变量,如下例所示:
bash> CDPATH=".:~:/usr/local/apache/htdocs:/disk1/backups"
bash> export CDPATH
现在,只要你使用cd命令,bash将检查$CDPATH列表中的所有目录以匹配该目录名。
8.执行计算
bash可以在命令行提示符下执行简单的算术操作。要使用这个特性,只需简单地在命令行内的双括号中键入你想计算的算术表达式,如下所示。bash将尝试执行该计算并返回结果。
bash> echo $((16/2))
8
9.定制shell提示符
你可以定制bash shell提示符以显示当前用户名和主机名、当前时间、平均负载和/或当前工作目录。要实现这一点,像下面这样改变$PS1变量:
bash> PS1="\u@\h:\w \@> "
bash> export PS1
root@medusa:/tmp 03:01 PM>
这将在shell提示符下显示当前登录用户的名称,主机名,当前工作目录和当前时间。
10.获得指定上下文帮助
bash可以给出所有内建命令的帮助。要查看所有内建命令的列表,请输入help。要获得某个特定命令的帮助,输入help command,此处的command是你想查看其帮助的命令。这里是一个例子:
bash> help alias
...一些帮助文本...
显然地,你可以任何时候通过在命令行提示符下输入man bash以获得bash shell的详细帮助信息。