우분투에서 .bash_profile을 찾을 수 없습니다


67

.bash_profile/home/user디렉토리의 Ubuntu 14.04에서 찾을 수 없습니다 . ls -a명령을 사용하여 를 .bash_profile보았지만 그러한 파일은 없습니다.


1
~/.profile대신 사용해야 합니다.
muru


1
일부 구성 파일 (또는 디렉토리)이없는 것이 일반적입니다. 이 경우 소프트웨어를 읽어야하는 소프트웨어는 기본 구성을 사용하거나 다른 소스를 읽어 구성을 검색합니다. 존재하지 않는 구성 파일을 수정하려면 먼저 작성하십시오.
Bakuriu

답변:


84

우분투는를 사용합니다 ~/.profile.

.bash_profile우분투에서 당신을 만들 수 는 있지만 .profile읽을 수는 없습니다.

.profile 컨텐츠를 읽는 경우 :

cat ~/.profile

산출

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.

~/.profile대신에 사용하십시오~/.bash_profile


.profile이 작동하지 않았습니다. 나는의 .bashrc를 편집했다 vim ~/.bashrc. ~/.bashrc
Nahid

Ubuntu에서는 .bash_profile을 사용할 수 없습니다. Bash가 아닌 GUI 로그인 쉘로 Dash를 사용하므로 bash_profile을 읽을 수 없습니다.
Jonathan Hartley

.profile을 편집하면 변경 사항을 보려면 로그 아웃 한 후 다시 로그인해야합니다.
Jonathan Hartley

8

로그인 쉘을 호출하면 bash는 다음 순서로 구성 파일을 찾습니다.

[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile

이 그래서 만약 첫 번째를 찾은 후, 그것은 다른 사람을 찾고 중지 .bash_profile내에서 $HOME떠들썩한 파티가 보이지 않는 것 .bash_login그리고 .profile더 이상.

이 세 파일 이름 중에서 우분투는 기본적으로 다음과 같이 .profile이름을 바꿀 수 있습니다 .bash_profile.

mv ~/.profile ~/.bash_profile

우리가 사용하는 새로운 bash 쉘을 열 경우 지금 bash -l, su - $USER, sudo -u $USER -i또는 로그인 쉘로서 bash는 실행되는 다른 명령, ~/.bash_profile공급 받게됩니다.

참고 사항 :

지금까지 이야기 한 내용은 Bash에만 적용됩니다. GUI에서 시스템에 로그인 할 때 디스플레이 관리자는 올바른 파일을 소싱해야합니다.

우분투는 사용 gdm3우리가 살펴 경우, 자사의 디스플레이 관리자로 : /etc/gdm3/Xsession우리가 파일의 것도 제외하고는 공급되지 얻을 것이다 볼 수 있습니다 .profile:

# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
  if [ -f "$file" ]; then
    source_with_error_check "$file"
  fi
done

따라서 GUI를 사용하여 로그인하는 경우 파일 .profile이름을 유지하십시오. 그렇지 않으면 환경에서 일부 변수 및 설정이 누락 될 수 있습니다.

더 나은 옵션은 다음과 같은 심볼릭 링크를 만드는 것입니다 .profile.

ln -s ~/.profile ~/.bash_profile

이제 데이터가에 있고 .profile, gdm아무것도 놓치지 않고, .bash_profile실제로 bash로드 하고 .profile, 각각을 편집하면 동일한 결과를 얻습니다.

.profile이 없습니까?

아직 가지고 있지 않은 경우 .profile여기에서 사본을 얻으십시오.

cp /etc/skel/.profile ~/.profile

또는

# Remember the note above
cp /etc/skel/.profile ~/.bash_profile

그러나 Bash 가 ~ / .bash_profile을 먼저 찾고 있다면 우분투에서 어떻게하지 않습니까? 우분투는 Bash를 수정 했습니까? 이상해 보인다. man bash우분투에서 여전히 .bash_profile을 먼저 찾는 방법을 설명합니다.
Jonathan Hartley

그것은을 찾습니다 .bash_profile 첫번째 (존재하지 않기 때문에) 그 다음을 찾습니다를 찾을 수 없습니다 .bash_login마침내 그것을 찾습니다 (우분투하지 않는이 두 이름을 사용하기 때문에) 다시 찾을 수 .profile그래 거기입니다. 따라서 .bash_profilein ~을 만들면 우분투의을 덮어 쓰고 있습니다 .bash의 ~/.profile기본 동작은 여기에서 아무것도 수정되지 않았습니다.
Ravexina

맞습니다. 저도 처음에 생각한 것입니다! 그리고 당신이 설명하는 것은 RHEL에서 발생합니다. 그러나 우분투에서는 그렇지 않습니다. 을 만들면 .bash_profile읽지 않습니다. 우분투가 더 이상 'Bash'를 GUI 로그인 쉘로 사용하지 않기 때문입니다. 대신 '대시'를 사용합니다. 나는 이것이 약 18.04 이후 사실 이라고 생각 합니다.
Jonathan Hartley

여기에 요점이 없습니다. 실제로 우리는 bash 자체에 대해 이야기하고 있습니다. 여기서 말하고있는 것은 Ubuntu creats는 '.profile'이며 다른 것은 아닙니다. 따라서 파일을 읽는 순서 인 새로운 bash 셸 (로그인 셸)을 열면 ' 우리가 어떤 배포판을 사용하든 상관 없습니다. :)
Ravexina

독자가 답변에서 알 수 있듯이 독자가 .profile의 이름을 .bash_profile로 바꾸면 우분투 사용자의 경우 로그인하거나 터미널을 열 때 해당 파일을 읽지 못합니다. 당신은 그들의 시스템을 깨뜨 렸습니다. 파일을 읽을 수있는 유일한 방법은 '--login'arg를 사용하여 bash 세션을 시작하여 파일을 명시 적으로 로그인 쉘로 만드는 것입니다. 데스크톱에서는 자동으로 발생하지 않습니다.
Jonathan Hartley

5

이는 파일이 존재하지 않음을 의미합니다. 그러나 로그인 쉘로 호출 된 bash경우 파일을 작성하고 파일을 실행 / 소싱 할 수 있습니다 bash. 따라서 항상 쉘을 통해 로그인합니다 (예 :를 통해 ssh).

터미널을 열 때마다 내용을 실행하려면 .bashrc파일을 대신 수정해야합니다 .


왜 .bash_profile 파일이 누락되었는지에 대한 아이디어를 얻을 수 있습니까?
Roledenez

/etc/skel/디렉토리 에서 복사 할 수 있습니다 .
Frantique

정식의 디자인 desicion입니다. 그러나 그것이 할 수 없다는 것을 의미하지는 않습니다.
혼돈

나는 그 이유 .bash_profile가 다른 답변에 대한 의견에서 우분투에서 빠졌고 작동하지 않는다고 설명했습니다.
Jonathan Hartley

2

~/.profile대신에 사용 하는 최고 답변이 효과 가 ~/.bash_profile없었습니다.

.bashrc작업 수정

다만:

vim ~/.bashrc

참고 : Ubuntu WSL을 사용하고 있습니다.


Linux에서 .profile은 GUI에 로그인하거나 원격으로 연결하거나 콘솔에 로그인 할 때 (예 : ctrl + shift + F2를 누른 후) 적용됩니다. 컴퓨터에 처음 로그인 할 때를 나타내며 이후에 만드는 다른 모든 프로세스의 부모 인 셸을 만듭니다. WSL에는 이와 같은 것이 없으므로 .profile을 읽지 못할 수 있습니다.
Jonathan Hartley

나도 마찬가지야 ~/.profile우분투 18.04에서 기본적으로로드되지 않습니다
javapowered

0

.bashrc를 의미한다면 홈 폴더에서 찾을 수 있습니다. 없는 경우 / etc / skel 폴더에서 홈 폴더로 복사 할 수 있습니다.

이 주제에 대한 추가 정보가 필요하면 stefaan lippens 페이지를 방문하십시오.

http://stefaanlippens.net/bashrc_and_others

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