はじめに
history
Linuxのコマンドは、ターミナルセッションで使用されるコマンドのリストを表示する組み込みのシェルツールです。 history
ユーザーは、リストされているコマンドを再入力せずに再利用できます。
このチュートリアルでは、history
コマンドは機能し、さまざまな使用方法があります。
前提条件
- Linuxを実行しているシステム。
- sudo権限を持つアカウント。
- ターミナルウィンドウへのアクセス。
Linux履歴コマンドの使用方法
history
を使用する オプションなしのコマンドは、ターミナルセッションの開始以降に使用されたコマンドのリストを表示します。
history
限られた数のエントリでコマンド履歴リストを表示するには、その番号を history
に追加します 指図。たとえば、最新の5つのエントリのみを表示するには、次を使用します。
history 5
ターミナルを閉じると、Bashシェルは新しいコマンド履歴エントリを .bash_historyに保存します。 ファイル。
日付とタイムスタンプを使用する
.bashrc ファイルにはBashシェル設定が保存されます。このファイルを変更すると、 history
の出力形式を変更できます。 コマンド。
.bashrcを開きます Nanoなどのテキストエディタを使用したファイル:
sudo nano .bashrc
日付とタイムスタンプを含むように出力形式を変更するには、次の行を .bashrcに追加します。 ファイル:
export HISTTIMEFORMAT="%c "
HISTTIMEFORMAT
の後に別の引数を使用する タイムスタンプの詳細レベルをカスタマイズできます:
-
%d
:日 -
%m
:月 -
%y
:年 -
%H
:時間 -
%M
:分 -
%S
:秒 -
%F
:完全な日付(Y-M-D形式) -
%T
:時間(H:M:S形式) -
%c
:完全な日付とタイムスタンプ(Day-D-M-Y H:M:S形式)
変更を.bashrcに保存します ファイルを作成し、ターミナルを再起動して、 history
を実行します 新しい出力形式を確認するコマンド:
history
履歴バッファのサイズを表示する
.bashrc ファイルには、履歴バッファのサイズを制御する2つのエントリが含まれています。
-
HISTSIZE
:履歴リストのエントリの最大数。 -
HISTFILESIZE
: .bash_historyのエントリの最大数 ファイル。
HISTSIZE
の編集 およびHISTFILESIZE
値は、Bashシェルの表示方法とコマンド履歴の保存方法を変更します。
たとえば、 HISTSIZE
を変更します 10
の値 history
を作成します コマンドリストには、最大10個の最新のエントリが表示されます。
変更を.bashrcに保存する ファイルを作成し、ターミナルを再起動して、history
を実行します コマンドは新しい出力フォーマットを確認します:
history
コマンドを繰り返す
history
の実行 commandを使用すると、リストにある任意のコマンドを再利用できます。たとえば、最初のコマンドを実行するには( sudo apt update
)もう一度、使用します:
!1
ダッシュを追加する(- )コマンド番号がリストの最後からカウントを開始する前。たとえば、最後から10番目のコマンドを再利用するには( history 5
)、使用:
!-10
二重の感嘆符を使用して、最後のコマンドを繰り返します:
!!
文字列でコマンドを検索
感嘆符の後に文字列を追加すると、その文字列で始まる最新のコマンドが実行されます。たとえば、 sudo
で始まる最新のコマンドを再利用するには 、使用:
!sudo
このメソッドを使用すると、シェルが予期しないコマンドを実行した場合、特に sudo
で始まるコマンドを検索する場合に、問題が発生する可能性があります。 。予防措置として、 :p
を追加します 引数は、コマンドを実行せずに表示し、コマンドを確認して実行するかどうかを決定できるようにします。
!sudo:p
文字列を含むが、文字列で始まらない可能性のあるコマンドを検索するには、感嘆符の横に疑問符を追加します。たとえば、 echo
を含む最後のコマンドを再利用するには :
!?echo
上記の例では、シェルは echo
を含む最後のコマンドを再利用します コマンドがsudo
で始まっていても、文字列 。
一致するコマンドを一覧表示する
history
を組み合わせる およびgrep
文字列を含むコマンドのリストを表示できます。たとえば、 ufw
を含むすべてのコマンドを一覧表示するには 、使用:
history | grep ufw
実行コマンドの変更
最後に実行されたコマンドを変更するには、次の構文を使用します。
^[old string]^[new string]^
たとえば、 ufw
ポート20を有効にするコマンドは、ポートがすでに有効になっていることを示しています。
sudo ufw allow 20/tcp
上記の構文を使用して、ポート番号を20から22に変更します。
^20^22^
履歴内の記録コマンドの防止
履歴リストにコマンドが記録されないようにするには、次を使用して記録を一時的に無効にします。
set +o history
録音を再度有効にするには、次を使用します:
set -o history
履歴の削除
-d
を使用します history
のオプション 履歴リストからコマンドを削除するコマンド。たとえば、コマンド番号87を次のように削除します。
history -d 87
-c
を使用します 履歴リスト全体をクリアするオプション:
history -c
履歴ファイルを更新する
Bashシェルは、ターミナルセッションを終了するときに、コマンド履歴リストへの更新を保存します。 history
コマンドを使用すると、ターミナルセッション中に変更を保存することもできます。
-a
を使用する オプションを使用すると、このセッションのコマンド履歴エントリを .bash_historyに追加できます。 ファイル:
history -a
もう1つの方法は、 -w
を使用することです。 履歴リスト全体を.bash_historyに保存するオプション ファイル:
history -w