bzip2 and KornShell fun
SoftwareI tweeted something to this effect a couple of days ago:
$ bzip something.tar
==> ksh93: bzip: not found [No such file or directory]
$ echo "GAH! One of these days...!"
I had a couple of people asking for clarification, and one particular eagle-eye cherry tweeter had a question about my choice of shell. So I’m going to tackle both in one post!
The error
The problem was I mistyped bzip2
, the ludicrously common *nix compressor. It’s seeing less use now that xz
doesn’t take too long on modern hardware, but you’ll likely still encounter it. I have two theories for why I routinely mistype it:
-
I almost always do
tar -cjvf
to archive and compress in one command, so I’m rarely invokingbzip2
directly. -
It’s close enough to
gzip
that I type it as such.
I’m avoiding just aliasing the problem away, because I’m concerned it’d just cement this incorrect neural pathway. I think I just need to make this mistake enough times to get it through this veritable skull of thickness.
The shell
Which leads me to the ksh93
in the error that I completely missed. Yes, that’s the latest iteration of the original KornShell by David Korn and contributors. I sort of let slip that I was using it as my daily driver back in February, while blogging about NetBSD HAXM:
Anyone who rocks the KornShell is awesome in my book, too.
I used and loved tcsh
for most of my *nix career. It was the default shell back when Mac OS X was awesome, and it’s still the most capable shell in FreeBSD base. As I wrote a decade ago:
If I need to do some shell scripting I use basic sh, but I always try to use tcsh as my interactive shell whenever possible.
This worked well, but I was also learning more Bourne shell script tricks, and wanted to use them in my interactive shell as well. tcsh would, understandably, bork at my Bourne syntax.
I had experience with the KornShell from NetBSD, so I started using it everywhere. It has Bourne compatibility, with a few interactive niceties. I installed ksh93 and left it at that, but have since learned there are a few offshoots, including the Public Domain pdksh
and MirOS mksh
variants.
This week is looking pretty slammed, but I’m going to install a few from ports and do some tinkering. I’d be keen to hear on Twitter if you have a preference and why.