나는 현재 프롬프트가 쉘의 전체 색상과 다른 색상이 되도록 터미널을 수정하려고 하고 있으며 일반 사용자에게는 흰색으로, 루트 사용자에게는 빨간색으로 만들고 싶습니다.
OS X 10.10 데스크탑과 Ubuntu 14.10 서버에서 이 작업을 수행하고 싶습니다.
내가 아는 유일한 방법은 를 수정하는 것입니다 $PS1
.
그렇게 하려면 로그인 시 쉘이 소스로 사용하는 스크립트에 넣어야 합니다. 그렇죠?
/bin/sh
그러나 OS에서는
이제 알아요 su - <user>
. 하지만 작동하려면 그게 필요해요 su <user>
.
나할 수 있다루트 사용자의 로그인 쉘을 변경하지만대신에.
지금까지 내가 찾은 내용은 다음과 같습니다.
bash
소스로 호출 bash
하고 소스로 로그인하십시오 su -
.
/etc/profile
/etc/bashrc
~/.profile
bash
소스로 호출 bash
하고 소스로 로그인하십시오 su
.
~/.bashrc
bash
소스로 호출 sh
하고 소스로 로그인하십시오 su -
.
/etc/profile
/etc/bashrc
~/.profile
bash
소스로 호출 sh
하고 로그인하면 su
아무 것도 생성되지 않습니다.
하이재킹도 시도했는데 $PROMPT_COMMAND
호출하면 클리어됩니다 su
.
존재하다배쉬 매뉴얼그것은 말한다:
이름 sh로 전화
sh
Bash가 이름으로 호출되면 POSIX 표준을 준수하면서 기록 버전의 시작 동작을 최대한 유사하게 모방 하려고 시도합니다 .sh
이 옵션을 사용하여 대화형 로그인 셸 또는 비대화형 셸로 호출되면 먼저 명령을 순차적으로
--login
읽고 실행하려고 시도합니다 . 이 옵션을 사용하면 이 동작을 억제할 수 있습니다. 라는 대화형 셸을 호출하면 Bash는 변수를 찾고 해당 값이 정의되어 있으면 확장한 다음 확장된 값을 읽고 실행할 파일 이름으로 사용합니다. as를 호출하는 쉘은 다른 시작 파일에서 명령을 읽고 실행하려고 시도하지 않으므로 이 옵션은 효과가 없습니다. 이 이름으로 호출된 비대화형 쉘은 다른 시작 파일을 읽으려고 시도하지 않습니다./etc/profile
~/.profile
--noprofile
sh
ENV
sh
--rcfile
sh
호출되면
sh
Bash는 시작 파일을 읽은 후 POSIX 모드로 들어갑니다.
그럼...설정할 수 있는 방법은 없을까요 $ENV
?
단순히 호출하기 전에 설정하는 것은 su
효과가 없습니다.
$PS1
아니면 UID가 변경될 때(완전히 로그인했는지 여부에 관계없이)를 사용하거나 su - ...
루트의 로그인 쉘을 변경하거나 su
/를 사용하지 않고도 UID를 수정할 수 있는 다른 방법이 있습니까 bash
?
답변1
su -c bash
입력하는 것이 너무 많으면 별칭을 만드십시오.
plain은 초기화 파일을 로드하지 않는다는 것을 올바르게 분석했으므로 su
구성이나 명령을 변경해야 합니다.
답변2
저는 개인적으로 Mac에서 사용하고 있으며 Ubuntu 서버에서도 실행됩니다. 하지만 두 개의 파일을 편집했습니다.
루트의 .profile에 내가 넣었습니다.
PS1="\[\033[1;31m\]\u\[\e[m\]@\h \[\e[0;32m\]\w\[\e[m\] \$ " # Root
내 개인 사용자의 .bash_profile을 입력하세요.
PS1="\[\033[1;32m\]\u\[\e[m\]@\h \[\e[0;32m\]\w\[\e[m\] \$ " # User
효과는 다음과 같습니다.
여기에서 모든 색상을 찾을 수 있습니다.http://blog.taylormcgann.com/tag/prompt-color/
하지만 귀하의 경우에는 이 솔루션을 사용해야 한다고 생각합니다. https://unix.stackexchange.com/a/174/50145