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.
I didn't know grep! I've seen grep used as a verb enough times that the word "grep" just intuitively seems to describe what it does: grep things.
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.
You'd think so, since that's the main thing it's used for anymore. But check the output of --help. Changing case, ascii to ebcdic, doesn't really fit the bill.
I would start on media files, ideally formats that have a little bit of forgiveness where they'll try to render or play arbitrary sequences of bytes rather than just failing to parse them.
It's actually “convert and copy” but the command name `cc` was already occupied by “C compiler”, so they just incremented each letter to `dd`. `dd` can convert-and-copy any device, not just disks.
As it's inconceivable to conflict both Ritchie and the jargon file when talking about UNIX history, I stand corrected. However, I do remember seeing 'cc was already taken, hence dd' in some old linux documentation.
As can be seen at https://unix.stackexchange.com/q/6804/5132 , this wrong answer is still more popular than the right one that is supported by Dennis Ritchie. A salutary lesson in believing things to be true because they seem humorous or are popular.
Forgive GP for not knowing which Bible to read and at whose altar to prostrate themselves. Like every religion Unix has its goyim and infidels that need to be flogged and flagellated so they can achieve proper enlightenment.
It shouldn't be because it will work with normal files just fine. E.g. if you want to image a disk, `dd if=/dev/sdc of=sdc.img` and silly things like `dd if=/etc/passwd of=/root/~passwd` work too. Also it has a convert function so it's not strictly just for duplication.
Nope. As per Dennis Ritchie's 2004 comment in https://groups.google.com/g/alt.folklore.computers/c/HAWoZ8g... , the "dd" command's name is a joke about the DD ("Data Definition") card in IBM's horrid Job Control Language (JCL). You'd need a DD card for each and every file that your program was going to access, and the name had to be specified ahead of time.
Nothing says it can't be both "incremented cc" and "DD from JCL" - especially when you consider the way the options are given, which I've heard from some Bell Labs sources long ago originated as joke on JCL
Same--up until now I "knew" that grep stood for "GNU regular expression parser." Always good to have a reminder to question all the other things we "know."
And it bears mentioning {n,g,t}roff is a reference to RUNOFF, a CTSS formatting program which later made it into other operating systems at least by name if not an actual port. [1]
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.
"Concatenate" seems redundant to me, as the Latin prefix "con" means "together" and the root "caten" is a chain. So technically it's "chain together", but a chain is already a thing that is linked together.
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.
Links in a chain are already together. You absolutely can chain 2 things together that are not the chain itself. Where chain is used as a verb to describe the tying of things together. Saying chain together absolutely makes sence. Example "His ankles were chained together".
I thought maybe they chose "cat"enate to avoid a naming clash with a "con" command but looking back through the early Unix sources there doesn't appear to have been one.
Maybe it was to avoid confusion with Lisp's "cons" which conventionally (or always? It's been a while...) adds to the head of a list, whereas "cat" is a bit closer to adding to the tail. This is pure speculation on my part.
The dictionary defines it as "link together in a chain or series", but in practice on many UNIX systems it's come to mean simply, 'write to stdout' which unless you get into redirection, is just a user's terminal.
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.
I'm not arguing that, but to do what most people think of w.r.t what comes to mind when you talk about cat requires redirection.
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.
cat has been (ab)used to output files to a terminal for a long time. BSD 1 has a program cat3a [0] that Bill Joy wrote in 1977(!) to quickly write files to an ADM-3A terminal [1]. If you look at the keyboard it has arrows on the HJKL keys which is where vi got its navigation from. (Also the escape key was next to Q!)
On my Ubuntu laptop, egrep is just a script that calls grep with -E. Did egrep absorb grep? Is the old grep still commonly installed with any distributions?
EDIT: and fgrep also is a script that calls grep, with the F argument.
The GNU tool-set merged all three into grep, and kept the fgrep and egrep names for backwards compatibility. This is described in the man page in this manner:
> 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.
That sure sounds like GNU. Instead of building tiny tools that each do one things, just make one big tool that can do a bunch of things depending on which of a hundred flags you use. Not to shit on GNU; I use GNU/Linux on all my own computers. But I notice that a lot of GNU software suffers from severe feature creep.
For anyone interested in the history of UNIX development, Brian Kernhigan's "UNIX: A History and a Memoir" is a quick and enlightening read. I loved the history, and I came away with a better understanding of today's cli environment as well.
I found the title a little misleading. A better title might have been "A History of Bell Labs Center 1127".
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.
Some of these seem fairly intuitive once you learn the origin - others, like "biff", you'd never guess.
> "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.
> 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."
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.
dvd as an abbreviation for Dasvidaniya, which in Russian means goodbye. Dasvidaniya is actually two words, not one: до (until) and свида́ния (meeting / date). So literally it means “until the next meeting“. Dasvidaniya is a formal way to say goodbye and should be used with people you don't know and those older than you.(Cribbed with Google's help from learnrussianwords.com.)
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".
dcheck, icheck, and clri were in 6th Edition. You can read about them in the Fielder and Hunter book on AT&T Unix System 5 Release 4, which describes them as "antiques" that one should only use if one's Unix has no fsck. (-:
78 comments
[ 2.8 ms ] story [ 159 ms ] threadhttp://www.mutt.org/
more -> less
pico (pine composer) -> nano
sh (Bourne) -> bash (Bourne again)
yacc -> bison
ETA:
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...
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...
https://www.systutorials.com/docs/linux/man/1-dd/
A typical example, from https://programmerspub.com/learn/mainframe/jcl/the-dd-statem... :
https://www.youtube.com/watch?v=NTfOnGZUZDk
See also the 'HISTORY' section in BSD manual pages, then check their GNU clones.
It's not really possible to do in a stateless/streaming way.
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.
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:
will print the contents of file1 to the standard output.The command:
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
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.
> "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.
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.
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.
[0] https://en.m.wikipedia.org/wiki/Perl#cite_note-63
I can never remember whether "bc" or "dc" is the program I want when I think I might need a little calculator.