PS1의 프롬프트 값을 변경할 수 없습니다.터미널 에뮬레이터Linux Mint 19.2와 Cinnamon이 결합되었습니다. 콘솔 로그인(F1~F6)에만 적용됩니다.
파일의 마지막 몇 줄 .profile
:
export PS1='my-customized-prompt $'
export PSCOPY=$PS1
Cinnamon을 다시 시작한 후(컴퓨터도 다시 시작해 보았습니다):그 후에는 터미널 에뮬레이터나 다른 bash "기능"과 같은 다른 것이 값을 .profile
변경하는 것처럼 보입니다 .PS1
luc@lucmint:~$ echo $PSCOPY
my-customized-prompt $
luc@lucmint:~$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
luc@lucmint:~$
그러나 su
"-l" 매개변수를 사용하여 명령줄에서 bash를 실행하거나 명령을 사용하여 사용자를 변경하면 작동합니다.:
luc@lucmint:~$ bash -l
my-customized-prompt $logout
luc@lucmint:~$ su - luc
Password:
my-customized-prompt $
어떻게 되어가나요? 터미널 에뮬레이터가 열려 있을 때 PS1 변수를 덮어쓰는 사람은 누구입니까? 그리고 그것을 방지하는 방법은 무엇입니까?
편집하다:
홈 디렉토리의 모든 숨겨진 파일:
$ ls -ld ~/.*
drwxr-xr-x 30 luc luc 4096 Aug 27 14:44 /home/luc/.
drwxr-xr-x 3 root root 4096 Aug 26 14:27 /home/luc/..
-rw------- 1 luc luc 4706 Aug 27 14:42 /home/luc/.bash_history
-rw-r--r-- 1 luc luc 220 Aug 26 14:27 /home/luc/.bash_logout
-rw-r--r-- 1 luc luc 3771 Aug 27 14:00 /home/luc/.bashrc
drwx------ 10 luc luc 4096 Aug 26 16:36 /home/luc/.cache
drwxrwxr-x 4 luc luc 4096 Aug 26 15:25 /home/luc/.cinnamon
drwxr-xr-x 14 luc luc 4096 Aug 26 16:36 /home/luc/.config
-rw-r--r-- 1 luc luc 27 Aug 26 14:36 /home/luc/.dmrc
drwx------ 2 luc luc 4096 Aug 26 14:36 /home/luc/.gconf
-rw-r--r-- 1 luc luc 112 Aug 26 18:06 /home/luc/.gitconfig
drwx------ 3 luc luc 4096 Aug 26 16:36 /home/luc/.gnome
drwx------ 3 luc luc 4096 Aug 26 14:36 /home/luc/.gnupg
-rw-r--r-- 1 luc luc 245 Aug 26 18:18 /home/luc/.gtkrc-2.0
-rw-r--r-- 1 luc luc 516 Aug 26 14:27 /home/luc/.gtkrc-xfce
-rw------- 1 luc luc 5470 Aug 27 14:43 /home/luc/.ICEauthority
drwxrwxr-x 2 luc luc 4096 Aug 26 16:33 /home/luc/.icons
drwxr-xr-x 4 luc luc 4096 Aug 26 17:53 /home/luc/.java
-rw------- 1 luc luc 32 Aug 27 14:20 /home/luc/.lesshst
drwx------ 3 luc luc 4096 Aug 26 14:36 /home/luc/.local
drwx------ 5 luc luc 4096 Aug 26 15:04 /home/luc/.mozilla
drwxr-xr-x 7 luc luc 4096 Aug 26 15:49 /home/luc/.nbi
drwxr-xr-x 3 luc luc 4096 Aug 26 15:54 /home/luc/.netbeans
drwx------ 3 luc luc 4096 Aug 26 16:36 /home/luc/.pki
-rw-r--r-- 1 luc luc 938 Aug 27 14:44 /home/luc/.profile
drwx------ 2 luc luc 4096 Aug 26 16:49 /home/luc/.ssh
-rw-r--r-- 1 luc luc 0 Aug 26 14:40 /home/luc/.sudo_as_admin_successful
drwxrwxr-x 3 luc luc 4096 Aug 26 18:19 /home/luc/.themes
-rw-r----- 1 luc luc 5 Aug 27 14:43 /home/luc/.vboxclient-clipboard.pid
-rw-r----- 1 luc luc 5 Aug 27 14:43 /home/luc/.vboxclient-display.pid
-rw-r----- 1 luc luc 5 Aug 27 14:43 /home/luc/.vboxclient-draganddrop.pid
-rw-r----- 1 luc luc 5 Aug 27 14:43 /home/luc/.vboxclient-seamless.pid
-rw------- 1 luc luc 8268 Aug 27 14:44 /home/luc/.viminfo
-rw------- 1 luc luc 52 Aug 27 14:43 /home/luc/.Xauthority
-rw-rw-r-- 1 luc luc 131 Aug 26 18:28 /home/luc/.xinputrc
-rw------- 1 luc luc 19039 Aug 27 14:44 /home/luc/.xsession-errors
-rw------- 1 luc luc 97892 Aug 27 14:42 /home/luc/.xsession-errors.old
답변1
Bash는 .profile
로그인 셸에서만 읽으며, 다른 대화형 셸에서는 대신 읽습니다 .bashrc
. ( /etc/profile
및 와 동일 /etc/bash.bashrc
). 많은 시스템(Debian 포함)에서 기본 /etc/bash.bashrc
설정은 PS1
이므로 비로그인 셸의 경우 이것이 사용됩니다.
터미널 에뮬레이터는 비로그인 쉘로 쉘을 실행하지만 최소한 일부는 로그인 쉘을 실행하도록 구성할 수 있습니다. 예를 들어 Gnome 터미널에는 "로그인 셸로 명령 실행" 확인란이 있어야 하며, 에뮬레이터에서 호출하는 명령을 변경할 수 있는 경우 이 확인란을 사용하거나 /bin/bash -l
로그인 셸에 태그를 지정할 수 있습니다 .-l
--login
PS1
이 파일 중 하나에 설정 하지 않으면 bashrc
환경 없이 시작된 셸은 이와 같은 PS1
기본값을 갖게 되므로 설정하는 것이 가장 안전할 것입니다.PS1
bash-4.4$
PS1
bashrc
또한 쉘이 로그인 쉘로 시작되면 bashrc
자체적으로 읽혀지지 않습니다. 이것이 profile
데비안 문서에서 명시적으로 이렇게 하는 이유입니다.
관련된: