Bashプロンプトのユーザーモードシンボル

Bashプロンプトのユーザーモードシンボル

Bashエントリ行が提供するプロンプトで呼び出される名前/違い/記号を見つけようとします。

例: user@user~$ $ とは何ですか?一部のシステムでは、$の代わりにユーザー%であるのはなぜですか?変更できる設定ですか?

私は>(user)と#privileged execの間のCisco IOSの観点からこれを考えています。この記号はそこに目的がありますが、*Nixシステムではどの目的に使用されますか?

答え1

この役割に名前があるかどうかはわかりません。伝統的に、ユーザーがrootrootであるか(#rootである$かを意味する)ことを示すために使用されます。 Bourneスタイルのシェル(Bashを含む)、Cシェル、およびZshと一緒に使用されます。 Zshでは、定義はやや広いです。 POSIX機能を改善または改善した場合は、これが表示されます。%$%#root

プロンプト定義によって、表示するかどうかが決まります。大きな打撃を受けた状態で\$プロンプト定義で#または$で置き換えられます。Zshからはまたは%#で置き換えられます。拡張バージョンでは、Zshで他の文字を使用できます。#%%(!.#.%%)

$がユーザーシェルのデフォルトシンボルであり、#がルートシェルのデフォルトシンボルであるのはなぜですか?より多くの情報があります。

答え2

からman bash

ヒントインタラクティブに実行すると、bashはコマンドを読む準備ができたらプライマリプロンプトPS1を表示し、コマンドを完了するためにさらに入力が必要な場合はセカンダリプロンプトPS2を表示します。 Bashを使用すると、デコードされるバックスラッシュでエスケープされた特殊文字を次のように挿入して、これらのプロンプト文字列をカスタマイズできます。

...

  • \$# 有効 UID が 0 の場合は $、それ以外の場合

したがって、bash*でハードコードされています。これは他のシェルにも適用できます。私は80年代の非常に古いユニークを覚えています%。今cshは。%


*もちろんPS1をカスタマイズすることはできますが、UIDに基づいて1つまたは他のキャラクターを使用する組み込み機能はありません。

関連情報