25
ターミナルでルートシェルのプロンプトをカスタマイズする

今日のヒントは、私のようにターミナルを頻繁に使用し、時折ルートユーザーとして操作する必要がある方向けです。ターミナルとは何か、ルートユーザーとは何か、あるいはコマンドについて聞いたことがない方はsudo、このヒントはおそらく役に立ちません。

ターミナルでは、 コマンドでルートモードに入りますsudo。特に、ルートとして多くの操作を行う場合は、 コマンドでルートシェルを開くのが最も簡単ですsudo -s。 を入力するまでルートモードは維持されexit、 を入力すると「通常の」管理者レベルの権限に戻ります。

ただし、これには 1 つだけ問題があります。デフォルトのルート コマンド プロンプトは、このモードで使用しているパワーを思い出させるほど恐ろしくありません。

ルート モードで実行している場合、デフォルトのプロンプトは、bash-3.2#私の好みには標準プロンプトに似すぎています。ルートとして操作しているときに本当に愚かなことを行わないように、自分が何をしているかを実際に思い出させてくれるものが必要です。

デフォルトのシェルを使用している場合、ルートプロンプトを変更したい場合はbash、以下の手順で変更できます。nanoまたはBBEdit など、お好みのテキストエディタを使用して、ユーザーのホームディレクトリにviある という名前のファイルを編集します。.profile

(このファイルが存在しない場合は作成してください。また、代わりにという名前のファイルが存在する可能性もわずかにあります.bash_profile。その場合は、 ではなくそのファイルを編集してください.profile。)

ルートプロンプトを設定するには、このファイルで指定された変数を設定する必要がありますSUDO_PS1。通常のシェルプロンプト(マシン名、現在のディレクトリ、ユーザー名)を模倣したい場合は、.profileファイルに次のコマンドを追加します。

export SUDO_PS1="[h:w] u$ "

プロンプト文字列は非常に奇妙な見た目の異質なものなので、上記の記述はあまり意味をなさないかもしれません。簡単に言うと、、、hwマシンu(ホスト)名、現在のディレクトリ、ユーザー名を表示します。 を使用する場合、ユーザー名は通常のユーザーとしてログインした場合とは異なり、sudo -sと表示されます。root#robg$

画像
明確に区別されたルートプロンプトは愚かな行為を防ぐことができます

ファイルを保存し、エディターを終了して、新しいターミナル ウィンドウを開き、変更が有効になっていることを確認します (sudo -sもちろん、 を実行した後)。

上記は良いスタートではありますが、私にとってはまだ十分目立つものではありません。

そこで、右の画像のように違いがはっきりとわかるように上記を修正しました。

プロンプトを作成するには、.profileファイル内の次のエントリを使用しました。

export SUDO_PS1="[e[33;1;41m][u] w $[e[0m] "

(真のUnixエキスパートの皆様へ:私のプロンプトが完璧だとは断言できません。もっと簡略化できるかもしれません。しかし、私の環境では問題なく動作しており、長年使用しています。)ここでは様々な処理が行われており、すべてを詳しく説明するには、ここで使える文字数とスペースをはるかに超える量が必要になります。しかし、基本的な概要は次のとおりです。

  • [– 後続の文字は印刷されない文字なので、行折り返しの対象にはなりません。
  • e[– 色を設定するためのエスケープシーケンスの開始
  • 33;1;41m– 実際の色文字列。赤い背景に太字の黄色のテキストを作成します。
  • ]– 非表示文字の末尾
  • [u] w $– 括弧で囲まれたユーザー名、その後にディレクトリと#シンボル
  • [e[0m]– もう一つの印刷されないシーケンス。これは色をデフォルトに戻します。プロンプトだけが赤地に黄色になります。

プロンプトについてもう少し詳しく知りたい場合は、bashマニュアル(man bashターミナルで入力)をお読みください。プロンプトに関するセクションに直接ジャンプするには、検索(スラッシュ「 」を入力/When executing interactivelyしてください。ただし、それでも上記のほとんどの説明には役立ちません。そのため、Google の助けが必要になるでしょう。特に、概要が分かりやすいこのチュートリアルと、色の使い方について詳しく説明されているこのチュートリアルが気に入っています。

このヒントを見て、デフォルトの非sudoプロンプトを変更したいと思った場合は、それも可能です。.profileファイルに で始まる行を追加しexport PS1="...、必要に応じてプロンプト文字列を作成してください。

何か間違えてプロンプトが読めなくなってしまった場合(え? いえ、私はそんなことは一度も.profileありませんでした!)、ファイルからその行を削除し、変更を保存して、新しいターミナルウィンドウを開いてください。ただし、プロンプト文字列をいじるのは驚くほど時間のかかる作業になる可能性があるので注意してください…「あと少しだけ変更するだけ!」