qiitaにシェルの内容を含めて投稿する際に、ユーザ名やホスト名を隠したい場合があると思います。シェルの入出力だけならテキスト処理ツールを使って削除することもできますが、スクリーンショットをアップロードする場合は端末のタイトルにもこれらの情報が表示されるので、黒塗りする手間も加わります。そこで最初からプライベートな情報をプロンプトに表示させない方法を紹介します。
準備
次のようなファイルを作成します。
source ~/.bashrc 2> /dev/null
if [ "$EUID" -eq 0 ];
then
name="root"
else
name="user"
fi
PS1='\[\[\e]0;\a\]'"$name"'@example:\w\$ '
一応コードの説明
EUIDは実行ユーザIDです。UIDを使わないのは後述の\wの仕様に合わせるためです。
PS1変数は展開されてプロンプト文字列として使われるものです。
\[\[\e]0;~\a\]で囲った内容が端末のタイトルになります。今回の場合は端末のタイトルに何も表示しない(実際は"端末"と表示される)ということです。
また\wと\$は特殊文字で、それぞれカレントディレクトリと$(実行ユーザIDが0のときは#)に展開されます。
その他の利用可能なカスタマイズ用特殊文字についてはbashのマニュアルをご覧ください。
利用
以下のようにしてbashを起動します。
$ bash --rcfile .examplerc
あとは存分にコマンドを呼んでコピペしてやるだけです。
zsh向けの方法とかも調べなきゃ・・・。
