A multiline Linux Bash command prompt
Now that I have Linux shell accounts on at least seven different servers, I've changed my Bash login prompt on each server so I can easily see what server I'm logged in to. For instance, on my Valley Programming web server, my command prompt looks like this:
VALPRO:/home/al > _
With this prompt, the "VALPRO" part reminds me that I'm logged into my Valley Programming server, and the path shown to the right of it changes as I move from one directory to another. I actually type my command on the line beneath that, where the underscore character is shown.
I like this approach because (a) when I'm in some deep subdirectory, I can still see what directory I'm in and (b) it doesn't interfere with the commands I'm typing.
Creating a multiline Bash command prompt
I create this multiline command prompt with this simple entry in the .bash_profile file in my HOME directory:
PS1=' VALPRO:$PWD > '
There isn't much to say about this, other than:
- PS1 stands for "prompt symbol, level 1".
- The $PWD variable is the rough equivalent to typing the 'pwd' command.
- It's important to use single quotes here instead of double quotes. If you use double quotes, the path that's displayed will never change, and of course that's not helpful at all. (As usual, using single quotes hides the $ from being interpolated by the shell.)
One other thing I should mention is that with this approach I intentionally leave an extra blank line between prompts, so if I just hit the [Enter] key repeatedly, I'll see something like this:
VALPRO:/home/al > VALPRO:/home/al > _
If that doesn't seem like a good thing, it really is. It makes for a nice separator between command lines, which feels right when you use a multiline command prompt like this.
There are more things you can do with a multiline Bash command prompt, such as show the date and time, but this simple approach has always felt the best to me.
Recent blog posts
- Free Scala and functional programming video training courses
- Free: Introduction To Functional Programming video training course
- The #1 functional programming (and computer programming) book
- The User Story Mapping Workshop process
- Alvin Alexander, Certified Scrum Product Owner (CSPO)
- Alvin Alexander is now a Certified ScrumMaster (CSM)
- Our “Back To Then” app (for iOS and Android)
- A Docker cheat sheet
- Pushing a Scala 3 JAR/Docker file to Google Cloud Run
- Reading a CSV File Into a Spark RDD (Scala Cookbook recipe)