Gnome Terminal v3.28.1(Cinnamon이 포함된 Linux Mint 19.2)에서 PS1 값을 변경할 수 없습니다.

Gnome Terminal v3.28.1(Cinnamon이 포함된 Linux Mint 19.2)에서 PS1 값을 변경할 수 없습니다.

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기본값을 갖게 되므로 설정하는 것이 가장 안전할 것입니다.PS1bash-4.4$PS1bashrc

또한 쉘이 로그인 쉘로 시작되면 bashrc자체적으로 읽혀지지 않습니다. 이것이 profile데비안 문서에서 명시적으로 이렇게 하는 이유입니다.

관련된:

관련 정보