bash
コマンドラインで、 ↑ 前のコマンドを提供します。 numpy
またはmatlab
のコマンドラインで、数文字入力すると↑ これらの文字で始まる以前に入力されたコマンドが表示されます。 bash
でこの動作を正確に有効にするにはどうすればよいですか?
コマンドライン履歴を検索するより高度な方法は知っていますが、簡単な方法の方が便利な場合があります。
探しているreadlineコマンドはhistory-search-*
コマンドです。
history-search-forward
現在の行の先頭から現在のカーソル位置(ポイント)までの文字列を履歴から前方に検索します。これは非インクリメンタル検索です。
history-search-backward
現在の行の先頭からポイントまでの文字列を履歴から後方検索します。これは非インクリメンタル検索です。
これらを次のように.inputrc
にバインドします。
"\e[A": history-search-backward # arrow up
"\e[B": history-search-forward # arrow down
コマンドの最初の文字を入力してから、 Up そして Down その文字列で始まる.bash_history
内のコマンドのみを移動するためのキー。
たとえば、vi
と入力すると、 Upvim somefile
のように、vi
で始まる前の最初のコマンドに移動します。入り Up 次の前のインスタンスに移動します。
すべてのreadlineバインディングについて詳しくは、こちらをご覧ください。 http://linux.about.com/library/cmd/blcmdl3_readline.htm
以下を〜/の.inputrcに追加して、提案したことを実行します。
"\e[B": history-search-forward
"\e[A": history-search-backward
おそらく、次のものを.bash_profileに追加することもできます。
export INPUTRC=~/.inputrc
「!」を付加するあなたが探しているコマンドに。上向き矢印と下向き矢印の機能を置き換えたい場合は、inputrcファイルを変更する(他の回答が示唆するように)のがよいでしょう。
「command」が検索するコマンドである場合は、次のように入力します。
!comm
出力として「コマンド」を取得する必要があります。
同様に、コマンドの一部が含まれている(先頭にない場合がある)コマンドを検索するには、Ctrl + Rキーを押してから、コマンドの一部を入力します。
「タブ」と入力して、入力したテキストを自動入力することもできます(これにはファイルも含まれます)。これは、履歴にないコマンドを探している場合(または履歴ファイルがない場合)に役立ちます。
履歴ファイルの「マスタリング」について詳しくは、こちらをご覧ください: http://www.thegeekstuff.com/2008/08/15-examples-to-master-linux-command-line-履歴/