Linux で特定の文字で始まる履歴コマンドを再ロードする最も速い方法は何ですか?

Linux で特定の文字で始まる履歴コマンドを再ロードする最も速い方法は何ですか?

Dos では、最初の数文字を入力してコマンド履歴をフィルタリングし、適切なコマンドをすばやく見つけることができます。しかし、Linux で同じことを行うにはどうすればよいでしょうか。

たとえば、ローカル サーバーをテストする場合:

cd 
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...

Dos ではsudo、矢印キーを使用して、3 つのコマンドを簡単に入力して切り替えることができます。しかし、Linux では、以下のコマンドが最善の方法でしょうか?

historty | grep sudo

履歴が簡単に混乱し、マウス操作も必要になるため、私は好きではありません。

答え1

以下の内容を に記入してください~/.inputrc:

"\e[A": history-search-backward
"\e[B": history-search-forward

次に と入力するとsudoUpで始まるコマンドが検索されますsudo

(bash を再起動する必要があります。) (csh でこれが動作するかどうかは不明です。)

答え2

Bash (およびそれに似たほとんどの readline ベースのアプリケーション) では、次のように押すCtrl-Rと履歴検索機能を起動できます。

$ date
Tue Feb  1 15:40:06 EET 2011
(reverse-i-search)`d': date

ここを押すとEnter次のようになります:

$ date
Tue Feb  1 15:40:06 EET 2011
$ date
Tue Feb  1 15:40:52 EET 2011

編集:

履歴関連のBashキーストロークの完全なリストを見ることができますここ

履歴検索キーボード バインディングの現在のリストを表示できます。

$ bind -P | grep search | grep history
forward-search-history can be found on "\C-s".
history-search-backward can be found on "\e[5~".
history-search-forward can be found on "\e[6~".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
reverse-search-history can be found on "\C-r".

私の場合、Page-Up/Down は、次のように設定されているように、すでに入力した文字で始まるコマンドを検索するためにも使用できます/etc/inputrc

# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward       # Previous
"\e[6~": history-search-forward        # Next

答え3

Ctrl+に加えてR、bashで!sudo+と入力すると、Enter最後で始まるコマンドsudo

答え4

最初の文字( )を入力しsudo、 を押しCtrlてからまたは を押します

関連情報