기본 데비안 쉘이 왜 무색인지 검색해봤지만 답을 찾을 수 없습니다.
데비안 셸(bash)이 기본적으로 무색인 이유는 무엇입니까?
답변1
데비안 셸(bash)이 기본적으로 무색인 이유는 무엇입니까?
따라서 ( .bashrc
일반적인 데비안 설치에서는 강조하겠습니다):
# 터미널이 가능하다면 색상 프롬프트의 주석을 해제하세요.돌아서 다 # 사용자의 주의를 산만하게 하지 않도록 기본적으로 꺼져 있습니다. 터미널 창에 초점을 맞춥니다. # 프롬프트가 아닌 명령 출력에 나타나야 합니다. #force_color_prompt=예 if [-n "$force_color_prompt"]; if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; # Ecma-48을 준수한다고 가정하여 색상을 지원합니다. #(ISO/IEC-6429). (이러한 지원이 부족한 경우는 극히 드뭅니다. # 한 경우는 setaf보다 setf를 선호합니다. ) color_prompt=예 기타 색상 힌트 = 필리핀 제도 필리핀 제도
즉, "기능"이거나 원하는 경우 디자인 선택입니다.
답변2
(질문의 원래 버전에서는 루트의 셸과 관련이 있다고 제안했습니다. 특히 이를 알고 싶어하는 사용자에게 유용할 수 있으므로 여기에 남겨둡니다.)
루트의 경우 기본 프롬프트는 무색입니다./etc/profile
— 또는 오히려 /etc/bash.bashrc
— 매우 간단한 힌트를 정의합니다.
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
그리고root
기본값은.bashrc
재정의하지 않고 다음을 수행합니다.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
바라보다데비안 시스템에서 /root/.bashrc 및 /root/.profile은 어디에서 왔습니까?자세한 내용은.
답변3
이것이 "데비안에서 루트 쉘에 색조를 지정하는 방법"에 대한 검색의 최상위 결과이므로 여기에 솔루션을 게시하겠습니다. /root/.bashrc
파일을 복사하고 덮어쓰십시오 /etc/skel/bashrc
.
이 파일은 설치된 파일보다 훨씬 강력하며 root
시스템에 생성된 새 사용자를 위한 기본 파일이기도 합니다.
아래는 제가 수년에 걸쳐 조정한 ls 색상의 발췌입니다.
alias la='LS_COLORS="mh=1;37" ls -A'
alias l='LS_COLORS="mh=1;37" ls -CF'
alias ll='LC_COLLATE=C LS_COLORS="mh=1;37" ls -lA --si --group-directories-first'
답변4
결국 @daniel-sokolowski의 제안을 받아 살펴보게 되었습니다 /etc/skel/.bashrc
.
그러나 bash 문서에 따르면 [ -z "$PS1" ]
테스트는 대화형 쉘과 비대화형 쉘을 구별하는 일반적인 방법이라는 점에 유의하는 것이 중요합니다.
이렇게 추가하면
# part from /etc/skel/.bashrc
...
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
모든 종류의 셸을 노출하면 PS1=
다음과 같은 비대화형 명령이 중단될 수 있습니다.
ssh your-server ls -la
bash completion on: scp ssh://foo:/bar/<TAB>
vim scp://your-server//some/file
이 명령은 대화형 셸의 일부인 스크립트에서 원치 않는 stdout이 발생하면 중단됩니다.
이 방법의 완전한 솔루션은 [ ! -z "$PS1" ]
테스트 에서 블록을 래핑하는 것입니다.
...
if [ ! -z "$PS1" ]; then
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
fi
unset color_prompt force_color_prompt