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
次に と入力するとsudo
、Upで始まるコマンドが検索されます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てから↑または を押します↓。