bash는 RHEL 6에서 .bashrc를 읽지 않습니다.

bash는 RHEL 6에서 .bashrc를 읽지 않습니다.

머신 A --RHEL 7 및 업데이트됨.
머신 B - RHEL 6 및 업데이트됨.

A(RHEL 7)에서 이 작업을 수행하면

SSH B

당연히 그래야 하는데 .bashrc가 아직 실행되고 있지 않습니다. 이것은 나에게 새로운 행동입니다. 나생각하다.bashrc머신 B(RHEL 6)에서 실행하고 싶습니다 . /etc/ssh/sshd_config와 을 비교 했는데 /etc/ssh/ssh_config서로 다른데 이것이 왜 중요한지 이해가 되지 않습니다.

ssh_config공백과 주석만 다릅니다.

예, 내용이 보입니다. 하지만 그럼에도 불구하고 그 안에 있는 것보다 작거나 커져서 diff 출력이 망가집니다. 내가 걱정해야 할 것이 있습니까? 공백, 주석, 환경 변수( AcceptEnv)를 수정했는데 이것이 바로 차이점입니다.

6면

Protocol 2

7면

HostKey /etc/ssh/ssh_host_ecdsa_key
AuthorizedKeysFile  .ssh/authorized_keys
UsePrivilegeSeparation sandbox

.bashrc그렇다면 왜 내 것이 작동하지 않는지 알아 보려면 어디로 가야합니까 ? 내 꺼야 .profile, 다시 말해봐:

alias lo='exit'
alias l='ls -CF'
alias ..='cd ..'

그리고 내 .bashrc:

PRINTER=its1
export PRINTER


DISPLAY=jgs:0.0
export DISPLAY

PATH=/usr/bin:/usr/sbin:/bin:/sbin:/opt/bin:/home/gl/bin:.

export PATH

PROXY=whiteproxy.arlut.utexas.edu:3128
export PROXY

cd /home/gl

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

/etc/bashrc주식이에요.

답변1

~/.bashrc 파일이 항상 읽혀지는 것은 아닙니다: 참조배시 시작 파일설명서에.

~/.bash_profile(또는 ~/.profile)이 .bashrc 파일을 호출합니까? 이는 일반적으로 .profile 파일에 나타납니다.

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

답변2

문서가 혼란스러울 수도 있지만 Bash의 표준 동작은 대화형 로그인 셸에서 "프로필"(.bash_profile, .bash_login, .profile 중 순서대로 먼저 발견되는 것)을 얻은 다음 비로그인 쉘에서 .bashrc를 얻는 것입니다. -로그인 쉘.

sshd는 일반적으로 로그인 쉘을 생성하는데, 여기서 열리는 X11 터미널 창은 일반적으로 비로그인 쉘입니다.

따라서 시스템에 SSH로 접속할 때 .bashrc를 읽을 것으로 예상해서는 안 됩니다.

즉, 나는 일반적으로 사용자가 "프로필"에 이와 같은 줄을 추가하는 것을 권장합니다.

[[ -r ~/.bashrc ]] &&  source ~/.bashrc

마지막으로 Bush는 /etc/bashrc를 직접 읽지 않으며 bash 매뉴얼 페이지에서도 이에 대한 언급을 찾을 수 없습니다. 이는 RedHat이 추가하고 ~/.bashrc 파일이 이를 선택하기를 기대하는 파일입니다. 계정이 생성될 때 홈 디렉터리에 있어야 하는 기본 ~/.bashrc가 이 작업을 수행해야 합니다. 그렇지 않은 경우 /etc/skel 디렉토리에서 예제를 찾아야 합니다.

답변3

마지막으로, .bashrc.profile에게 이것은 순환 참조 및 기타 혼란을 피하기 위해 .profile실행될 때를 제외하고는 비어 있어야 함 을 의미합니다..bashrc

매뉴얼 페이지에서 읽은 대로 로 sshd호출되어야 .bashrc하지만, 글쎄요, 해결 방법이 있습니다.

관련 정보