Ask Slashdot: Command Line Interfaces -- What Is Out There?
Mars729 writes "GUIs are walled gardens in that features available in one piece of software is not available to other pieces of software. However, there is software out there with command-line options that can make software features accessible to power users and programmers. Some important ones I have uncovered are:
- Exiftool: A command-line application that can read/write almost any kind of metadata contained in almost any filetype
- Imagemagick: This and similar software like GraphicsMagick is a full-feature toolkit for displaying, converting and editing image files.
- Irfanview: Like Imagemagick but faster, although it has much fewer features.
FFMpeg: For video files - VLC: For audio and video files
- Aspell: A command line spell checker
- Google Static Maps API: A URL with coordinates, markers, zoom levels and other options to show a custom map from Google Maps. (I just uncovered this: no need to learn KML!)
Less useful but still useful are command shells. These provide file management mostly. I believe some of them may allow for sending and retrieving email messages. Also useful but less accessible and with a steeper learning curve are software with APIs and scripting. Examples would be Visual Basic for Applications in office software and groovy scripting for Freeplane. What else is out there?"
This isn't worthy of being a story, we all grew up using command lines.
Quoting the summary:
Less useful but still useful are command shells. These provide file management mostly. I believe some of them may allow for sending and retrieving email messages.
Yes, my head just exploded. Please pardon the mess, aggressive renovations are in progress. I'm absolutely awestruck that this made it to the front page of /., and suddenly feel extremely old at 32.
In short, if you are experiencing a lack of flexibility with GUIs, which is a completely normal response in my book, please proceed to install your favorite Linux/BSD/Whatever-nixish distribution and learn to use the following:
I really, truly, honestly, brain-explodingly do not know what else to say here. Holy crap.
Write failed: Broken pipe
I'm sorry, is this a joke? The Windows command line - even with powershell - might be a crippled joke, but the unix command line allows you to control *everything* going on in the OS itself and most features of whichever Desktop you're using. Plus the ability to pipe commands together creates a level of poweruser control that is far greater than the sum of its parts. Something Microsoft took 2 decades to realise and a paradigm that a lot of Windows admins still don't "get".
PowerShell deserves a mention too. Some people hate it, some people love it.
It is object oriented so the data transfer between processes is more robust. Also all the commands' manual pages come with extensive documentation and lots of great examples. UNIX man pages usually lack examples.
mulk - much needed modernization of wget's functionality :color ir_black
qrencode - copy-paste from the desktop to a mobile device, or maintain an airgap
iotop - like htop for IO
history - built into bash, re-issue old commands as !number
pkill - kill programs indiscriminately
youtube-dl - keeps working even though google has almost killed youtube
netstat -lnp - see which program is bound to which port
vim - it won't make sense until you install plugins like spf-13, learn a few key combinations and set
tar -zxvf - you can remember it because the keys are right next to each other
pxz - parallel LZMA compressor
alasamixer - volume control
locate - find files, update the index with updatedb
Looking forwards to see more!
All rites reversed 2010
"GUIs are walled gardens in that features available in one piece of software is not available to other pieces of software.
Never mind it should be "are" not "is", under what circumstances would you ever be surprised that the features provided by Excel are not available in PhotoShop... with the exception of cut/copy/paste?
Did I miss a meeting where meretricious twaddle on this site became de rigour?
Maybe I should resign my ID...
This sig left unintentionally blank.
Obviously the submitter didn't grow up with a unix background, as lots of people here have. And now I see lots of people asking what the hell submitter is thinking, "is this a joke", "not worthy of a story" et cetera.
But think about it. Submitter came from a GUI background and now discovers the commandline. I'm thinking back when I started with Linux, feeling totally amazed about so much utilities, so much power and I kinda envy the submitter :)
So give it a rest and just chip in.
8 of 13 people found this answer helpful. Did you?
Mod parent up
I can't because /. doesn't have a command line interface for moderation.
Setting aside the fact that this statement makes no sense, I suspect it was crafted around using the term "walled garden" in a misguided effort to establish nerd street cred. Mission failed.
Out of all of the CLI based software the submitter could have chosen, the selection demonstrates that they are neither a power user or a programmer.
Holy fuck. Seriously? What I am supposed to run my CLI based software in to begin with. Never mind everything else about a shell that runs deep.
The bullet points caught my eyes first, I knew right away it was going to be bad, but this? This article making the front page is an insult to the majority of Slashdot's user base and an affront to our intellect and skill sets. Also, it reads like it was written by a second-grader.
Brought to you by Carl's Junior.
The best mix I ever saw was with Apple's MPW Commando interface. They had a unix like script language, but when you couldn't recall the special arcane syntax of some command, you could just hilite the command name and hit a key. A Commando dialog box came up formatted with radio buttons, checkboxes, etc. which recorded every dodad the command could use. Clicking and typing into the dialog fields built the text command for you in a pane at the bottom of the dialog box. When you were done, you could hit the run button or copy and paste the command into a command line window or paste it into a script you were building.
The elitists are out in full force today. Ya the submission is nothing new to many of us but instead of ripping submitter a new one why not share your knowledge with him. Back in 97 I bought Oreilly's Linux in a Nutshell reference book. That book is still on my desk today, beaten up an tattered but sill useful.
Happy New Year fellow neckbeards! ;-)
Less useful but still useful are command shells. These provide file management mostly.
Ohhh, baby. If you think ImageMagick is cool by itself (and it is), just wait 'til you start to grok how powerful those "less useful" command shells are for gluing those complex tools together. It will blow your hair back.
Say you have a directory tree with a few hundred images scattered through it, and you want to create thumbnails for all of the images in a parallel directory structure; ImageMagick will do the thumbnail part, CLI-Fu will handle the directory traversal and turn a three hour job in to a three minute one.
Learn these for starters:
sed - text parser and transformer, for mutating file names and munging commands
awk - ultra-terse programming language, great for building more complex commands than you would with sed
find - traverse a directory tree and list files with conditional matching
xargs - process a large list of things (like files found with find) in batches
grep - filter out elements of a list based on string pattern matching
egrep - enhanced grep, includes more advanced patterns and wildcards
sort - sort lists numerically or alphabetically
wc - count the elements of a list, words in a line, or other things
wget - download a URL
curl - read a URL to stdout
Seriously, when you start piping those things together with the more complex command line tools like ImageMagick and FFMpeg, you will be astonished at the mass data processing you can do with a few dozen characters on the command line.
Stop-Prism.org: Opt Out of Surveillance
We live in the 21th century. By now no one should use things like grep, sed or awk anymore.
Yes. It would be wrong to use tried, tested and computationally efficient tools. If it doesn't have a GUI that slows me down and reduces my operational efficiency, and a crapload of bugs that won't be fixed before being obsoleted, I don't want to know about it.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
New users never heard about bash. We live in the 21th century. By now no one should use things like grep, sed or awk anymore. The developers around systemd make sure that this functionality is soon hidden away from the audience.
Right, and that's the problem, new users don't understand how to use command line tools so everything gets loaded into a GUI like Excel or Access. We had a user insist that he had to have MS Access so he could process a big log file to extract a few records from it -- it was too big for Excel. He was a couple hours into figuring out how to get the file loaded into an Access table when someone asked me if I could help. 10 minutes after installing ActiveState Perl, I wrote a script to extract the records they needed, it ran for a couple hours to churn through over 100 gigabytes of data (limited by the speed of the fileserver), then after we had the data, I used a couple regular expressions to pull the data fields they needed out of a free form text field, and then 20 minutes later, used the data in the file to output the SQL commands that they needed to fix up the database (which is why they where looking through the file in the first place). They had originally planned on spending at least 3 days on this project. The Windows "find" command line took may have helped preprocess the file, but its lack of regular expression support would have meant running it dozens of times to get all of the data they needed.
Command line tools are still useful, even in the 21th century. If I didn't have Perl, then grep and/or awk would have been able to extract the data with a single pass through the file.