ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 如何提高linux命令行的工作效率

如何提高linux命令行的工作效率

原创 Linux操作系统 作者:lfree 时间:2006-05-23 00:00:00 0 删除 编辑
以前写的文章,拿来测试色彩以及斜线如何处理。
虽然最近几年个人计算机的潮流已经从命令行方式转向图形界面方式,大量
的采用鼠标操作,但是shellLinux中依然有很强的生命力。shell有好几种,
主要有bashkshtcshzshash,用得最多的是bash,它几乎是各种linux
布版的标准配置。同时在linux 操作系统中,即使在X Window下,系统管理员经
常也要与命令行打交道,使用键盘次数要明显高于鼠标,本文通过介绍合理地定
制与修改INPUTRC环境变量,以及利用bash 2.05以上版本中增加的complete命令,
可以更好地提高linux命令行使用的工作效率,减少键盘的敲打以及拼写错误。

.定制/etc/inputrc文件:

通过设置INPUTRC环境变量(参见/etc/profile文件),其作用主要定义或者改
变一些功能键的定义,从而更好地使用命令行,通常情况下INPUTRC环境变量指向
/etc/inputrc文件,只要编辑/etc/inputrc文件,以及利用Tab键的命令补全功能,
就可以实现类似于MSDOSDOSKEY的功能。

Redhat 7.3为例来说明,使用的bash shell版本号为2.0.5。你可以根据自
己的需要定制与修改此文件,如想了解更多的内容,可以参阅man bash文档。

例子:/etc/inputrc文件内容如下:
-----------------------------------------------------
set bell-style none
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

set show-all-if-ambiguous On

"e[1~": beginning-of-line # home
"e[2~": insert-last-argument # insert
"e[3~": delete-char # delete
"e[4~": end-of-line # end
"e[5~": backward-kill-word # page up
"e[6~": kill-word # page down

# (F1 .. F5) are "e[[A" ... "e[[E"
"e[18~": history-search-forward # F7
"e[19~": history-search-backward # F8
-----------------------------------------------------
具体修改说明如下(注以下[]中的内容为所按的键):

set bell-style none

关闭计算机小喇叭发出的声音。

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

这几行主要是实现命令行上实现汉字的输入以及显示。 比如想输入汉字的
文件名等等。

set show-all-if-ambiguous On

这一行主要是使命令补全的功能更好的发挥。许多Linux初学者并不知道这
个功能,就是使用[Tab]键,能够减少键盘的敲打以及拼写错误。比如当前你想
执行ifconfig命名,你输入if后按[Tab]键两次,就会出现所有以if开头的命令,
文件名和目录名也可以使用这个方法输入,当打开上述命令后可以使用[Tab]键,
仅仅需要按一次,这样更加方便与快捷。

"e[1~": beginning-of-line # home
"e[2~": insert-last-argument # insert
"e[3~": delete-char # delete
"e[4~": end-of-line # end
"e[5~": backward-kill-word # page up
"e[6~": kill-word # page down

这几行主要是使命令行编辑方便,[home][delete][end]键保持原意,意指
移动到命令行的开始、删除一个字符、移动到命令行尾。[insert] 键被定义为插入
上一个命令的最后一个参数。比如执行如下命令:

$ mount /mnt/cdrom
$ cd[space][insert] # 相当于 执行 cd /mnt/cdrom

可以试着按[insert]键几次看看会有什么出现内容?

[Pageup][PageDown]键定义为向前和向后删除单词。

"e[18~": history-search-forward # F7
"e[19~": history-search-backward # F8


[F7][F8]定义为命令历史查找功能,有点向MSDOSDOSKEY功能类似,比如前
面使用过mount命令,再次输入mount后按[F8]会调出先前使用的命令,特别是当命令
非常长参数非常多的时候。

.安装bash_complete

如果经常你使用[tab]键命令补全功能,就会发现它的不足之处,你可以发现它不
能根据具体的需要或者命令补全所需要的参数与文件或者目录。例如你执行cd [tab],
系统会将文件与目录一起显示出来,而实际上这时你仅仅需要显示文件类型为目录。
bash2.05版开始,已经加入命令complete内部命令,从而能够使用复杂的命令行接口,
通过一个复杂的脚本bash_completion实现可编程的补全程序,减少系统管理员日常维护
工作,减少差错提高工作效率。

具体操作如下:

1. 下载最新的bash_complete脚本,检查bash的版本号【执行bash --version】,如果
版本低于2.0.5最好升级bash.

http://www.caliban.org/files/bash/bash-completion-latest.tar.gz
http://www.caliban.org/files/redhat/RPMS/i386/bash-2.05-51.i386.rpm


2. 安装

# rpm -Uvh bash-2.05-12.i386.rpm
# tar xzvf bash-completion-latest.tar.gz -C /tmp

3. 仔细阅读bash_complete目录下的README文件,修改/etc/bashrc文件,在
行尾加入如下命令:

bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ]
&& [ -f /etc/bash_completion ]; then # interactive shell
# Source completion code
. /etc/bash_completion
fi
unset bash bmajor bminor

4. 拷贝bash_complete文件:

# cp /tmp/bash_complete/bash_completion /etc

注销再重新进入后,你就会发现许多命令在使用命令补全时都会发生一些
变化。

通过以上的修改,你会发现在命令行上使用linux,同样高效与快捷,减少了
许多不必要的错误。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-82856/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2449
  • 访问量
    6241953