Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.


HPR2349: Customizing my bash prompt

Hosted by Windigo on 2017-08-03 00:00:00
Download or Listen

Basic bash prompt information

  • Variables and files
    • .bashrc: the RC file where all of this stuff can be set
    • PS1: main prompt variable
    • PS2: continuation prompt
    • PROMPT_COMMAND: a bash function name, run every time prompt is displayed
  • Colors
    • Uses escape sequences
    • There are problems with prompts and escape sequences
      • Multiple escaping
      • String interpretation and variable expansion
    • tput to the rescue!
      • Takes away the need for complex escape codes
      • Must run tput init at the beginning of your .bashrc file
      • TL;DR: Use tput for color strings, add them at the last possible moment, with brackets and backslashes
  • Embedding bash scripts
    • Single quotes are king
    • Will be run every time PS1 is evaluated
    • Otherwise, only run at time of assignment

Layout of my prompt

  • Two lines
    • Information/status line
    • Prompt line
  • Status line
    • Starts with current username
      • Changes color when user has mail
    • Next is the hostname (truncated)
      • Separated by an @ symbol, like an email address
      • Changes color when the system is in need of a reboot
      • Checks for /run/reboot_required
    • Current directory
      • Separated from previous items by a pipe
      • Truncated with a tilde if user's home is in the path
      • Prepended with a number indicating the directory stack, if present
      • Appended with the git (±) symbol if we're in a git branch, followed by the name of the branch
  • Prompt line
    • A blue » character
    • Prepended with the number of background processes spawned from this terminal

Screenshot:

A screenshot of my bash prompt, both initially and with all of the bells and whistles showing

Link to Git Repository

Editor's Note: added 2017-08-05

Comments



More Information...


Copyright Information

Unless otherwise stated, our shows are released under a Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license.

The HPR Website Design is released to the Public Domain.