Bash Prompt Customization and the Value of Personalization

2020-02-23

It really wasn't all that long ago that I'd never touched a command line before.
Circa 2013, I think I was still using Windows, and the closest I'd come to a
prompt was the occasional simple `.bat` script and the Python IDLE. It was good
enough for what I was doing, I guess, and I don't think I could have bumbled my
way into a more optimal path to my current knowledge.

When I first got into Linux, the terminal was understandably foreign. Having
spent a childhood and adolescence in a GUI, it was difficult to see the value of
having to type things in one at a time and---if things went perfectly---get
basically no feedback. (It didn't occur to me until writing this that the most
normal output in the world from a Unix utility is nothing at all.) It became
obvious even to me then that there was a lot to learn about this other world.

I'm still learning. I hope to continue as long as I can, in fact, and that's
part of why I'm writing this. In the few years since I first loaded up Ubuntu
and launched the terminal, I've been staring at basically the same prompt. It
looks a lot like this:

```bradley@enterprise:~/code/blog$```

or if things are getting serious, like this:

```root@enterprise:/home/bradley/code/blog#```.

This basic format has seen me through hours of debugging, configuring, laughing,
crying, and ragequitting. But the problem with something so familiar is that
it's hard to remember that it can be configured, just like anything else. There
was a time not long ago when I would have been afraid to irreparably damage my
system by trying to make changes so fundamental to my meager operation. I still
have the capacity to cause irreparable damage---it's one of my core
competencies---but I have less fear today.

The reason I got thinking about doing this is that I was watching a friend of
mine use the terminal on his machine (running Fedora, I think), and the prompt
he was running was amazing. I mean, this thing was like *a prompt from the
future*. It had a cool color scheme, it showed the current time, and it was
generally compact and neat. _"That would be so cool to have,"_ I thought.
_"Wait, I could totally have that!"_

I won't actually go over how to do the configuration here---this is easily
Google-able, which I know from related personal experience---but I will show you
what I did and yammer on a bit more about the value of configuring things for
comfort. Okay? Okay.

Here's my config:

```[\d \t] \u@\h \W \$ ```

This results in something like:

```[Sun Feb 23 10:12:24] bradley@enterprise blog $ ```

Benefits of this configuration over the default:

- shows the date and time that the prompt appeared
- only shows the current directory, not the path, thus limiting the length of
  the prompt (I've had some prompts that extend over several lines due to the
  length of $(pwd), and it's just madness. This is cleaner.)
- There is no third benefit.

I like this tweaked version better than the default for the reasons stated, but
it's also just nice to have personalized yet another thing about my machine.
Only recently have I realized that personalizing my space (digital or physical)
is actually not a waste of time, as I once thought. I take pride in minimalism
and simplicity, but the more nuanced version of that opinion is that you can
have those things while making things your own. I guess it's a human thing to
want the stuff around you to be yours, to be controlled. This same impulse
drives me to customize my Bash prompt as much as it drives me to look for art to
put on my walls or to consider whether or not my desk would be better over
_there_ rather than here. It's mindless and silly, but it makes me feel good and
hurts nobody. Really, what else is there?