端末の選択的なコマンド履歴?


9

ターミナル内で、キーボードを押し上げると、以前にそれに与えた過去のコマンドが順番に表示されます。-lsで始まる過去のコマンドのみを表示する方法があるかどうか疑問に思っていました。たとえば、「ls -l」。このように、コマンドのリストが次の場合:

  1. ls -l -a
  2. cmake
  3. cd〜/デスクトップ
  4. cmake

端末に「ls」で始まる過去のコマンドをポップアップするために必要な「ls」とタブ、またはキーストロークの任意の組み合わせを書き込む方法

おかげで、

回答:


14

で始まるものだけが表示されるわけではありませんが、履歴を逆方向に検索するlsことができますCtrl-R ls。繰り返しCtrl-Rて、次の一致を見つけます。


CTRL+Rショートカットコマンドありがとうございます。
Kleber S.

8

これがあると便利な場合があります...

sshを使用して別のマシンに接続する:

入力を開始

ssh

PgUpキーを使用すると、sshは最後に使用したもので終わります... PgUpもう一度押すと、次のキーが提供されます。いいね?

あなたはこれを使うことができます:

.bashrc(vi /home/<yourfolder>/.bashrc)を編集して、これを追加します。

$if Bash
    # Search history back and forward using page-up and page-down
    "\e[5~": history-search-backward
    "\e[6~": history-search-forward

    # Completion
    set match-hidden-files off
    set page-completions off
    set completion-query-items 350
    set show-all-if-ambiguous on

$endif

これにより、ユーザーの端末にのみこの関数が追加されます。ルートの1つも編集して同じにする必要があります:wikiからこのチュートリアルに従うことができますが、間違って行う方法はありません。また、ターミナルエクスペリエンスを改善するための多くの追加機能があります...


上/下矢印キーにバインドすることもできます。これbind '"\e[A": history-search-backward'; bind '"\e[B": history-search-forward'により、さらに直感的になります。
フリッツ

5

コマンド履歴を表示するには、次を使用できます。

$ history

過去のコマンドだけを見たい場合は、たとえば「ls」で始めます。私の意見では、次のように使用します。

$ history | grep ls

確かに、出力にはコマンドではなく「ls」文字が含まれていますが、役立つと思います。


2

あなたが望むものを達成する最も簡単な方法は、!<whatever-command>です。たとえばls、最後に実行したを実行するには、を実行できます!ls。次のログを見て、これが必要かどうかを確認してください。

nits@nits-excalibur:~$ ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI
nits@nits-excalibur:~$ cd Documents/
nits@nits-excalibur:~/Documents$ top
nits@nits-excalibur:~/Documents$ !ls
ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI

1
これは表示せずにコマンドを実行しますが、OPが要求したとおりに表示する代替手段はありますか?
ブルーノペレイラ

zshではsetopt HIST_VERIFY、コマンドを入力バッファーに入れることができます。ここで、Enterキーを押して受け入れるか、編集します。
poolie 2012

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.