.bashrc에서 sh 색상 변경

.bashrc에서 sh 색상 변경

다음을 사용하여 연결하는 쉘의 색상을 변경하려고 합니다.퍼티.

내가 이것을 입력할 때

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\$ '

나는 내가 원하는 것을 정확히 얻습니다. 모든것은녹색루트 사용자에게만 적용되므로 다른 사용자와 루트를 구별할 수 있습니다.

그런데 이 코드를 넣으면("내보내기" 제외)에서 /root/.bashrc명령을 사용하여 현재 쉘을 bash로 변경하면 이 효과가 나타납니다 bash.

예:

예

연결할 때마다 "bash"로 전환하지 않고 어떻게 쉘을 녹색으로 만들 수 있습니까? 즉, 이를 기본 쉘에도 적용하려면 어떻게 해야 합니까?

여기서는 Debian 8.3(Jessie)을 사용합니다.

답변1

문제는 ~/.bashrc로그인 쉘에서 읽히지 않으므로 SSH를 통해 로그인하여 얻는 쉘에서 읽지 않는다는 것입니다.

이미 알고 있듯이 ~/.profile로그인 쉘에서 읽혀지므로 이는 색상을 설정하는 방법이지만 MOTD에는 영향을 미치지 않습니다.

데비안에서는 MOTD가 /etc/motd; 다음은 파일의 시작과 끝에 올바른 이스케이프 시퀀스를 추가하는 명령입니다.

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd; printf '\e[0m' | sudo tee -a /etc/motd

스크린샷

\e[0;32m처음에는 색상이 녹색으로 설정되고 마지막 \e[0m에는 모든 속성이 재설정됩니다. 이런 식으로 MOTD는 이후에 인쇄되는 내용에 영향을 주지 않고 변경됩니다. 마지막에 속성을 재설정하고 싶지 않다면(MOTD 이후에 인쇄되는 내용에 영향을 줌) 마지막 명령을 삭제하면 됩니다.

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd

관련 정보