There are similarities across Unix tools that I’ve seldom seen explicitly pointed out. For example, the dollar sign
$ refers to the end of things in multiple contexts. In regular expressions, it marks the end of a string. In
sed, it refers to last line of a file. In
vi it is the command to move to the end of a line.
Think of various Unix utilities lined up in columns: a column for
grep, a column for
less, a column for
awk, etc. I’m thinking about patterns that cut horizontally across the tools.
Tools are usually presented vertically, one tool at a time, and for obvious reasons. If you need to use
grep, for example, then you want to learn
grep, not study a dozen tools simultaneously, accumulating horizontal cross sections like plastic laid down by a 3D printer, until you finally know what you need to get your job done.
On the other hand, I think it would be useful to point out some of the similarities across tools that experienced users pick up eventually but seldom verbalize. At a minimum, this would make an interesting blog post. (That’s not what this post is; I’m just throwing out an idea.) There could be enough material to make a book or a course.
I used the word etymology in the title, but that’s not exactly what I mean. Maybe I should have said commonality. I’m more interested in pedagogy than history. There are books on Unix history, but that’s not quite what I have in mind. I have in mind a reader who would appreciate help mentally organizing a big pile of syntax, not someone who is necessarily a history buff.
If the actual etymology isn’t too complicated, then history and pedagogy can coincide. For example, it’s helpful to know that
vi have common syntax that they inherited from
ed. But pseudo-history, a sort of historical fiction, might be more useful than factually correct history with all its rabbit trails and dead ends. This would be a narrative that tells a story of how things could have developed, even while acknowledging that the actual course of events was more complicated.
Related post: Command option patterns
2 thoughts on “Unix via etymology”
In fifth grade we did a short course on Greek and Latin roots used in English words, to help build our vocabularies. For example, ‘-sect’ = ‘cut’, and that helps you figure out bisect, dissection, intersection, etc.. It sounds like that’s what you’re talking about.
@Johnathan: My wife used to teach a course like that.
That’s a good analogy.