Grepよりもコマンドの履歴ファイルを検索するより良い方法はありますか?コマンドがどのように始まるかはわかりますが、コマンドが履歴からどれだけ遡っているかはわかりません。
pdate:は以前はzsh固有でしたが、重複する回答があるため、ここで任意のシェル(またはモード(vi/emacs))に自由に回答してください。具体的かどうかに注意してください。
Bashを使用する場合は、次のように入力します。 Control-R 次に入力を開始します。タイピング Control-R テキストを入力した後に繰り返し入力すると、一致するコマンドラインに戻ります。
これが役立つかどうかはわかりませんが、私は使いたいです ctrl-r 次に、コマンドの入力を開始します。それはあなたの歴史を通り抜け、最初の一致をあなたに提示するはずです。試合を切り替えるには、 ctrl-r 再び。
以下を~/.inputrc
に追加した場合
"\e[5~": history-search-backward
"\e[6~": history-search-forward
bashを再起動すると、入力を開始してから使用できます Page Up そして Page Down 入力したのと同じプレフィックスで始まる行の履歴を前後に移動します。
(一部の人は\e[A
と\e[B
を使用することを好むかもしれません。 Up そして Down 新しいキーをバインドする代わりにアクション)。
によって呼び出されるインタラクティブなプロンプト Ctrl-R既に述べたように、最も便利な方法です。さらに、リマップが人気です Up そして Down 現在コマンドラインにある接頭辞の履歴を検索する矢印キー。ただし、これにはいくつかの ~/.inputrc
ファイル 。
古典的でインタラクティブ性の低いソリューションは、シェル履歴拡張を使用することです。タイピング
!foo
foo
で始まる最後のコマンドを実行し、
!?foo
foo
を含む最後のコマンドを実行します。シェルがBashまたは互換であることを前提として、履歴の拡張に関する詳細情報は Bashリファレンスマニュアル に記載されています。
stty -ixon
を~/.bashrc
ファイルに追加すると、 Ctrl-s 反対方向に行きます Ctrl-r。
!ls
と入力すると、bashは履歴を調べ、「ls」で始まる最新のコマンドを実行します
これが言及されていないことに驚いていますが、これを行うことでbashまたはkshでviモードを選択できます。
set -o vi
...またはこれを~/.inputrc
のコンテンツとして使用します(GNU bashなどのプログラムで使用されるreadlineの場合):
set editing-mode vi
その後、あなたは使うことができます Esc 入力するにはコマンドモードを使用して k 歴史に戻る j 先に進みます。次を使用して検索することもできます / 通常どおり検索する ? 逆に検索します。
~/.inputrc
を使用する場合、これはGNU bashだけでなく、GNU CLISPなどの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 >
を使用します。これにより、そのシーケンスに一致する最後のコマンドが実行されます。のようなものを見つけることができませんでした Ctrl+R 私のkshとtcshのBashで。
使用する方法があります Ctrl-R tcshを使用します。 ~/.cshrc
に以下を追加します:
bindkey "^r" i-search-back
(キャレット記号とrの文字です)
それは私にとって最大の時間節約になります。
@ephemientと同様の回答ですが、.bashrcに入れることができます
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-foward'
フレーズの一部を入力し、上/下矢印を使用して、一致する最新のオプションを参照します。これは、MATLABのデフォルトの動作です。
ほとんどの人にとって、設定を新しいシステムに移植したい場合は、~/.bashrc
それからあなたはそれを手に入れなければならないということ~/.inputrc
はい、少なくともzshを使用している場合は存在します。コマンドの入力を開始し、次に押すだけです M-p (ESCp)そして、入力した内容と一致する以前のコマンドを検索します。もう一度押すと、次の一致が見つかります。