コンテキスト
Bashに事前に入力してください:良い
Bashシェルが使用中の場合(初期化、コマンドの実行)、次のことができます。次のプロンプトの前に入力してください。。
シェルがプログラムを開始すると、プログラムはキーストロークをキャプチャしますが、実行中のプログラムがない場合、またはプログラムが入力をキャプチャしない場合、入力した内容はプロンプトの後にシェルに挿入されます。
たとえば、と入力してsleep 5
Enterを押し、次に入力してls
Enterを押します。 ls
省電力モードが完了した後に実行されます。実際の生活では、他の多くのプログラムに置き換えls
られます。これは典型的なcp
rsync
事前に入力してください入力する内容を事前に知ることで時間が大幅に節約されます。
複数のコマンドをコピーして貼り付けて、順番に実行できるので本当に良いです。
実際のユースケースには、シェルの初期化に時間がかかる状況が含まれます。何らかの理由でコンピュータが遅くなったり、シェルが遅いネットワークリンクにある可能性があります。
Bashで履歴を検索:良い
Bashプロンプトで入力してCtrl-R
履歴を検索できます。
これにより、以前のコマンドラインまたはコマンドラインシーケンスのいくつかを再利用するときに貴重な時間を節約できます。を押してCtrl-R
、検索したいコマンドの一般的な文字をいくつか入力し、Ctrl-O
そこに記録されているコマンドを再生するのに必要なだけ押します。
履歴検索に事前に入力する:どのように?
しかし、限界があります。私は上記の順序を頻繁に使用します。たとえば、Ctrl-R ls
シェルプロンプトが実際に表示される前に入力すると、そのCtrl-R
部分は無視されますがls
表示されます。
その結果、 を入力する前にシェルプロンプトが表示されるのを待つ必要があるため、Ctrl-R
時間を節約できます。
質問
Ctrl-R
事前に入力してもクレジットを受け取る方法はありますか?
答え1
あなたのCtrl- はrカーネルベースのターミナルクッキーライン処理エンジンによってブロックされています。
を実行すると、sleep
端末はベーキングモードになり、カーネルベースのttyラインエディタが動作していることを意味します。 ttyラインエディタは基本的なコマンドライン編集をサポートしています。消去キー(通常Ctrl- h(バックスペース)またはに設定されているDel)と終了キー(通常Ctrl-U)は、このモードで使用できる最もよく知られている特別な編集キーです。この行エディタは便利です。 readlineやcurseを使用しない対話型ユーティリティを使用して、端末から入力行全体を読み取ることができ、ユーザーは入力を変更できます。
ただし、このモードでは別の特殊キーが有効になっています。stty -a
名前の下の他のキー設定と一緒に出力に表示できますrprnt
。デフォルト設定は... you推測できます... Ctrl- r。このキーの機能は、他のターミナル出力によってコマンドラインが破損したり、誤ってソートされた場合に現在のコマンドラインを再描画することです。
これを防ぐには、を使用して機能を無効にできますstty rprnt undef
。
Ctrl個人的には、私は再描画命令として解釈されることに慣れており、rそうしようとするたびにbash
何か他のことをするという事実に驚きました!