How to change from csh to bash as default shell
cshas my default shell, as shown by
echo $SHELL. I want to switch to
bashas my default shell. I tried the following approaches to no avail:
chsh: can only change local entries; use ypchsh instead.
ypchsh: yppasswdd not running on NIS master host ("dcsun2").
I only have
.chsrcin my home directory and I cannot find any
/etc. How can I change my default shell to
Make sure you've got
Learn the location of
Below, I'll assume the location is
a) If you have administrative rights, just run as root:
usermod -s /bin/bash YOUR_USERNAME
YOUR_USERNAMEwith your user name).
b) If you don't have adm. rights, you can still just run
bash --loginat login, by putting the below line at the end of your
.profile(in your home directory) :
setenv SHELL /bin/bash exec /bin/bash --login
@manatwork That would be relevant for **2a**, not 2b. And only useful in a strange/broken system setup for determining why the solution did not work.
1. SHELL=/bin/bash gives a command not found error. 2. Your solution gives me a bash shell as the prompt. But it does not change my login shell. Thanks for the help though.
Here is what I did to resolve this. 1. exec /bin/bash --login in the .cshrc file 2. set SHELL=/bin/bash and then export SHELL in the /etc/profile file. Thanks.
Ah, sorry - I meant the first line to be `export SHELL=/bin/bash`. Actually there's a better way than that - see update.
You don't have to do the which/whereis separately. For example, ``SHELL=`which bash` `which bash` YOUR_USERNAME``
@MarcusJuniusBrutus Because it is not supposed to do so. This seems to be a very common misconception - some distributions even ship default `.bash_login`, `.profile` or similar files which remedy this. But that is quite far from the original subject. You may ask a separate question.
This seems to break non-interactive uses, like `scp`. You need `if ($?prompt) then; exec /bin/bash --login; endif`