.bashrc, .bash_profile 및 .environment의 차이점은 무엇입니까?
저는 여러 해 동안 다양한 *nix 기반 시스템을 사용했는데, 제가 사용하는 모든 버전의 Bash에는 실행할 시작 스크립트를 결정하는 알고리즘이 다른 것 같습니다.환경 변수 및 별칭 설정 및 시작 메시지 인쇄(예: MOTD)와 같은 작업의 목적으로 이러한 작업을 수행하는 데 적합한 시작 스크립트는 무엇입니까?
물건을 넣는 것과 무엇이 다릅니까?.bashrc
,.bash_profile
,그리고..environment
다음과 같은 다른 파일도 보았습니다..login
,.bash_login
,그리고..profile
이것들이 관련이 있습니까?물리적으로 로그인하고, ssh를 통해 원격으로 로그인하고, 새로운 터미널 창을 열 때 실행되는 차이점은 무엇입니까?플랫폼(Mac OS X(및 해당 Terminal.app)과 Cygwin Bash 포함) 간에 큰 차이가 있습니까?
셸 구성 파일과의 주요 차이점은 일부는 "로그인" 셸(예: 다른 호스트에서 로그인하거나 로컬 유닉스 시스템의 텍스트 콘솔에서 로그인할 때)에서만 읽힌다는 것입니다.이들은 이렇게 불리는 사람들입니다..login
또는.profile
또는.zlogin
(사용하는 셸에 따라 다릅니다.)
그런 다음 "대화형" 셸(예: 터미널(예: 윈도우 시스템에서 실행되는 터미널 에뮬레이터의 경우 유사 터미널)에 연결된 셸)에 의해 읽는 구성 파일이 있습니다.이런 이름을 가진 사람들입니다..bashrc
,.tcshrc
,.zshrc
타기.
bash
이 점에서 이것을 복잡하게 만듭니다..bashrc
상호작용적이고 비반응적인 셸에 의해서만 읽히기 때문에, 대부분의 사람들이 결국 그들의 말을 하는 것을 발견할 수 있을 것입니다..bash_profile
도 읽다.bashrc
같 와 것 으 로와 같은 것으로
[[ -r ~/.bashrc ]] && . ~/.bashrc
다른 껍질들은 다르게 행동합니다 - 예를 들어zsh
,.zshrc
로그인 셸인지 여부에 관계없이 대화형 셸에 대해 항상 읽힙니다.
bash 매뉴얼 페이지에서는 각 파일을 읽는 상황을 설명합니다.예, 동작은 일반적으로 기계 간에 일치합니다.
.profile
단히로스파이일름다니입크트립순그인▁script▁▁by▁login에서 원래 사용하던 로그인 파일 이름입니다./bin/sh
.bash
으로 반적으로하있는이호성환과 ./bin/sh
읽을 입니다..profile
있는 경우에 따라
그것은 간단합니다.에설되 있다니습에 설명되어 man bash
:
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
로그인 셸은 사용자가 로그인할 때 읽히는 셸입니다. 따라서 xterm을 시작할 때만 실행되지 않습니다.로그인할 수 있는 다른 방법이 있습니다.예를 들어 X 표시 관리자를 사용합니다.로그인 시 환경 변수를 읽고 내보낼 수 있는 다른 방법이 있습니다.
자세한 내용은 다음을 참조하십시오.INVOCATION
설명서의 장"다음 단락은 bash가 시작 파일을 실행하는 방법을 설명합니다."라고 쓰여 있습니다. 저는 그것이 바로 현장이라고 생각합니다:) 그것은 "대화형" 셸이 무엇인지 설명합니다.
는 Bash에 대해 ..environment
저는 그것이 당신이 운전하는 셸과 독립적으로 환경 변수를 설정하기 위한 분포의 파일이라고 생각합니다.
적으로고전,,~/.profile
Bourne Shell에서 사용하며, Bash에서 레거시 측정값으로 지원할 수 있습니다.다시.~/.login
그리고.~/.cshrc
C Shell에서 사용했습니다 - Bash가 사용하는지 전혀 모르겠습니다.
그~/.bash_profile
로그인 시 한 번 사용됩니다. 그~/.bashrc
셸이 시작될 때마다 스크립트가 읽힙니다.은 이다음유사다니합과는과 유사합니다./.cshrc
C 쉘용.
가지 는 한가지그것이에 것입니다.~/.bashrc
비회전 셸을 시작할 때 오버헤드를 줄이기 위해 가능한 한 경량(슬림)이어야 합니다.
나는 믿습니다.~/.environment
파일은 Korn Shell의 호환성 파일입니다.
요약하자면 .bashrc 및 .bash_profile에 대한 정보를 여기에서 찾았습니다.
.vmx_profile은 로그인할 때 실행됩니다.당신이 거기에 넣는 것은 당신의 PATH와 다른 중요한 환경 변수일 수 있습니다.
.svrc는 비로그인 셸에 사용됩니다.그게 무슨 뜻인지 잘 모르겠어요.RedHat은 다른 셸을 시작할 때마다 실행된다는 것을 알고 있습니다(이 사용자에게 su 또는 단순히 bash를 다시 호출함). 거기에 별칭을 넣고 싶을 수도 있지만 다시 말하지만 그게 무슨 뜻인지 잘 모르겠습니다.저는 그냥 제 자신이 무시합니다.
.profile은 루트에 대한 .vmx_profile과 동일합니다.다른 쉘(csh, sh, tcsh)에서도 사용할 수 있도록 이름이 바뀐 것 같습니다.(사용자로서 필요하지 않음)
또한 .bash_logout을 실행하는 것도 있습니다. 예, 좋습니다...로그아웃합니다. 디몬을 멈추거나 집안일을 조금이라도 하고 싶을 수도 있습니다.로그아웃할 때 화면을 지우려면 "지우기"를 추가할 수도 있습니다.
또한 각 구성 파일에 대한 전체 후속 조치가 여기에 있습니다.
이들은 배포자에 따라 다를 수도 있습니다. 모든 배포자가 각 구성을 사용하도록 선택하지는 않으며 일부 배포자는 더 많은 구성을 사용합니다.하지만 그들이 같은 이름을 가지고 있을 때, 그들은 보통 같은 내용을 포함합니다.
Josh Staiger에 따르면 Mac OS X의 Terminal.app은 새 터미널 창마다 기본적으로 로그인 셸이 아닌 로그인 셸을 실행하고 .bashrc 대신 .bash_profile을 호출합니다.
그는 다음을(를 권장합니다.
대부분의 경우 로그인 셸과 비로그인 셸에 대해 두 개의 별도 구성 파일을 유지 관리하지 않습니다. PATH를 설정하면 두 개의 구성 파일이 모두 적용됩니다..bash_profile 파일에서 .bashrc를 찾은 다음 PATH 및 공통 설정을 .bashrc에 넣어 이 문제를 해결할 수 있습니다.
이렇게 하려면 다음 행을 .bash_profile에 추가합니다.
if [ -f ~/.bashrc ]; then source ~/.bashrc fi
이제 콘솔에서 시스템에 로그인하면 .bashrc가 호출됩니다.
보기 좋은 곳은 bash의 man 페이지입니다.여기 온라인 버전이 있습니다."INVOCATION" 섹션을 찾습니다.
데비안 패밀리 디스트로를 사용해 왔습니다. 데비안 패밀리 디스트로를 사용했습니다..profile
하지만 아닙니다..bash_profile
반면에 RHEL 파생물은 실행됩니다..bash_profile
전에.profile
.
Linux OS에서 작동하도록 환경 변수를 설정해야 할 때는 엉망인 것 같습니다.
언급URL : https://stackoverflow.com/questions/415403/whats-the-difference-between-bashrc-bash-profile-and-environment
'programing' 카테고리의 다른 글
루비의 여러 줄 설명? (0) | 2023.07.06 |
---|---|
헤로쿠가 비마스터 깃 지점을 실행 (0) | 2023.07.06 |
Global.asax에서 Application_Start와 Init을 사용하는 경우 (0) | 2023.07.01 |
완료하는 데 시간이 너무 오래 걸리는 경우 시간 초과 (0) | 2023.07.01 |
테마를 사용해야 합니다.이 활동의 AppCompat 테마(또는 하위) (0) | 2023.07.01 |