In Unix, what do some obscurely named commands stand for? (2018)
kb.iu.edu
kb.iu.edu
> "I can confirm the origin of biff, if you're interested. Biff was Heidi Stettner's dog, back when Heidi (and I, and Bill Joy) were all grad students at U.C. Berkeley and the early versions of BSD were being developed. Biff was popular among the residents of Evans Hall, and was known for barking at the mailman, hence the name of the command."
Considering the command is used for mail notifications, it's actually quite clever.
TIL the words concatenate and catenate exist, although they seem to have almost the same exact meaning
My Latin is rusty, but IIRC "con" can optionally just be added for emphasis, e.g. "iacere": to throw, but "conicere":to hurl. Maybe that's what was done here.
I get that the big metaphor was 'small pieces, loosely joined', but this one has always seemed half-baked to me - e.g, it's often too small to be useful without a bit more effort by you, the person typing things.
From the man page:
The command:
cat file1
will print the contents of file1 to the standard output.The command:
cat file1 file2 > file3
will sequentially print the contents of file1 and file2 to the file file3, truncating file3 if it already exists. See the manual page for your shell (i.e., sh(1)) for more information on redirection.I can't remember for the life of me why, but I was shocked.
[0] https://github.com/dspinellis/unix-history-repo/blob/BSD-1-S... [1] https://en.wikipedia.org/wiki/ADM-3A
For those who are into history, if you want to visit historic Evans hall, where a lot of the early BSD work was done, do it quickly.
They want to tear it down soon. They are already working on plans for replacement and it will be the highest priority building project at UC Berkeley when new construction funding is released. Sadly, the building is seismically unfit.
It's a brutalist masterpiece, that's for sure.
> (and I believe the Unabomber taught there!)
That is a common myth that even the University pedals, but turns out it's impossible. He taught at Cal in 1969 and the building was erected in 1971.
Turns out he actually taught in the temp buildings the math department was in when the built the building, which have since been torn down.
I was hoping dd would be listed.[0]
Edit: digging a little deeper into [0], there's a Unix Acronym List linked [1]. There seems to be various definitions for dd. One definition says that dd stands for copy and convert, but since cc was already taken for the C compiler, dd was used.
[0]: https://unix.stackexchange.com/questions/6804/what-does-dd-s...
[1]: https://groups.google.com/forum/#!topic/comp.unix.misc/LbLTa...
A typical example, from https://programmerspub.com/learn/mainframe/jcl/the-dd-statem... :
//OUTPUT DD DSN=PROGPUB.FLATFILE.OUTPUT,DISP=(NEW,CATLG,DELETE),
// RECFM=FB,LRECL=80,SPACE=(800,(2,5))See also the 'HISTORY' section in BSD manual pages, then check their GNU clones.
EDIT: and fgrep also is a script that calls grep, with the F argument.
I would guess the various BSD distros have traditional separate greps.
FreeBSD bsdgrep https://svnweb.freebsd.org/base/head/usr.bin/grep (see the makefile for build options, and note that it does egrep and fgrep too)
FreeBSD GNU grep https://svnweb.freebsd.org/base/head/gnu/usr.bin/grep/
NetBSD has bsdgrep only http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.bin/grep/ (observe nothing but the Attic in src/gnu/usr.bin/grep)
OpenBSD too http://cvsweb.openbsd.org/src/usr.bin/grep/
4.3BSD-Reno and 4.4BSD are complicated - looks like the Bell Labs separate greps have been moved aside in favour of a replacement unified grep by James Woods (not GNU grep) -https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/sr... - https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/src...
There is no grep in 4.3BSD-Net/2 which was the first mostly complete unencumbered BSD release and the original basis of the open source BSDs - https://minnie.tuhs.org/cgi-bin/utree.pl?file=Net2/usr/src/u... - so they adopted GNU grep to fill the gap as you can see in the FreeBSD-2.0 source https://svnweb.freebsd.org/base/release/2.0/gnu/usr.bin/
> In addition, two variant programs egrep and fgrep are available. egrep is the same as grep -E. fgrep is the same as grep -F. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.
https://www.amazon.com/UNIX-History-Memoir-Brian-Kernighan/d...
A large chunk of the book is anecdotes about the people who worked with Mr. Kernhigan, most of which are delightful. I highly recommend the book. There's a huge section on how they had to hack the hell out of their new printer to get it to work properly. Printer drivers have been crap and the hardware cursed since the invention of printers.
more -> less
pico (pine composer) -> nano
sh (Bourne) -> bash (Bourne again)
yacc -> bison
The wonderful thing about tiggers
They're loaded with vim and vigorETA:
apache (a patchy server)[1]
emacs of course is Editor MACroS, but it's got a few community-provided backronyms, I'm partial to eight megabytes and constantly swapping and escape-meta-alt-shift.
[1] http://xahlee.info/UnixResource_dir/open_source_rewrite_hist...
https://en.wikipedia.org/wiki/TYPSET_and_RUNOFF
I always thought it was quite clever that the macro switch to roff is -m and therefore to format man pages, you run roff -man. Publishing my resume in man format didn't get the reaction I thought it might. Most people just asked for it again in some other format and only one or two people only ever got the joke that a UNIX sysadmin's resume was in -man format.
dvd removed files in Unix Version 6 and earlier. If memory serves, it operated directly on the file system data structures and was useful for recovering when the file system got "stuck".
I checked http://man.cat-v.org/unix-6th/ - nothing shows up.
This reminded me of the `clri` command which deletes an inode by number, reclaiming it if it is unlinked in the filesystem, if I remember correctly.
I can never remember whether "bc" or "dc" is the program I want when I think I might need a little calculator.
It's not really possible to do in a stateless/streaming way.