Why use the terminal in daily non-programming life

Disclaimer: I'm a Windows boy awaiting his first mac. I never bothered learning/using command-line interfaces.

I've been looking at the Terminal Tips and Tricks topic and I don't see how any of those commands would be faster than using the GUI.

For example, someone explained how to search with spotlight, using the terminal. How is this better than just using spotlight?

Could you guys give some real-life examples of situations where you really benefited from your terminal knowledge ?


Solution 1:

Aside for development-related purposes, the command line is an excellent tool for automating actions, scripting, and a host of other things that are probably faster than doing them in say, the Finder.

For instance, sometimes I'll be in a folder and want to remove a certain set of files (say, Hello-1.jpg, Hello-2.jpg, Hello-3.jpg, and so on). In the Finder, I'd have to manually select all these files (my Finder is normally set to icon view, so it's a pain to select many files), then move to the trash (granted, I do use the shortcut), and then empty the trash (again, shortcut). For some people, this is convenient enough, but when you get used to using the Terminal, you find that simply typing rm Hello-* is a much faster way to do it.

Of course, this is only one example (a complicated process like moving files to a server or batch resizing photos will gain even more from using the Terminal), but the more you'll look into the topic, the more useful you'll find it. If you're willing to adopt using the Terminal, there's really no reason not to (you'll get slightly less productive in the beginning, but you'll get much better fast).

Solution 2:

Many people coming over to Mac OS X come from a Unix-ish environment and prefer terminals, so for them there are command line interfaces to many things. If you prefer to stick with the GUI, no problem.

Solution 3:

The command line often has more (and different) options than the GUI tools. Apple's done a good job of giving you the capabilities and tools a normal user needs in the GUI. If you want to do unusual things, it's often missing capabilities you need; for example, I do a lot of sysadmin type work, and often need the additional options that shell commands give.

Here's a specific example: if I need to move someone else's files to a different disk, I want to keep them as the file owner. If I use the Finder, I'm going to wind up owning the copied files; if I use sudo cp -Rp, it preserves ownership and permissions.

Another example: not all preference settings are available in the GUI, but the defaults command can set anything that's stored in the Apple-standard plist format preference file.

Mind you, there are plenty of things that're easy to do in the GUI, but hard/impossible in the terminal. If you want all of the capabilities of OS X available to you, you need to be fluent in both GUI and terminal.