Originally posted by: omissible
The command line today is more of a programming environment than a user interface. For day-to-day file browsing and copying, the GUI is probably easier. For anything that involves a large amount of repetitive tasks, the command line is your friend.
It's always been like that. Whenever your using a computer your programming it, interacting with it.
Everything from setting up your email to working on a spreadsheet to writing a shell script to writing a kernel driver is programming.. The difference just a matter of degrees, level of professionalism, the depth of the software layers, and complexity exposed to the end user (programmer).
The Unix shell, especially in the form of open shells like Bash, continue to evolve and change over time.
For example somewhat recently Bash 3.x series has been released.. When I am using Debian Sid with the 'bash completion' option enabled for my shell account I have several things that I can do that I couldn't do before.
(to do that you have to edit your ~/.bashrc file and uncomment if... fi part were it deals about bash completion, then logout and log back in)
Such as if I download a mp3 or whatnot.. I can cd to the download directory and if I want to listen to it I can type:
$ mpg123 <tab><tab>
and get a list of all just mp3s (and subdirectories incase I want to play a mp3 in one of those) in that directory. That way if I have a directory full of random stuff.. zip files, pdf files, text files, etc etc I don't have to search thru all of them.
It's a lot easier for me to do that then to open up a directory and try to visually scan thru a dozen or more random files for the one paticular I want.. and if I downloaded it I often don't know the exact name of it.
I often use the "find" command and the "file" command to locate files or specific types of files. I've made m3u playlists by doing stuff like.
I like to investigate files I download often, also. Handy commands for things like that are something like:
strings filename|less
I find out amusing things sometimes.. like pdfs made by Novell to promote Linux over Windows were made by adobe pdf distiller for windows, jpegs for Redhat's website were made using Photoshop on OS X, Microsoft uses OpenBSD code for lots of it's unix compatability stuff. Stuff like that. It's kinda interesting what you can find out about stuff by snooping around.
Also I like to go like:
ssh -X mydesktop
and open up my email client or amarok (advanced mp3 player) on my desktop system from my laptop to check email or play music on my stereo remotely without having to setup some sort of web based interface or a deamon listening on a paticular port.
Since X Windows is a network protocol and ssh can act as a tunnel for X it's very handy.. Once it's enabled in the server (allowing X over ssh by default poses certain specific security risks for if you allow other people to login thru ssh) I can run commands and open GUI programs on any of my computers to appear on any other of my computers. (X has limited use over the internet though.. but that's what freenx is for.)
There are lots of little things like that.
Myself and most other more comfortable Linux desktop users will pretty much always have a xterm or two open for various different reasons. It's a nice thing to have...