ykominami
6/29/2018 - 5:11 PM

bashrc, .profile #code #sh

bashrc, .profile #code #sh

.bashrc, .profile




# ログイン時

/etc/profile システム全体設定

~/.profile ユーザ固有設定




# bash起動時

/etc/bash.bashrc

~/.bashrc




====

/etc/profile

~/.bash_profile

~/.bash_login

~/.profile

~/.bashrc

~/.bash_logout

ユーザーがログインすると、まず/etc/profileを読み込み、次に~/.bash_profileを読み込みます。~/.bash_profileが存在しない場合は、~/.bash_loginを読み込みます。~/.bash_loginもない場合は~/.profileを読み込みます。~/.bash_logoutは、ログアウト時に読み込まれるファイルです。

http://www.atmarkit.co.jp/flinux/rensai/theory09/zu01s.gif







bashrc を読み込むポイントはどこですか。

では、ログイン時にbashrcを読み込むにはどこに書くべきでしょうか。/etc/profileでしょうか。~/.profileでしょうか。

.profile でもイイですが、Bashでは~/.bash_profile に書きます。

bash がログインシェルで実行された場合 ~/.bash_profile を読み込みます。~/.profileは 他のシェル設定が書かれているかもしれないので、汚染を防ぐためだと考えられます。

bashしか使わないなら、.profileで問題ないのです。

~/.profileの内容

~/.profileのデフォルトに書かれています。

僕のDebianには次のように書かれていました。

# ~/.profile: executed by the command interpreter for login shells.

# ~/.profile は他のログインシェルも実行するファイルです。

# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login

# exists.

# この~/.profileは .bash_profileや .bash_login があれば、Bashは読みません

# see /usr/share/doc/bash/examples/startup-files for examples.

# さらに詳しい例は、次のファイルを呼んでみてください。/usr/share/doc/bash/examples/startup-files 

# the files are located in the bash-doc package.




# the default umask is set in /etc/profile; for setting the umask

# for ssh logins, install and configure the libpam-umask package.

#umask 022




# if running bash

if [ -n "$BASH_VERSION" ]; then

# include .bashrc if it exists

if [ -f "$HOME/.bashrc" ]; then

. "$HOME/.bashrc"

fi

fi




# set PATH so it includes user's private bin if it exists

if [ -d "$HOME/bin" ] ; then

PATH="$HOME/bin:$PATH"

fi

まとめ

bashしか使わないなら、~/.profileに設定書いちゃって構わない。

~/.profile に ~/.bashrc を呼び出す設定を書けばいい。