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

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

에 대한 질문에 대한 답변그래서그리고아쿠분투, 및 헤더 읽기 $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)
  • 이 파일 클래스에 대한 좋은 참고 자료는 무엇입니까? 이 파일의 옵션은 무엇입니까?

연결된 질문

답변1

구성 파일의 구성은 귀하의 질문이 암시하는 것보다 훨씬 덜 균일합니다. "클래스"도 없고, "계층 구조"도 없으며, 공통 구문이나 여러분이 찾고 있는 것과 같은 훌륭하고 깔끔한 일반화를 규정하는 전역적인 "구성 황제"나 위원회도 없습니다. R, bash, GNOME 데스크탑 환경과 같은 별도의 응용 프로그램이 많이 있으며 screen모두 고유한 작업 방식을 가지고 있으므로 각 개별 프로그램에 대한 설명서를 참조하여 질문에 답해야 합니다.특정한특정 파일에 대한 질문입니다. 임시적으로 보인다면 그것은 바로 그렇기 때문입니다. 대부분의 Unix/Linux 소프트웨어는 모두 조금씩 다르게 구성을 진행하는 다양한 사람들에 의해 다양한 목적으로 개발되었습니다.

다른 질문에 포인트별로 대답하려면 다음을 수행하십시오.

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

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

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

  • "클래스"는 없으며 적어도 질문에 나열한 모든 파일을 포괄할 만큼 일반적인 것은 없으므로 이러한 "클래스"에 대한 참조에 대한 질문은 논쟁의 여지가 있습니다. 다시 한 번 사용 중인 특정 프로그램의 설명서를 참조하세요.

답변2

나는 이 질문이 너무 많은 수준에서 너무 광범위하다고 생각합니다. 예를 들어 당신은 최소한하나의 질문에 다양한 프로그램이 있습니다. /etc과 의 구성 파일 간의 차이점만 살펴보겠습니다 $HOME.

Unix는 다중 사용자 운영 체제입니다. 즉, 다양한 사람들이 , 또는 를 사용하여 시스템을 사용할 sshtelnet있습니다 Xorg. 사용자에게 표준화된 구성을 제공하려면 에서 시스템 전체 구성을 제공할 수 있습니다 /etc/. 이는 일반적으로 배포판에서 bash또는 에 대한 전역 구성을 제공하는 데에도 사용됩니다 screen.

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

답변3

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

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

대조 .bash_profile.profile새 로그인 쉘이 시작될 때만 실행됩니다. (배쉬 -l)

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

관련 정보