預設xterm
啟動一個互動式 shell。但您也可以將其配置為啟動互動式登入外殼。
這表示啟動後xterm
您將獲得與透過 ssh/虛擬控制台/su 登入相同的 shell。
配置a的優點/缺點是什麼登入外殼在 xterm 中?
我能想到:
uptime
、w
等last
報告與xterm
開啟的使用者一樣多的使用者。 (優勢?)bash
僅來源.login
,.profile
,/etc/profile.d
開始時為登入外殼zsh
有類似的文件,啟動時會讀取這些文件登入外殼- 但在我的系統上它們預設是空的
相關xterm
手冊頁部分:
-ls This option indicates that the shell that is started in the xterm window will be a login shell (i.e., the first character of argv[0] will be a dash, indicating to the shell that it should read the user's .login or .profile).
還有一個資源:
loginShell (class LoginShell) Specifies whether or not the shell to be run in the window should be started as a login shell. The default is “false.”
答案1
在終端機中執行登入 shell 將執行您放入 中的任何程序.profile
,即使您希望該程式每個會話僅執行一次(例如,ssh-agent
和其他金鑰環)。執行登入 shell 將覆蓋您在會話或終端父進程中設定的環境變數。
在終端機中執行登入 shell 的人遇到的最大問題是,他們在登入 GUI 時通常不會設定環境變數。這樣做的缺點是環境變數僅在從終端啟動的程式中可用,而在透過 GUI 直接啟動的程式中不可用。如果您確實在登入時設定了環境變量,那麼在每個終端中再次設定它們充其量是毫無意義的,有時還會出現如上所示的問題。
也可以看看.bashrc 和 .bash_profile 之間的差異,.bashrc 的替代方案,以及我在 Stack Exchange 上看到的許多問題,如果提問者為每個會話設定了環境變量,這些問題就可以避免。