qiitaにシェルの内容を含めて投稿する際に、ユーザ名やホスト名を隠したい場合があると思います。シェルの入出力だけならテキスト処理ツールを使って削除することもできますが、スクリーンショットをアップロードする場合は端末のタイトルにもこれらの情報が表示されるので、黒塗りする手間も加わります。そこで最初からプライベートな情報をプロンプトに表示させない方法を紹介します。
準備
次のようなファイルを作成します。
.examplerc
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向けの方法とかも調べなきゃ・・・。