Shell
對於同一個 unix 或 linux 使用者,不同的環境變數集
我正在使用
tcsh
,對於一個特定的項目,我團隊的每個成員都連接到具有相同使用者的伺服器。(這是我們無法改變的)。出現這種情況是因為我想要一些自定義環境變數和別名,為此我有我自己的 .tcshrc 文件(即
.tcshrc_cust
),我在連接到該機器時作為第一個操作載入該文件:source .tcshrc_cust
儘管這工作得很好,但我在使用時遇到了一個問題
vim
:如果我從 vim 內部進入 shell(使用:sh
),我會掉入一個普通的 shell,而沒有我的自定義環境。瓦爾斯。和別名。除了在該機器上使用不同的使用者之外,是否有解決方案?
解決方案(由@Shawn 提供):
我在我的密鑰前面
.ssh/authorized_keys
加上:command="setenv subuser noz; tcsh"
並在文件末尾寫下
.tcshrc
這些行:if ($?subuser) then source .tcshrc_$subuser; endif
現在一切正常。
您可以
.tcshrc
檢查一個特殊的環境變數(如subuser
),並有條件地檢查source .tcshrc_cust
。登錄時,執行subuser=nozimica tcsh
. 它將獲取該環境變數並執行您的自定義 rc 腳本。此外,vim 的:sh
命令也可以工作。你甚至可以讓它變得花哨和source .tcshrc_$subuser
; 這樣每個人都可以做到。您可以
subuser=nozimica tcsh
通過讓 ssh 為您執行它來跳過登錄時執行的部分。如果您設置了 ssh 密鑰身份驗證,那麼在~/.ssh/authorized_keys
伺服器上,您可以在密鑰前加上command="subuser=nozimica tcsh"
, ssh 將為您執行該命令。