
나는 물었다이 질문얼마 전 쉘에 대한 경로가 표시되지 않습니다. 최근에 나는 소스 .bashrc
가 제공되지 않는다는 것을 알았습니다 .정상적인 관행?). 현재 쉘 명령 프롬프트는 다음과 같습니다:
-bash-4.3#
을 실행한 후 source .bashrc
예상되는 쉘 명령 프롬프트를 얻을 수 있습니다.
root@ubuntu2011:~#
ubuntu2011
기계 이름은 어디에 있습니까? 로그인할 때마다 프롬프트가 후자처럼 보이도록 하려면 어떻게 해야 합니까?
추신 : .bashrc
출처 :cp /etc/skel/.bashrc ~/.bashrc
업데이트: 내용은 ~/.profile
다음과 같습니다.
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n
그리고 echo $BASH
반환/bin/bash
업데이트: @terdon의 질문에 대한 답변:
- 서버에 어떻게 로그인하나요?
나는 다음으로 로그인하는 데 사용합니다
ssh [email protected]
root
- 해당 명령은 루트로 실행됩니까?
예.
업데이트: 출력 ls -l ~/.{profile,bashrc,bash_profile,bash_login}
:
ls: cannot access /root/.bash_login: No such file or directory
-rw-r--r-- 1 root root 63 Dec 24 2012 /root/.bash_profile
-rw-r--r-- 1 root root 3637 May 17 17:00 /root/.bashrc
-rw-r--r-- 1 root root 140 Apr 23 2010 /root/.profile
답변1
이는 을(를) 통해 로그인했기 때문에 발생합니다 ssh
. 이는 로그인 쉘과 비로그인 쉘의 차이점으로 귀결됩니다. SSH를 통해 연결하면 로그인 대화형 셸이 실행됩니다. 에 설명된 대로 man bash
이러한 종류의 셸은 다음을 수행합니다.
bash가 대화형 로그인 셸로 호출되거나 --login 옵션이 있는 비대화형 셸로 호출되면 먼저 /etc/profile 파일이 존재하는 경우 해당 파일에서 명령을 읽고 실행합니다. 해당 파일을 읽은 후 ~/.bash_profile, ~/.bash_login 및 ~/.profile을 순서대로 찾아서 존재하고 읽을 수 있는 첫 번째 명령을 읽고 실행합니다. 이 동작을 방지하기 위해 쉘이 시작될 때 --noprofile 옵션을 사용할 수 있습니다.
즉, ~/.bashrc
로그인 쉘을 실행할 때 기본적으로 무시됩니다. 간단한 해결책은 읽은 파일 중 하나에서 명시적으로 소스를 가져오는 것입니다. 위에서 볼 수 있듯이 로그인 쉘은 먼저 읽기를 시도 ~/.bash_profile
하고 그것이 존재하지 않으면 ~/.bash_login
을 읽습니다 ~/.profile
. 파일 이 있으므로 ~/.bash_profile
파일에 다음 줄을 추가해야 합니다.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
답변2
이것을 ~/.profile에 넣으세요.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi