जवाबों:
फ़ाइल $HOME/.profile
का उपयोग कई गोले द्वारा किया जाता है, जिसमें बैश, श, डैश और संभवतः अन्य शामिल हैं।
बैश मैन पेज से:
जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में आमंत्रित किया जाता है, ... यह पहले फाइल / etc / प्रोफाइल से कमांड को पढ़ता है और निष्पादित करता है, यदि यह फाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह उस क्रम में ~ / .bash_profile, ~ / .bash_login और ~ / .profile की तलाश करता है, और पहले मौजूद से कमांड पढ़ता और कार्यान्वित करता है जो कि पढ़ने योग्य है।
csh और tcsh स्पष्ट रूप से नहीं दिखते हैं, ~/.profile
लेकिन उन गोले थोड़े प्राचीन हैं।
Run command as a login shell
। आपको ~/.bash_profile
इसे हटाने या इसे स्रोत बनाने की भी आवश्यकता है ~/.profile
।
$HOME/.profile
अपने Zsh के अंदर से भी स्रोत बना सकते .zshrc
हैं। मैं अपनी सभी पोर्टेबल शेल चीजों को अंदर रखना चाहता हूं .profile
और फिर मैं इसे किसी भी वातावरण के आसपास साझा कर सकता हूं, जिनके बीच मैं आशा कर सकता हूं।
~/.profile
पर्यावरण चर परिभाषाओं के लिए और गैर-ग्राफिकल कार्यक्रमों के लिए सही जगह है जो आप लॉग इन करते समय चलाना चाहते हैं (जैसे ssh-agent
, screen -m
)। यदि यह एक बॉर्न-शैली शेल (श, ksh, bash) है, तो इसे आपके लॉगिन शेल द्वारा निष्पादित किया जाता है। ~/.zprofile
इसके बजाय Zsh चलता है , और Csh और tsh चला जाता है ~/.login
।
यदि आप एक एक्स डिस्प्ले मैनेजर (एक्सडीएम, जीडीएम, केडीएम, ...) के तहत लॉग इन करते हैं, तो क्या ~/.profile
चलाया जाता है यह निर्भर करता है कि आपके डिस्ट्रीब्यूशन मैनेजर और शायद डेस्कटॉप वातावरण आपके वितरण द्वारा कैसे कॉन्फ़िगर किए गए थे। यदि आप एक "कस्टम सत्र" के तहत लॉग इन करते हैं, जो आमतौर पर निष्पादित होता है ~/.xsession
।
~/.bashrc
यह बैश-विशिष्ट सेटिंग्स के लिए सही जगह है, जैसे कि उपनाम, फ़ंक्शन, शेल विकल्प और संकेत। जैसा कि नाम इंगित करता है, यह बैश करने के लिए विशिष्ट है; csh है ~/.cshrc
, ksh है ~/.kshrc
, और zsh है <ढोलकिया> ~/.zshrc
।
इन्हें भी देखें:
.bashrc और .bash_profile के बीच का अंतर
बैश के साथ पर्यावरण चर स्थापित करने के लिए कौन सी सेटअप फ़ाइलों का उपयोग किया जाना चाहिए?
Zsh नहीं मार ~ / .profile
.zlogin
इसके अलावा करने के लिए .zprofile
जो चलाता है के बाद .zshrc
(लेकिन केवल लॉगिन गोले के लिए)। देखें ZSH पूछे जाने वाले प्रश्न
कोई आम फ़ाइल नहीं है, लेकिन आप प्रत्येक शेल को सामान्य फ़ाइल से पढ़ सकते हैं।
bash
.bash_profile
या से पढ़ता है.bashrc
zsh
से और पढ़ता है.zprofile
.zshrc
ksh
.profile
या से पढ़ता है$ENV
तो यहाँ मैं क्या करूँ:
~/.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)
यदि आपके पास सिस्टम तक रूट एक्सेस है, तो दूसरा तरीका सेट अप करना है pam_env
।
आप रख सकते हैं
session optional pam_env.so user_envfile=.env
प्रासंगिक /etc/pam.d
फ़ाइल में (जैसे /etc/pam.d/common-session
डेबियन पर), और फिर जब उपयोगकर्ता लॉग इन करता है, PAM
तो पर्यावरण चर को पढ़ेगा ~/.env
।
ध्यान दें कि pam_env
मूल रूप से केवल VAR=value
प्रविष्टियों का समर्थन करता है ।
और जानकारी:
विभिन्न गोले के लिए एक पर्यावरण विन्यास फाइल जैसी कोई चीज नहीं है, क्योंकि इसका विशिष्ट शेल भी परिभाषित है कि वे कैसे परिभाषित हैं।
Csh में आप setenv
बैश में उपयोग export
करते हैं आप उन्हें परिभाषित करने के लिए उपयोग करते हैं।
वैसे भी आप अपनी खुद की कॉन्फिग फाइल लिख सकते हैं और इसे source
अपने गोले के डॉटफाइल्स में शामिल कर सकते हैं।