|
|
第 1 帖 | |
|
|
标题: Bash的命令行编辑 搜索了一下版区的旧帖,发现只有一个帖子涉及到命令行编辑,而且不怎么全面。我在这里总结一下。
Bash的命令行编辑是区别于其他shell如csh的一个特色,它使得命令的输入就像在emacs或vi里编辑文件一样便捷,尤其对于一些冗长且复杂的命令的构造。熟练命令行编辑主要是为了使系统管理高效化。 Bash命令行编辑的默认模式是交互式emacs模式。 切换可用模式或关闭模式: 代码:
由于我不熟悉vi模式,所以只好给出我熟悉的emacs模式。希望vi强的兄弟补上。 1. 基本emacs模式命令 代码:
emacs用"删除环"来作为"删除内容"的回收站。 这里的单词被定义为字母数字序列。 这里的条目可以是删除了的单词,句子或文本块。 代码:
代码:
代码:
举例如下: 代码:
这种递增交互命令查找很方便我们寻找一些复杂命令,尤其当历史列表中命令条目很多的时候。 4.文字完成 emacs模式一个最重要的特性式其文字完成功能。 代码:
其实还有很多其他的文字完成快捷键,不过都不常用,就不列出了。 5.杂项命令 代码:
CTRL-v可以把复合键转义,比如键入CTRL-m,就变成^M。 执行操作对象为同一个文件的命令序列,而且该文件的路径冗长时,ESC-.很有用,举例如下: 代码:
__________________
IBOX, a LiveCD distribution based on Gentoo, is fit for newbie. IBOX brings to you: - knoppix-style harddisk installation tool, by which you can install Gentoo in 20 minutes. - hardware auto-configuration. You can run into X desktop directly. - all-round software set, including OpenOffice, azureus. - LiveCD-create-tools. Step-by-step, custom a LiveCD yourself with ease. Any questions and feedbacks is welcome to home_king at 163 dot com 此帖于 04-05-05 22:03 被 home_king 编辑. |
|
|
|
|
|
|
|
第 2 帖 | |
|
|
我用ksh,常用ESC+K/J翻历史命令,用ESC+==命令补齐
![]() |
|
|
|
|
|
|
|
第 3 帖 | |
|
|
ksh用的就是vi模式。
__________________
15" C2D MBP. 有简单的,不用复杂的!看到复杂的,尽量简单化! Unix/Linux Philosophy: Be small! Be concentrated! One program does one thing and do it perfectly! ∞ years - 宇宙中最后的物质 Proton heat death. 之后,宇宙将以纯能量的形式永远存在。。。一切皆空 |
|
|
|
|
|
|
|
第 4 帖 | |
|
|
哪位爱好vi的同志把vi模式补上呢?谢谢~~
![]() |
|
|
|
|
|
|
|
第 5 帖 | |
|
|
下面是vi在ksh的commandline下常用的快捷键
代码:
此帖于 04-04-05 23:47 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 6 帖 | |
|
|
好,javalee是个ksh迷,呵呵。
同样是为了高效利用shell,我再带出一些很有趣的命令。 代码:
代码:
此帖于 04-04-06 12:18 被 home_king 编辑. |
|
|
|
|
|
|
|
第 7 帖 | |
|
|
说到命令行补齐,看看bash和ksh的比较:
![]() 代码:
|
|
|
|
|
|
|
|
第 8 帖 | |
|
|
说到man,那么就不得不提man中的数字,也许你知道,也许你不知道
,代码:
|
|
|
|
|
|
|
|
第 9 帖 | |
|
|
呵呵,ksh挺不错的。除了bash是第一之外,就轮到ksh了吧。呵呵~~~
![]() |
|
|
|
|
|
|
|
第 10 帖 | |
|
|
那我就来试试吧。有不周之处,还请修正和补全。
其实,CLI下的vi模式和用vi编辑文件大致是一样的。这里我大致的总结一下: A. vi有两种模式, 一种是命令模式(Command Mode), 另一种是编辑模式(Edit Mode)。 从编辑模式转到命令模式用Esc键, 从命令模式转到编辑模式有几种转法: i. a键, 在当前光标后进入编辑。 ii. i键, 在当前光标处进入编辑。 iii. A键, 在当前行的末尾进入编辑。 iv. I键, 在当前行的头进入编辑。 o键和O键在命令行下没有作用。 B. 起用命令行下的vi模式: set -o vi (可以将其加入到profile/bashrc等启动文件中) VI的具体命令介绍: 1. 命令模式之移动(Command mode of navigating) k, j, h, l : 上(命令历史中的上一个命令), 下(命令历史中的下一个命令), 左(光标在当前行左移), 右(光标在当前行右移)。 Ctrl-H: 左移 0(数字0): 光标移到当前行的头 $:光标移到行前行末尾。 w, b : 向前,向后移动一个字(word) e:向后移动到字的最后。 E:向后移动到字段的末尾,以空格/tab区分。 Ctrl-F, Ctrl-B: 向前, 向后翻滚一屏。 Ctrl-D, Ctrl-U: 向前,向后翻滚半屏。 2. 命令模式之搜寻(Command mode of seraching) Esc+k : 调出上次运行的命令(继续按k键,就可向上翻滚命令历史,j键向下翻滚) /pattern :从历史命令中查找以‘pattern’为命令名的命令。(如/ifconfig,如果历史命令中有ifconfig, 它将显示最近的一个。) n: 找到了相映的命令后,继续历遍下一个相映的命令。(如历史命令中记录了3个ifconfig命令,/ifconfig和n可以一次地历遍这三个命令,以便找到最想要的那个。) N: 向下历遍。 3. 编辑模式 s: 删除当前光标下的字同时进入编辑模式等待输入。 S:删除当前的一整行同时进入编辑模式。 x: 删除当前光标下的字但不进入编辑,可以按x继续删除光标后的字。 X: 删除当前光标前的字但不进入编辑,可以按X继续删除光标前的字。 u: undo y: 拷贝当前行的内容到缓冲。 p:复制拷贝的内容到当前行。 v: 进入vi的文本编辑模式。多用于编写短小的script时用。 前面已经介绍了从命令模式进入编辑模式的方法,这里给几个简单的例子: shell> ifconfig eth9 192.168.0.1 netmask 255.555.255.0 up 假设你输入了这样的一个命令并enter执行了。但是由于输入错误,你想要回去修改并再执行一遍。步骤: 1. Esc+k 回到这个命令 2. 你可以按l(小写L)一个字母一个字母地移动到eth9处,也可以按w一个词移动,或按e一个词移动到词的末尾。(移动的方法很多,自己可以找处最快的组合) 3. 当光标在9字上时, 你可以按s键将9删掉,同时进入编辑,马上输入正确的数字; 你也可以按x键,在按i键先删除再进入编辑...(删除并编辑的方法也很多,找到最适合你的方法) 4.Esc回到Command mode, 继续下行到555处,更改第一个5为2。 5.enter执行。 一个短小的命令可以练习使用强大的VI模式。多练练把! |
|
|
|
|
|
|
|
第 11 帖 | |
|
|
标题: vim --help 代码:
代码:
![]() |
|
|
|
|
|
|
|
第 12 帖 | |
|
|
嗯, javalee兄提到了命令补齐,我就象补充一下。并不是所由的ksh都能获得如javalee兄显示的效果。在AIX下, ksh的补齐功能就很差。命令的显示和补齐只能是当前目录或是已输入了路径的命令的补齐。不能向bash那样,只要是PATH路径中的命令都能补。不知道怎样配置才能到到Linux下ksh的效果。
|
|
|
|
|
|
|
|
第 13 帖 | |
|
|
刚学到的:
tar cf >(gzip -v9cf >dir.tar.gz) dir/ |
|
|
|
|
|
|
|
第 14 帖 | |
|
|
在ksh里,按一下ESC,再按ctrl+V,会出现ksh的版本
![]() home/javalee:PD KSH v5.2.14 99/07/13.2 |
|
|
|
|
|
|
|
第 15 帖 | ||
|
|
引用:
tar cf <target file> directorys >(gzip -v9cf >dir.tar.gz)表示把tar cf将dir/打包后的输出连接到(gzip -v9cf >dir.tar.gz)这个子shell进程的输入中去。 |
||
|
|
|
||