사용자별 환경 변수, 별칭, 변수 수정 등 ~/.bashrc
을 지정하는 유일한 장소 인가요 ?PATH
~/.bashrc
- 밖에 없는 것 같아서 여쭤봅니다만 bash
, 다른 껍질도 존재합니다...
답변1
이 파일은 $HOME/.profile
bash, sh, dash 등을 포함한 많은 쉘에서 사용됩니다.
Bash 매뉴얼 페이지에서:
bash가 대화형 로그인 셸로 호출되면 먼저 /etc/profile 파일(파일이 있는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후 ~/.bash_profile, ~/.bash_login, ~/.profile을 순서대로 찾아 존재하고 읽을 수 있는 첫 번째 파일부터 명령을 읽고 실행합니다.
csh와 tcsh는 명시적으로 살펴보지 않았지만 ~/.profile
이러한 쉘은 약간 구식입니다.
답변2
~/.profile
은 로그인 시 실행될 환경 변수 정의 및 비그래픽 프로그램(예 ssh-agent
: screen -m
)의 올바른 위치입니다. 이는 Bourne 스타일 쉘(sh, ksh, bash)인 경우 로그인 쉘에 의해 실행됩니다. 대신 Zsh가 실행되고 ~/.zprofile
Csh 및 tcsh가 실행됩니다 ~/.login
.
X 디스플레이 관리자(xdm, gdm, kdm...)에 로그인한 경우, ~/.profile
이것이 작동하는지 여부는 배포판이 디스플레이 관리자와 데스크탑 환경을 어떻게 구성했는지에 따라 달라집니다. 이는 일반적으로 "사용자 정의 세션"에 로그인한 경우 수행됩니다 ~/.xsession
.
~/.bashrc
별칭, 함수, 셸 옵션 및 프롬프트와 같은 bash 관련 설정의 올바른 위치입니다. 이름에서 알 수 있듯이 이는 bash에만 해당됩니다. csh에는 it ~/.cshrc
, ksh에는 it ~/.kshrc
, zsh에는 <drumroll> 이 있습니다 ~/.zshrc
.
또한보십시오:
답변3
범용 파일은 없지만 모든 쉘을 범용 파일에서 읽도록 할 수 있습니다.
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
파일(예: Debian)에 저장한 다음 사용자 /etc/pam.d/common-session
가 로그인하면 .PAM
~/.env
기본적 으로 항목 pam_env
만 VAR=value
지원됩니다.
추가 정보:
답변4
정의되는 방식도 쉘마다 다르기 때문에 다양한 쉘에 대한 환경 구성 파일 같은 것은 없습니다.
csh와 setenv
bash에서 사용하여 export
정의하세요.
어쨌든 자신만의 구성 파일을 작성하여 source
셸의 도트 파일에 포함시킬 수 있습니다.