
サーバー上で標準の bash シェルを操作すると、PS1 プロンプトはデフォルトで、非 root ユーザーの場合は $ で終わり、root の場合は # で終わります。
例えば:
ubuntu@server:~$ sudo su
root@server:/home/ubuntu#
どうしてこれなの?
答え1
歴史的に、オリジナルの /bin/sh Bourne シェルは、$
通常のプロンプトとして を使用し、#
ルート ユーザーのプロンプトとして を使用します (csh は を使用します%
)。これにより、スーパーユーザーとして実行しているかどうかを簡単に判断できました。
#
はコメント文字でもあるため、盲目的にデータを再入力しても実際のコマンドは実行されません。
より新しいシェル (例: ksh、bash) では、この と の区別が継続されます$
が、#
ユーザー名、ホスト名、ディレクトリなどのより複雑な値を設定できる場合は、それほど重要ではありません :-)