バッシュ履歴サイズ
- Bash 履歴の概要
-
Bash
history
コマンドを使用して Bash 履歴を表示する - バッシュ履歴サイズ
- Bash 履歴ファイルのサイズを変更する
- 無制限の Bash 履歴ファイル サイズを設定する
- Bash の履歴を制御する
-
ログオフする前に履歴を
HISTFILE
に保存する
このチュートリアルでは、Bash の履歴、そのサイズ、および履歴のサイズとハンドルの制限を変更する方法について学習します。 トピックに移る前に、まず Bash シェルで履歴が必要な理由と、それを取得する方法を発見しましょう。
ほとんどの開発者、システム管理者、およびソフトウェア アプリケーション エンジニアは、Linux コマンド ラインで多くの時間を費やしています。 人間なので、タイプミスをします。
また、多くのコマンドには、パラメーター/オプションのリストがあります (それぞれの順序で)。 したがって、それらを正確な順序で覚えることは困難です。
したがって、履歴は、Bash シェルで入力した前のコマンドを思い出すのに役立ちます。
Bash 履歴の概要
履歴に関しては、Bash はコマンド、ファイル、およびショートカットを追跡します。 ユーザーは history
ユーティリティを使用してコマンド ラインに入力できます。
history
ユーティリティは有益な情報を提供します。 現在のシステムまたはアカウントの変更がどのように発生したかを追跡するのに役立ちます。
Bash には、Bash 履歴に関連する 2つの組み込みコマンドがあります。
history
- このコマンドは、Bash 履歴から以前に使用したコマンドのリストを提供し、Bash 履歴を変更することもできますfc
- このコマンドは、history
コマンドのすべてのタスクを実行し、コマンドの実行を許可します。
Bash の履歴に関するすべての情報は、Bash ユーザーの場合は ~/.bash_history
ファイルに保存されますが、他のユーザーの場合は .history
だけの場合があります。
history
コマンドから始めて、それがどのように機能するかを見てみましょう。
Bash history
コマンドを使用して Bash 履歴を表示する
履歴全体を表示したい場合は、シェルで history
コマンドを記述できます。 履歴ファイルから履歴全体が一覧表示されます。
$ history
出力は次のようになります。
1 ping google.com
2 sudo apt update
3 ping google.com
4 java --version
5 sudo apt install openjdk-17-jre-headless
6 sudo apt-get install gcc
7 sudo apt-get install gpp
8 sudo apt-get install g++
9 sudo apt-get install mingw-w64
10 sudo apt-get install codeblocks
11 codeblocks
12 sudo apt update
13 sudo apt update mu-editor
14 sudo apt install mu-editor
15 sudo apt update
16 python3 --version
17 clear
18 snap find pycharm
19 sudo snap install pycharm-professional --classic
20 clear
21 cd desktop/python
22 cd desktop/python task5.py
...
他にも役立つ Bash の history
コマンドがありますが、ここでは説明しませんが、この Web サイト から読むことができます。
Linux の Bash の fc
コマンドは、fix
コマンドとしても知られています。 主に、複数行のコマンドを変更するために使用されます。
fc
コマンドのパラメーター -l
は、以前のコマンド履歴を表示します。
コマンドとその出力の次の例を見てみましょう。
$ fc -l
302 284 ./a.out
303 285 gcc execve1.c -o e1
304 286 gcc execve2.c
305 287 ./a.out
306 288 $ sudo snap install whatsdesk
307 289 sudo snap install whatsdesk
308 290 cd ..
309 291 cd CodeForces/
310 292 pwd
311 293 history
312 294 1 ping google.com
313 295 ls
314 296 wc Test.c
315 297 fc -l
316 298 ls
317 clear
バッシュ履歴サイズ
Bash履歴ファイルについて話すと、データもあると思います。 Bash履歴ファイルのデフォルトは500
から1000
です。
履歴ファイルのエントリの最大数です。 ただし、さまざまなコマンドを使用して必要な範囲に履歴サイズを構成できるため、永続的ではありません。
それらを調べてみましょう。
Bash 履歴の構成
Bash コマンド履歴を構成するには、~/.bashrc
ファイルを変更する必要があります。 ~/.bashrc
ファイルは、次の nano
コマンドを使用して更新できます。
$ nano ~/.bashrc
変更したら、Ctrl+O を押してから Ctrl+X を押して保存し、nano
を閉じます。 編集者。 次に、次のコマンドを実行して Bash 設定を再読み込みします。
$ source ~/.bashrc
また
$ . ~/.bashrc
どちらのコマンドも、Bash 履歴ファイルを変更します。
Bash 履歴ファイルのサイズを変更する
変数 HISTSIZE
と HISTFILESIZE
は、Bash の履歴に関連しています。 変数 HISTSIZE
にはキャッシュされる Bash コマンドの最大数が含まれ、変数 HISTFILESIZE
には履歴ファイルに保存されているトップ コマンドの数が含まれます。
デフォルトでは、履歴ファイルに最大 500 個のコマンドを保持できます。
これらの変数を出力することで、これらの値を表示できます。 出力は、マシン/構成によって異なる場合があります。 1つのサンプル実行と関連する結果を次に示します。
$ echo $HISTSIZE
$ echo $HISTFILESIZE
1000
2000
これらの値を構成するには、次の行をファイル ~/.bashrc
に追加します。
$ HISTSIZE = 6000
$ HITFILESIZE = 6000
繰り返しますが、これらの変数を出力して値を確認できます。
$ echo $HISTSIZE
$ echo $HISTFILESIZE
6000
6000
無制限の Bash 履歴ファイル サイズを設定する
前のセクションでは、Bash で履歴サイズを変更する方法について説明しました。 ただし、無制限のサイズに設定できると便利な場合があります。 どうやってそれをしますか? 探検しよう!
次の手順を使用して、Bash 履歴サイズまたはファイル サイズの合計を設定することもできます。
-
Bash 履歴ファイルを変更します。 StackOverFlow で読むことができるように、場合によっては切り捨てられるため、Bash 履歴ファイルにはいくつかの問題があります。
HISTFILE
環境変数を別のディレクトリを使用するように変更することで、この問題を解決できます。export HITSFILE= ~/.history
HISTFILE
は、履歴ファイルのパス/場所を参照します (デフォルトは~/.bash_history
です)。 -
履歴サイズを増やします。
HISTFILESIZE
およびHISTSIZE
変数を空の文字列に設定して、Bash 履歴のサイズを無制限にします。$ export HITSFILESIZE= $ export HITSIZE=
-
既存の履歴をコピーします。 新しい履歴ファイルを使用していますが、以前のファイル コマンドを失うべきではないため、古いファイルの内容を新しいファイルにコピーします。
$ cp ~/.bash_history ~/.history
Bash の履歴を制御する
出力ノイズやセキュリティ上の理由を避けるために、Bash 履歴からコマンドを除外できます。 これは、履歴管理コマンド HISTCONTROL
を使用して行うことができます。このコマンドは、保存される履歴を制御します。
これを指定して、~/.bashrc
ファイル内の重複するエントリや先頭に空白があるエントリを無視することができます。
ignorespace
– これにより、スペース履歴リストで始まるコマンドが削除されます。ignoredups
– これにより重複するコマンドが排除されます。ignoreboth
–ignoredups
とignorespace
の両方を有効にします。erasedups
- これにより、リスト全体から重複が削除されます。
$ export HISTCONTROL=ignorespace:ignoredups
変数 HISTIGNORE
を使用してコマンドを無視するように制御することもできます。 これは、履歴から除外するすべてのコマンドを指定できる、コロンで区切られたパターンのリストです。
たとえば、履歴リストで基本的で最も頻繁に使用されるコマンド (ls
や pwd
など) を無視する場合は、~/.bashrc
ファイルに次の行を記述します。
$ export HISTIGNORE="ls:pwd:"
Linux Bash コマンド履歴を使用すると、古いコマンドを繰り返すよりも多くのことができます。
ログオフする前に履歴を HISTFILE
に保存する
コマンドは、ユーザーがログオフした後にのみ Bash ファイルに書き込まれます。 ただし、history
コマンドで書き込みオプションを使用して、ログオフする前に履歴をファイルに書き込むことができます。
構文は次のとおりです。
$ history -w
このコマンドは、現在のすべてのセッション コマンド履歴を HISTFILE
に書き込みます。 この後、コマンド スクリプトは今後使用できるようになります。
この記事では、最後に、Bash の履歴、履歴のサイズ、ファイル サイズ、または Bash の履歴とそのサイズを制限付きまたは無制限の範囲に変更する方法について説明しました。