The UNIX environment has two common commands for looking at disk usage - 'df' and 'du'. 'df' returns information about all mounted disks, and 'du' returns information about a given file or set of files. As installed in OS X, though, the 'df' and 'du' commands do not return easy to use information. For example, here's the 'df' output for one drive on my system:
Filesystem 1k-blocks Used Available Use% Mounted on /dev/disk0s9 3121344 1314624 1806720 42% /osxfiles
Wouldn't it be much nicer if you could have it output like this:
Filesystem Size Used Avail Use% Mounted on /dev/disk0s9 3.0G 1.3G 1.7G 42% /osxfiles
Read the rest of this article if you'd like to learn how to create a more usable "df" (and other!) commands.
NOTE: I have packaged four of the more useful of these utilities (ls, dircolors (sets the colors for the new ls), df, and du) into one downloadable archive. These are pre-compiled, and you'll just need to expand the archive with OpenUp or the command line (or the new StuffIt Expander). Move the files into /usr/localbin, and they should be ready to go. I have NOT included the 'man' pages, since I wasn't sure how to do that - read the GNU online help for info on each command, or compile the whole package.
Last night, as I began experimenting with possible successors to geeklog, one package (phpnuke) had an instruction step that read:
"Set all files to 666 permission; set all directories to 777." Although this is relatively trivial for multiple identical items (chmod 777 *), it's a bit trickier when files and directories are mixed in the structure, with sub-directories and sub-files, and different settings for directories and files. The phpnuke package installs literally hundreds of files, and probably 25-50 subdirectories. I was reduced to mass changing everything in a folder (chmod 666 *), and then setting the directories by hand. It took a while!
I was sure there was an easier way, but had no idea what that way might be. A post to the MacNN forums provided the answer, courtesy of "Icampbell":
find . -type f | xargs chmod 666 find . -type d | xargs chmod 777
This does exactly what I needed it to do. 'xargs' is an interesting command, and well worth reading up on ('man xargs'). It basically executes the command specified (chmod in this case) for each item passed to it (the results of the 'find' command, routed via the pipe '|' symbol). It's fairly easy to see how powerful xargs can be, given its ability to act on a series of things passed to it. One note of caution in this example - the 'find' command will search down through the directory structure from where you start, so make sure you want to effect EVERYTHING in that path if you try something along these lines!
In the terminal, it's quite simple - you can use the file command, like this:
[xperiment:~/Documents/downloads] berto% file download.php download.php: gzip compressed data, deflated, last modified: Fri Feb 23 18:17:34 2001, os: Unix
(Line break added to shorten the line width!) The file command looks at the file, and compares it to a database of types, and then gives you its best guess at the filetype.
In this real-world example, I couldn't figure out how to expand the file ... the file output lets me know I need to use gzip! For full information on file, make sure you check out the manual pages by typing man file in the terminal window.
"How do I perform Terminal commands on any items on my Mac that have spaces in their pathnames? Because Finder allows spaces in file and directory names, I'm often creating such with spaces but then if I try to cd to one in the Terminal the space kills the command. How is this done?"
There are three ways that I know of to handle this. They are:
Drag-and-drop the file or directory onto the terminal; this will preserve the spaces.
Enclose the path name in single quotes, like this:
cd '/Users/username/temp/directory with spaces'
Quote the space character with a backslash, like this:
cd /Users/username/temp/directory\ with\ spaces
Any of these will allow you to easily navigate files and directories with spaces in their names.
Here's a weird one. Tonight I tried (for the first time) to change the desktop picture. In the Dock & Desktop Prefences panel, I see a blank square under the "Desktop Picture:" header. It doesn't show the current, default one. I really want to change it to a basic pattern to try and accelerate the graphic speed of the old G3 machine OS X PB is on. Is this possible or do I have to select an image, and why don't I see the current image? Also, where is that image?
The boot image (the picture you see at startup) is held in /System/Library/Core Services/Resources/BootPanel.pdf. To replace it, simply create your own 640x480 PDF file, name it BootPanel.pdf, and save it to that same directory. You may want to make a copy of the existing screen first, of course!
If you want to 'cd' into some folder that's buried sixteen levels deep on your hard drive in the terminal, there are two ways to do it.
The hard way is to type:
Of course, you could also do this one line at a time. Either way, you'll end up typing quite a bit.
The easy way is to navigate to the folder in the finder with point-and-click. Type 'cd [space]' into your terminal window, and then drag and drop the folder from the finder into the terminal window. The full path will be displayed, and you can then just hit 'return' and the command will be executed.
You can also use this trick for files; if you want to compress something with 'tar,' just type 'tar [options-you-want] [space]' and then drag the file to compress into the terminal window and hit return. Very nifty, and very Mac-like!
"Oneota" posted instructions on how to change the system font in this MacNN forum. It requires a copy of PrefEdit (findable on macosxapps), and a couple of easy edits. If you mess up, the font change is simply ignored, so you won't cause any real trouble with your system.
This hack only works in Cocoa apps, so it won't help at all with the Finder or Explorer. Things like OmniWeb and TextEdit, though, should work just fine with your new font.
DragThing was my favorite launcher utility for OS 9. The author's been working on a new version to support OS X, and posted a screenshot back in December. A week or so ago, he posted some more shots (taken in OS 9) of the latest builds. Based on the screenshots, he's added some very nice features. He's also commented that he hopes to release the new version very close to March 24th's release of OS X 1.0.
This is great news (for me, at least) as the dock and DragThing together will make a great team to make OS X even more usable!