快速编辑Shell命令行
2006-03-05 11:32:21 来源:WEB开发网核心提示:前言快速编辑Shell命令行想起听得最多的就是*nux的初学者说最烦就是linux/Unix的命令行,所以就有了这个题目,快速编辑Shell命令行,如果你是个性急的人可以先尝试下文章结尾的综合练习体会一下Shell的快捷键,也许这样再看全文会更有趣,此时的终端显示应该为:$printf"hello,world
前言
快速编辑Shell命令行
想起听得最多的就是*nux的初学者说最烦就是linux/Unix的命令行,所以就有了这个题目。如果你是个性急的人可以先尝试下文章结尾的综合练习体会一下Shell的快捷键,也许这样再看全文会更有趣。
其实,命令行适应了,可能比图形界面更有效率。至少对我来说是这样,我现在一看见那些所谓的IDE就有眼花缭乱感觉,真正用来写代码的面积都被挤到只有一包烟那么大了,呵呵。有时为找个选项花很长时间找对话框,也很痛苦吧。
为什么那么多人害怕命令行呢?
我想最大的问题就是很多人觉得命令行的输入和编辑都很“慢”,很低效。但是对于Linux/Unix这类从内核得到整体架构,再到哪怕是最小的一个应用小软件都以文本来支撑的系统,没有娴熟的命令行技巧确实是玩不转的。希望本文能对你提高命令行使用效率有帮助。
但是由于Linux/Unix的发行版实在是太多,Shell的主流版本也有好几个,所以,本文所说的内容,可能和你的系统有出入,但是思想是一样的,在你自己的平台上摸索一下,你也会找到你的平台太下编辑命令行的技巧和规律。
另外,Shell的很多快捷键和VIM,Emacs的快捷键是相通的,所以,熟练使用Shell快捷键,对适应*nux下的其他软件有很好的启示作用。
命令行的技巧除了本文提到的,还有很多,你可以自己慢慢积累,收集和体会。当然如果你经常需要输入很繁琐的命令,那么建议你自己写Shell脚本,定义function,alias等技巧来实现。
我目前使用的系统配置
内核:2.6.14-gentoo-r5;
系统发行版:GentooLinux--2005.1;
Shell版本:Gunbash--3.00.16
XServer:Xorg--6.8.2;
窗口系统:Gnome--2.10.1;
终端:gnome-terminal--2.10.0;
现在就开始吧
一、自动补齐:[Tab]
这个技巧很多人都应该会了,就是当输入命令,目录或者是文件名的时候按[Tab]键。系统就会帮你补齐可能要输入的东西,如果有多个选择系统会列表出来。你可以看清楚之后再多输入一个或多个charactor,再按[Tab]。
实验:
$ec
按[Tab],补齐为:
$echo
二、查找和执行历史命令:[Ctrl r],[Ctrl p],[Ctrl n]
在终端中按捉[Ctrl]键的同时[r]键,出现提示:(reverse-i-search),此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。当显示到你想找的合适的历史命令的时候,直接[Enter],就执行了历史命令。
另外,[Ctrl p]或[Ctrl n]快速向前或向后滚动查找一个历史命令,对于快速提取刚刚执行过不久的命令很有用。
实验:
$echo"hello,world"[Enter]
$hello,world
[Ctrl r](接着输入echo)
(reverse-i-search)`ch':echo"hello,world"[Enter]
$hello,world
三、取消本次命令输入:[Ctrl c]
这个快捷键可以使你从一个可能你已经厌烦了的命令中安全地退出!!也许是个不值一提的小技巧,但是经验告诉我它很有用。很多Unix初学者会习惯性地按[Enter]以摆脱困境,但是说不定就会发生灾难性的事件,譬如删除了一个重要的配置文件:(
四、光标跳转快捷键:
为了方便大家记忆,加点英语助记语在后面:)
[Ctrl a]跳转至命令行首Aheadofline
[Ctrl e]跳转至命令行尾Endofline
[Ctrl f]向前跳转一个字符jumpForwardonecharacter
[Ctrl b]向后跳转一个字符jumpBackwardonecharacter
[Alt f]向前跳转到下一个字的第一个字符
[Alt b]向后跳转到下一个字的第一个字符
五、编辑命令的快捷键:
[Ctrl w]向后删除一个字,用来对付刚刚输入的错误字很有用
[Ctrl u]从光标当前位置删除所有字符至行首
[Ctrl k]从光标当前位置删除所有字符至行尾
[Ctrl d]删除光标当前位置的字符
[Ctrl y]粘贴最后一个被删除的字
[Alt d]删除从光标当前位置,到当前字的结尾字符
六、配置提示;
如果你是用Gnome下的终端窗口gnome-teminal,上面的GnuShell快捷键会跟Gnome的窗口快捷键有冲突。
那么你需要做如下配置:
在gnome-terminal的菜单栏中选"Edit"-]"KeyboardShortcuts..."打开"KeyboardShortcuts"对话框,并勾选下面两个复选项
"Disableallmenuaccesskeys(suchasAlt ftoopenFilemenu)"
"Disablemenushortcutkey(F10bydefault)"
至于KDE下应该怎么配KDE的终端窗口,请熟悉KDE的朋友补充一下,我很久没用KDE了,也没装。
七、综合练习;
上面列举的快捷键,练习2~3天应该就能熟练,为了大家快速理解和记忆,我们来做个小小的综合练习:
第一步:echo
$echo"hello,world."[Enter]
我们先输入 echo"hello,world"这个命令,然后回车,也就看到了终端的输出:
$hello,world.
第二步:[Ctrl r]
我们试试找出历史命令echo"hello,world.",这时,我们按[e],[c],[h]这三个键,这个历史命令大概已经找到了,
终端的显示应该是这样:
(reverse-i-search)`ech':echo"hello,world."
现在,如果[Enter]就会再一次执行这个命令,但我们现在来练习一下命令行的编辑。
第三步:[Ctrl a]
这样,我们就取出了历史命令echo"hello,world.",并且将光标定位到行首,此时,光标应该在echo命令的e字符上高亮。
终端的显示应该是这样:
$echo"hello,world"
第四步:[Alt d]
删除了命令echo,并且光标仍然在行首,终端显示为:
$"hello,world."
第五步:输入命令"PRintf"
我们尝试一下用Posix的系统调用printf来替代shell命令echo,输入[p][r][i][n][t][f],此时终端显示为:
$printf"hello,world."
并且光标在f字符后面高亮。
第六步:[Ctrl e]
光标跳转到命令行尾部。
第七步:[Ctrl b]
光标后退一个字符,此时光标应处于后双引号"处高亮。
第八步:输入换行转义符"\n"
输入[\][n],此时的终端显示应该为:
$printf"hello,world.\n"
可以[Enter]执行了。
八、关于本文;
当你熟练的时候,上面的步骤应该在20秒之内就完成了吧,希望大家都能成为命令行的高手!!!
快速编辑Shell命令行
想起听得最多的就是*nux的初学者说最烦就是linux/Unix的命令行,所以就有了这个题目。如果你是个性急的人可以先尝试下文章结尾的综合练习体会一下Shell的快捷键,也许这样再看全文会更有趣。
其实,命令行适应了,可能比图形界面更有效率。至少对我来说是这样,我现在一看见那些所谓的IDE就有眼花缭乱感觉,真正用来写代码的面积都被挤到只有一包烟那么大了,呵呵。有时为找个选项花很长时间找对话框,也很痛苦吧。
为什么那么多人害怕命令行呢?
我想最大的问题就是很多人觉得命令行的输入和编辑都很“慢”,很低效。但是对于Linux/Unix这类从内核得到整体架构,再到哪怕是最小的一个应用小软件都以文本来支撑的系统,没有娴熟的命令行技巧确实是玩不转的。希望本文能对你提高命令行使用效率有帮助。
但是由于Linux/Unix的发行版实在是太多,Shell的主流版本也有好几个,所以,本文所说的内容,可能和你的系统有出入,但是思想是一样的,在你自己的平台上摸索一下,你也会找到你的平台太下编辑命令行的技巧和规律。
另外,Shell的很多快捷键和VIM,Emacs的快捷键是相通的,所以,熟练使用Shell快捷键,对适应*nux下的其他软件有很好的启示作用。
命令行的技巧除了本文提到的,还有很多,你可以自己慢慢积累,收集和体会。当然如果你经常需要输入很繁琐的命令,那么建议你自己写Shell脚本,定义function,alias等技巧来实现。
我目前使用的系统配置
内核:2.6.14-gentoo-r5;
系统发行版:GentooLinux--2005.1;
Shell版本:Gunbash--3.00.16
XServer:Xorg--6.8.2;
窗口系统:Gnome--2.10.1;
终端:gnome-terminal--2.10.0;
现在就开始吧
一、自动补齐:[Tab]
这个技巧很多人都应该会了,就是当输入命令,目录或者是文件名的时候按[Tab]键。系统就会帮你补齐可能要输入的东西,如果有多个选择系统会列表出来。你可以看清楚之后再多输入一个或多个charactor,再按[Tab]。
实验:
$ec
按[Tab],补齐为:
$echo
二、查找和执行历史命令:[Ctrl r],[Ctrl p],[Ctrl n]
在终端中按捉[Ctrl]键的同时[r]键,出现提示:(reverse-i-search),此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。当显示到你想找的合适的历史命令的时候,直接[Enter],就执行了历史命令。
另外,[Ctrl p]或[Ctrl n]快速向前或向后滚动查找一个历史命令,对于快速提取刚刚执行过不久的命令很有用。
实验:
$echo"hello,world"[Enter]
$hello,world
[Ctrl r](接着输入echo)
(reverse-i-search)`ch':echo"hello,world"[Enter]
$hello,world
三、取消本次命令输入:[Ctrl c]
这个快捷键可以使你从一个可能你已经厌烦了的命令中安全地退出!!也许是个不值一提的小技巧,但是经验告诉我它很有用。很多Unix初学者会习惯性地按[Enter]以摆脱困境,但是说不定就会发生灾难性的事件,譬如删除了一个重要的配置文件:(
四、光标跳转快捷键:
为了方便大家记忆,加点英语助记语在后面:)
[Ctrl a]跳转至命令行首Aheadofline
[Ctrl e]跳转至命令行尾Endofline
[Ctrl f]向前跳转一个字符jumpForwardonecharacter
[Ctrl b]向后跳转一个字符jumpBackwardonecharacter
[Alt f]向前跳转到下一个字的第一个字符
[Alt b]向后跳转到下一个字的第一个字符
五、编辑命令的快捷键:
[Ctrl w]向后删除一个字,用来对付刚刚输入的错误字很有用
[Ctrl u]从光标当前位置删除所有字符至行首
[Ctrl k]从光标当前位置删除所有字符至行尾
[Ctrl d]删除光标当前位置的字符
[Ctrl y]粘贴最后一个被删除的字
[Alt d]删除从光标当前位置,到当前字的结尾字符
六、配置提示;
如果你是用Gnome下的终端窗口gnome-teminal,上面的GnuShell快捷键会跟Gnome的窗口快捷键有冲突。
那么你需要做如下配置:
在gnome-terminal的菜单栏中选"Edit"-]"KeyboardShortcuts..."打开"KeyboardShortcuts"对话框,并勾选下面两个复选项
"Disableallmenuaccesskeys(suchasAlt ftoopenFilemenu)"
"Disablemenushortcutkey(F10bydefault)"
至于KDE下应该怎么配KDE的终端窗口,请熟悉KDE的朋友补充一下,我很久没用KDE了,也没装。
七、综合练习;
上面列举的快捷键,练习2~3天应该就能熟练,为了大家快速理解和记忆,我们来做个小小的综合练习:
第一步:echo
$echo"hello,world."[Enter]
我们先输入 echo"hello,world"这个命令,然后回车,也就看到了终端的输出:
$hello,world.
第二步:[Ctrl r]
我们试试找出历史命令echo"hello,world.",这时,我们按[e],[c],[h]这三个键,这个历史命令大概已经找到了,
终端的显示应该是这样:
(reverse-i-search)`ech':echo"hello,world."
现在,如果[Enter]就会再一次执行这个命令,但我们现在来练习一下命令行的编辑。
第三步:[Ctrl a]
这样,我们就取出了历史命令echo"hello,world.",并且将光标定位到行首,此时,光标应该在echo命令的e字符上高亮。
终端的显示应该是这样:
$echo"hello,world"
第四步:[Alt d]
删除了命令echo,并且光标仍然在行首,终端显示为:
$"hello,world."
第五步:输入命令"PRintf"
我们尝试一下用Posix的系统调用printf来替代shell命令echo,输入[p][r][i][n][t][f],此时终端显示为:
$printf"hello,world."
并且光标在f字符后面高亮。
第六步:[Ctrl e]
光标跳转到命令行尾部。
第七步:[Ctrl b]
光标后退一个字符,此时光标应处于后双引号"处高亮。
第八步:输入换行转义符"\n"
输入[\][n],此时的终端显示应该为:
$printf"hello,world.\n"
可以[Enter]执行了。
八、关于本文;
当你熟练的时候,上面的步骤应该在20秒之内就完成了吧,希望大家都能成为命令行的高手!!!
更多精彩
赞助商链接