새로 추가된 사용자의 경우 각 로그인 경로에 sh-42$가 표시됩니다. 정상으로 돌아왔고, 사용자 디렉터리에서 .bashrc 및 기타 구성 파일을 소싱할 방법이 없어 일련의 문제가 발생했습니다.
이런 경우에는 Linux의 기본 시작 셸이 올바르지 않을 가능성이 높습니다. su를 슈퍼 사용자로 전환하세요. vi /etc/passwd를 사용하여 해당 사용자의 시작 셸을 확인하세요. 다른 일반 사용자의 쉘과 다르다면 동일하게 수정하면 됩니다. .
예를 들어 다른 일반 사용자의 쉘이 /bin/bash이고 비정상 사용자의 쉘이 /bin/sh라면 /bin/bash로 변경합니다.
bash 쉘은 일부 시작 파일을 사용하여 환경 변수를 설정합니다. 이러한 시작 파일은 쉘 자체와 시스템 사용자에 대한 특정 bash 쉘 구성을 결정합니다. .bashrc .bash-profile과 .profile의 차이점을 이해하게 될 것입니다.
Bash는 대화형 쉘에서 로그인 및 비로그인이라는 두 가지 모드 옵션을 제공합니다.
ssh를 사용하여 시스템에 로그인하면 호출 시 시작 파일을 읽는 대화형 로그인 셸이 생성됩니다.
그러나 이미 로그인된 쉘에서 새 쉘을 호출하면 대화형 비로그인 쉘이 생성됩니다. 이 셸은 .bashrc 파일만 실행합니다.
셸에서 명령을 실행하기 위해 사람의 개입이 필요하지 않은 경우 이를 비대화형 셸이라고 부릅니다. 예를 들어, 스크립트가 명령을 실행하기 위해 하위 쉘을 생성할 때 하위 쉘은 비대화형 쉘이고, 하위 쉘은 시작 파일을 실행하지 않으며, 하위 쉘을 생성한 쉘에서 환경 변수를 상속합니다.
시작 파일에는 셸이 시작될 때 실행해야 하는 명령이 포함되어 있습니다. 따라서 셸은 이러한 시작 파일의 명령을 자동으로 실행하여 셸을 설정합니다. 이 프로세스는 명령 프롬프트가 표시되기 전에 발생합니다.
3.1 .bash_profile의 의미
.bash_profile 파일에는 환경 변수를 설정하는 명령이 포함되어 있으므로 쉘은 이러한 변수를 상속합니다.
대화형 로그인 셸에서 bash는 먼저 /etc/profile 파일을 찾습니다. 발견되면 bash는 현재 쉘에서 이를 읽고 실행합니다. 결과적으로 /etc/profile은 모든 사용자에 대한 환경 구성을 설정합니다.
마찬가지로 bash는 .bash_profile이 홈 디렉터리(cd ~로 입력한 디렉터리)에 있는지 확인합니다. 있는 경우 bash는 현재 셸에서 .bash_profile을 실행하고 Bash는 .bash_login 및 .profile과 같은 다른 파일 검색을 중지합니다.
bash가 .bash_profile을 찾지 못하면 .bash_login 및 .profile을 순서대로 찾아서 읽을 수 있는 첫 번째 파일만 실행합니다.
샘플 .bash_profile 파일을 살펴보겠습니다. 여기서는 PATH 변수
echo "Bash_profile execution starts.." PATH=$PATH:$HOME/bin; export PATH; echo "Bash_profile execution stops.."
를 재설정하고 내보냅니다. 쉘의 명령 프롬프트에 대화식으로 로그인하기 전에 다음 출력이 표시됩니다.
Bash_profile execution starts.. Bash_profile execution stops.. [example@example ~]$
3.2 .bashrc의 의미
.bashrc에는 bash 쉘에 특정한 명령이 포함되어 있습니다. 모든 대화형 비로그인 셸은 먼저 .bashrc를 읽으며 일반적으로 .bashrc는 별칭 및 bash 관련 기능을 추가하기에 가장 좋은 장소입니다.
bash 쉘은 홈 디렉토리에서 .bashrc 파일을 찾고 소스를 사용하여 현재 쉘에서 실행합니다.
샘플을 통해 .bashrc 파일에 대해 알아보세요
echo "Bashrc execution starts.." alias elui='top -c -u $USER' alias ll='ls -lrt' echo "Bashrc execution stops.."
대화형 비로그인 셸의 명령 프롬프트 전에 다음 출력이 표시됩니다.
[example@example ~]$ bash Bashrc execution starts.. Bashrc execution stops.. [example@example ~]$
3.2 .profile의 의미
로그인 대화형 셸에서 프로세스 중에 홈 디렉터리에 .bash_profile이 없으면 bash는 .bash_login을 찾습니다. **.bash_login**이 있으면 bash가 이를 실행합니다. .bash_login이 홈 디렉터리에 없으면 bash는 .profile을 찾아 실행합니다.
.profile은 .bash_profile 또는 .bash_login을 사용하여 구성을 유지할 수 있습니다. 나타나는 프롬프트, 키보드 소리, 열 셸, /etc/profile 파일에 설정된 변수를 재정의하는 개별 프로필 설정을 제어합니다.
bash 쉘은 대화형으로 로그인할 때마다 .bash_profile을 실행합니다. .bash_profile이 홈 디렉터리에 없으면 bash는 .bash_login 및 .profile에서 찾은 첫 번째 읽을 수 있는 파일을 실행합니다. 그러나 모든 대화형 비로그인 쉘 시작에서 bash는 .bashrc를 생성합니다.
일반적으로 환경 변수는 .bash_profile에 저장됩니다. 대화형 로그인 쉘은 첫 번째 쉘이므로 환경 설정에 필요한 모든 기본 설정은 **.bash_profile**에 들어 있습니다. 따라서 한 번만 설정되고 모든 하위 쉘에 상속됩니다.
마찬가지로 별칭과 기능도 .bashrc에 저장되어 기존 환경에서 쉘이 시작될 때마다 로드되도록 합니다.
그러나 로그인 및 비로그인 대화형 쉘 설정의 차이를 피하기 위해. .bash_profile은 .bashrc를 호출합니다. 따라서 **.bash_profile**에 삽입된 다음 코드 조각을 볼 수 있으므로 모든 대화형 로그인 셸에서 .bashrc도 동일한 셸에서 실행됩니다.
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi PATH=$PATH:$HOME/bin export PATH
注意:
总而言之,在使用环境之前,shell需要其启动文件以配置shell环境。
在本文中,我们检查了各种shell模式。然后,我们了解了各种bash启动文件的重要性。最后,我们检查了这些启动文件之间的差异。
위 내용은 Linux 사용자 소스 .bashrc 또는 .profile에서 파일을 찾을 수 없습니다. 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!