Linuxコマンド履歴の調整方法の詳細な説明

Linuxコマンド履歴の調整方法の詳細な説明

Linux システムの bash history コマンドは、以前に実行したコマンドを記憶し、再入力せずに繰り返すのに役立ちます。

可能であれば、数十ページにおよぶマニュアル ページを読んだり、ファイルを何度も一覧表示したりする必要がなくなり、代わりに history と入力して以前に実行したコマンドを表示できるようになるので、間違いなく満足するでしょう。この投稿では、履歴コマンドに記憶させたい内容を記憶させ、あまり「履歴的価値」のないコマンドを忘れさせる方法について説明します。

コマンド履歴を表示する

以前に実行したコマンドを表示するには、「history」と入力するだけです。長いコマンドのリストが表示される場合があります。記憶されるコマンドの数は、~/.bashrc ファイルに設定されている $HISTSIZE という環境変数によって決まりますが、保存するコマンドの数を増やしたり減らしたりしたい場合は、必要に応じてこの設定を変更できます。

履歴を表示するには、history コマンドを使用します。

$ 履歴
209 ユーネーム -v
210日
211人の変更
……

表示されるコマンドの最大数を確認するには:

$ エコー $HISTSIZE
500

次のようなコマンドを実行すると、$HISTSIZE を変更して永続的にすることができます。

$ エクスポート HISTSIZE=1000
$ echo "HISTSIZE=1000" >> ~/.bashrc

また、履歴がどれだけ保存されるかと、履歴を入力したときに表示される履歴の量にも違いがあります。 $HISTSIZE 変数は表示される履歴の量を制御し、$HISTFILESIZE 変数は .bash_history ファイルに保持されるコマンドの数を制御します。

$ エコー $HISTSIZE
1000
$ エコー $HISTFILESIZE
2000

履歴ファイル内の行数を数えることで、2 番目の変数を検証できます。

$ wc -l .bash_history
2000 .bash_history

ログイン セッション中に入力されたコマンドは、履歴コマンドの出力にはすぐに表示されますが、ログアウトするまで .bash_history ファイルに追加されないことに注意することが重要です。

使用履歴

履歴で見つかったコマンドを再発行する方法は 3 つあります。最も簡単な方法は、特に再利用したいコマンドが最近実行された場合は、通常、! に続いてコマンドを一意に識別するのに十分な数の最初の文字を入力することです。

$ !u
uname -v は、
#37-Ubuntu SMP 2020年3月26日木曜日 20:41:27 UTC

コマンドを繰り返すもう 1 つの簡単な方法は、コマンドが表示されるまで上矢印キーを押してから Enter キーを押すことです。

あるいは、history コマンドを実行して、再実行したいコマンドがリストされている場合は、「!」に続けてコマンドの左側に表示されている番号を入力します。

$ !209
uname -v は、
#37-Ubuntu SMP 2020年3月26日木曜日 20:41:27 UTC

隠された歴史

一定期間コマンドのログ記録を停止する場合は、次のコマンドを使用できます。

$ set +o history

入力したコマンドは、history と入力しても表示されず、セッションを終了したりターミナルを終了したりしても .bash_history ファイルに追加されません。

この設定を解除するには、set -o historyを使用します。

これを永続的にするには、これを .bashrc ファイルに追加できますが、コマンド履歴を使用しないことは一般的に良い考えではありません。

$ echo 'set +o history' >> ~/.bashrc

履歴を一時的にクリアして、履歴を入力したときにそれ以降に入力したコマンドのみが表示されるようにするには、history -c (クリア) コマンドを使用します。

$ 履歴 | 末尾 -3
209 ユーネーム -v
210日
211人の変更
$ 履歴 -c
$ 履歴
1 履歴

注意: history -c を入力した後に入力されたコマンドは、.bash_history ファイルに追加されません。

制御履歴

多くのシステムでは、履歴コマンドのデフォルト設定に $HISTCONTROL という変数が含まれており、同じコマンドを 7 回続けて実行しても、そのコマンドが 1 回しか記憶されないようになっています。また、1 つ以上のスペースが後に続くコマンドを入力すると、そのコマンドがコマンド履歴から省略されることも保証されます。

$ grep HISTCONTROL .bashrc
HISTCONTROL=両方を無視

ignoreboth は「重複するコマンドと空白で始まるコマンドを無視する」ことを意味します。たとえば、次のコマンドを入力したとします。

$ echo これを試す
$ 日付
$ 日付
$ 日付
$パスワード
$ 履歴

履歴コマンドは次のようなレポートを出力します。

$ 履歴
$ echo これを試す
$ 日付
$ 履歴

連続する日付コマンドは 1 つに削減され、スペースでインデントされたコマンドは省略されることに注意してください。

歴史を無視する

特定のコマンドを無視して、history を入力したときにそれらのコマンドが表示されないようにし、.bash_history ファイルに追加されないようにするには、$HISTIGNORE 設定を使用します。例えば:

$ export HISTIGNORE=”history:cd:exit:ls:pwd:man”

この設定により、history コマンドの出力と .bash_history ファイルから、すべての history、cd、exit、ls、pwd、man コマンドが無視されます。

この設定を永続的にしたい場合は、.bashrc ファイルに追加する必要があります。

$ echo 'HISTIGNORE="history:cd:exit:ls:pwd:man"' >> .bashrc

この設定は、以前に実行したコマンドを振り返るときに、コマンド履歴を表示するときに表示したくないコマンドでリストが乱雑にならないことを意味します。

過去のコマンドを覚える、無視する、忘れる

コマンド履歴は、最近使用したコマンドを記憶したり、最近行った変更を思い出すのに役立つので便利です。また、特に再作成する必要のない多数のパラメータを持つコマンドの再実行も容易になります。履歴設定をカスタマイズすると、コマンド履歴の使用がより簡単かつ効率的になります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で履歴コマンドを表示および実行する方法
  • Linux のコマンドライン履歴を隠す方法を教えます
  • Linuxのシェル履歴コマンド記録機能
  • Linux コマンドラインで他のユーザーと通信する方法
  • Linux には make コマンドがありません (make: *** ターゲットが指定されておらず、makefile または make コマンドのインストール方法が見つかりません)
  • Linux telnetコマンドの使用
  • Linux gzip コマンドのファイル圧縮実装原理とコード例

<<:  Web インタビュー Vue カスタム コンポーネントと呼び出しメソッド

>>:  WeChatアプレットが連携メニューを実現

推薦する

HTML のボタン タグをクリックしてページにジャンプする 3 つの方法

方法1: onclickイベントを使用する <input type="button&...

Nexus を使用して Docker リポジトリを作成する方法

公式の Docker レジストリを使用して作成されたウェアハウスでは、イメージを削除してもデフォルト...

Win10にnginxをインストールして設定するプロセス

1. はじめにNginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プロキ...

Nginx を使用してグレースケール リリースを実装する

グレースケールリリースとは、白と黒をスムーズに移行できるリリース方法を指します。 ABテストとは、グ...

静的ページと動的ページの実行メカニズムの説明

1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...

MySQL のデッドロックとデータベースおよびテーブル シャーディングの問題の詳細な説明

MySQL 運用上の問題点を記録します。ビジネスシナリオと問題の説明外部インターフェースをリクエスト...

SELinux 入門

カーネル 2.6 の時代には、アクセス制御セキュリティ ポリシーのメカニズムを提供するために新しいセ...

MySQLのさまざまなオブジェクトのサイズと長さの制限について話しましょう

目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

MySQL マスタースレーブレプリケーションの原理と実践の詳細な説明

目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...

ウェブサイト製品設計の参考となるいくつかの原則

以下の分析は製品設計原則に関するものですが、そのほとんどはウェブサイト製品に基づいているため、ユーザ...

IE8対応のボーダー半径処理方法

canisue (http://caniuse.com/#search=border-radius)...

VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

目次PXEはサーバーの無人バッチ展開を実装します1. PXEの概要1.1 PXEとは何か1.2 キッ...

略語マークと頭字語マーク

<abbr>タグと<acronym>タグは、Web ページに表示される略語と...