Oh My Bash (OMB) is a framework that enhances the Bash shell experience by adding themes, plugins, and convenient aliases. It is inspired by Oh My Zsh and is particularly useful for those who prefer Bash but want an improved user experience.
Installation
Prerequisites
Verify Bash version with:
bash --versionIf necessary, install Bash:
sudo apt install bash   # Debian-based systems
sudo dnf install bash   # Fedora-based systems
sudo pacman -S bash     # Arch-based systemsInstalling Oh My Bash
To install Oh My Bash, run the following command:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"or using wget:
bash -c "$(wget https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh -O -)"After installation, restart the shell:
exec bashConfiguration
Changing Themes
Oh My Bash comes with multiple themes located in ~/.oh-my-bash/themes/.
ls ~/.oh-my-bash/themes/To change the theme, edit the ~/.bashrc file:
vi ~/.bashrcLocate the line:
OSH_THEME="font"Replace font, e.g., agnoster, powerline, etc. Save and apply changes:
source ~/.bashrcPopular Themes
Some commonly used themes:
- agnoster: Minimalist, this is the theme I use
 - powerline: Inspired by Powerline, requires Powerline fonts
 - simple: Lightweight, no distractions
 - dst: Shows useful Git information
 
To preview themes, check Oh My Bash Theme Gallery.
Powerline Fonts Installation (Optional)
For powerline or agnoster, need to install Powerline fonts:
git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.sh
cd .. && rm -rf fontsUpdate terminal settings to use a Powerline-compatible font.
Enabling Plugins
To enable plugins, edit ~/.bashrc:
vi ~/.bashrcFind the OSH_PLUGINS line and modify it:
OSH_PLUGINS=(git python alias-finder extract)Apply the changes:
source ~/.bashrcPopular Plugins
- git: Adds useful Git aliases
 - python: Simplifies Python virtual environment handling
 - alias-finder: Helps locate available aliases
 - extract: Extracts compressed files using 
xcommand 
List all available plugins:
ls ~/.oh-my-bash/plugins/Customizing Aliases & Functions
Adding Aliases
Define custom aliases in ~/.bashrc:
alias ll='ls -alF'
alias gs='git status'Apply changes:
source ~/.bashrcCustom Functions
Define functions for repetitive tasks:
function mkcd() {
    mkdir -p "$1" && cd "$1"
}Updating & Uninstalling Oh My Bash
Updating Oh My Bash
To update to the latest version:
git -C ~/.oh-my-bash pullUninstalling Oh My Bash
To remove Oh My Bash:
bash ~/.oh-my-bash/tools/uninstall.shRestore the sad default Bash settings:
source ~/.bashrcTroubleshooting
Issue: Theme Not Changing
Try restarting the shell:
exec bashEnsure the theme name is correct and exists in ~/.oh-my-bash/themes/.
Issue: Plugin Not Working
Make sure the plugin is correctly added in OSH_PLUGINS and that sourced .bashrc:
source ~/.bashrc