how do I change the way directories are shown in the terminal [duplicate]
Currently it is:
michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$
Outside of renaming my machine and directory structure...
How could I make it be something more like:
michael:controllers$
Solution 1:
To change it for the current terminal instance only
Just enter PS1='\u:\W\$ '
and press enter.
To change it "permanently"
In your ~/.bashrc
, find the following section:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi
Remove the @\h
, and replace the \w
with an uppercase \W
, so that it becomes:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u:\W\$ ' fi
Save, exit, close terminal and start another to see the result.
Tons more options!
- See here for a more extensive howto, with many more options
- See this answer for using up a tiny Python script to set the prompt so that the shortening only occurs when you are deep in a directory structure.
Solution 2:
Run this code in the current terminal
PROMPT_DIRTRIM=3
Now the bash prompt will show only the last 3 directory names. You can choose 1 to show only current directory. More information is available in the GNU documentation.
The effect:
/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists#
If you want to make it permanently, add the following line to ~/.bashrc
in the beginning:
PROMPT_DIRTRIM=3
or another number greater than zero.
Solution 3:
This is my preferred prompt setting:
added in ~/.bashrc
PS1='[\u@\h \W]\$ '
it looks like this:
[user@hostname dirname]$
(with a space after the $
sign)
Solution 4:
Personally I prefer to see only current folder in the bash prompt. I can do this with the following command:
PS1='\W\$ '
If you want it to take effect after each start then add the above command into your ~/.bashrc.
Solution 5:
I realize this is super old but since nobody suggested creating an alias I figured I'd post. Using Bash Prompt Escape Sequences I made an alias shorten
In ~/.bash_aliases
here you will notice the $Blue var to set the prompt colour which you can omit or change based on preference I also clear the terminal when calling shorten.
alias c='clear'
alias shorten='PS1="$Blue$USER:\W$ "&& c'
To achieve the OP's desired prompt string:
alias shorten='PS1="$USER:\W$ "'
I have colours defined in ~/.bashrc
copy and pasted from https://wiki.archlinux.org/index.php/Color_Bash_Prompt. On a side note what's with ansi code colours? I'm confused just looking at it.
Blue='\e[0;34m' # Blue