Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to set fish as the default shell in ubuntu netbook remix? I put in my .bashrc to run fish, which works fine, but ubuntu recognizes it as fish running inside bash, which means that when I try to close the shell it warns me that a task is still running.

It doesn't pop up as a new application, so I can't pin it to my bar like a normal app.

share|improve this question
From the official FAQ: How do I make fish my default shell? – Dennis Oct 25 '15 at 21:49
up vote 74 down vote accepted

You can set fish as your default shell by running

chsh -s `which fish`

Then log out and back in.

(To set it back to bash, you need to use Fish syntax of course, like this chsh -s (which bash))

share|improve this answer
This doesn't seem to work for me. It doesn't give an error, but it just doesn't seem to work, even if I just open a new tab. Any thoughts? – Xodarap Feb 15 '11 at 3:05
You may have to log out & back in - I just tried it on a clean virtual machine & it worked. – ajmitch Feb 15 '11 at 3:09
Thanks, worked like a charm! – Xodarap Feb 15 '11 at 3:14
How do you set it back? – knutole May 2 '14 at 12:36
That should be chsh -s /bin/bash. – lindhe Nov 15 '14 at 20:43
usermod -s /usr/bin/fish username

Must be run as root though.

This will change the shell permanently for the specified user.

share|improve this answer
I know it's not Ubuntu, but I wanted to comment: I was on CentOS, and I was getting an Authentication Failed error trying to change the shell with a non-root user and after extensively searching to try and figure it out, this was the only thing that worked. Thanks! – CWSpear Nov 3 '13 at 4:50
Yes it will work on most unix flavours that have usermod and fish for a shell, or change the shell to whatever flavour you wish – sweetfa Nov 11 '13 at 7:57
I did that and now the terminal doesn't start anymore. I get "There was an error creating the child process for this terminal", "Failed to execute child process "/usr/bin/fish" (Input/output error)". How can I undo that? – Patrick Dec 30 '15 at 21:42
Issue the same command as root but use bash instead of fish as the shell. – sweetfa Dec 31 '15 at 1:10

I agree with the chsh is the correct answer. However:

If you run chsh and get error

/usr/local/bin/fish: non-standard shell

simply add the fish binary location to /etc/shells.

Found here.

share|improve this answer

I just added the line fish to the end of my .bashrc.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.