.bashrc 파일은 무엇입니까?


100

시작할 때 유닉스 쉘은 .bashrc파일을 읽고 파일에 쓰여진 명령을 실행합니다. 이 파일은 무엇이며 어떤 파일을 실행합니까?


2
텍스트 편집기에서 파일을 열어보십시오. 일반 텍스트입니다.
Will Bickford

답변:


66

실제로, 그것은 bash구체적으로 읽습니다 .bashrc(및 /etc/bash.bashrc). 다른 껍질이 많이 있습니다.

bash는 남자 페이지 (브라이언 폭스와 쳇 레이미으로는, 또한 정보 페이지 "배쉬 시작 파일" ) 권위있는 참조입니다 :

로그인 쉘이 아닌 대화식 쉘이 시작되면 bash는 ~/.bashrc해당 파일이 존재하는 경우 명령을 읽고 실행 합니다. 이 --norc옵션 을 사용하여 금지 할 수 있습니다 . --rcfile파일 옵션을 읽고 대신 파일에서 명령을 실행하는 떠들썩한 파티를 강제로 ~/.bashrc.

bash가 비 대화식으로 시작될 때, 예를 들어, 쉘 스크립트를 실행하기 BASH_ENV위해 환경 에서 변수 를 찾고, 변수 가 나타나면 확장되고, 확장 된 값을 읽고 실행할 파일 이름으로 사용합니다. Bash는 다음 명령이 실행 된 것처럼 동작합니다.

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

그러나 PATH변수 의 값은 파일 이름을 검색하는 데 사용되지 않습니다.

파일은 단지 쉘 명령입니다. 일반적으로 프롬프트를 변경하고 환경 변수를 설정하며 쉘 프로 시저를 정의하는 데 사용됩니다. 일반적으로 파일 .profile은이 목적으로 사용되지만 bash확장명이 너무 많아 시작 파일에 bashism 을 넣고 자하는 사용자를 위해 자체 시작 파일이 필요 합니다.

" 로그인 쉘 아님 "은 스크립트 실행 및 일반적으로 창 관리자가 시작한 터미널 창과 같은 것을 의미합니다. 가끔 가지고 * nix에서 스크립트 시스템을 설정 .bashrc하고 BASH_ENV단지 소스 .profile. POSIX 셸 명령 외부에서 벗어나지 않는 한 모든 셸에서 동일한 초기화를 얻을 수 있습니다.

sh정말 bash일 때 특히 가치 가 있습니다. 이렇게하려면 :

. .profile

이것이 너무 복잡한 이유 중 하나는 때때로 사람들이 출력을 생성하는 것을 셸 시작 파일에 넣거나 무조건 프롬프트를 설정하기 때문입니다. system(3)C 프로그램에서는 말할 것도없고 언어 내에서 쉘 프로그램과 백틱 명령을 실행할 때 많은 문제가 발생 합니다. bash시작 방법 은 출력 및 프롬프트 설정이 올바른 파일 하나와 그렇지 않은 파일 하나를 갖도록 설계되었습니다. 일반적으로 런타임 테스트는 대화 형 기능을 구별하기 위해 수행됩니다 (예 : 프롬프트가 설정되어 있는지 확인).


좋은 대답입니다. 약간의 인용 : 파일은 단지 쉘 명령입니다. 일반적으로 프롬프트를 변경하고 환경 변수를 설정하며 쉘 프로 시저를 정의하는 데 사용됩니다.
smwikipedia 2013

2
.bashrc / .zshrc의 rc 부분이 무엇을 의미하는지 아는 사람이 있습니까?
WORMSS


아마도 rc는 런타임 구성을 의미합니다.
Mike Diehn

12

Bash가 시작되면 다양한 스크립트로 명령을 실행합니다.

Bash는 대화식 로그인 쉘로 호출 될 때 파일이 존재하는 경우 먼저 / etc / profile 파일에서 명령을 읽고 실행합니다. 해당 파일을 읽은 후 ~ / .bash_profile, ~ / .bash_login 및 ~ / .profile을 순서대로 찾아서 존재하고 읽을 수있는 첫 번째 명령을 읽고 실행합니다.

로그인 쉘이 종료되면 Bash는 ~ / .bash_logout 파일 (있는 경우)에서 명령을 읽고 실행합니다.

로그인 쉘이 아닌 대화식 쉘이 시작될 때 Bash는 ~ / .bashrc에서 해당 파일이있는 경우 명령을 읽고 실행합니다. --norc 옵션을 사용하여이를 방지 할 수 있습니다. --rcfile 파일 옵션은 Bash가 ~ / .bashrc 대신 파일에서 명령을 읽고 실행하도록합니다.

http://en.wikipedia.org/wiki/Bash_(Unix_shell)

다음은 몇 가지 요령과 팁입니다.

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

오늘 날짜와 호스트 이름을 표시 할 수 있도록 프롬프트를 설정해 보겠습니다.

PS1="\d \h $ "

1
.profile.bash_profile? 어떤 논리?
Pacerier

10

쉘에 대한 다양한 "초기화"명령을 포함해야합니다. 예 :

  • (예를 들어 유용한 별칭을 만들기 alias ll='ls -l').
  • PATH에 디렉토리 추가
  • 새로운 환경 변수 설정

별칭 사용이란 무엇입니까?
파인애플

2
@pineapple : 별칭은 명령을 실행하는 방법으로, 명령이 짧을수록 길 수 있습니다. 예를 들어, 별칭을 ll='ls -l'사용하면 명령 ll을 실행하도록 입력 할 수 있습니다 ls -l.
Wuffers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.