あめみやしろぐ

お仕事(院内SE)のことをかいたり思いついたことをかいたりします。

bashでログイン時に色々だそう

「何を今更」かもしれないが、はじめに確認しておこう。

大雑把にいってしまうとLinuxにログインした際、一般には以下の順序で設定が読み出される。

/etc/profile(全てのユーザに適用される

② ~/.bash_profile(ログインユーザに適用される)

③(②がなければ)~/.bash_login(ログインユーザに適用される)

④(②も③もなければ)~/.profile(ログインユーザに適用される)

 

というわけで、ログインユーザ別に環境変数なりを設定したい場合、~/.bash_profileに色々と書いていくのが常道だろう。

 

ところで.bash_profileはシェルスクリプトでもある。ということは、ログイン時にコンソールへ色々と出力することも可能、ということだ。

 

というわけで、検証機(Alma Linux)の~/.bash_profileをこんな風に書いてみた。

ほら、ログイン時にホストが正しいか、とか見えたほうがいいじゃないですか。人間って間違える生き物だし。

 

# .bash_profile


# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

echo -e "\e[33m------------------------------------------------------------------- \e[m"
echo [hostname]:`hostname`
echo -e "\e[33m------------------------------------------------------------------- \e[m"
echo "[IP/mask(enp03s)] `ip a show dev enp0s3 2>/dev/null|grep inet |cut -d " " -f 6`"
echo -e "\e[33m------------------------------------------------------------------- \e[m"
echo "[Filesystem]"
df -h |egrep --color=never '^/|Filesystem'
echo -e "\e[33m------------------------------------------------------------------- \e[m"
echo "[User and Processes]"
w
echo -e "\e[33m------------------------------------------------------------------- \e[m"

echo "あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

    #1) 他人のプライバシーを尊重すること。
    #2) タイプする前に考えること。
    #3) 大いなる力には大いなる責任が伴うこと。"
echo -e "\e[33m------------------------------------------------------------------- \e[m"

PATH=$PATH:$HOME/bin

export PATH

 

実際、ログインした際は以下のように表示される。

f:id:amemiyashiro:20211025205020p:plain

.bash_profileに色々書くべきではない、という流派もあるは存じあげているけれど、これはこれでちょっと楽しい。