回答:
Ctrl記述子が言ったRように、+ は通常最良の方法です。また、で始まる最新のコマンドを実行する、またはを含む最新のコマンドを実行するを使用することもできます。!string
string
!?string?
string
(これがこの質問に関連する唯一のものだと思いますが、この回答では履歴コマンドの多くを取り上げました)
<kbd>Ctrl+R</kbd>
。回答元
以下を追加する場合 ~/.inputrc
"\e[5~": history-search-backward
"\e[6~": history-search-forward
Bashを再起動するPage Upと、入力を開始できます。次に、とを使用しPage Downて、入力したプレフィックスと同じプレフィックスで始まる行の履歴を前後に移動できます。
(新しいキーをバインドする代わりに、通常のアクションとアクションを置き換える\e[A
andの使用を好む場合があります。)\e[B
UpDown
Alt + Up
とにマップすることを好みますAlt + Down
。端末エミュレートが使用するキーボードエミュレーションに応じて、これらの組み合わせは\E[A
and \E[A
(例:Linux Key BindingsのKDE Konsole)または\E[1;3A
and \E[1;3B
(例:XFCE TerminalまたはX Free 4 BindingsのKDE Konsole )にマッピングされます。
Ctrl- によって呼び出されたインタラクティブプロンプトは、R既に説明したとおり、最も便利な方法です。さらに、現在コマンドラインにあるプレフィックスの履歴を検索するために、リマップUpおよびDown矢印キーを使用するのが一般的ですが、これには~/.inputrc
ファイルへのいくつかの変更が必要です。
古典的でインタラクティブ性の低いソリューションは、シェルの履歴展開を使用することです。タイピング
!foo
始まる最後のコマンドを実行しますfoo
と、
!?foo
を含む最後のコマンドを実行しますfoo
。履歴拡張の詳細については、シェルがBashまたは互換性があると仮定して、Bashリファレンスマニュアルを参照してください。
あなたが追加した場合stty -ixon
、あなたに~/.bashrc
ファイルそしてCtrl- sとは反対の方向に行くだろうCtrl- r。
C-q
「フリーズ解除」します。これC-s
は、通常のソフトウェアフロー制御文字で、低速シリアル接続が使用されたときに出力のフローを手動で中断(一時停止)するのに便利でした。現在、ほとんどの場合、出力は非常に高速であるため、押すと表示したいものC-s
が既にスクロールされています。stty -ixon
ソフトウェアフロー制御をオフにします。
これが言及されていないことに驚いていますが、これを行うことでbashまたはkshでviモードを選択できます。
set -o vi
...またはこれを~/.inputrc
(bashなどのプログラムで使用されるGNU readlineの)コンテンツとして使用する:
set editing-mode vi
その後、を使用Escしてコマンドモードに入り、を使用kして履歴に戻り、先に進むことができますj。を使用/して検索することもできます。通常の?検索と、逆の検索が可能です。
を使用する~/.inputrc
場合、これはGNU bashだけでなく、CLISPなどのGNU readlineや、MySQLコマンドシェルやCPANシェルなどのプログラムを使用するあらゆるもので機能します。
(Ctrl-Rコマンドを使用して)逆方向検索を使用しているときに前方に切り替えるには:
.bashrcファイルを開きます。
sudo gedit ~/.bashrc
この行を追加します(文字「f」は、システムでまだ使用されていない別の文字に置き換えることができます)
bind '"\C-f": forward-search-history'
source ~/.bashrc
または. ~/.bashrc
これで、ショートカットを使用して履歴を前方に移動できます:Ctrl + f
Ubuntu 18.04 LTSでの作業
ほとんどの場合、次の2つを使用します。
ただし、どちらも開始文字を検索することに注意してください。
fc -e - <SPACE>
<first few char for your previous >
これを使用すると、そのシーケンスに一致する最後のコマンドが実行されます。kshとtcshのBashでCtrl+のようなものを見つけることができませんでしたR。
set -o emacs
ちなみに、これはモードです。