ターミナルセッションに費やす時間が増えるにつれ、日常業務をより効率的にする新しいコマンドを継続的に見つけているように感じます。 GNUhistory
コマンドは私の仕事の日を本当に変えたものです。
GNUhistory
commandは、そのターミナルセッションから実行された他のすべてのコマンドのリストを保持し、それらのコマンドを再入力する代わりに、それらのコマンドを再生または再利用できるようにします。経験豊富な端末ユーザーであれば、history
の威力をご存知でしょう。 、しかし私たちにとっては、ダブラーや新しいシステム管理者にとっては、history
すぐに生産性が向上します。
まず、history
コマンドは実際にはコマンドではありません。システムでコマンドを探すことで、これを自分で確認できます:
$ which history
which: no history in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/sbin)
コンピュータがhistory
を見つけることができません シェルの組み込みキーワードであるため、コマンド。使用しているシェルに書き込まれるため、Bash、tcsh、Zsh、dash、fish、kshなどを使用しているかどうかによって、履歴の動作に多少の違いが生じる可能性があります。この記事は履歴のBash実装に基づいているため、一部の関数は他のシェルでは機能しない可能性があります。ただし、基本的な機能のほとんどは同じです。
history
を表示するには 実際には、Linuxインストールでターミナルプログラムを開き、次のように入力します。
$ history
これが私が得た応答です:
1 clear
2 ls -al
3 sudo dnf update -y
4 history
history
commandは、セッションの開始以降に入力されたコマンドのリストを表示します。 history
の喜び これで、次のようなコマンドを使用して、それらのいずれかを再生できるようになりました。
$ !3
!3
プロンプトのコマンドは、履歴リストの3行目でコマンドを再実行するようにシェルに指示します。次のように入力して、そのコマンドにアクセスすることもできます。
$ !sudo dnf
これにより、history
が表示されます 指定したパターンに一致する最後のコマンドを検索します(この場合、そのパターンは dnf です )そしてそれを実行します。
history
を使用することもできます !!
と入力して、最後に入力したコマンドを再実行します 。 grep
とペアリングする 、テキストパターンに一致するコマンドを検索するか、tail
で使用することができます 、最後に実行したいくつかのコマンドを見つけることができます。例:
$ history | grep dnf
3 sudo dnf update -y
5 history | grep dnf
$ history | tail -n 3
4 history
5 history | grep dnf
6 history | tail -n 3
この検索機能を利用するもう1つの方法は、Ctrl-R
と入力することです。 コマンド履歴の再帰検索を呼び出します。これを入力すると、プロンプトは次のように変わります。
(reverse-i-search)`':
これで、コマンドの入力を開始できます。 Return を押すと、一致するコマンドが表示され、実行できるようになります。 または入力 。
history
を使用することもできます 異なる構文でコマンドを再実行します。 history
で履歴を修正できます 。たとえば、前のコマンドを変更したい場合は、history | grep dnf
history | grep ssh
、プロンプトで次を実行できます:
$ ^dnf^ssh^
コマンドは再実行されますが、dnf
が使用されます ssh
に置き換えられました 。つまり、次のコマンドが実行されます:
$ history | grep ssh
履歴ファイル内の一部またはすべてのコマンドを削除したい場合があります。特定のコマンドを削除する場合は、history -d <line number>
と入力します。 。履歴ファイルの内容全体をクリアするには、history -c
を実行します。 。
履歴ファイルは、変更可能なファイルに保存されます。 Bashシェルのユーザーは、ホームディレクトリで.bash_history
として検索します。 。
history
でできることは他にもたくさんあります :
- 履歴バッファのサイズを特定のコマンド数に設定します
- 履歴の各行の日付と時刻を記録します
- 特定のコマンドが履歴に記録されないようにする
history
の詳細については コマンドやそれを使ってできるその他の興味深いことについては、履歴の解析、履歴検索修飾子、およびGNUBashマニュアルに関するSethKenlonの記事をご覧ください。
この記事は2018年6月に最初に公開され、編集者によって追加情報で更新されました。