How do I only display the base dir in my Ubuntu Terminal?
Solution 1:
Changing the Bash the prompt is easy. Just assign a new value to PS1:
PS1="myprompt : "
Now the new prompt will look like
myprompt :
Bash allows prompt strings to be customized by inserting a number of backslash-escaped special characters that are decoded as follows:
* \a : an ASCII bell character (07) * \d : the date in "Weekday Month Date" format (e.g., "Tue May 26") * \D{format} : the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required * \e : an ASCII escape character (033) * \h : the hostname up to the first '.' * \H : the hostname * \j : the number of jobs currently managed by the shell * \l : the basename of the shell’s terminal device name * \n : newline * \r : carriage return * \s : the name of the shell, the basename of $0 (the portion following the final slash) * \t : the current time in 24-hour HH:MM:SS format * \T : the current time in 12-hour HH:MM:SS format * \@ : the current time in 12-hour am/pm format * \A : the current time in 24-hour HH:MM format * \u : the username of the current user * \v : the version of bash (e.g., 2.00) * \V : the release of bash, version + patch level (e.g., 2.00.0) * \w : the current working directory, with $HOME abbreviated with a tilde * \W : the basename of the current working directory, with $HOME abbreviated with a tilde * \! : the history number of this command * \# : the command number of this command * \$ : if the effective UID is 0, a #, otherwise a $ * \nnn : the character corresponding to the octal number nnn * \\ : a backslash * \[ : begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt * \] : end a sequence of non-printing characters
As an example lets create a prompt string that displays today's date and hostname:
PS1="\d \h $ "
Output is like
Sun Sep 04 ubuntu $
When you are happy with your prompt string you can make it the default prompt, even after rebooting by setting the PS1 var in .bashrc
Solution 2:
As @nkr1pt said, you want to set PS1
PS1='\u@\h \W \$ '
Also check out setting the env variable PROMPT_COMMAND
, which is a command which is run every time bash prints out a prompt. I have mine set to:
PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME%%.*}: $(pwd -P)\a"'
Obviously with USER and HOSTNAME set elsewhere. This puts a full path in your term title.
Solution 3:
Bash 4 has a variable called PROMPT_DIRTRIM
user@host:~$ echo $PS1
\u@\h:\w\$
user@host:~$ cd /usr/share/doc/bash/examples
dennis@emperor:/usr/share/doc/bash/examples$ PROMPT_DIRTRIM=2
dennis@emperor:.../bash/examples$
which sets the minimum number of directory elements to display.