Learning Unix for Mac OS X Panther
This book focuses on those of us in the Mac OS professional world who have become Unix system admins by default with the introduction of OS X, and could stand to have a handy UNIX reference nearby, particularly if the Finder freezes in Apple's latest version of their BSD/OpenStep blend of a UNIX operating system.
As the authors explain in the book, the best justification for understanding and using the UNIX components present is Mac OS X is the same as in any other UNIX-family operating system: power and control. The Finder (Mac OS X's graphical desktop manager) can't do everything, so this book provides information to help power users and technicians resolve issues, install software, or create an optimized experience, all through the Terminal.
Chapters 1 and 2 provide a very helpful tutorial on the Mac OS X Terminal application, from showing the benefits of customizing the Terminal, the concept of shells, UNIX command syntax, and other obscure but useful settings that strengthen the power of the application when accessing the BSD innards of Mac OS X. Arguably, these two chapters are the strongest guide on Mac OS X's Terminal application (as it relates to its UNIX roots) that I have seen in any Mac OS X book to date.
Chapters 3 and 4 handle understanding of the UNIX filesystem, administration and superuser access, privileges, handling external volumes, file and directory names and the like. Mac OS X, while a BSD at heart, doesn't map out everything in a traditional UNIX-style directory format--at least, not from the Finder's view. Through the Terminal, a user can see the underlying, otherwise-hidden UNIX directories. The authors go through some basic but very helpful situations such as changing file and owner permissions, which can be changed from the Finder with greater ease in Panther, but not with the same finesse as done from a command line.
The file management chapter moves readers through the classic commands for moving, editing, and copying files from the command line, which can be very helpful for administrators of Mac OS X systems who must attempt repairs by SSH, for instance, and don't have access to the usual graphical elements that generally make Mac OS usage so easy. The authors don't pick sides in the vi vs. pico debate, and just offer the basic instructions on how to use either for your editing.
The book continues with the same level of complexity that local system admins or power users require in issues such as printing via CUPS, handling processes that the Finder doesn't show, using the X11 application, using Fink (a Debian-style installation application) installing OpenOffice and GIMP, using FTP and secure shell, using Pine and Lynx, and more.
For a book of just 168 pages, the authors pack quite a bit on making a Mac OS X system work from its Terminal roots. New Mac OS X system administrators will find this book most useful, particularly if their UNIX experience is lacking or radically different from what Mac OS X presents. Experienced *NIX users who bought a new Mac may find the book a good intermediary to demonstrate how Mac OS X Panther differs from the *NIX boxen they've used in the past.
You can purchase Learning Unix for Mac OS X Panther from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
The Finder (Mac OS X's graphical desktop manager) can't do everything...
"Yes it can."
-Steve Jobs
How does that help you if you don't know what command you need to use.
Win a signed Stephen Carpenter ESP Guitar from the Deftones: http://def-tag.com/?r=0008781
That's a new one to me. I must find some pico users to have flamewars with over that one...
I've gotten a shiny new iMac with OS X.3 on it, and I'm still learning the ropes. I'm slightly amazed at all the wierdnesses I can do with it, you can script almost anything with Applescript, and there's a million little details that do wierd shit, or behave as I'm not used to. So where is the Learning Mac OS X for the unix geek? The unix and mac world is so divided on the machine, yet works together seemlessly.
I haven't had my coffee yet, I'll ramble on about my experiences with Mac OS X elsewhere. But my question remains: what are good books/resources for the person who is already a unix geek?
Using the Mac OS X Terminal (HTML) or Using the Mac OS X Terminal (PDF)
Consensus is good, but informed dictatorship is better
man finger
man touch
man slurp
man unzip
I find it best to unzip first.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
I've seen a few of these introductory unix books for Mac admins, but what if you need something more? If you have trouble configuring Apache, the Apache website doesn't help much because OS X has files in different locations. I know how to use ls... does this or any other book get into a deeper level?
I recall being at an Apple seminar once where they had demo of a then preproduction version of MacOS X. The audience consisted of local Mac support techies as well as casual users. There were many glitches throughout the demo, and many explanations from the presenter as to why MacOS loaded so slowly etc etc. He used this time to explain to the audience that the MacOS kernel is based on Unix. I wasn't sure at the time how many people in the audience would grasp that concept, but it became painfully clear near the end of the presentation when he finished things off by opening up a terminal window. I looked around and saw nothing but stunned, confused looks on people's faces. The presenter followed by explaining how you could now use familiar unix applications like telnet and vi all within MacOS X. After then explaining to someones question regarding just what telnet and vi were, someone else followed with the question, "So...if someone on the Internet wanted to hack my computer, could they open up one of these 'terminals' and use 'telnet' to hack into my Mac?". Needless to say the presentation ended late that day, and I got the impression most of the audience left feeling rather uncertain about what just happened.
I think a Unix for MacOS publication would be useful for those migrating to Apple from some (any) other platform. For casual Mac users? No way is this going to be of any use to them. If they were so inclined, they'd already have some experience on another OS by now.
www.brownsauce.org
I use nano, and I flame the pico users!
Pfff. Real men cat > filename and do it right the first time.
Trolling is a art,
In the end, the terminal is just another tool on your system. Just because someone works mainly with a GUI doesn't mean that they are not able to comprehend the command-line. Yes, the first couple of times that someone uses the command-line they are going to make some dumb mistakes but if they have a decent guide then those mistakes can be kept to a minimum and have minimal negative impact.
You might as well say that it's not worth if for a person who has never programmed to learn BASIC or C. If they don't take the first steps then how do they learn in the first place? If you are going to do anything on a computer you have to start somewhere, no matter if you are used to a GUI or not.
Sapere aude!
Then how are they suppose to learn if we don't teach them?
52 Weeks, 52 Religions with John Hummel
I personally like the ones with homoerotic overtones: man touch man perl man unzip man units man curl man flex man tcl man gawk man paste man mount Why do I have the sudden urge to write a program called "chowder"?
> In the end, the terminal is just another tool on your system.
> Just because someone works mainly with a GUI doesn't mean
> that they are not able to comprehend the command-line.
How true!. I've been a mac girl for 15 years or more, a choice I made from the sheer superiority of the mac gui when I started in prepress, in the 1980s. Nothing touched it then, though many other OSs have caught up and are just as usable today. It's experience that kept me employed, well paid and doing what I love. I got hold of OS X and nutted through cli stuff for a few years now, and use it sometimes and the gui sometimes. You're right, they're both tools that do a job, some can be done best in one, some best in either, and some don't matter one way or the other.
I hadn't touched a cli since DOS days, and even then I knew little more than dir, copy, cd and format. Now I co-admin my employer's non-X crippled linux servers. Most people are intelligent enough, and to me what counts more than experience is interest. I think if someone's interested enough to open terminal.app and poke around then it's just a matter of learning.
That's what brains are for, and we all have them!
Uh, sure it does. Go to File->New Project then scroll down and choose Standard Tool. Boom, a project is all set up for you to build a basic C-based command-line tool. You can also choose C++ Tool, CoreFoundation Tool, CoreServices Tool, or Foundation Tool for different libraries and programming languages.
Sapere aude!
What is wrong with paying a few bucks to replace a brand new mouse that came with the system you just paid a couple of thousand dollars for?
That statement would ensure the death of the command line wouldn't it? I don't see many schools these days offering anything but Windows and Macs for students to learn on.
Well done, mister tar-everybody-with-the-same-brush. I fucking hate people trying to categorize me based on the fact that I use a Mac.
I don't own one because I want to join some elitist club of "creative professionals", I don't own a Mac because I think that it's somehow screwing Microsoft, I don't own a Mac because it has a candy-coated GUI, I own it because it has a solid and proven operating system derived from openstep and because it came properly set up for the hardware inside. Which for me is a prime consideration when buying a laptop.
Maybe the next laptop I buy will be x86 and Linux based again (this machine has had more than it's share of hardware failures) but OS X has always been rock solid for me, and the drivers and power management have always worked as they should, which is more than you can say for most x86 laptops even when running the OEM setup.
To me, it's just another Unix system on another flavour of hardware. Would you be telling me that I shouldn't be playing with the command line if I'd bought a SPARC laptop?
It's only after years of experience with other operating systems, other computers, that I made the decision to switch to a Mac. Mac users I find can be very technical, just 'differently technical'. Technical doesn't mean "knows *nix". Maybe here, but not in the rest of the big wide world. . .
Curious about other writing I've done? There's some useful free info online at 404 error page, particularly for Apache admins, and another book that slashdotters will appreciate is my Wicked Cool Shell Scripts. And, yes, Virginia, the latter includes specific scripts for Mac OS X too.
I think it's important that MAC OS X users learn to use the UNIX command line. Even if they don't like it, they need to respect it. If it wasn't for OS X being powered by UNIX, it would not be anywhere near as stable as it is right now. I'm not "dissing" OS X, because I use it and love it, but any user shouldn't be without the knowledge required to run the UNIX command line.
Why? Why would my parents, who only do application level stuff (web browsing, word processing, email, games), need to learn the "power of Unix"? They're non-technical end-users. They aren't concerned with harnessing the power of their machine, and nor should they have to be.
Just so you know, the convention of /Applilcations and /Users is from NeXT, and makes logical sense when you think about it. All the unix tools are located in their standard directories (/usr/bin etc etc) but a good chunk of users aren't going to use them, they're going to use their GUI apps and such. Why would you want to put all your terminal apps in the same folder that your GUI apps are?
/usr/bin, if I added them to my Applications folder, I'd have 700 items in my folder. Now as a (hypotheticaly) non CLI familiar user, why would I want to have 700 items in my folder where I put my programs when I don't use most of them? I wouldn't. So maybe I might start deleteing them, or maybe I'll make folders to organize them, or move them. And then what? What happens when I install an app that calls those programs?
I have 644 items in
That's why there's a user level set of folders that aren't the standar UNIX convention.
T Money
World Domination with a plastic spoon since 1984
If you have trouble configuring Apache, the Apache website doesn't help much because OS X has files in different locations.
/etc/httpd, log files are in /var/log/httpd, DocumentRoot is /Library/WebServer/Documents, and ScriptAlias /cgi-bin is /Library/WebServer/CGI-Executables.
/etc/apache, log files are in /var/log/apache, DocumentRoot is /var/www/htdocs, and ScriptAlias /cgi-bin is /var/www/cgi-bin.
/etc/httpd/conf, log files are in /var/log/httpd (symlinked at /etc/httpd/logs), DocumentRoot is /var/www/htdocs, and ScriptAlias /cgi-bin is /var/www/cgi-bin.
/usr/local/apache/conf, log files are in /usr/local/apache/logs, DocumentRoot is /usr/local/apache/htdocs, and ScriptAlias /cgi-bin is /usr/local/apache/cgi-bin.
Apache's files are in different places on different flavors of UNIX or Linux distributions - and they're different still if the administrator compiled from source.
On Mac OS X 10.3, configuration files are in
On Slackware 8.1, configuration files are in
On RedHat 9, configuration files are in
By default on most systems, if you've compiled from source and haven't changed any paths, configuration files are in
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
Tell your SO that the command line in MacOS X is required only to perform tasks he/she wouldn't want to do anyway. It's for all those computer nerds who just enjoy doing these *things*. But whatever he/she does on OS 9, he/she can also do in OS X, without never ever clicking on the Terminal icon. Tell him/her, that in OS 9 there was also something that computer nerds needed to do *things*, it was called ResEdit. Did he/she ever had to use it? Is he/she even aware of its very existence? No? Good. The same will be with the Terminal in MacOS X.
But just in case, buy him/her a book like this for next birthday or valentine. Maybe he/her will finally like it? Just imagine this kind of foreplay: you and your SO together in bed, doing *things* on two powerbooks connected via Airport...
Where does this perverse notion come from that GUI users are inhernetly incapable of using a command-line?
There's a deeper cultural thing going on here. On this site it's not uncommon to see programming-types bash (pardon the pun) users of more graphically-oriented tools (like Flash) with incredible zeal. It's as if there's some sort of Berlin Wall between creative and techinical people, and any attempt to bridge the two is doomed to failure or must be opposed.
This is nonsense.
This seperation of arts & humanities from the sciences is a relatively recent phenomonon. It's when people work with both sides of their brains that beautiful things really start to happen. Look at Leonardo Da Vinci if you want the best example. Look at the power of tools like Flash when you get people working on it to use its more powerful features like XML parsing with ActionScript, remoting, video etc. Look at musicians who can manipulate their creations electronically. Look at the animators who produce beautiful work on the big screen like Finding Nemo, Babylon 5 etc.
A lot of creative Mac people will benefit from having a deeper understanding of the way their command-line works, and if they're approaching it from a different angle than traditional Unix fans then so what? Isn't a fresh persective a good thing? Likewise I think that a lot of Unix fans could do well to visit more art galleries and explore their creative side a bit more. It may make better programmers out of them.
For the record, I work on both sides of the fence and do an equal amount of creative and technical work.
Drill baby drill - on Mars