Terminal
即使在 vnc 會話中使用“env -i”,gnome-terminal 也會繼承一些環境
不知何故,gnome-terminal 能夠獲得一些未在任何 shell 初始化文件中設置的環境(系統範圍/使用者級別)
env -i DISPLAY=":1.0" /usr/bin/gnome-terminal
$> env
給出許多其他變數,其中 xterm 僅給出如下幾個env -i DISPLAY=":1.0" /usr/bin/xterm $> env DISPLAY=:1.0 TERM=xterm WINDOWID=37748770 XTERM_VERSION=X.Org 6.8.99.903(253) XTERM_LOCALE=C LOGNAME=bkatkam XTERM_SHELL=/bin/csh HOSTTYPE=x86_64-linux VENDOR=unknown OSTYPE=linux MACHTYPE=x86_64 SHLVL=1 PWD=/home/bkatkam USER=bkatkam GROUP=inv HOST=inv2
但是,這些在新的 VNC 會話中被清除。我懷疑,vnc session 正在某個地方儲存環境。我無法弄清楚它儲存它們的位置。
我也經歷過,csh:終端從未知位置繼承環境變數,但是在這個問題中沒有找到根本原因。
編輯:
env -i
在關閉所有打開的 gnome 終端后,命令現在提供了適當的環境。但是如果我正常打開終端(沒有env -i
),無關的環境會被繼承
調試後,知道 從它的父程序
gnome-terminal
繼承環境Xvnc
Xvnc
反過來,從vncserver
執行創建 VNC 的終端獲取環境。所以,要保證VNC環境乾淨。我用命令創建了它env -i PATH="/usr/bin:/bin" HOME="/home/bkatkam" vncserver -geometry 1920x1080