はじめに
- きっかけ
- Qiitaの投稿を準備していて、ターミナルに個人情報が出ていることに気づく
- コマンドの結果を貼り付けたときに、うっかり公開してしまう恐れがある
- 目的
- Qiita投稿時の個人情報の漏洩リスクを低減したい
- 通常時とQiita投稿準備中とで、ターミナルの表示を簡単に切り替えたい
- 作業環境
- 費用
- 無料
完成したもの
~/.zshrc
・・・ (中略)
setopt PROMPT_SUBST
# SHOW_USER_HOSTはターミナルの表示切り替え用のフラグです。0で個人情報を非表示、1で通常表示です
# SHOW_USER_HOSTが未定義または空なら、デフォルトで 1 に設定して環境変数としてエクスポート
# Qiita用設定を使わない時、通常のプロンプト表示に戻すために 1 をデフォルトにしています
export SHOW_USER_HOST="${SHOW_USER_HOST:=1}"
# SHOW_USER_HOSTが 0 ならQiita用表示。ユーザー名やホスト名は非表示になる
if [[ "$SHOW_USER_HOST" == "0" ]]; then
PS1='%F{yellow}%D %*%f : %F{cyan}%~%f %F{red}$(__git_ps1 "(%s)")%f
\$ '
else
PS1='%F{yellow}%D %*%f %F{green}%n@%m%f: %F{cyan}%d%f %F{red}$(__git_ps1 "(%s)")%f
\$ '
fi
切り替え前後のターミナルの表示
- 元々は、作業ログとしてユーザー名などを表示している
現在時刻 ユーザー名@ホスト名 フルパスのカレントディレクトリ gitの情報 改行
- Qiita用では、ユーザー名、ホスト名などの表示はしない
現在時刻 ホームからのカレントディレクトリ gitの情報 改行
切り替えコマンド
- 環境変数で表示をオフにして、
~/.zshrc
を再読み込みする - 再読み込みすることでプロンプトの表示設定が即座に反映されます
- Qiita投稿準備中では常に個人情報を非表示にできる
export SHOW_USER_HOST=0;source ~/.zshrc
- 通常のプロンプト表示に戻したい場合は、再度
SHOW_USER_HOST=1
と設定してください
参考
-
zsh: 14 Expansion
${名前=単語}
${名前:=単語}
${名前::=単語}
最初の形式では、nameが設定されていない場合はwordに設定し、2 番目の形式では、nameが設定されていないか null の場合はwordに設定し、3 番目の形式では無条件にname をwordに設定します。すべての形式で、パラメータの値が置き換えられます。
さいごに
- ターミナルに表示される内容の設定方法を理解できた
- shの変数の初期化方法にはいくつも種類があることを知った
- この記事がQiita投稿時の個人情報漏洩に役立てれば幸いです