.bashrc의 목적은 무엇이며 어떻게 작동합니까? .bashrc파일을 찾았고

.bashrc파일을 찾았고 파일의 목적 / 기능을 알고 싶습니다. 또한 언제 어떻게 사용됩니까?



답변

.bashrcBash가 대화식으로 시작될 때마다 실행 되는 쉘 스크립트 입니다. 대화식 쉘 세션을 초기화합니다. 명령 프롬프트에서 입력 할 수있는 명령을 해당 파일에 넣을 수 있습니다.

특정 환경에서 사용하기 위해 쉘을 설정하거나 원하는대로 항목을 사용자 정의하는 명령을 여기에 넣습니다. 일반적으로 사용하는 것은 항상 사용할 수 .bashrc있는 별칭 입니다.

.bashrc에서 실행되는 모든 대화 형 쉘 출시. 당신이 말하는 경우:

$ bash ; bash ; bash

Ctrl-D세 번 때리고 세 번 .bashrc뛸 겁니다 그러나 이것을 대신하면 :

$ bash -c exit ; bash -c exit ; bash -c exit

그때 .bashrc이후로 전혀 실행되지 않습니다 -c배쉬 호출이 아닌 상호 작용합니다. 파일에서 쉘 스크립트를 실행할 때도 마찬가지입니다.

대비 .bash_profile.profile새 로그인 셸 시작시에만 실행됩니다. ( bash -l) 명령 을 한 번 실행할지 또는 모든 대화식 쉘 시작마다 실행할지에 따라 명령을 .bashrc넣을지 .bash_profile여부를 선택합니다.

내가 선호하는 별칭에 대한 반례로서 , 이러한 변경은 일반적으로 dem 등성이 아니기 때문에 대신 조정 .bashrc을 원합니다 .PATH.bash_profile

export PATH="$PATH:/some/addition"

당신이 있음을 넣으면 .bashrc대신 때마다 대화 형 서브 쉘을 출시 :/some/addition의 말에 압정으로 고정 얻을 것이다 PATH당신이 명령을 잘못 입력하면 쉘에 대한 추가 작업을 생성, 다시.

당신이 때마다 새로운 대화 형 bash 쉘을 얻을 에서 쉘vi 과 함께 :sh예를 들어,.


답변

.bashrc파일 의 목적은 변수, 함수 및 별명을 설정하고 (PS1) 프롬프트를 정의하며 새 터미널 창을 열 때마다 사용할 기타 설정을 정의 할 수있는 장소를 제공하는 것입니다.

새 터미널, 창 또는 창을 열 때마다 실행되어 작동합니다.

여기에서 내 구문을 볼 수 있습니다 (구문 강조 표시 사용) .

HISTCONTROL=ignoreboth:erasedups HISTSIZE=100000 HISTFILESIZE=200000
ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }
git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; }
HOST='\033[02;36m\]\h'; HOST=' '$HOST
TIME='\033[01;31m\]\t \033[01;32m\]'
LOCATION=' \033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
PS2='\[\033[01;36m\]>'
set -o vi # vi at command line
export EDITOR=vim
test -f ~/.bash_aliases && . $_
test -f ~/.git-completion.bash && . $_
test -s ~/.autojump/etc/profile.d/autojump && . $_
[ ${BASH_VERSINFO[0]} -ge 4 ] && shopt -s autocd
[ -f /etc/bash_completion ] && ! shopt -oq posix && . /etc/bash_completion
[ -z $TMUX ] && export TERM=xterm-256color && exec tmux
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$home/.rvm/scripts/rvm"

설명:

-1. 내 기록 파일을 설정하여 중복을 무시하고 기본값보다 훨씬 큽니다.
-2. lsLinux 또는 OSX
-3을 사용 중인지 에 따라 색상 옵션 . md하나의 명령
-4 를 사용하여 디렉토리로 만들고 cd하는 기능 ” ” . 자식 저장소에있는 경우 현재 자식 분기를 찾고
-5. -9.
-10 과 같이 멋진 PS1 프롬프트를 정의하십시오 . PS2 프롬프트 개선
-11. 명령 행
-12 에서 vi를 편집기로 설정하십시오 . vi를 기본 편집기
-13 으로 설정하십시오 . 내 .bash_aliases파일이 있으면
-14를 실행 하십시오 . 내 자식 탭 완성 스크립트 (원격 및 분기 용)가 있으면 실행하십시오.
-15. 존재하는 경우 자동 점프를 실행하십시오
-16. bash version> = 4 인 경우 cd 부분을 입력하지 않고 cd’ing 허용
-17. bash 완료 스크립트가 있으면
-18을 실행하십시오. TMUX가 있으면
-19를 사용하십시오 . 내 PATH
-20에 rvm을 추가하십시오 . 존재하는 경우 rvm을 사용하십시오.

필자는이 이식성을 사용자 정의없이 모든 Linux 또는 OSX 시스템에서 작동하도록 만들었습니다. 따라서 특정 기능과 다른 스크립트를 사용하기 전에 존재 여부에 대한 여러 테스트가 수행됩니다.

또한 새 터미널 창을 여는 데 영향을주는 문제없이 새 컴퓨터에서 즉시 전체 파일을보다 쉽게 ​​사용할 수 있습니다.


답변

그것은이다 bashconfig 파일.

대화 형 (비 로그인) 쉘인 경우 다음 파일에서 구성을 읽습니다.

  • $HOME/.bashrc

로그인 쉘의 경우 다음 파일에서 구성을 읽습니다.

  • /etc/profile (항상 출처)
  • $HOME/.bash_profile (이 파일들 중 나머지 파일들은 하나가 발견 될 때까지 순서대로 확인되고, 다른 파일들은 읽지 않습니다)
  • $HOME/.bash_login
  • $HOME/.profile

로드 방법 / 시간에 대한 간단한 그림은 아래 이미지에 있습니다.

내가 추가 echo.bashrc.bash_profile

자세한 내용 man bash은 참조하십시오