한 서버에 SSH를 통해 접속했는데 다른 서버에 내 사용자 이름이 표시되면 왜 bash가 표시되나요?

한 서버에 SSH를 통해 접속했는데 다른 서버에 내 사용자 이름이 표시되면 왜 bash가 표시되나요?

따라서 직장에는 ssh액세스할 수 있는 웹 서버가 두 대 있습니다.

둘 다 RHEL 6.5입니다.

그 중 하나에 로그인하면 다음과 같이 표시됩니다.

[username@ldvweb01 /]$ 

다른 계정에 로그인하면 다음과 같이 표시됩니다.

-bash-4.1$ 

첫 번째 것을 표시할 때 더 우아하다고 생각합니다. 둘 사이를 어떻게 전환하나요? 누구든지 나에게 이것을 설명해 줄 수 있습니까?


실행 후 echo $PS1결과입니다

-bash-4.1$ echo $PS1
\s-\v\$

그리고

[appadmin@ldvcatweb01 /]$ echo $PS1
[\u@\h \W]\$

두 홈 디렉토리의 차이점을 확인한 후. .bashrc홈 디렉토리에 또는 가 없다는 것을 알았습니다 ..bash_profile

그래서 이전 서버에서 복사했습니다.

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

그리고

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

나는 단지 기본 bash 설정을 다음에서 가져온 것 같습니다./etc

도움을 주셔서 감사합니다.

답변1

Bash 프롬프트는 환경 변수로 구성됩니다 PS1. 추가하면 원하는 힌트를 얻을 수 있습니다.

export PS1="[\u@\h \W]\$ "

.bashrc파일(사용자의 홈 디렉터리에 있음) 에 복사합니다.

프롬프트에 사용할 수 있는 특수 문자의 전체 목록은 다음에서 확인할 수 있습니다.공식 Bash 문서.

답변2

두 시스템의 로그인 쉘이 bash라고 가정하면 PS1환경 변수가 다릅니다. 이 변수는 프롬프트의 형식을 결정합니다.

를 사용하여 첫 번째 컴퓨터에서 설정을 echo $PS1확인한 다음 를 사용 하여 두 번째 컴퓨터에서 동일한 값으로 설정할 수 있습니다 . 이 변경 사항을 영구적으로 적용하려면 이 명령을 파일(또는 로그인 셸에서 제공하는 파일 - 구성에 따라 다름) 에 추가 해야 합니다 .PS1export PS1=...export.bashrc.profile

편집하다:귀하의 의견에 따라 두 번째 컴퓨터에서 첫 번째 컴퓨터와 똑같은 프롬프트를 얻으려면 다음 명령을 실행해야 합니다.

export PS1="[\u@\h \W]\$"

앞에서 언급한 대로 영구적으로 설정할 수 있습니다.

답변3

홈 폴더는 각 시스템에서 동일하지 않을 수 있습니다. 각 서버의 스크립트가 .bashrc처리되었는지 확인할 수 있습니다. 프롬프트를 표시하려면 bash 로그인 스크립트(.bash_profile)에 .bash_profile이를 포함해야 합니다.export PS1="\u@\h \w> "

각 시스템에서 유사한 환경을 볼 수 있도록 홈 디렉토리를 NFS 마운트에 배치할 수 있습니다.

관련 정보