You Must Be Bourne Again

2020-07-03

"Forgive me Father, for I have sinned, and I am no longer worthy to be called your son..."

Thus went the canned confession of the prodigal son in Jesus' parable. But before he was able to finish reciting those words, the Father had run to him, and decreed that a celebration must be made for the beloved returnee. Such is the lavish grace of God.

And I will freely confess that I need God's forgiveness for all manner of unworthy things in my life. But the confession I intend to make here is less spiritual and more technical. It is that I have been speaking of bash without really meaning bash at all.

I have been using the term as if it were precisely synonymous with "the shell". And we have spoken previously about the subtle difference between "the shell", "the terminal", and "the command line". But there is also a subtle difference between the shell program sh written for Unix in the 1970s, developed first by someone called Thompson, and then with extra functionality added by someone called Bourne (not that Bourne), and the bash shell, which was written by Brian Fox and released in 1989 as part of the open-soure GNU Project.

The first version is known as the Thompson shell, the next as the Bourne shell; but instead of calling it the Fox Shell, the GNU version was called the Bourne Again Shell or bash.

And as Jesus said: "You must be born again". But while Jesus' words are as true as the night he spoke them to Nicodemus, the bash shell has now been replaced as the default Debian system shell by dash, which is itself a Debian port of ash, the Bourne-compatible shell made by someone called Almquist.

But I myself actually use zsh, which is another extension of the Bourne shell, created by Paul Falstad, and pronounced with an American 'zee', so that it's a 'zee-shell' (like she zells on the zeashore).

We will talk about configuring zsh as your interactive shell another time.