Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Excellent! I think I know Unix pretty well, but it would be great if someone had a directory of common use scenarios that one could look through, rather than using Google and wading through horrible forum posts...


sort by: page size:

Can't remember whether I had seen UnixWorld earlier or not. Thanks. Will check it out.

I wish I had this when I was learning unix. Not that it won't be appreciated now.

As someone who should learn more Unix, this is great to know. Thanks.

Thanks, I didn't know that existed! I might have to cut a corner off my Unix guru card :)

As someone very new to UNIX in the intimate sense, stuff like this excites me. Thanks.

As a learning experience this is a great idea. I think, however, that it would be really useful to note, when applicable, what standard UNIX tool just does a job for you (and presumably learning that tool, too)---about 1/3 of these are either completely handled by a standard tool or easily handled with a bash one-liner, and knowing when not to reinvent the wheel is often most of the battle. :)

(I realize that in the intro Zed talks about people being better at finding than building tools. My suggestion is only that you can help even more people by pointing out both paths.)


This is really handy. Is there a similar document on the UNIX ideology/file structure?

The best resource thus far may be "The Art of Unix Usability" by Eric S Raymond which can be found at http://www.catb.org/~esr/writings/taouu/html/ and was coincidentally posted by user diggan at https://news.ycombinator.com/item?id=8591072 shortly before I made this post.

Hopefully including this here will help some future googler.


As much as my initial reaction was along the lines of "oh god", actually I think this could be really useful for exposing legacy (or just unix-tied) tools to less savvy users.

Pragmatic situations basically.


This makes me wonder, is there some kind of walkthrough of the early unix code? That would be really interesting to read.

Very, cool site. I have used it before, and it is nice to see someone posted it! As a meta note, if you are into this type of thing, I have created a couple screencasts along the same lines:

  Crash Course on the Filesystem Hierarchy Standard [1]
  Crash Course on Common Commands [2]
  Hard and Symbolic Links [3]
[1] http://sysadmincasts.com/episodes/12-crash-course-on-the-fil...

[2] http://sysadmincasts.com/episodes/13-crash-course-on-common-...

[3] http://sysadmincasts.com/episodes/16-hard-and-symbolic-links

There were also many great threads on HN about UNIX commands:

  Unix Commands I Wish I’d Discovered Years Earlier [4]
  Useful Unix commands for data science [5]
  Favorite Unix Commands [6]
  Top Unix Command Line Utilities [7]
[4] https://news.ycombinator.com/item?id=6360320

[5] https://news.ycombinator.com/item?id=6046682

[6] https://news.ycombinator.com/item?id=5022457

[7] https://news.ycombinator.com/item?id=4985393

Cheers


For learning this side of Unix, I've found the following very helpful (note that this is a bit BSD-centric):

1. _The Unix Programming Environment_ by Kernighan and Pike. The best overall intro to the pipes, shebangs, and other assorted command line stuff in Unix. Very old school, but still very relevant - those are the root of many of Unix's strengths. (K&P's _The Practice of Programming_ is also excellent, though not as specific to Unix.)

2. _Advanced Programming in the UNIX Environment_, 2nd ed., by (the late) W. Richard Stevens. This and man pages will go a long way.

3. The man pages themselves. It's generally understood that OpenBSD's man pages are particularly well written, but if you're using Linux and the GNU userland, there will be lots of differences in the details.

4. The 4.4BSD "Programmer's Supplementary Documents" (PSD) - This is a collection of papers and man pages. While some are out of date, and some are mainly of historical interest, the introductions to tools such as make, lex, yacc, gdb, etc. are quite good, and often a tenth the length of the corresponding O'Reilly book. (These papers may be installed with your distro. OpenBSD has them in /usr/share/doc . I bought the book used for a couple bucks.) There are also "User's Supplementary Documents" (USD) and System Manager's Manual (SMM) collections, with papers on configuring sendmail, using vi, etc.

5. _The Art of Unix Programming_ by Eric S. Raymond - I recommend this one in spite of finding ESR incredibly irritating. It's a very good conceptual overview of the big design ideas in Unix and their ramifications, albeit one interspersed with narcissistic soapboxing by the author.

In general, using a Linux distro with a strong emphasis on having a friendly GUI layer can keep you at arms length from really learning Unix. Dig around in /etc. Learn to use cron and ed. (No, really.) Get your hands dirty.

I would also highly recommend learning a scripting language that integrates well with C (some people like Perl, Python, or Ruby, I prefer Lua), because really using Unix well is going to involve some C. Working with C isn't scary unless you're trying to build a large system in C - try instead to break it up into a suite of smaller programs, rather than one monolithic one. Take advantage of pipes and all the other existing Unix infrastructure. It's there to help keep complexity at bay.

Mostly, though, tinker and explore.


Sort of on topic...Does anyone know of a good interactive resource for learning some of the tools that are included by default on UNIX systems? RTFM is useful, of course.

Thanks for the offer. I'm completely pro unix! The problem is more with presenting this in an enterprise palatable way - VMs are a bit of a grey area.

unix noobies!

unix system resources

Unix has a manual, you know.

This post convinced me to get off my butt, and better learn the Unix tools that I have available. I hope there are some follow up posts going into the specifics of each tool.

The problem with asking Unix users about their tools is that you'll get a long list, and the interesting part is more about how they connect them. While I personally would be interested in a long treatise on how he combines shell-scripts and plubming actions in acme to get his coding/documenting/project management work done, this is probably a bit too long (and maybe technical) for a usesthis post.

It's certainly easier with your average Mac user's "I write my code in TextMate, use Things for GTD and manage my foodie photo library in Sepia Extreme".

next

Legal | privacy