~ / .profile과 ~ / .bash_profile의 차이점은 무엇입니까?


답변:


44

.profile(일명 Bourne 쉘 원래 프로파일 구성되었다 sh). bashBourne 호환 쉘인 경우이를 읽고 사용합니다. .bash_profile반면에 만 읽습니다 bash. 표준 Bourne 쉘과 호환되지 않는 명령을위한 것입니다.


내가 틀렸다면 수정하십시오. .profile은 Bourne 호환 쉘에서 사용되는 반면 .bash_profile은 bash에서만 사용됩니다.
lakesh

2
@lakesh : 예, Bourne 호환성을 제공하는 모든 쉘은 읽습니다 .profile. 예, bash그리고 ksh하지만 cshtcsh. 그리고 zsh모두 제공 sh하고 csh이 모두를 읽을 수 있도록 호환성 .profile.login뿐만 아니라 zsh특정 점 파일을.
bahamat

이 bash 및 ksh에 대해 읽을 수있는 자습서가 있습니까? 전에 들어 본 적이 없어요 ...
lakesh

4
UNIX Shell History로 시작할 수 있습니다.
bahamat

25

시작시 원본 sh소스 .profile.

bash.bash_profile먼저 소스를 시도 하지만 존재하지 않는 경우 .profile1 소스가됩니다 .

경우 참고 bash로 시작됩니다 sh(예 /bin/sh에 대한 링크입니다 /bin/bash) 또는 시작되는 --posix플래그, 그것은 모방을 시도 sh, 만 읽고 .profile.

각주 :

  1. 사실,의 첫 번째 .bash_profile, .bash_login,.profile

또한보십시오:


2
.. 고마워 ... 특히 참고 문헌에 대한 ...
lakesh

10

UNIX 세계에는 많은 쉘이 있지만 대부분은 다음과 같습니다.

  • Bourne shell : /bin/sh(발명가 : Stephen Bourne)
  • BASH (Bourne Again Shell) : /bin/bash(Inventor : Brian Fox, GNU 프로젝트) (강한 쉘)
  • C shell : /bin/csh(발명가 : Bill Joy, TCP / IP Stack의 발명자)
  • Korn shell : /bin/ksh(발명가 : Bell Labs의 David Korn)
  • Z 쉘 : /bin/zsh(강력한 쉘)
  • TENEX C 쉘 : /bin/tcsh( C 쉘 에서 파생 됨)
  • 데비안 Almquist 쉘 : /bin/dash(Almquist 쉘 (NetBSD 프로젝트에서 애쉬)에서 파생 됨) (lenny에서 태어난 대시)

그러나 귀하의 질문 에 관한 것입니다 ~/.bash_profile~/.profile:

UNIX 시스템에 로그인하면 다음 /etc/passwd과 같은 마지막 필드에서 관리자가 선택한 쉘에 따라 홈 디렉토리로 경로 재 지정 됩니다.

mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash

쉘은 실행하고, 기본적으로 각 쉘의 설정 파일을 가지고 loginlogout. 당신이 떠들썩한 파티에 로그인 할 때 ~/.profile실행하면 때 logout, ~/.bash_logout실행됩니다. ~/.bash_history파일은 입력 명령을 유지합니다.

각 쉘의 초기화 파일

TENEX C 쉘

  • ~/.login 로그인 할 때
  • ~/.logout 로그 아웃 할 때
  • ~/.tcshrc~./bashrcbash에서 와 동일

변수 $histfile는 히스토리 파일 이름으로, 변수 $history는 유지할 명령 수로 설정할 수 있습니다 .

Z 쉘

실제로 강력한 셸이며 자유 시간이 있으면 마이그레이션하십시오.

다른 쉘을 제외하고 Z 쉘에는 많은 구성 파일과 초기화 파일이 있습니다.

$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin

참고 : $ZDOTDIR설정이 해제되면 홈 세트입니다.

C 쉘

참고 : TENEX C 쉘은 C 쉘에서 분기되었습니다. C 쉘은 BSD에서 지원합니다. C 언어 프로그래밍에 익숙하다면 구문이 비슷하므로 편안해야합니다.

~/.login
~/.cshrc
~/.logout

참고 : csh는 오래되었습니다. 대신 tcsh를 사용하십시오.

콘 쉘

  • ~/.profile
  • rc 파일 : 사용자 정의
  • 로그 아웃 파일 : N / A

Bourne Again 소리 (BASH)

그것은 매우 강력한 쉘이며 GNU 프로젝트에서 태어 났으며 Bourne Shell이 ​​포크했습니다.

~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history

로그인하면 bash가 실행 ~/.bash_profile되고 ~/.bash_profile실행됩니다 ~/.bashrc. 사실 ~/.bashrcbash는 그것을 실행하지 않기 때문에 bash는 초기화 파일이 없습니다.

본 쉘

죽었어 을 사용할 때도 man sh매뉴얼이 dash있습니다. [편집자 주 : 비트는 dash우분투와 같은 데비안 및 데비안 기반 배포판에만 적용됩니다.]

너의 답

~/.bash_profilebash에서는 ~/.profile작동 하지만 Bourne 및 Korn 쉘 에서는 작동합니다.


2
Chet Ramey는 Bash의 주요 개발자였습니다.
tripleee

4

로그인 쉘은 단순히 ssh 또는 콘솔에서 로그인 할 수있는 쉘입니다. 비 로그인 쉘은 누군가 로그인 할 수없는 쉘입니다. 비 로그인 쉘은 종종 프로그램 / 시스템 서비스에서 사용됩니다.

세 번째 요점은 사실이다 .bashrc쉘의 각 인스턴스에서 실행됩니다. 그러나 .bash_profile로그인시에만 사용됩니다. 따라서 두 개의 개별 파일에 대한 이유입니다.

.profile환경 변수 $ PATH와 같이 Bash와 특별히 관련이없는 것들을 위해 언제든지 사용할 수 있어야합니다. .bash_profile특히 로그인시 실행되는 로그인 쉘 또는 쉘용입니다.


~ / .profile과 ~ / .bash_profile의 차이점은 무엇입니까?
lakesh

2
.profile은 환경 변수 PATH와 같이 Bash와 특별히 관련이없는 것들을위한 것이며 언제든지 사용할 수 있어야합니다. .bash_profile은 특히 로그인시 실행되는 로그인 쉘 또는 쉘을위한 것입니다.
anzenketh

그게 내 질문에 무엇 왜냐하면 ....입니다 .... 당신의 대답에 그 문을 추가
lakesh

응? 그 질문에 대답조차하지 않습니까?
Mikel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.