~ / .profile, ~ / .bashrc, ~ / .bash_profile, ~ / .gnomerc, / etc / bash_bashrc, / etc / screenrc…의 차이점은 무엇입니까?


68

SOaskubuntu 에 대한 질문에 대한 답은 헤더를 읽고 (및 헤더를 읽는 중) $HOME및 다음 /etc/과 같이 환경 변수를 설정하는 데 사용할 수있는 많은 파일을 나타냅니다.

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.gnomerc
  • ~/.Rprofile
  • /etc/bash_bashrc
  • /etc/profile
  • /etc/screenrc

파일은 /etc/사용자마다 다르지만 모든 사용자를 위해 해당 파일을 수집합니다 $HOME. 나는 또한이 수집 .profile반면에 로그인 할 때로드 될 .bashrc때로드 /bin/bash실행됩니다. 또한 프로그램마다 설정 파일이 다릅니다 (예 : .RprofileR). 그러나 나는 약간의 설명을 부탁드립니다.

  • 인가 *rc*profile파일 근본적으로 다른?
  • 이러한 파일의 범위는 무엇입니까 (예 : Linux에서 일반적으로 사용되는 파일)
  • 계층 구조가 있습니까 (예 :에 .bashrc설정된 변수를 덮어 씁니다 .settings)
  • 이 파일 클래스에 대한 좋은 참조는 무엇입니까? 이 파일의 옵션은?

연결된 질문


3
INVOCATION섹션을 참조하십시오 man bash. FHSLinux 파일 시스템에 대한 위키 기사를 참조하십시오 . 그것은 당신에게 좋은 시작을 제공하고 이러한 몇 가지 질문에 대답합니다. 앞에 점 ( .)이 있는 파일 은 일반적으로 사용자마다 다르며 사용자의 $HOME디렉토리에 있습니다.

3
그들 모두? 정말?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams 나는 세부 사항을 찾지 않고, 그것들이 어떻게 연관되어 있고 언제 하나를 사용 해야하는지에 대한 일반적인 설명을 찾고 있습니다.
Abe

답변:


48

구성 파일의 구성은 질문이 암시하는 것보다 훨씬 덜 균일합니다. "클래스"는없고 "계층 구조"도없고, 일반적인 구문이나 원하는 구문과 같은 다른 깔끔한 일반화를 선언하는 전역 "구성 구성"또는위원회도 없습니다. 단지 같은 별도의 응용 프로그램의 다수가 R, bash, screen각각의 프로그램이 어떤 대답을 당신이 문서를 보라 있도록 일을 자신의 방법이 그들 모두 GNOME 데스크탑 환경은, 특정 특정 파일에 대한 질문. 애드혹 인 것 같습니다. 그 이유는 다음과 같습니다. 대부분의 유닉스 / 리눅스 소프트웨어는 구성이 약간 다른 사람들에 의해 다른 목적으로 개발되었습니다.

다른 질문에 대한 답을 제시하려면 :

  • *rc그리고 *profile매우 의미하지 않기 때문에이 질문은 정말 대답 할 수 없습니다. "rc"는 구성 파일에 일반적으로 사용되는 약어 또는 접미사 일뿐입니다. 그 어원은 컴퓨터 시대에 고대로 거슬러 올라가며 아마도 runcom 에서 실행 명령을 의미 할 것입니다 . 응용 프로그램에서 동일한 단어를 사용한다고해서 규칙에 동의한다는 의미는 아닙니다. "프로파일"은 훨씬 덜 일반적인 접미사입니다.

  • "범위"를 정의하십시오. 대부분의 응용 프로그램은 다른 비 관련 응용 프로그램과 구성 파일을 공유하지 않습니다. 하나 개의 가능한 예외는 /etc/profile.profile(적어도 포함한 상이한 쉘에 의해 이용 될 수있는, shbash). 모든 실행중인 프로세스와 관련된 환경 이라고하는 것이 있는데, 여기 에는 해당 프로세스의 동작에 영향을 줄 수있는 변수가 포함될 수 있습니다. 일반적으로 환경 변수는 적절한 쉘 구성 파일 또는 사용중인 그래픽 데스크탑 환경의 구성 파일에 의해 설정됩니다. .inputrcreadline 및 .gtkrc*GTK 와 같은 "라이브러리"에 대한 구성 파일도 있습니다.이 파일은 라이브러리 를 사용하는 모든 응용 프로그램에 영향을줍니다.

  • 아니요, 구성 파일에 대한 전역 계층이 없습니다. 다시 한 번, 해당 특정 프로그램의 bash설명서 ( 예 :에 대한 설명서) 를 참조하십시오 bash. 일반적으로 신뢰할 수있는 일반적인 규칙은의 사용자 설정이 $HOME시스템 전체 구성을 재정의 한다는 것 입니다 /etc. 이는 일반적으로 시스템 파일 다음에 사용자 파일을 읽어서 나중에 설정이 이전 파일을 덮어 씁니다. 그러나 이것이 보장되는 것은 아니며 결정적인 답변은 사용중인 특정 프로그램의 설명서를 참조해야합니다.

  • 질문에 나열된 모든 파일을 포괄 할 수있을 정도로 "클래스"가 적어도 없으므로 "클래스"에 대한 참조 질문은 무의미합니다. 다시 사용중인 특정 프로그램의 설명서를 참조하십시오.


5

저는이 질문이 너무 많은 수준에서 너무 넓다고 생각합니다. 예를 들어 한 질문에 적어도 네 개의 다른 프로그램에 대한 질문을하고 있습니다. 난 단지 구성에서 파일의 차이점을 살펴 보겠습니다 /etc$HOME.

유닉스이 여러 사람 중 하나를 사용하여, 시스템을 사용할 수 있다는 것을 의미, 다중 사용자 운영체제 ssh, telnet또는 Xorg. 사용자에게 표준화 된 구성을 제공하기 위해 시스템 전체 구성을 제공 할 수 있습니다. /etc/일반적으로 배포판에서 bash또는에 대한 전역 구성을 제공하는 데 사용됩니다 screen.

반면에 일부 사용자는 키 바인딩, 색상 또는 모양과 같은 프로그램 설정을 사용자 지정하려고합니다. 이는 구성 파일을 통해 수행됩니다 $HOME. 간단히 말해 /etc/시스템 전체 구성을 제공하는 반면 $ HOME의 구성 파일을 사용하면 시스템 전체 구성을 변경 / 재정의 할 수 있습니다.


3

답변의 일부는 이 게시물 에서 나옵니다 .

.bashrc Bash가 대화식으로 시작될 때마다 실행되는 쉘 스크립트입니다.

대비 .bash_profile.profile새 로그인 셸 시작시에만 실행됩니다. (bash -l)

명령 을 한 번 실행할지 또는 모든 대화식 쉘 시작마다 실행할지에 따라 명령을 .bashrc넣을지 .bash_profile여부를 선택합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.