Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Bashの履歴をもっと便利に活用するための実践テクニック

LinuxのターミナルでBashを使っているなら、最近実行したコマンドを振り返れる「履歴(ヒストリー)」機能が最初から組み込まれています。Bashセッションの履歴を表示するには、組み込みコマンドのhistoryを実行します。

$ echo "foo"
foo
$ echo "bar"
bar
$ history
  1  echo "foo"
  2  echo "bar"
  3  history

historyコマンドは、多くのコマンドと異なりファイルシステム上の実行ファイルではなく、Bash自体の機能です。これはtypeコマンドで確認できます。

$ type history
history is a shell builtin

履歴の挙動を制御する

シェル履歴として保存できる行数の上限は、HISTSIZE変数で定義されています。この変数は.bashrcファイルに記述して設定できます。以下の例では履歴を3,000行に設定しています。上限に達すると最も古い行が削除され、新しいコマンドがリストの末尾に追加されていきます。

export HISTSIZE=3000

履歴に関連する変数は他にもあります。HISTCONTROL変数を使うと、どのようなコマンドを履歴に保存するかを細かく制御できます。たとえば、先頭が空白で始まるコマンドを履歴から除外したい場合は、.bashrcに次の1行を追加しましょう。

export HISTCONTROL=$HISTCONTROL:ignorespace

この設定により、先頭にスペースを入力して実行したコマンドは履歴に記録されなくなります。パスワードなど機密情報を含むコマンドを履歴に残したくない場合に特に役立ちます。

$ echo "hello"
$    mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
  1  echo "hello"
  2  echo "world"
  3  history

重複するエントリを避けたい場合は、次のように設定します。

export HISTCONTROL=$HISTCONTROL:ignoredups

これで、同じコマンドを続けて何度実行しても、履歴には1回だけ記録されるようになります。

$ ls
$ ls
$ ls
$ history
  1  ls
  2  history

両方の機能をまとめて有効にしたい場合は、ignorebothを指定すればOKです。

export HISTCONTROL=$HISTCONTROL:ignoreboth

履歴からコマンドを削除する

うっかり機密情報を含むコマンドを打ってしまったときや、正しく動作させた手順をより正確に反映させるために履歴を整理したいことがあるでしょう。Bashの履歴から特定のコマンドを削除するには、-dオプションに行番号を指定して実行します。

$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
 535  echo "foo"
 536  echo "bar"
 537  history | tail
$ history -d 536
$ history | tail
 535  echo "foo"
 536  history | tail
 537  history -d 536
 538  history | tail

また、HISTCONTROL環境変数にignorespaceが設定されている場合は、コマンドの先頭にスペースを入力するだけで、そのコマンドを履歴に残さないようにできます。

$  history | tail
 535  echo "foo"
 536  echo "bar"
$  history -d 536
$  history | tail
 535  echo "foo"

セッションの履歴全体を一括でクリアしたい場合は、-cオプションを使用します。

$ history -c
$  history
$

ショートカットでさらに便利に

履歴をより快適に活用するなら、キーボードショートカットも覚えておきましょう。ターミナルでCtrl+Rを押すと履歴の後方検索モードになり、入力した文字列に一致する過去のコマンドを素早く呼び出せます。また、直前のコマンドは!!で再実行でき、前のコマンドの最終引数は!$で参照できるので、長いパスを扱う際の時短にもつながります。

履歴を賢く活用しよう

履歴の操作は、思ったよりも危険なものではありません。特に、目的を持って履歴を整理する場合にはそうです。たとえば、複雑な問題の解決手順をドキュメント化したいときは、セッション履歴を使ってコマンドを記録するのがおすすめです。コマンドを履歴に残すということは、それを実際に実行し、プロセスを検証していることになるからです。実際に操作せずに記録だけしていると、小さなステップを見落としたり、細かい部分を書き間違えたりしがちです。

必要に応じて履歴を活用し、その力を賢く使いこなしてください。それでは、快適な履歴ライフを!

  1. Googleレンズアプリをもっと便利に使う7つの隠れた機能

    Googleレンズアプリには、知られざる便利な機能が数多く搭載されています。本の表紙をスキャンして書籍情報を調べたり、目の前の物体を識別したりと、ユーザーの日常生活をさまざまな場面でサポートしてくれるアプリです。現在、GoogleレンズはAndroidデバイス向けにGoogle Playストアから入手でき、内蔵カメラと連携してスムーズに動作します。iOSデバイスでも物体識別などの主要機能を利用可能です。この記事では、スマートフォンでGoogleレンズを活用するための最新機能とユニークな使い方をご紹介します。Googleレンズアプリで生活をもっとラクにする便利機能ここでは、Googleレンズアプ

  2. Windowsエクスプローラーをもっと便利に!知っておきたい10のヒントとコツ

    Windowsエクスプローラー(ファイルエクスプローラー)は、Windows 95の登場以来、Windowsに標準搭載され続けてきたファイル管理アプリです。グラフィカルなインターフェースを通じてファイルシステムへアクセスでき、ほぼすべてのWindowsユーザーが日々ファイルやドキュメントの操作に利用しています。しかし、その便利な機能を使いこなせていない方も多いのではないでしょうか。実は、エクスプローラーにはまだ知られていない便利なテクニックが数多く存在します。 本記事では、エクスプローラーをより快適かつ効率的に使いこなすためのおすすめのヒントとコツをご紹介します。 1. 最近使ったファイルの履