web-dev-qa-db-ja.com

コマンド履歴からのコマンドライン補完

だから、私は歴史と Ctrl+R、しかし、それらは私が知っていると私が思ったものではありません。コマンドの最初に入力して、bashショートカットを使用して履歴内の一致を循環させる方法はありますか?

# mysq(some shortcut key)

くれます:

# mysqldump  --add-drop-table -e -q -n -C -u 
(some shortcut key)
#  mysql -u ben.dauphinee -p
89
Ben Dauphinee

押す Ctrl+R 逆履歴検索を開きます。ここでコマンドの入力を開始すると、最初の一致が得られます。押すことにより Ctrl+R もう一度(そしてもう一度)履歴を循環できます。

mysq(Ctrl+R)

与えるでしょう:

mysqldump  --add-drop-table -e -q -n -C -u 

Ctrl+R 再び:

mysql -u ben.dauphinee -p
93
wag

Gillesの発言をさらに詳しく説明するために、上矢印キーと下矢印キーを.inputrchistory-search-backwardにバインドするためにhistory-search-forwardに次のコードを含めています。

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

何かを入力するだけで(オプション)、上/下矢印キーを押して、入力した内容で始まるコマンドの履歴を検索します。

.bashrcではなく.inputrcでこれを行うには、以下を使用できます。

bind '"\e[A": history-search-backward'
68
raychi

PAGEUPボタンを押してコマンドをオートコンプリートすることもできます。基本的にbash_historyファイルを検索します。

7
0aslam0

Readlineコマンドを使用できますhistory-search-backwardおよびhistory-search-forwardは、すでに入力した接頭辞で始まるコマンドライン間を移動します。これらのコマンドはどちらも、デフォルトの構成ではキーにバインドされていません。

Zsh(zle)には同様のコマンドhistory-beginning-search-backwardおよびhistory-beginning-search-forwardもデフォルトではキーにバインドされていません。もあります history-search-backwardおよびhistory-search-forwardは、現在のコマンドの最初のワードをプレフィックスとして使用し、カーソルの位置に関係なく検索します。

非常によく似たコマンドの概要を知りたい場合は、次のリストを取得できます。

history|grep KEYSTRING

次に、マウスの中央ボタンでコピーして貼り付けます。

RGDS-ジョー

4
joe_zeroh