2 月 132008
 

AppleBOY’s Blog » [UNIX] bash 記憶指令 For Linux

December 23, 2007 on 7:00 am by appleboy

在 FreeBSD 裡面,要做到這樣非常方便,當我們在終端機輸入 vi 之後按下 Up 鍵,終端機會顯示之前下過的 vi 指令,這在常常使用 command 的使用者來講相當方便,也非常重要

在 FreeBSD 底下,只要在 .cshrc 裡面加上

bindkey “^W” backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward

可是在 linux 底下要如何達到這樣呢,那就是 man bash『history-search-backward』,『history-search-forward』這兩個功能,對我來說非常重要,然而你 要達到這功能,就是利用 showkey 跟 bind 這兩個指令

首先你要先找到 Up 這個鍵的 16 位元的編碼

 

showkey -a

Press any keys - Ctrl-D will terminate this program

^[[A 27 0033 0x1b
91 0133 0x5b
65 0101 0x41

然後在 bind 上去,寫到 /etc/bashrc 地下就可以了

bind ‘”\x1b\x5b\x41″:history-search-backward’
bind ‘”\x1b\x5b\x42″:history-search-forward’

我之前有寫一篇 [Ubuntu] bash 記憶指令,也可以參考看看

====================================================

http://blog.wu-boy.com/2007/02/01/65/

[Ubuntu] bash 記憶指令

February 1, 2007 on 8:10 pm | In ubuntu, Linux | 共計有 744 人加上 380 搜尋機器人瀏覽過

Posted in ubuntu, Linux at 8:10 pm by appleboy之前 在 linux連線版有問過大家

如果讓bash 有像 freebsd cshrc的記憶功能 可以按上下鍵

就可以顯示出 以前用過的指令

比如說 我輸入 cat 然後按上 就會出現 cat /etc/bash.bashrc

結果我在

將下面寫入到 /etc/bash.bashrc

bind \
‘”\C-n”: history-search-forward’ \
‘”\M-OB”: history-search-forward’ \
‘”\M-[B”: history-search-forward’ \
‘”\C-p”: history-search-backward’ \
‘”\M-OA”: history-search-backward’ \
‘”\M-[A”: history-search-backward’

不過上面的作法 可以用在 redhat系列 但是ubuntu跟 debian卻沒辦法

結果我最近在linux連線版 發現有人有解達

只要在 ~/.bashrc 裏面寫上

bind ‘”\x1b\x5b\x41″:history-search-backward’
bind ‘”\x1b\x5b\x42″:history-search-forward’

這樣就可以了,下面是 linux連線版 zxvc.bbs@ptt.cc 大大寫的

如果想知道bash有多少好用的hotkey,
只要man bash,然後搜尋『history-search-backward』,
就可以在history-search-backward附近找到一堆hotkey。
或者在bash中輸入
$ bind -p
也可以看到很多hotkey,只不過沒有詳細說明。

另外『\M-』這個prefix在一般PC鍵盤上代表的是ESC key,
這man bash也是可以查得到。

如果想知道某個按鍵的keymap(例如Up鍵),可以在『純終端機』
(我不清楚為什麼虛擬終端機會不能用showkey)輸入
$ showkey -m
查到,但是這是10進位的值,要把它轉成16進位再加上『\x』
才可以跟某個function bind在一起。
例如:Up鍵與history-search-backward bind在一起:
$ bind ‘”\x1b\x5b\x41″:history-search-backward’

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

CAPTCHA Image
Play CAPTCHA Audio
Reload Image