- Posted on
How to Customise Your Bash Prompt for Better Productivity
The Bash prompt is the text that appears in your terminal before you type a command. By default, it displays minimal information, such as your username and current directory. Customizing your Bash prompt can enhance productivity by providing quick access to important information and making your terminal visually appealing.
What is the Bash Prompt?
The Bash prompt is controlled by the PS1
variable, which defines its appearance. For example:
PS1="\u@\h:\w\$ "
\u
: Username.\h
: Hostname.\w
: Current working directory.\$
: Displays$
for normal users and#
for the root user.
Why Customise Your Bash Prompt?
- Enhanced Information: Display details like the current Git branch, exit status of the last command, or time.
- Improved Visuals: Use colors and formatting to make the prompt easier to read.
- Increased Productivity: Quickly identify useful information without typing additional commands.
Steps to Customise Your Bash Prompt
1. Temporary Customization
You can modify your prompt temporarily by setting the PS1
variable:
PS1="\[\e[32m\]\u@\h:\w\$\[\e[0m\] "
This changes the prompt to green text with the username, hostname, and working directory.
2. Permanent Customisation
To make changes permanent:
- Edit the
.bashrc
file in your home directory:bash vi ~/.bashrc
- Add your custom
PS1
line at the end of the file. - Save and reload the file:
bash source ~/.bashrc
Common Customizations
Add Colors
Use ANSI escape codes for colors:
\[\e[31m\]
: Red\[\e[32m\]
: Green\[\e[34m\]
: Blue\[\e[0m\]
: Reset to default color.
Example:
PS1="\[\e[34m\]\u@\h:\[\e[32m\]\w\$\[\e[0m\] "
This makes the username and hostname blue and the working directory green.
Include Time
Display the current time:
PS1="\[\e[33m\]\t \[\e[34m\]\u@\h:\w\$ \[\e[0m\]"
\t
: Time in HH:MM:SS format.\@
: Time in 12-hour AM/PM format.
Show Git Branch
Display the current Git branch when inside a repository:
PS1="\[\e[32m\]\u@\h:\[\e[34m\]\w\[\e[31m\]\$(__git_ps1)\[\e[0m\] \$ "
- Ensure you have Git installed and the
git-prompt.sh
script sourced in your.bashrc
file.
Add Command Exit Status
Show the exit status of the last command:
PS1="\[\e[31m\]\$? \[\e[34m\]\u@\h:\w\$ \[\e[0m\]"
\$?
: Exit status of the last command.
Advanced Customisations with Tools
Starship
Starship is a modern, highly customizable prompt written in Rust. Install it and add this line to your .bashrc
:
eval "$(starship init bash)"
Best Practices for Customizing Your Prompt
- Keep it Simple: Avoid cluttering the prompt with too much information.
- Use Colors Sparingly: Highlight only the most critical details.
- Test Changes: Test new prompts before making them permanent.
- Backup Your
.bashrc
: Keep a backup before making extensive changes.
Example Custom Prompt
Here’s a full-featured example:
PS1="\[\e[32m\]\u@\h \[\e[36m\]\w \[\e[33m\]\t \[\e[31m\]$(git_branch)\[\e[0m\]\$ "
- Green username and hostname.
- Cyan working directory.
- Yellow current time.
- Red Git branch (requires Git integration).
Customizing your Bash prompt is a great way to make your terminal more functional and visually appealing. Experiment with different configurations and find the one that works best for you!