カテゴリ: Linux 更新日: 2026/05/01

LinuxのHISTSIZEとは?コマンド履歴の保持数を初心者向けに徹底解説

LinuxのHISTSIZEとは?履歴保持数を設定する環境変数
LinuxのHISTSIZEとは?履歴保持数を設定する環境変数

先生と生徒の会話形式で理解しよう

生徒

「先生、Linuxのターミナルで前に入力したコマンドをもう一度使いたいんですけど、どうやって確認すればいいですか?」

先生

「それなら、Linuxのコマンド履歴を見る機能を使うと便利ですよ。特にHISTSIZE(ヒストサイズ)という環境変数が関係しています。」

生徒

「HISTSIZEって何ですか?初めて聞きました。」

先生

「HISTSIZEは、Linuxやbash、zshなどのシェルでコマンド履歴をいくつまで保存するかを設定する数値のことです。設定しておくと、過去に実行したコマンドを簡単に呼び出せるようになります。」

生徒

「なるほど!でも、どうやって設定するんですか?」

先生

「後で具体例を使って設定方法も紹介します。初心者でも簡単にできますよ。」

Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。

試して理解 Linuxのしくみを見る

※ Amazonアソシエイト広告リンク

1. HISTSIZEとは何か?Linuxのコマンド履歴を管理する環境変数

1. HISTSIZEとは何か?Linuxのコマンド履歴を管理する環境変数
1. HISTSIZEとは何か?Linuxのコマンド履歴を管理する環境変数

HISTSIZE(ヒストサイズ)は、Linuxのbash(バッシュ)やzsh(ゼットシェル)などのシェルで使うコマンド履歴の保持数を決める環境変数です。

Linuxのターミナルで入力したコマンドは通常、履歴として保存されます。しかし、デフォルトでは履歴の数が決まっており、古いコマンドは自動的に消えてしまいます。HISTSIZEを設定することで、何個のコマンド履歴を保持するか自由に変更できます。

例えば、初心者がよく使うコマンドや長いコマンドを再利用したいときに、この設定を理解しておくと便利です。

2. HISTSIZEの現在の設定を確認する方法

2. HISTSIZEの現在の設定を確認する方法
2. HISTSIZEの現在の設定を確認する方法

今自分のLinux環境でHISTSIZEがいくつに設定されているかを確認するには、以下のコマンドを使います。


echo $HISTSIZE
1000

上の例では、過去1000件のコマンド履歴が保持されていることがわかります。

3. HISTSIZEの値を一時的に変更する方法

3. HISTSIZEの値を一時的に変更する方法
3. HISTSIZEの値を一時的に変更する方法

Linuxのターミナルで一時的に履歴数を変更するには、exportコマンドを使います。


export HISTSIZE=5000
echo $HISTSIZE
5000

この方法だと、ターミナルを閉じると元の設定に戻ります。一時的にたくさんのコマンド履歴を確認したい場合に便利です。

4. HISTSIZEを永続的に変更する方法

4. HISTSIZEを永続的に変更する方法
4. HISTSIZEを永続的に変更する方法

Linuxでずっとコマンド履歴の数を増やしたい場合は、ユーザーのホームディレクトリにある設定ファイルに記述します。bashの場合は~/.bashrc、zshの場合は~/.zshrcに追記します。


echo "export HISTSIZE=5000" >> ~/.bashrc
source ~/.bashrc

この設定を追加することで、毎回ターミナルを開くたびにコマンド履歴の保持数が5000件に設定されます。

5. HISTSIZEとHISTFILESIZEの違い

5. HISTSIZEとHISTFILESIZEの違い
5. HISTSIZEとHISTFILESIZEの違い

Linuxのコマンド履歴にはHISTFILESIZE(ヒストファイルサイズ)という環境変数もあります。HISTSIZEが「ターミナルで保持する履歴の数」なのに対して、HISTFILESIZEは「履歴ファイルに保存する数」を決めます。


echo $HISTFILESIZE
2000

この例では、履歴ファイルに最大2000件のコマンドが保存されます。HISTSIZEと組み合わせて使うことで、履歴管理がより便利になります。

6. Linux初心者でもできるHISTSIZEの便利な使い方

6. Linux初心者でもできるHISTSIZEの便利な使い方
6. Linux初心者でもできるHISTSIZEの便利な使い方

HISTSIZEを設定しておくと、過去に使った長いコマンドをもう一度入力する手間が省けます。たとえば、historyコマンドを使えば、履歴を一覧で確認できます。


history | tail -n 10
 995  ls -l
 996  cd ~/Documents
 997  nano sample.txt
 998  cat log.txt
 999  git status
1000  history

上の例では、直近10件のコマンドが表示されています。HISTSIZEを大きく設定しておくと、この履歴一覧でさらに過去のコマンドも確認できます。

7. HISTSIZEを使った便利なショートカット

7. HISTSIZEを使った便利なショートカット
7. HISTSIZEを使った便利なショートカット

Linuxでは、履歴を活用してコマンドを素早く再利用できます。たとえば、!nという記法を使うと、履歴番号nのコマンドを実行できます。


!997
nano sample.txt

この方法も、HISTSIZEで履歴数を増やしておくと、より多くの過去コマンドを呼び出せるので便利です。

8. Linuxのコマンド履歴を安全に管理するコツ

8. Linuxのコマンド履歴を安全に管理するコツ
8. Linuxのコマンド履歴を安全に管理するコツ

HISTSIZEを大きくすると便利ですが、重要なパスワードや秘密情報をターミナルで入力すると、履歴に残る可能性があります。必要に応じてHISTCONTROL(ヒストコントロール)やHISTIGNOREを使って履歴に残さない設定をすると安全です。


export HISTCONTROL=ignoreboth
export HISTIGNORE="password*"

この設定により、同じコマンドの重複や特定のコマンドを履歴から除外できます。

9. まとめではないが覚えておきたいポイント

9. まとめではないが覚えておきたいポイント
9. まとめではないが覚えておきたいポイント

Linux初心者がHISTSIZEを理解しておくと、ターミナル操作が格段に便利になります。履歴の保持数を調整するだけで、過去のコマンドを再利用しやすくなり、作業効率も上がります。また、HISTSIZEとHISTFILESIZE、HISTCONTROLの関係を理解しておくと、安全かつ効率的に履歴管理ができます。

LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。

Linux教科書 LPICレベル1 スピードマスター問題集を見る

※ Amazonアソシエイト広告リンク

まとめ

まとめ
まとめ

本記事では、Linuxのコマンド履歴を管理する環境変数HISTSIZEについて詳しく解説しました。Linux初心者でも理解しやすいように、HISTSIZEの基本概念から設定方法、履歴の活用方法、安全に管理するコツまでを順を追って紹介しました。
まず、HISTSIZEはターミナルで保持するコマンド履歴の数を設定する環境変数です。デフォルトでは1000件程度ですが、export HISTSIZE=5000のように変更することで、より多くの履歴を保持できます。また、この設定は一時的に変更することも、~/.bashrc~/.zshrcに追記して永続的に変更することも可能です。

次に、HISTFILESIZEとの違いについても理解しておく必要があります。HISTFILESIZEは履歴ファイルに保存されるコマンドの最大数を決める変数で、HISTSIZEがターミナル上の履歴数を制御するのに対して、HISTFILESIZEはディスクに保存される履歴数を制御します。これらを適切に設定することで、Linux環境で効率的かつ安全にコマンド履歴を管理できます。

また、historyコマンドを使って過去に実行したコマンドを簡単に確認でき、HISTSIZEを大きくしておくとより多くの過去コマンドを参照できます。さらに、!nのショートカットを利用すれば、特定の履歴番号のコマンドを素早く再実行できます。これにより作業効率が格段に向上します。

ただし、履歴には入力したコマンドがすべて残るため、パスワードや秘密情報を含むコマンドは注意が必要です。HISTCONTROLHISTIGNOREを使って履歴に残さない設定を行うことで、セキュリティを確保しつつ効率的な履歴管理が可能です。

まとめると、HISTSIZEはLinuxのターミナル操作をより便利にする重要な設定です。履歴数の調整、履歴ファイルとの連携、履歴管理の安全対策を組み合わせることで、初心者でも効率的に作業できます。

サンプル設定例


# ターミナルで一時的にHISTSIZEを5000に変更
export HISTSIZE=5000
echo $HISTSIZE

# 永続的に設定する場合
echo "export HISTSIZE=5000" >> ~/.bashrc
source ~/.bashrc

# 履歴ファイルサイズの設定
export HISTFILESIZE=10000

# 履歴に特定のコマンドを残さない設定
export HISTCONTROL=ignoreboth
export HISTIGNORE="password*"
先生と生徒の振り返り会話

生徒

「先生、HISTSIZEを大きくしたらどんなメリットがありますか?」

先生

「過去に実行したコマンドをもっと遡って確認できます。長いコマンドを再入力する手間が減りますし、作業効率が上がります。」

生徒

「なるほど。でも、履歴にパスワードとかも残るんですよね?」

先生

「そうですね。その場合はHISTCONTROLHISTIGNOREを設定すると、特定のコマンドや重複コマンドを履歴に残さず安全に管理できます。」

生徒

「じゃあ、HISTSIZEとHISTFILESIZEの違いはどう理解すればいいですか?」

先生

「HISTSIZEはターミナル上で保持する履歴数、HISTFILESIZEはファイルに保存する履歴数です。両方を適切に設定すると、履歴管理が効率的になります。」

生徒

「わかりました!これでターミナル操作がずっと便利になりますね。」

先生

「その通りです。Linux初心者でもHISTSIZEを理解すれば、作業効率と安全性の両方を向上させられます。」

カテゴリの一覧へ
新着記事
New1
Linux
Linuxの/proc/meminfoとは?メモリ使用状況を確認する仕組みを初心者向けに徹底解説
新規投稿
New2
情報セキュリティマネジメント試験
RATとは?リモートアクセス型ウイルスの仕組みと対策を初心者向けに解説
更新記事
New3
基本情報技術者試験
ビッグデータとは?初心者でもわかる大量データ活用の基本と活用事例
更新記事
New4
基本情報技術者試験
クライアントとは?初心者でもわかるコンピュータの基本用語をやさしく解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
NIC
305
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.2
Java&Spring記事人気No2
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.4
Java&Spring記事人気No4
基本情報技術者試験
DHCP
239
DHCPとは?初心者でもわかるIPアドレス自動割り当ての仕組み
No.5
Java&Spring記事人気No5
基本情報技術者試験
SMTP
176
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!
No.6
Java&Spring記事人気No6
基本情報技術者試験
マイクロ(μ)とは?初心者にもわかる単位の意味と使い方をやさしく解説
No.7
Java&Spring記事人気No7
基本情報技術者試験
IMAP
160
IMAPとは?初心者でもわかるメール受信プロトコルの仕組みと使い方
No.8
Java&Spring記事人気No8
基本情報技術者試験
CPU
156
CPUとは何かを完全解説!初心者でもわかるコンピュータの頭脳の仕組み