일반적으로 내 터미널 프롬프트는 다음과 같습니다.
username place$
이제는 보여주기만 해
bash-4.2$
모든 색상 설정이 손실됩니다. (터미널 프로필에 동일한 색상 구성표가 있지만 색상이 표시되지 않습니다.)
무슨 일이 일어나고 있는지 전혀 모릅니다(그리고 이것을 검색하는 방법도 모릅니다).
처음부터 변경되었습니다. Eclipse와 Maven을 사용하고 있습니다. 새 터미널을 열었지만 새 터미널에 색상이 없습니다.
참고: ~/.bashrc 파일은 없지만 ~/.bash_profile은 있습니다.
답변1
프롬프트 변수가 설정되지 않을 수 있으므로 $PS1
내장된 기본값이 사용됩니다.\s-\v\$
Bash가 대화형으로 시작되면 구성 파일(일반적으로 ~/.bashrc
또는 ~/.bash_profile
존재한다고 가정)을 가져옵니다. 이는 고급 프롬프트가 설정되는 방식입니다. 에서 man bash
:
부르다
[...] bash가 --login 옵션을 사용하여 대화형 로그인 쉘 또는 비대화형 쉘로 호출되면 먼저 /etc/profile 파일(파일이 존재하는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후 찾습니다.~/.bash_profile, ~/.bash_login,그리고 ~/.프로필,그와 같은 순서로 […]
[...] 로그인 쉘이 아닌 대화형 쉘을 시작할 때 bash는 다음 명령을 읽고 실행합니다. ~/.bashrc,파일이 존재하는 경우.
프롬프트 설정 실패는 로그인 쉘과 비로그인 쉘이라는 두 가지 상황에서 발생할 수 있습니다. 디스플레이 관리자를 사용하여 GUI에 직접 로그인하는 경우 가상 콘솔로 전환하지 않는 한(예: CtrlAlt+F1에서 F6을 통해) 로그인 쉘이 발생하지 않습니다 . 그러나 새 로그인 셸을 명시적으로 열어 GUI에서 bash 로그인 프로필을 테스트할 수 있습니다 bash -l
.
비로그인 쉘 문제
일반 GUI 터미널 등에서 문제가 발생하는 경우 ~/.bashrc
파일이 누락되었거나 전역 파일의 소스를 제외하도록 편집되었을 수 있습니다 /etc/bashrc
.
존재하지 않는 경우 새 사용자를 위해 생성하기 위한
~/.bashrc
것이 있어야 합니다 ./etc/skel/.bashrc
이 파일을 홈 디렉토리에 복사하면 다음에 열 새 셸에 기본 프롬프트가 나타납니다.존재 하는 경우
~/.bashrc
어딘가에 소스 라인이 있는지 확인하십시오/etc/bashrc
.. /etc/bashrc -OR- source /etc/bashrc
존재하지 않는 경우 파일이 존재하는지 확인하고(적어도 대부분의 Linux 배포판에서는 존재해야 함) 다음과 같은 줄을
~/.bashrc
.
로그인 쉘 문제
로그인 쉘과 비로그인 쉘 모두에서 이 문제가 발생하는 경우 문제는 위와 동일할 수 있습니다. 만약 그런 일이 일어난다면오직로그인 셸의 경우 위 인용문에 언급된 로그인 셸용 파일 중 하나가 없거나 ~/.bashrc
대부분의 Linux 배포판에서 일반적으로 제공되는 파일을 얻지 못합니다. 이러한 파일이 없으면 ~/.bash_profile
해당 파일을 만듭니다.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
대부분의 경우 이를 통해 구성을 파일( ~/.bashrc
)에 저장할 수 있습니다.
어떤 작업을 해도 프롬프트가 표시되지 않으면 프롬프트를 만들어 ~/.bashrc
다음과 같은 방법으로 입력할 수 있습니다.
if [ "$PS1 ]; then
PS1= .... # see below
fi
이는 $PS1이 이미 설정되어 대화형 셸에 대한 기본값을 갖고 있기 때문입니다. 다른 곳에서 이 값을 사용하여 이것이 대화형 환경인지 확인할 수 있기 때문에 다른 방식으로 설정하고 싶지 않기 때문입니다.
Bash 매뉴얼 페이지에는 사용자 이름 및 현재 작업 디렉토리와 같은 동적 기능을 사용하여 프롬프트를 설정하는 방법을 설명하는 PROMPTING 섹션이 포함되어 있습니다. 예:
PS1="\u \w:"
가이드가 있습니다여기에 색상을 사용하세요. 인쇄되지 않는 문자를 \[
및 로 묶어야 합니다 \]
(이 내용은 색상에 대한 답변 끝 부분에서 논의됨).
답변2
이것을 ~/.bashrc 및 ~/.bash_profile에 영향을 받은 사용자의 루트로 붙여넣으면 됩니다.
# Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
답변3
보안상의 이유로 Cygwin bash를 업그레이드해야 했습니다.
이전 bash = 4.1.10(4)-2009년경 릴리스(i686-pc-cygwin)
$ echo $PS1
\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
새로운 bash = 4.4.12(3)-2016년경 릴리스(i686-pc-cygwin)
완전히 동일한 모양과 느낌을 얻으려면 다음을 추가해야 합니다 .bashrc
.
#
GREEN="\[$(tput setaf 2)\]"
YELLOW="\[$(tput setaf 3)\]"
RESET="\[$(tput sgr0)\]"
PS1="\n${GREEN}\u@\h ${YELLOW}\w${RESET}\n$ "
cd $HOME
#
참고: 포함cd $HOME
답변4
DBA가 데이터베이스 설치를 위해 oracle 사용자를 생성하려고 할 때 동일한 문제가 발생했습니다. 그는 항목을 변경하는 대신 일부 사용자 프로필에 필요한 파일을 삭제했습니다.
문제가 없는 다른 사용자로부터 다음 기본 파일을 복사하여 문제를 해결했습니다.
/home/username/.bashrc
/home/username/.bashrc_profile
/home/username/.bashrc_logout
/home/username/.bashrc_history
이 파일의 설정/텍스트를 변경할 필요가 없습니다.
세션에서 로그아웃했다가 다시 로그인하세요. 색상과 로그인 프롬프트를 사용하여 기본 셸(일반적으로 bash)을 복원해야 합니다.