Here’s my favorite line from an article Life on the Command Line by Stephen Ramsay:
I also don’t do this [work from the command line] out of some perverse hipster desire for retro-computing. I have work to do. If my system didn’t work, I’d abandon it tomorrow.
That’s refreshing. Some of the more ardent command line advocates give the impression that they use the command line out of pride rather than out of a desire to get work done. Ramsay is recommending his way of working, not bragging about what he’s able to do. He has some interesting ideas, especially in his follow-up article The Mythical Man-Finger.
By the way, I’m no command line wizard; I’m a fairly typical computer user. On the other hand, my use of the command line and Emacs has been increasing.
Haha. That’s a pretty flexible phrase too:
“Perverse hipster desire for minimalism”
“Perverse hipster desire for the obscure”
“Perverse hipster desire for scarves”
The command line belongs, I think, to a class of tools where it’s easy to use it minimally, and easy to use proficiently, but the intermediate level of knowledge isn’t stable over time. At that intermediate level of use, you’ll be frustrated by having to look up things all the time and by being blindsided by side effects from combining tools. So you end up going back to minimal use, or you take the time and effort to really grasp what’s going on, at which point you become proficient.
Either approach – minimal to no use, or proficient, possibly preferred use – is fine, and depends on your taste and the particulars of your task demand. But select one or the other, or you’ll be frustrated by trying to stay in that unstable intermediate level.
Before I retired I worked for a boss who tried to get me to give up the command line, reasoning that because he (and my co-worker) were not proficient in its use, I should restrict myself to tools with which they were comfortable. I refused, reasoning that neither of them could program their way out of a paper bag and that restricting my use of tools to the familiar would prevent me from doing my job. There are things that can be done quickly with a few keystrokes that are more clumsily done with a mouse and their inability to learn the tools of the trade is not a valid reason to remove them from my repertoire.
Over the last 12 years of managing information systems for HealthCare, one of the strongest things I have believed in is that all my new hires work for the first 30 days using the command line process to do their work in the system. It teaches them the what, how, and why of the system so that they gain a good solid knowledgebase. Also should the Win32/64 tools go south, they can still do their jobs without all the pretty screens. Its worked out great, and for it we have stronger and more skilled SE’s overall. Viva La Command Line!
I find it amusing that “Perverse hipster desire” abbreviates to Phd. What’s your Phd?
I am a software developer and usually have more shells open (I use RXVT for my terminal software and prefer BASH when available) than any other type of application while working, most days. And like the OP, this is not because I think it is cool (I am a programmer, not very cool and nobody ever sees me working) but because it always seems a clearer window into what I am doing than some GUI representation. Sometimes seeing exactly what is happening is better than seeing a pretty picture and assuming the right thing is happening, for me at least. For convenience I do use Midnight Commander a bit inside the terminal, as it is just faster for somethings while still providing a clear view of what is going on. That said, I also spend a lot of time in Eclipse and the oXygen XML editor, and Chrome over Lynx for sure.
So ++ on the right tools for the job theme these posts have been following.
Command line? Seriously… do you believe the earth is flat? That battle has been decided decades ago my man. You can bark at the moon, but it doesn’t make it mashed potato’s. (you can’t make your theory work… you can’t go back in time and say “it was better, so lets all go back!”
i love command line’s ability to get things done. if you run linux you will often find yourself diving into the command line, you may be able to do just about everything with a gui in KDE for instance but if you need advice someone is gonna give you command line advice not gui advice. i mean try renaming every file in a directory with 1,000 entries to a number using a gui, you will be there for a long time, while on command line its 1 line and its done. same for converting an entire 1000+ file directory of .flvs into .mp3s (something i have needed to do from time to time…) with a gui you would have to load the file, select convert, select your output and save location. cli its one line and it does em all. walk away, get some tea make a sandwich, come back and its done.
Just wanted to point out that some Windows users work from a command line, especially since PowerShell came out five years ago.
PowerShell is an interesting mixture of Microsoft and Unix styles. It was designed by Unix experts, but it’s deeply object oriented, built on top of Microsoft’s .NET framework. PowerShell folks are not anti-GUI, but pro-automation. They’re not trying to avoid ever using a mouse, but they have repetitive tasks to do that can best be automated from a command line.
I’m evangelistic about the command line in Windows, enough so that I wrote a tutorial+reference book about it, the clumsily named “Windows 7 and Vista Guide to Scripting, Automation and Command Line Tools.” ISBN is 0789737280.
Discussions about the advantage of GUI vs command line need to specify whether the person being advised was a user or in tech support. A previous poster correctly pointed out the advantage a command line interface offers when renaming multiple files. It’s an argument I’ve used for many years, but there are utilities which may be suitable.
As a Unix guru, once admonished a class, what are you going to do when your GUI fails? As difficult as it may be to use the command line (it’s unlikely that your record of mistakes per minute exceeds mine) sometimes it’s the approach of choice.
Another note which bears mentioning is that using the command line reinforces certain words/terms/commands so that searching for help is easier than trying to remember or finding the menu sequence to do what you want.
Sorry guys but command line utils suck. I’ll take a Menu, a few ugly Icons, and a couple of Mouse Clicks over a command line any day. Command lines require memorization, local paths, OS knowledge, and intelligence; while on the other hand a menu and icons only requires intuition.
I often compare EMACS to Word Perfect. It’s awesome… CTRL this and CTRL that, hit tab twice, press enter, and wahlah! You have something awesome… BAH HUM BUG. I prefer to click an image of what I want and feel confident that in the future the image won’t change all that much :)
The command line is fast and informative. I love it, but can understand that it’s not everyone’s cup of tea.
However, no programmer can deny the slightly retro thrill to be gained out of running a sequence of commands at top speed in a terminal window :-)
Good luck to those command-line haters who think it’s superior for everything. Enjoy writing an entire program to do a onetime conversion of a bunch of files that I can do with a few quick pipes and maybe a one-line sed script.
Even in Windows CMD, I can do so much with the FOR command that no GUI equivalent exists to match. And try replacing this gem: “DEL *.XL* /S” from the GUI.
The most important use of the CLI is to ‘put stuff together’, IMHO.
As a System Administrator, I use it extensively to
a) collect a list of items I want to work on
b) make changes to those items
My MO is that same as when I used to program using SQL
e.g.
update x y z where (select y y z in database table where user = dude)
Being able to play around with it is just awesome. It beats having to use any kind of GUI hands down