UNIX の世界で広く使用されているコマンドの 1 つに history コマンドがあります。 UNIX のどのフレーバーにも history コマンドがあります。 bash シェルは、入力されたコマンドの履歴を保存します。これは、history コマンドを使用してコマンドを繰り返すために使用できます。デフォルトでは、以前の 1000 が表示されます
コマンド履歴の出力例は次のとおりです:
# history 1 uname -a 2 clear 3 ssh [email protected] 4 exit 5 ls 6 clear 7 echo "Hello" ........
bash 履歴メカニズムは、履歴リストからコマンドを取得するさまざまな高度な方法をサポートしています。以下は、bash history コマンドの使用方法の一部です:
1.最後に使用された n 個のコマンドのリスト
デフォルトでは、履歴コマンドは最後に使用された 1000 個のコマンドを表示します。ユーザーが最後に実行したいくつかのコマンドのみを一覧表示する場合は、「history n」を使用します。たとえば、最後に実行された 5 つのコマンドを表示するには:
# history 5 504 uname -a 505 who am i 506 date 507 echo "Hi" 508 history 5
2.最後のコマンドを繰り返します
最後に実行したコマンドを繰り返すには:
# echo "I am history" I am history # !! echo "I am history" I am history
3.ある文字で始まる最後のコマンドを繰り返します
!char =char で始まる最後のコマンドを繰り返します。例:
# !uname uname -a Linux geeklab 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
4.最後のコマンドをその番号で繰り返す
!num =履歴出力の番号でコマンドを繰り返します。例:
# !1010 ls -lrth total 197M -rw-r--r-- 1 root root 512K May 25 2015 file1 drwxr-xr-x 2 root root 4.0K Jun 1 2016 dir1
5.文字を含む最後のコマンドを繰り返します
!?command =([!char] で始まるのではなく) コマンドを含む最後のコマンドを繰り返します。例:
# echo "I am legend" I am legend # !?legend echo "I am legend" I am legend
6.最後の n 番目のコマンドを繰り返します
!-n =n コマンド前に入力されたコマンドを繰り返します
# !-3 uname -a Linux VMAX3Linux 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
7.履歴からコマンドを検索して実行する
Ctrl-r =コマンド履歴でコマンドを検索し、一致するものが見つかったら実行します。
# (reverse-i-search)`uname': uname -aSolaris :bash シェル コマンドの履歴に日付とタイムスタンプを含める方法
CentOS / RHEL :履歴コマンド出力で実行されたコマンドの日付と時刻を取得する方法
CentOS / RHEL :BASH シェルの履歴を無効にする方法
CentOS / RHEL :authconfig を使用して構成をバックアップ/復元する方法
コマンドの例を見て、コマンドを繰り返し実行したり、動的に変更可能なファイル (/proc/* など) を監視したりします。