2012-03-30 17 views
1

如何更改遠程PC中的shell?我登錄到一個猛砸集羣和我看到的輸出是如何在不支持ypchsh的遠程計算機中更改Linux shell

[email protected]:~ $ chsh 
chsh: can only change local entries; use ypchsh instead. 
[email protected]:~ $ ypchsh 
-bash: ypchsh: command not found 

因爲我沒有root權限那裏,我不能在集羣中安裝ypchsh。有沒有其他方法可以在不調用ypchsh的情況下更改shell?

注意1: 瀏覽,它看起來像安裝了相同軟件(目前不可用於提問)的另一個用戶在他的目錄中有.cshrc,並具有正確的設置。他的.bashrc很小,沒有重定向。

/etc/passwd沒有我們任何一個條目。

getent passwd 

顯示兩個人的條目,但只顯示/ bin/bash。

注2: 該軟件是使用自動工具開發的,使用bash而不是tcsh已知創建了錯誤的構建。 (我不改變外殼,因爲我喜歡它。)

謝謝 義隆

回答

-2

一旦你在bash是在集羣中,你爲什麼不直接輸入tcsh?如果可行,爲什麼不把它作爲.bashrc的最後一行添加呢?

6

在你的.bashrc,把exec tcsh最後。

+1

+1使用'exec',但屬於'.bash_profile',因爲該文件首先被交互式登錄shell查找(http://www.gnu.org/software/bash/manual /bashref.html#Bash-Startup-Files)。 – 2012-03-30 13:28:17

+0

謝謝,我是Linux新手。我假設只有chsh可以更改shell,但正如你所說的,只是在命令行中調用shell的名字(在我的情況下是tcsh)會改變它(檢查:export不再被識別,但setenv是)。但是(1)echo $ SHELL命令仍然顯示bash。更重要的是,我需要爲某些環境變量編輯.cshrc。但是(2)沒有生成.cshrc。這兩點讓我感到困惑。這仍然是一個小的解決方法,影響不同於chsh? – Elan 2012-03-30 14:59:53

+0

是這裏的解決方案到 1.自己創建一個.cshrc,並把我的東西放在 2.每次改變shell在bash的命令行中調用tcsh 3.每次使用'source .cshrc' 4. build該軟件 ? 我只注意到當我在另一個內部調用一個shell時,我必須退出兩次或三次,這給了我上面的想法。 – Elan 2012-03-30 15:07:19