What is a very good UNIX primer for really learning shell scripting and some of the most powerful and useful command line tools that come standard with OS X?
I want to learn shell scripting, the differences between different kinds of shells, what the various folders in the UNIX directory structure are supposed to be for, what the various concepts upon which UNIX is based are, how to properly use XWindows, etc. etc.
So, I want a fairly advanced and comprehensive primer written for someone who has an advanced knowledge of computers but no UNIX knowledge.
My problem is that man-pages are written in a way that assumes you already know a lot of stuff. They just list out all the available commands in alphabetical order with basic descriptions of what they do, but they usually do not tell you which of those commands are more commonly used than others nor do they go into much detail about why you would want to use them. They usually don't give even a single example to show you what a properly-formatted command would look like.
What I would like to see in such a primer would be, for each UNIX command, several real-world examples of its usage on the command line and/or in a shell script, with an explanation of why it was used that way and how it could be tweaked to other purposes. (I realize it probably wouldn't have every UNIX command available in there, but you know, as many as possible would be nice.)
I would also like this primer to talk about how to download and install UNIX software onto Mac OS X. I realize that things like FINK are out there, but sometimes the FINK version is outdated and you want to roll your own. This can be complicated, but I would like to understand exactly what kinds of things to look for to modify an installation of UNIX software to run on OS X.
Finally the primer should describe the differences between the UNIX implementations on the various versions of OS X, and what the optional UNIX installs are for each version (such as Apple's developer tools, extra things that are only in OS X server, extra things that are only present if the user selected the optional UNIX stuff when installing Tiger, etc.).
Does such a book or online primer exist? If not what is the closest thing? What have you all found useful?
I am tired of having to google everything and dig around through forums where someone asks a question, then there are 99 garbage posts and one useful tidbit. I'm tired of reading various general UNIX guides here and there that are not cohesive and either talk to you like you're already a UNIX expert, or talk to you like a beginner leaving out the "confusing details."
My background:
I am an iOS developer. I can deal with C and Objective C, along with a smattering of Java and other stuff. I have been using Macs since 1984. I have done a little bit with VI, VIM. I know what a $PATH is. I know the basic UNIX commands, and realize that there are different shells. In the past I have used EMACS to compile Java code for an XWindows project. These days I do all my development in Xcode, but I want to do some server programming with PHP using my Mac as a testing ground, and also some C#/mono development, and I'm finding that my UNIX knowledge is weak.
Thanks
-=DG=-
I want to learn shell scripting, the differences between different kinds of shells, what the various folders in the UNIX directory structure are supposed to be for, what the various concepts upon which UNIX is based are, how to properly use XWindows, etc. etc.
So, I want a fairly advanced and comprehensive primer written for someone who has an advanced knowledge of computers but no UNIX knowledge.
My problem is that man-pages are written in a way that assumes you already know a lot of stuff. They just list out all the available commands in alphabetical order with basic descriptions of what they do, but they usually do not tell you which of those commands are more commonly used than others nor do they go into much detail about why you would want to use them. They usually don't give even a single example to show you what a properly-formatted command would look like.
What I would like to see in such a primer would be, for each UNIX command, several real-world examples of its usage on the command line and/or in a shell script, with an explanation of why it was used that way and how it could be tweaked to other purposes. (I realize it probably wouldn't have every UNIX command available in there, but you know, as many as possible would be nice.)
I would also like this primer to talk about how to download and install UNIX software onto Mac OS X. I realize that things like FINK are out there, but sometimes the FINK version is outdated and you want to roll your own. This can be complicated, but I would like to understand exactly what kinds of things to look for to modify an installation of UNIX software to run on OS X.
Finally the primer should describe the differences between the UNIX implementations on the various versions of OS X, and what the optional UNIX installs are for each version (such as Apple's developer tools, extra things that are only in OS X server, extra things that are only present if the user selected the optional UNIX stuff when installing Tiger, etc.).
Does such a book or online primer exist? If not what is the closest thing? What have you all found useful?
I am tired of having to google everything and dig around through forums where someone asks a question, then there are 99 garbage posts and one useful tidbit. I'm tired of reading various general UNIX guides here and there that are not cohesive and either talk to you like you're already a UNIX expert, or talk to you like a beginner leaving out the "confusing details."
My background:
I am an iOS developer. I can deal with C and Objective C, along with a smattering of Java and other stuff. I have been using Macs since 1984. I have done a little bit with VI, VIM. I know what a $PATH is. I know the basic UNIX commands, and realize that there are different shells. In the past I have used EMACS to compile Java code for an XWindows project. These days I do all my development in Xcode, but I want to do some server programming with PHP using my Mac as a testing ground, and also some C#/mono development, and I'm finding that my UNIX knowledge is weak.
Thanks
-=DG=-