无法在 Gnome 终端 v3.28.1 中更改 PS1 值(Linux Mint 19.2 with Cinnamon)

无法在 Gnome 终端 v3.28.1 中更改 PS1 值(Linux Mint 19.2 with Cinnamon)

我无法更改 PS1 的提示值终端仿真器Linux Mint 19.2 与 Cinnamon 的结合。它仅适用于在控制台(F1 至 F6)上进行的登录。

文件的最后几行.profile

export PS1='my-customized-prompt $'
export PSCOPY=$PS1

重新启动 Cinnamon 后(我也尝试过重新启动计算机): 之后,似乎还有其他东西.profile正在更改PS1值,例如终端模拟器或任何其他 bash“功能”。

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:~$ 

但是,当我使用“-l”参数从命令行运行 bash 或使用su 命令更改用户时,它可以工作:

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仅从登录 shell 中读取,而对于其他交互式 shell,则改为读取.bashrc。 (与/etc/profile和相同/etc/bash.bashrc)。在许多系统(包括 Debian)上,默认/etc/bash.bashrc设置是PS1,因此对于非登录 shell 来说就是使用的。

您的终端仿真器可能将 shell 作为非登录 shell 运行,但至少可以配置一些来运行登录 shell。例如,Gnome 终端应该有一个“作为登录 shell 运行命令”复选框,如果模拟器允许您更改它调用的命令,您可以使用/bin/bash -l-l--login标记登录 shell)。

如果您没有PS1在其中一个bashrc文件中进行设置,则在没有环境的情况下启动的 shellPS1最终会得到默认值PS1,给出类似 的内容,因此在 中bash-4.4$设置可能是最安全的。PS1bashrc

另请注意,如果 shell 作为登录 shell 启动,则它不会bashrc自行读取。这就是为什么profileDebian 上的文件明确这样做的原因。

有关的:

相关内容