~/.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또한 프로그램마다 설정 파일(예: R)이 다르다는 것도 배웠습니다 .Rprofile. 하지만 몇 가지 설명을 원합니다.

  • *rc파일과 근본적으로 다른가요 *profile?
  • 그러한 파일의 범위는 무엇입니까(예: Linux에서 일반적으로 사용되는 파일)
  • 계층 구조가 있습니까(예: .bashrc재정의에 설정된 변수 .settings)
  • 그러한 문서에 대한 좋은 참고자료는 무엇입니까? 이 파일의 옵션은 어떻습니까?

링크 문제

답변1

구성 파일의 구성은 귀하의 질문에서 제안한 것보다 훨씬 덜 균일합니다. "클래스", "계층", 전역 "구성 황제", 범용 구문을 지시하는 위원회 또는 원하는 것과 같은 기타 깔끔한 일반화가 없습니다. R, GNOME 데스크탑 환경 bash과 같은 독립 실행형 응용 프로그램이 많고 screen모두 고유한 작동 방식을 가지고 있으므로 질문에 답하려면 각 개별 프로그램의 설명서를 확인해야 합니다.특정한특정 파일에 대한 질문입니다. 임시적으로 보인다면 그 이유는 대부분의 Unix/Linux 소프트웨어가 서로 다른 사람들에 의해 서로 다른 목적으로 개발되었으며 모두 약간씩 다른 구성을 가지고 있기 때문입니다.

다른 질문에 대한 단계별 답변:

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

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

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

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

답변2

제 생각에는 이 질문이 여러 수준에서 너무 광범위하다고 생각합니다. 예를 들어 귀하가 묻는 질문은 최소한4개문제에 대한 절차는 다양합니다. /etc와 의 구성 파일 간의 차이점을 살펴보겠습니다 $HOME.

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

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

답변3

일부 답변은 다음에서 나옵니다.이 게시물:

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

새 로그인 쉘이 시작될 때만 비교 .bash_profile하고 실행하십시오. .profile(배쉬 -l)

명령 을 한 번 실행할지 아니면 대화형 셸이 시작될 때마다 실행할지 여부에 따라 명령이 .bashrcvs 로 들어갈지 여부를 선택할 수 있습니다..bash_profile

관련 정보