새 터미널을 열 때 .bashrc가 실행되지 않습니다


84

Ubuntu 12.04에서 새 터미널 창을 열면 .bashrc의 코드가 실행되지 않습니다. .bash_aliases 파일을 만들 때 이것이 나타났습니다. 새 터미널을 열었을 때 별칭이 나타나지 않았습니다. 그러나 내가 입력 source .bashrc하면 별칭이 표시되었습니다.

새 터미널 창을 열 때마다 .bashrc를 실행해야합니까?

어떻게하면 되나요?


대신 .profile을 시도하십시오.
jippie

4
@jippie No .profile는 어딘가에 구성이 잘못되지 않은 한 새 터미널을 열 때가 아니라 로그인시 읽습니다. Selah : 기본 구성에서 아무것도 변경하셨습니까? ps -o command $$ $PPID터미널에서 실행 하고 출력을 복사하여 붙여 넣습니다.
Gilles

1
긍정적 인 확신을주기 위해 .bashrc홈 폴더에 넣는 것 입니다.
Jjed

확인하고 싶을 수도 있습니다 echo $SHELL. 이것은 나에게 일어 났고 쉘은 bash 대신 / bin / sh였습니다. / etc / passwd 및 실행중인 .bashrc에서 수정하십시오.
Joe Flynn

답변:


128

반드시 실행되는 것은 아닙니다. 표준 .bashrc의 맨 위에는 다음과 같은 주석이 있습니다.

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

bash 터미널을 로그인 쉘로 실행하는 옵션이 있는지 여부가 있습니다. 우분투에서 gnome-terminal은 일반적으로 로그인 쉘로 실행되지 않으므로 .bashrc를 직접 실행해야합니다.

로그인 쉘 (가상 터미널과 같은)의 경우 일반적으로 ~/.profile또는가 ~/.bash_profile없거나 ~/.bash_login기본적으로없는 경우 파일 이 실행 됩니다. 기본적으로 Ubuntu는 .profile 만 사용합니다.

표준 ~/.profile에는 다음이 포함됩니다.

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

환경에 $ BASH_VERSION이 있다고 가정하면 사용 가능한 경우 .bashrc가 실행됩니다. 명령을 입력하여이를 확인할 수 있으며 echo $BASH_VERSION버전 번호에 대한 일부 정보를 표시해야합니다. 비어 있지 않아야합니다.


4
이 지침을 이해 한 후 터미널 응용 프로그램에서 편집-> 프로필 환경 설정-> 제목 및 명령-> 명령을 로그인 쉘로 실행했습니다. 나는 이것을 체크하지 않았다. 도와 주셔서 감사합니다.
Selah

.profile (따라서 .bashrc)을로드 / 읽는 시점을 알 수 있습니까? 이것은 사용자가 데스크톱 세션에 로그인 할 때 수행되는 것으로 보입니다. 답은 새로운 터미널 / 쉘 세션을 시작할 때 "가상 터미널과 같은 로그인 쉘의 경우 일반적으로 ~ / .profile 파일이 실행됩니다 ..."
hedgehog

4
그것은되어 일반적으로 새 로그인 쉘 시작할 때 (정말 데스크탑하지 세션을 바탕 화면 세션에서 새 로그인 쉘을 실행할 수 있기 때문에) 실행합니다. 내가 말했듯이, 그것은 기본적으로 실행되지만 만든되지 않은 경우 ~/.bash_profile~/.bash_login. 의 확인란을 선택 또는 선택 취소하여 테스트 한 Edit -> Profile Preferences -> Title and Command -> "Run command as a login shell후 종료 한 후 터미널을 다시 실행할 수 있습니다. .profile에서 테스트 할 내용을 에코 할 수 있습니다.
Marty Fried

@Selah 귀하의 의견은 실제 답변보다 더 많은 도움이되었습니다.) 의견을 보내 주셔서 감사합니다!
Aleks

따라서 시스템 을 만들 ~/.bash_profile거나 ~/.bash_login시스템에서 유지하고 싶지만 여전히 실행 하고 싶을 ~/.profile경우 ~/.bashrc자체 ~/.bash_profile또는 ~/.bash_login을 포함하는 줄 에서 소스를 얻을 수 있습니다 source "$HOME/.profile". 로그인 쉘에서도 ls의 컬러 출력을 제공합니다!
tanius

26

내 경우에는 단순히 .bashrc로더 라인이 누락되었습니다..bash_profile

# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

수동으로 추가했으며 새로운 로그인으로 작동했습니다.


3
.bash_profile? 우분투는 .profile기본적으로 아닌을 사용합니다 .bash_profile.
muru

우분투 서버는 종종 .bashrc를 선택하지 않습니다 ... 위와 같이 작동합니다 ... cat .bash_profile [[-s "$ HOME / .bashrc"]] && source "$ HOME / .bashrc"# 기본값 불러 오기
Scott Stensland

이것은 나를 위해 그것을 해결했습니다! 추가 pcre했는데 bash 프로필을 추가하는 대신 덮어 썼습니다.
shapiro yaacov

7

.bash_profilebash 쉘의 구성을 보유합니다. 터미널을 열면 먼저 터미널에서 명령을 읽고 실행합니다 ~/.bash_profile. 따라서 .bash_profilebashrc에 따라 다음을 추가 하여 쉘을 설정할 수 있습니다 .

. ~/.bashrc

터미널이 로그인 쉘 (우분투 ~/.bash_profile에서는 기본적으로 존재하지 않음)을 실행하지 않으면 읽을 수 없습니다 (우분투에는 기본적으로 존재하지 않음)
muru

5

설정 $BASH_VERSION되어 있지 않으면 chsh명령을 사용하여 쉘을로 설정하십시오 /bin/bash.

12.04 LTS와 비슷한 문제가 있었고 새 사용자 계정에 기본 셸이으로 설정되어 /bin/sh문제의 원인이되었습니다.


이것이 이유였습니다!
mulya

1

.profile의 주석으로 인코딩

~ / .profile : 로그인 쉘에 대해 명령 인터프리터에 의해 실행됩니다.

그래서 거기에 가면 ~/.bash_profile또는 ~/.bash_login exists대신에 그것들이 대신 실행됩니다.~/.profile

실행 ~/.bashrc하려면 라인 source ~/.bashrc을 추가하십시오 .bash_profile


1
나는 똑같은 문제를 경험했다. 내이 .bashrc내가 만든까지 공급되고 있던 .bash_profile파일을. 그래서 나는 파일에 source ~/.bashrc 줄을 추가했다 .bash_profile.
Lashae

0

그 과정을 모두 거치는 대신 Edit -> Profile Preferences -> Title and Command -> "Run a custom command instead of my shell"사용자 지정 명령 상자에 쓰고 bash닫으십시오. 다음에 터미널을 열면 bash가 자동으로 실행됩니다.


어떤 GUI를 언급하고 있습니까? 그놈 또는 화합
Nic Wanavit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.