How do I switch from an unknown shell to bash?
I was surprised that I didn't find this question already on the site. So, today
$came up after I logged in as a new user. This was unexpected because my main user's prompt starts with
So, how do I switch from this other shell to bash?
Just because `$` came up rather than `[email protected]:~$` doesn't mean it wasn't bash. The exact formatting of the prompt is set by the PS1 variable, which can be set up or customized differently for different users.
@mouche Re: @frabjous `echo $SHELL` to find out what your current shell is.
@mouche @frabjous and beginning with a $ is actually common for bash, some non bash shells like zsh use the % out of the box, I believe other shells use other things.
@xeno it was /bin/sh and something I tried to do didn't work like it would in BASH.
@mouche being `/bin/sh` often doesn't mean much that's usually a symlink to something else. I'd type `ls -l /bin/sh` to see what it's a symlink to. In some cases being a symlink to something changes its behavior, I don't think bash is that way.
Oh, I never knew @xenoterracide. On my machine, `/bin/sh` is a symlink to `/bin/dash`.
@xenoterracide - Using `bash` as `/bin/sh` *disables* many bash features (it goes into POSIX compliance mode).
Assuming the unknown shell supports running an absolute command, you could try:
To change the default shell, I would use
chsh(1). Sample usage:
chsh -s /bin/bash $USER
@mouche, `chsh(1)` will only allow to change to a shell that is listed in `/etc/shells` (and is available, presumably). `chsh -l` lists the alternatives. Be careful, some (like `nologin`) are defined for accounts that should never be used to login (nice way to lock yourself out), there might be local additions for special uses.