Yanıtlar:
Dosya $HOME/.profile
bash, sh, çizgi ve muhtemelen diğerleri de dahil olmak üzere bir dizi kabuk tarafından kullanılır.
Beşinci adam sayfasından:
Bash etkileşimli bir giriş kabuğu olarak çağrıldığında ... ... eğer varsa, önce / etc / profile dosyasındaki komutları okur ve çalıştırır. Bu dosyayı okuduktan sonra, bu sırayla ~ / .bash_profile, ~ / .bash_login ve ~ / .profile ifadelerini arar ve var olan ve okunabilen ilk komuttan komutları okur ve yürütür.
csh ve tcsh açıkça bakmıyorlar ~/.profile
ama bu kabukları biraz eskimiş.
Run command as a login shell
. Ayrıca kaldırmanız ~/.bash_profile
veya kaynak yapmanız gerekir ~/.profile
.
$HOME/.profile
içinden de kaynak yapabilirsiniz .zshrc
. Tüm portatif kabuklarımı yerleştirme eğilimindeyim .profile
ve sonra onu zıplayabileceğim herhangi bir ortamda paylaşabilirim.
~/.profile
ortam değişkeni tanımları ve giriş yaparken (örneğin ssh-agent
, screen -m
) çalıştırmak istediğiniz grafiksel olmayan programlar için doğru yerdir . Bourne tarzı bir kabuksa (sh, ksh, bash), giriş kabuğunuz tarafından yürütülür. Zsh ~/.zprofile
yerine çalışır ve Csh ve tcsh çalışır ~/.login
.
Bir X ekran yöneticisi (xdm, gdm, kdm, ...) altında giriş yaparsanız ~/.profile
, çalıştırmanın yapılıp yapılmaması, ekran yöneticinizin ve belki de masaüstü ortamınızın dağıtımınız tarafından nasıl yapılandırıldığına bağlıdır. Bir "özel oturum" altında giriş yaparsanız, genellikle yürütür ~/.xsession
.
~/.bashrc
takma adlar, işlevler, kabuk seçenekleri ve komut istemleri gibi bas-özgü ayarlar için doğru yerdir. Adından da anlaşılacağı gibi, bash için özeldir; csh var ~/.cshrc
, ksh var ~/.kshrc
ve zsh <drumroll> 'a sahiptir ~/.zshrc
.
Ayrıca bakınız:
.bashrc ve .bash_profile arasındaki fark
Ortam değişkenlerini bash ile ayarlamak için hangi kurulum dosyaları kullanılmalıdır?
Zsh ~ / .profile isabet değil
.zlogin
ek olarak .zprofile
çalıştığı sonra .zshrc
(ama sadece giriş kabukları için).
Ortak bir dosya yok, ancak her kabuğu ortak bir dosyadan okumasını sağlayabilirsiniz.
bash
okur .bash_profile
veya.bashrc
zsh
ve okur.zprofile
.zshrc
ksh
okur .profile
veya$ENV
İşte burada ne yapıyorum:
~/.env
# Put environment variables here, e.g.
PATH=$PATH:$HOME/bin
~/.shrc
test -f "$HOME/.env" && . "$HOME/.env"
# Put interactive shell setup here, e.g.
alias ll='ls -l'
PS1='$PWD$ '
set -o emacs
~/.bashrc
test -f ~/.shrc && source ~/.shrc
# Put any bash-specific settings here, e.g.
HISTFILE=~/.bash_history
shopt -s extglob
IGNOREEOF=yes
~/.zshenv
# Put any zsh-specific settings for non-interactive and interactive sessions, e.g.
setopt braceexpand
setopt promptsubst
setopt shwordsplit
~/.zshrc
test -f ~/.shrc && source ~/.shrc
# Put any zsh-specific interactive settings here, e.g.
HISTFILE=~/.zsh_history
setopt ignoreeof
~/.profile
# Interactive sub-shells source .env, unless this is bash or zsh,
# because they already sourced .env in .bashrc or .zshrc.
if test -z "$BASH_VERSION" -a -z "$ZSH_VERSION" || test -n "$BASH_VERSION" -a \( "${BASH##*/}" = "sh" \)
then
test -f "$HOME"/.env && . "$HOME"/.env
fi
# The name is confusing, but $ENV is ksh's config file for interactive sessions,
# so it's equivalent to .bashrc or .zshrc.
# Putting this here makes running an interactive ksh from any login shell work.
test -f "$HOME"/.shrc && export ENV="$HOME"/.shrc
# Put any login shell specific commands here, e.g.
ssh-add
stty -ixon
~/.bash_profile
source ~/.bashrc
source ~/.profile
~/.zlogin
# zsh sources .zshrc automatically, only need to source .profile
source ~/.profile
~/.zprofile
(empty)
Sisteme kök erişiminiz varsa, başka bir yol ayarlamaktır pam_env
.
Koyabilirsin
session optional pam_env.so user_envfile=.env
İlgili /etc/pam.d
dosyada (örneğin /etc/pam.d/common-session
Debian'da) ve kullanıcı giriş yaptığında, PAM
ortam değişkenlerini from 'dan okuyacaktır ~/.env
.
pam_env
Temel olarak sadece VAR=value
girişleri desteklediğini unutmayın .
Daha fazla bilgi:
Farklı kabukları için bir ortam config dosyası gibi bir şey yoktur, çünkü onların kabukları nasıl tanımlandıklarına özeldir.
Csh'de setenv
bash kullanıyorsunuz export
, onları tanımlamak için kullanıyorsunuz.
Her neyse, kendi config dosyanızı source
yazıp, mermilerinizin dotfilesine ekleyebilirsiniz.