답변:
이 파일 $HOME/.profile
은 bash, sh, dash 및 기타를 포함하여 여러 쉘에서 사용됩니다.
bash 매뉴얼 페이지에서 :
bash가 대화식 로그인 쉘로 호출되면 ... 파일이 존재하는 경우 먼저 / etc / profile 파일에서 명령을 읽고 실행합니다. 해당 파일을 읽은 후 ~ / .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
). Bourne 스타일 쉘 (sh, ksh, bash) 인 경우 로그인 쉘에 의해 실행됩니다. ~/.zprofile
대신 Zsh가 실행 되고 Csh 및 tcsh run이 실행 ~/.login
됩니다.
X 디스플레이 관리자 (xdm, gdm, kdm, ...)에서 ~/.profile
로그인하는 경우 배포 여부 에 따라 디스플레이 관리자 및 데스크톱 환경이 구성된 방식에 따라 실행 여부 가 달라집니다. “맞춤 세션”으로 로그인하면 보통 실행 ~/.xsession
됩니다.
~/.bashrc
별명, 함수, 쉘 옵션 및 프롬프트와 같은 bash 특정 설정에 적합한 위치입니다. 이름에서 알 수 있듯이 bash에만 적용됩니다. csh has ~/.cshrc
, ksh has ~/.kshrc
및 zsh에는 <drumroll>이 ~/.zshrc
있습니다.
참조 :
.bashrc에 사이 .bash_profile에 차이
어떤 설정 파일이 떠들썩한 파티와 환경 변수를 설정하는 데 사용되어야 하는가?
Zsh가 ~ / .profile을 누르지 않음
공통 파일은 없지만 모든 쉘을 공통 파일에서 읽을 수 있습니다.
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
항목을.
더 많은 정보: