GNU/Linux >> Linux の 問題 >  >> Linux

Bash履歴コマンドの使用方法

Bashには豊かな歴史があります。つまり、これはさらに古い祖先を持つ古いシェル(Bourneシェル)ですが、優れた履歴もあります。 機能の数に基づいて、他のすべてのシェル履歴インターフェイスを超えるコマンド。 historyのBashバージョン 逆検索、クイックリコール、履歴の書き換えなどが可能です。

履歴 コマンドは他の多くのコマンドとは異なります。 / usr / binのような一般的なシステムレベルの場所に配置された実行可能ファイルであるコマンドに慣れているかもしれません。 、 / usr / local / bin 、または〜/ bin 。組み込みの履歴 コマンドがPATHにありません 物理的な場所はありません:

$ which history

which: no history in [PATH]

代わりに、 history はシェル自体の組み込み関数です:

$ type history
history is a shell builtin
$ help history
history: history [-c] [-d offset] [n] or
history -anrw [filename] or
history -ps arg [arg...]

Display or manipulate the history list.
[...]

そのため、各シェルの履歴関数は一意であるため、Bashで使用するものはTcsh、Fish、またはDashで機能しない場合があり、それらで使用するものはBashで機能しない場合があります。場合によっては、Bashで何ができるかを知っていると、他のシェルのユーザーがBashの動作を複製するための興味深いハックを作成するようになり、存在を知らなかったBash機能のロックが解除される可能性があります。

Bashの履歴を表示する

historyの最も基本的で頻繁な使用 コマンドは、シェルセッションの履歴を表示することです:

$ echo "hello"
hello
$ echo "world"
world
$ history
  1  echo "hello"
  2  echo "world"
  3  history
イベント指定子

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

イベント指定者は、イベントごとに履歴を検索します。 イベント このコンテキストでは、履歴に記録されたコマンドであり、改行文字で示されます。つまり、参照用のインデックス番号でマークされた1行です。

イベント指定子は、ほとんどの場合、感嘆符から始まります。感嘆符は、 bangとも呼ばれます。 (

履歴からコマンドを再実行するには、感嘆符の直後(スペースなし)に必要なコマンドのインデックス番号を使用します。たとえば、1行目にコマンド echo "hello"が含まれているとします。 、そしてもう一度実行したい:

$ !1
echo "hello"
hello

履歴内の現在の位置から負の数の行を提供することにより、相対位置を使用できます。たとえば、履歴の3つのエントリに戻るには:

$ echo "foo"
foo
$ echo "bar"
bar
$ echo "baz"
baz
$ !-3
echo "foo"
foo

1行前に戻る場合は、省略形の !!を使用できます。 !-1の代わりに 。これは、キーストローク全体の節約になります!

$ echo "foo"
$ !!
echo "foo"
foo
文字列検索

逆に、実行するコマンドのエントリから特定の文字列を検索することもできます。コマンドを検索するには開始 特定の文字列を使用する場合は、感嘆符の直後(スペースなし)に検索する文字列を使用します。

$ echo "foo"
$ true
$ false
$ !echo
echo "foo"
foo

(開始時だけでなく)任意の位置に文字列を含むコマンドを検索することもできます。これを行うには、を使用します 加えて、通常どおり、検索している文字列を使用しますが、文字列の両端を疑問符で囲みます。文字列の直後に改行文字が続くことがわかっている場合は、末尾の疑問符を省略できます(つまり、戻るを押す前に最後に入力したものです。 ):

$ echo "foo"
$ true
$ false
$ !?foo?
echo "foo"
foo
文字列の置換

行の先頭で文字列を検索するのと同様に、文字列を検索して新しい文字列に置き換えることができます。コマンドを変更します。

$ echo "hello"
hello
$ echo "world"
world
$ ^hello^foo
echo "foo"
foo
履歴を役立つものにする

Bashでは、historyコマンドはここで説明されている以上の機能を備えていますが、これは使用に慣れるのに良いスタートです。 単に参照として扱うのではなく、あなたの歴史。 historyを使用する 頻繁にコマンドを実行し、コマンドを入力せずにできることを確認してください。驚かれるかもしれません!


Linux
  1. Linuxでhistoryコマンドを使用する方法

  2. LinuxでBASHコマンドライン履歴をクリアする方法

  3. xargs でエイリアス化されたコマンドを使用するにはどうすればよいですか?

  1. bash で履歴の編集を無効にする方法

  2. bashでkill SIGUSR2を使用するには?

  3. Bashでwatchコマンドとjobsコマンドを一緒に使用するにはどうすればよいですか?

  1. LinuxでBashの履歴をクリアする方法

  2. cronシェルを変更する方法(shからBash)?

  3. Bash履歴に保存されるコマンドの数を変更する方法