bash下esc键的妙用

sh/bash/dash/ksh/zsh等Shell脚本
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

bash下esc键的妙用

#1

帖子 bones7456 » 2008-03-20 16:16

看到ee在他blog里说按两下 esc键,可以和tab一样补全.于是想到了还有写 esc 的小技巧,可以大家分享一下:
1.
最有用的用过是这个:你要建立一个文件夹,然后cd到里面去,而这个文件夹名字很长的时候,你只需要这样:
mkdir ThisIsAVeryLongDirectoryName 回车 cd {esc}{点号} 就会补全那一串 ThisIsAVeryLongDirectoryName 了.
其实这个是这样的,esc以后按个点点,意思是在当前光标所在位置,补上上一个命令的最后一个参数,也就是那个目录名了,这样是不是方便多了?当然这招也可以用在其他地方,另一个例子是: 可能上一个命令执行了 apt-cache show XXX软件包,了解了他的信息之后,下一步要安装/卸载了,就可以执行 apt-get install/remove {esc}{点号} 了.
2.
{esc}{<} 可以移到历史命令的第一个
{esc}{>} 可以到最后一个历史命令.这个可以用在,你想在历史里面找某个命令,结果按了若干下向上箭头后,没找到,快速回去的话,就不用一直按向下箭头了.
{esc}{backspace} 快速清除当前行输入,上面这种情况也可以用这招.或者用于命令输到一半的时候,却不想执行该命令了,就不用一个个字符删了.
3.
输入重复字母:如果要输入 ee ,可以这么按:{esc}{2}{e},如果要输入100个e,就可以这样: {esc}{1}{0}{0}{e},哈哈.
4.
{esc}{t} 可以瞬间大挪移,比如现在已经输入了 ab cd efg 然后光标停留在最后面,按下{esc}{t}之后,得到的是 ac efg cd,光标所在处的单词,会往前一个,哈哈,好玩吧.
5.
补全类:
除了按多次{esc}可以补全以外,还有更好玩的:
{esc}{~}可以补全本机上的用户名
{esc}{/}可以补全文件名
{esc}{@}可以补全主机名,localhost可以方便地用 lo补全.
还有很多,可以参考man bash 的readline一节.

http://bones7456.blog.ubuntu.org.cn/200 ... /bash_esc/
关注我的blog: ε==3
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2008-03-20 21:29

你个排骨。这哪里找的。那man我看过多次。怎么没看到这些。
还谁就加精了。nnnnd。不等我来批判下。
● 鸣学
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#3

帖子 aBiNg » 2008-03-20 21:38

我只想要alias的命令自动补全啊,骨头帮找找?

找到了帮你批判 ee。 :lol:
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#4

帖子 eexpress » 2008-03-20 21:41

你这不是难为排骨吗。估计另外起一个shell可以。比如fish的儿子,ffffish。
● 鸣学
头像
gnix_oag
帖子: 1994
注册时间: 2005-05-19 18:38
来自: 湖南永州
联系:

#5

帖子 gnix_oag » 2008-03-20 22:12

aBiNg 写了:我只想要alias的命令自动补全啊,骨头帮找找?

找到了帮你批判 ee。 :lol:
archlinux 中安装 bash-completion 就行了

ubuntu 中也应该有这个软件包,试试。
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#6

帖子 bones7456 » 2008-03-20 22:16

哈哈,这个谁加的精哦 :lol:
aBiNg 我的alias一直可以自动补全的啊.
录像为证,是这个吗?
附件
1.avi.tar.gz
(241.28 KiB) 已下载 80 次
关注我的blog: ε==3
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#7

帖子 eexpress » 2008-03-20 22:18

你个烂排骨。不是这意思的。如果abing是这意思。我去碰死。
● 鸣学
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#8

帖子 bones7456 » 2008-03-20 22:23

啊?被 gnix_oag 抢先了啊? :lol:
是的,bash的自动补全超厉害,我试过scp复制远程文件的时候,居然能把远程的目录给补全了,估计大家想都想不到吧,当然,前提是有RSA钥匙,可以不用密码就取得数据.
难道 aBiNg 的 bash_completion 不一样?那把我那个进1w行的bash_completion发上来吧,直接放到 /etc/bash_completion 就可以了.
附件
bash_completion.tar.gz
(53.92 KiB) 已下载 79 次
关注我的blog: ε==3
头像
hualang0929
帖子: 1226
注册时间: 2006-11-11 10:23
来自: Mars
联系:

#9

帖子 hualang0929 » 2008-03-20 23:16

bones7456 写了:哈哈,这个谁加的精哦 :lol:
aBiNg 我的alias一直可以自动补全的啊.
录像为证,是这个吗?
不是这个 :lol:

是类似这样的补全,别名 arm 做不到的。
附件
2008-03-20-231645_423x450_scrot.png
抬头望星空一片晴,我独行,夜已渐寒……
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#10

帖子 aBiNg » 2008-03-21 11:06

嗯,gnix_oagbones7456想的和eexpresshualang0929想的不一样,我的意思同后两位,呵呵。

骨头还有视频为证,太实在了。哈哈。

好了,ee 不用去碰死了。 :lol:

貌似这个补全目前的bash版本下不能实现啊~~~
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#11

帖子 yaoms » 2008-03-21 11:17

:D 又学到好东西了。
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
zhan
帖子: 1880
注册时间: 2005-08-15 0:04
来自: 南7技校

#12

帖子 zhan » 2008-03-21 11:41

可怜的,不懂 emacs 的骨头和 ee, 拿个 esc 当宝贝....

我是一直使用 Alt +x 的组合键的....
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#13

帖子 yaoms » 2008-03-21 12:12

:shock: 楼上也贴个总结的帖子阿。。。
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#14

帖子 eexpress » 2008-03-21 12:24

那当什么宝贝哦。屁用没有的。只是好玩。打倒鲇鱼。 :lol:
● 鸣学
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#15

帖子 bones7456 » 2008-03-21 12:30

就是,纯粹是为了好玩嘛~这次站在ee这边,哈.
关注我的blog: ε==3
回复