2012-02-14 56 views
1

嗨,所以我想修改我的.cshrc文件作出的bash我的默認。它在學校帳戶上,所以我無法更改主設置,但可以更改配置文件。問題是,當我使用命令:默認的C-shell,切換到bash的,但允許SCP

bash 

在我的.cshrc它工作時,我登錄就好了。但任何時候我嘗試scp文件都不起作用,因爲它會啓動.cshrc,當它更改爲bash終端時,scp會感到困惑。

有誰知道如何解決這個問題?可能推出的bash在安靜模式下...

+3

你已經試過'chsh'和它不工作?或者你只是假設你不能改變你的shell? – kdgregory 2012-02-14 00:31:15

+0

你確定'ypchsh'沒有工作嗎?如果確實如此,則必須註銷並再次登錄才能生效。如果沒有,請聯繫您的系統管理員;他們將能夠爲您更改您的登錄shell。在那之前,我建議只是手動調用'bash -l'(也許通過別名),正如我在我的回答中所建議的那樣。 – 2012-02-14 01:33:03

回答

4

一般情況下,你不應該做任何調用的交互式應用程序或在您的.cshrc產生可見的輸出。問題是.cshrc來源於非交互式shell。而且,由於默認的shell是csh,你將不得不調用csh的非交互式在很多情況下 - 因爲你已經與scp看到。

相反,我只是在csh提示符下手動調用bash - 或者更好的bash -l。您可以設置一個別名,如alias b bash -l

如果你打算在登錄時自動調用一個新的shell(這仍然不是一個好主意),把它放在你的.login而不是你的.cshrc

這是假設chsh不起作用,但它應該 - 試試吧。

+1

在.login中放置'bash'命令正在工作。如果我在.login中放置'bash'而不是在提示符下使用命令,您會發現哪些潛在問題? @KevinThompson – trev9065 2012-02-14 01:26:04

+2

好問題。我並不確定它會引起什麼問題,但是如果你願意的話,它確實會刪除運行默認shell的選項。 (同樣,你想'bash -l'而不是'bash';它應該是一個登錄shell。) – 2012-02-14 01:35:00