Linuxコマンド · 1 min read · Sep 17, 2025

初心者のためのLinux historyコマンドチュートリアル(8つの例)

もしあなたの仕事がLinuxコマンドラインでツールやスクリプトを実行することを含むのであれば、毎日実行するコマンドがたくさんあることと思います。コマンドラインに不慣れな方は、以前に実行したコマンドのリストを表示するツール - history - が存在することを知っておくべきです。

このチュートリアルでは、わかりやすい例を用いてhistoryコマンドの基本について説明します。しかしその前に、ここでのすべての例はUbuntu 16.04LTSマシンでテストされていることをお伝えしておきます。

Linux historyコマンド

コマンドラインの履歴を効果的に活用する方法を知っていれば、日常的に多くの時間を節約できます。以下は、historyコマンドをどのように活用できるかを示すQ&A形式の例です。

Q1. historyコマンドはどのように機能しますか?

基本的な使い方は簡単です - 単に’history’コマンドを実行します。

history

historyコマンドはどのように機能しますか

これで、以前に実行したコマンドが出力に表示されるのがわかります。出力表示が最初のページで一時停止するように’more’コマンドを使用したことに注意してください(’history’の完全な出力は通常非常に長いです)。

Q2. historyに日付と時刻も表示させるには?

各コマンドの実行日付と時刻を表示させたい場合は、次のようにHISTTIMEFORMAT変数をエクスポートすることで実現できます。

export HISTTIMEFORMAT="%F %T: "

これで完了です。今後’history’コマンドを実行すると、出力に日付と時刻の情報が表示されます。

historyに日付と時刻も表示させるには

もしすべてのコマンドで日付と時刻が同じである場合、以下の説明が状況を明確にするはずです。

HISTTIMEFORMATをbashで設定すると、新しいエントリはタイムスタンプ付きで履歴ファイルに保存されます。タイムスタンプがない古いコマンド(HISTTIMEFORMATを設定する前のもの)は、同じ日付と時刻のスタンプを表示します(実際のタイムスタンプを持つ最初のエントリからのものだと思われます)。

この問題は、数日後に完全な履歴が更新されると自動的に解決されるはずです。

最初のタイムスタンプ付きの行が何かを確認するには、~/.bash_historyを見てください。タイムスタンプ付きの行は、#で始まり(現在の)10桁の数字が続きます。

Q3. historyがコマンドの記録を停止するには?

システムがコマンドの履歴を保存しないようにしたい場合は、HISTSIZE変数を使用してこれを実現できます。単にその値をゼロに設定してエクスポートすれば良いのです。

以下の例を見てください:

これで、’history’コマンドを実行しても結果が表示されないことがわかります。

HISTFILESIZE変数もあることに注意してください。両者の違いは以下の通りです:

HISTSIZEは、bashセッションが進行中の間に履歴リストにメモリに保存される行またはコマンドの数です。

HISTFILESIZEは、(a)セッションの起動時に履歴ファイルに許可される行またはコマンドの数、(b)将来のセッションで使用するためにbashセッションの終了時に履歴ファイルに保存される行またはコマンドの数です。

Q4. historyが単一のコマンドを記録しないようにするには?

これは、HISTCONTROL変数を’ignorespace’に設定することで実現できます。次のように設定してください:

export HISTCONTROL=ignorespace

これで、履歴に記録したくないコマンドを実行する際は、先頭にスペースを付けて実行すれば良いのです。

Q5. クイックな履歴検索を行うには?

もちろん、grepコマンドを使用してhistoryコマンドの出力から特定のキーワードやコマンドを検索することもできます。しかし、もっと速い方法もあります:reverse-i-searchです。

非常に簡単です - コマンドラインでCTRL+Rを押すだけで、プロンプトが次のようになります:

今、検索したいキーワードを入力すると、右側に履歴からの一致する提案が表示されます。例えば、私は’man’(引用符なし)を入力し、最初の結果は’man apropos’でした。

これが探しているものではない場合は、再度CTRL+Rを押すことで次の一致する結果を得ることができます。私の場合、次の結果は’man find search’でした。

このようにして検索を続けることができます。探している結果が見つかったら、右矢印キーを押すと、プロンプトに全コマンドが表示されます。

これでこのコマンドを実行することができますし、他の方法で使用することもできます。

Q6. 前のコマンドを実行するには?

最後に実行したコマンドを実行するには、2つの簡単な方法があります:CTRL+Pを押すか、次のコマンドを実行します:

!!

信じられないですか(特に2番目の方法)?試してみてください。

もし要件が2番目に最後に実行したコマンドをすぐに実行することであれば、次のように実行できます:

!-1

このように続けることができます。

Q7. historyが出力の重複エントリを無視するようにするには?

これは、HISTCONTROL変数を’ignoreboth’と’erasedups’に設定することで実現できます。次のように設定してください:

echo HISTCONTROL=ignoreboth:erasedups

これで、historyコマンドを実行すると、出力に重複が含まれなくなります。

Q8. 履歴をクリアするには?

既存の履歴をクリアして新たに始めたい場合は、-cコマンドラインオプションを使用します。

history -c

結論

historyは非常に重要なコマンドであることに同意するでしょう。このチュートリアルでは、このツールを最大限に活用するためのいくつかの重要なヒントやトリックについて説明しました。これらを練習したら、ツールのmanページにアクセスしてさらに情報を得てください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。