アンドロイド

Linuxの履歴コマンド(bash history)

’, Â, � etc... How to fix strange encoding characters in WP or other SQL database

’, Â, � etc... How to fix strange encoding characters in WP or other SQL database

目次:

Anonim

history コマンドについて説明します。これにより、以前に実行したコマンドのリストを表示し、リストを検索して、履歴ファイルを操作できます。

history コマンドとHistory Expansionsの使用

history はシェルに組み込まれており、その動作はシェルごとに若干異なる場合があります。 Bash組み込みバージョンの history ます。

最も単純な形式では、オプションや引数なしで呼び出されると、 history コマンドは行番号付きの履歴リスト全体を表示します。

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

!n 入力すると、履歴リストのn番目のコマンドが実行され、 !n コマンドがn行前に戻ります。 次の例では、 467 行目でコマンドを実行しています。

!467

コマンドを実行する別の方法は、 !word 展開を使用すること !word word は、「word」で始まる最新のコマンドを指します。

通常、 history は、画面に収まらない多くの出力行が表示されます。 出力を一度に1ページずつ表示するには、 more または less コマンドなどのページャープログラムにパイプします。

history | less

最後の n 行を表示するには、コマンドに引数として番号を渡します。 たとえば、履歴リストの最後の5行のみを表示するには、次のように入力します。

history -5

down 矢印キーを使用し up 、リスト内のエントリをナビゲートします。 検索したコマンドが表示されたら、 Enter を押して実行します。

タイプ !! 前のコマンドを実行するには:

!!

これは、コマンドを sudo で実行することを忘れた場合に特に便利です。コマンドを再入力する代わりに、次のように入力できます。

sudo !!

!-1 !! と同じです !! そして、履歴リストから最後のコマンドを実行します(最後から2秒目など)。

^word1^word2^ 展開すると、「word1」を「word2」に置き換えて最後のコマンドを再実行できます。 sudo command sduo command 代わりに誤って sduo command を入力した場合、次のように正しい単語を使用してコマンドを繰り返すことができます。

^sduo^sudo^

grep コマンドを使用して、出力をフィルタリングします。 たとえば、「nano」を含むすべてのコマンドを表示するには、次を実行します。

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

ここで、 nano setup.py コマンドを再実行する場合は、次のように入力します。

!356

コマンド履歴を検索する別の方法は、 Ctrl-R 押すことです。 プロンプトが次のように変わり、以前に実行したコマンドの検索を開始できます。

(reverse-i-search)`':

シェルは一致する行を表示します。 次の一致する候補に移動するには、 Ctrl-R もう一度押します。

履歴拡張、修飾子、および指定子の詳細については、Bashのマニュアルを参照してください。

履歴リストを保存する

デフォルトでは、新しいセッションを開始すると、Bashは .bash_history ファイルから履歴リストを .bash_history ます。 現在のセッションで実行されるコマンドのリストはメモリに保持され、セッションが閉じられるとファイルに保存されます。

-a オプションを使用すると、現在のセッション履歴リストを .bash_history ファイルに保存できます。

history -a

-w オプションは、完全な履歴リストを履歴ファイルに書き込みます。

history -w

履歴を消去する

history コマンドを使用すると、完全な履歴リストをクリアしたり、特定の部分を削除したりできます。

履歴リストをクリアするには、 -c オプションを使用します。

history -c

履歴リストから開始位置と終了位置の間の特定の行を削除するには、 -d オプションを使用します。

たとえば、365〜375の行(これらの行を含む)を削除するには、次のように入力します。

history -d 365 375

負の整数を使用すると、行は履歴リストの最後からカウントされます。

上記のコマンドは、メモリに保持されている履歴リストをクリアしますが、ディスク上の .bash_history ファイルからエントリを削除しません。 ファイルを消去するには、履歴リストをファイルに書き込む必要があります。

history -c history -w

履歴動作の変更

Bash履歴の動作は、いくつかの異なる環境変数を使用して定義できます。 履歴の動作を変更するときは、ユーザーがログインしたときに読み込まれる ~/.bashrc またはその他の構成ファイルに変数を設定します。

デフォルトでは、Bashはコマンド履歴リストに500行を保持します。 HISTSIZE 変数を使用すると、この値を変更できます。 10000に設定するには、 .bashrc ファイルに次の行を追加します。

HISTSIZE=10000

HISTCONTROL 変数は、コマンドを履歴リストに保存する方法を定義するコロンで区切られた値のリストを受け入れます。

  • ignorespace スペースで始まるコマンドは履歴リストに保存されません。 ignoredups 重複したコマンドは保存されません。 ignoreboth は、 ignorespace ignoredups 両方を含む短縮形 ignoredups

HISTCONTROL=ignoreboth

HISTTIMEFORMAT 変数が設定されている場合、Bashは各行でコマンドの実行のタイムスタンプを付加します。

たとえば、次を設定した場合:

HISTTIMEFORMAT="%F %T: "

履歴は次の形式で表示されます。

413 2019-10-27 21:13:07: sudo nano /etc/hosts

結論

history コマンドは、以前に実行されたコマンドのリストを表示します。 たとえば、履歴を使用して、以前に使用した覚えのない長いコマンドを表示できます。

履歴端末