bashrc или bash_profile?

Я знаю разницу между двумя сценариями входа в систему bash:

.bashrc запускается только оболочками «без входа в систему».

.bash_profile (или .bash_login или .profile) выполняется оболочками «входа».

Есть ли у кого-нибудь хорошие примеры того, какие вещи лучше подходят для выполнения только для входа в систему, так что я бы поместил их только в .bash_profile, но они не имели бы смысла в .bashrc? [ 1111]

(Я знаю, что большинство из нас исходят из .bashrc из .bash_profile, поэтому, похоже, нет особого смысла в противоположном вопросе ...)

49
задан 15 April 2019 в 23:33

2 ответа

Так как .bashrc предназначен для оболочек без входа в систему, я избегаю любых команд, которые отражаются на экране. Я также сталкивался с опытом, когда операторы echo в .bashrc приводят к сбою команд sftp и rsync (и, возможно, также команд scp).

# Print some information as we log in
# -s: OS Name -n: Node name -r: OS Release
uname -snr
uptime

Кроме того, вы обычно не запускаете ssh-agent из неинтерактивной оболочки. Итак, у меня есть это в .bash_profile.

if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi
0
ответ дан 15 April 2019 в 23:33

Бёбу является отличным примером того, что вы никогда не должны вставлять в .bashrc.

В противном случае, он будет рекурсивно работать сам в каждом из своих «виртуальных терминалов»; -)

Вы можете попробовать его, хотя это довольно забавно.

Вот почему вы поместили его в .profile, поэтому byobu (который на самом деле является просто оберткой вокруг экрана) загружается только один раз, во время входа в систему. И сам Бёбу может начать новые интерактивные сессии Bash.

0
ответ дан 15 April 2019 в 23:33

Другие вопросы по тегам:

Похожие вопросы: