Hardware - Support > Tutorials

Changing loging shell and/or terminal prompt


Paste your .bashrc please.

I've started using Linux Lite and the "pretty" bash prompt is driving me crazy because I cannot change it.

The instructions in this post don't work, no mater what I do, PS1 stays set.

--- Code: --- thomasd  ~  PS1="Foo : "
 thomasd  ~  echo $PS1
\[\] thomasd \[\] \[\]~ \[\] \[\]
 thomasd  ~  

--- End code ---

doing export has the same effect:

--- Code: --- thomasd  ~  export PS1="Foo : "
 thomasd  ~  echo $PS1
\[\] thomasd \[\] \[\]~ \[\] \[\]
 thomasd  ~  

--- End code ---

Hi everyone! Hope you're all having a nice life! :)

Today I'd like to share with you some basics on how to change the login shell and/or terminal prompt. It's a completely and entirely safe procedure which will make no harm to your system, because that's how smart Linux is :) However, if it makes you feel better/safer, you can make a backup of your .bashrc file located in your home folder 
--- Code: ---$ cp ~.bashrc .bashrc.bak
--- End code ---
but it's really not neccesary. Like I said, Linux's smart enough not to let you screw things up  ;D

In order to change your login shell simply type in your terminal:

--- Code: ---$ chsh -l
--- End code ---

If the command above doesn't work you may use:

--- Code: ---$ cat /etc/shells
--- End code ---

One or the other  will list all installed/available shells in your system, to change the current shell for one of those available type:

--- Code: ---$ chsh -s desired shell's name
--- End code ---

for example

--- Code: ---chsh -s /bin/zsh
--- End code ---

You'll be asked to type your password, do so then logout/login back, open a terminal and type:

--- Code: ---echo $SHELL
--- End code ---
your new shell's name should be displayed. In our example it'd show:

--- Code: ---$ /bin/zsh
--- End code ---

Changing the terminal prompt is quite easy using the command
--- Code: ---$ PS1=ARGS
--- End code ---
  for example, this is how my terminal prompt is configured:
--- Code: ---$ PS1='\[\e[1;36m\][\t \u \[\e[0m\]\W \$]'
--- End code ---
where; \e= An ASCII escape character (033), 1;36m\= bold font and cyan color, \t= current time, \u= current logged user, \W= current working directory, \$= current prompt symbol.
resulting in this:

However, this is only temporary and it will be back to defaults in your next login, if you want to make it permanent edit your .bashrc file to make it so:

--- Code: ---$ nano .bashrc #change nano for your preferred editor, i.e; vi
--- End code ---
and add something like this: export PS1='\[\e[1;36m\][\t \u \[\e[0m\]\W \$] '

Well, that's it. This is the basics for changing the login shell and/or terminal prompt. Here's a couple of links to some very instructional sites/articles on these topics

Hope you find this helpful! :)


[0] Message Index

Go to full version