[link|http://www.oreilly.com/catalog/upt3/|UNIX Power Tools], O'Reilly and Associates.
\r\n\r\nYes, it's a big-ass honkin' book, and not cheap. No, you don't have to read The Whole Damned Thing. Though it helps if you can be there for it.
\r\n\r\nThat text, plus Unix in a Nutshell (I'd recommend [link|http://www.oreilly.com/catalog/linuxnut4/|Linux in a Nutshell]) got me "over the hump" WRT grokking Unix. Once you're there, the manpages start to make a lot more sense (tip: man -Tps foo | mpage -2 | lpr prints the manpage in pretty-formatted Postscript, two pages up). The information is available elsewhere online. In particular, Jerry Peek's got some good online pages (he's a principle contributer to UPT).
\r\n\r\nCore concepts, IMO:
\r\n\r\n- \r\n
- You're an adult, look for it. Help is at: man (particularly man bash), info ([link|http://twiki.iwethey.org/twiki/bin/view/Main/InfoVsManpage|shudder]), apropos. Google, natch. Here ain't half bad either. If you've got a real distro, /usr/share/doc/ has a lot of stuff. I think Cygwin includes some of this. I've also started a bit of a [link|http://twiki.iwethey.org/twiki/bin/view/Main/CygwinEndUserQuickReference|Cygwin guide for Windows users], though it didn't get very far. \r\n\r\n
- Pipes. Output from one command can be fed to another. \r\n\r\n
- Shell globs. They happen at the shell. Commands (usually) don't see 'em, unless escaped. *, ?, \\, and [A-z0-9] have specific meanings to bash, understand 'em. \r\n\r\n
- Simple tools, simple tasks. My own most frequently issues shell commands: exit, ls, cd less, date, vi, apt-cache, man, dict, ssh, for expression, sudo, rm, dpkg, grep, bunzip2, sleep, host, bc, echo, while, mv, cp, scp, mkdir, wc, ping, irssi, ll, cvs, gpg, pstree, which, w3m, find, locate, kill, top, tar, apropos, time, egrep, ar, sort, head, file, sed, dfq, based on current history. \r\n\r\n
- Command-line editing (readline). I use emacs bindings: ^A == front of linee, ^E == end of line, ^W == kill word, ^K == kill to end of line, ^F == forward char, ^B == backward char, ^P == prior line, ^N == next line, ^R == reverse incremental search. That last is very, very useful. \r\n\r\n
- Really useful stuff: simple toss-off sed and awk scripts (cut can substitute for many of these). Bash 'for' loops (for f in *; do something to file; done). find/xargs. Piping. Command-line editing. \r\n\r\n
Learn your tools. Love 'em. Realize that cygwin is good, but it's still a bastard child.