Slashdot Mirror


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?"

6 of 383 comments (clear)

  1. Don't start bashing the curious by cerberusss · · Score: 5, Insightful

    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?
  2. Re: What is this? by Anonymous Coward · · Score: 5, Insightful

    It appears that lots of people recently have been condemned to reinvent Unix, poorly.

  3. Re:Mod parent up by Anonymous Coward · · Score: 5, Funny

    Mod parent up

    I can't because /. doesn't have a command line interface for moderation.

  4. Re:What is this? by msauve · · Score: 5, Insightful
    "could start saying that pop3 is a commandline then too"

    It isn't?

    locke:~# telnet 127.0.0.1 110
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    +OK Dovecot ready.
    user myname
    +OK
    pass mypass
    +OK Logged in.
    stat
    +OK 863 28261240
    retr 1
    +OK 3108 octets
    ...[email text]...

    Of course, what you'll quickly find is that the OP isn't the only clueless one. Other Internet newbies like Microsoft and Google have gone out of their way to make their customer's emails illegible.

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
  5. Re:PowerShell by benjymouse · · Score: 5, Informative

    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.

    Most bashers (no pun intended) miss several aspects of PowerShell simply because they view it as just another shell.

    One such aspect is the fact that PowerShell is designed to operate directly with an application's core logic (the object model) whether that application was designed using COM or .NET. Virtually *all* of Window's features and even 3rd party applications for Windows are designed using one of those models. So the barrier to exposing the functionality to the CLI (PowerShell) is really, really low, and even older applications that predates PowerShell or that were never designed for PowerShell (like iTunes) lend themselves to CLI manipulation. Forget about needing to craft a suite of external CLI tools - your app is inherently exposed to command line manipulation.

    Another often overlooked aspect is how PowerShell is designed to run in-process within an application. The CLI is just *one* possible host for PowerShell. Alas, you can add the PowerShell engine to your app and immediately leverage existing commands to manipulate the in-process memory objects of your application. So not only is it *easy* to expose your application to automation, you can actually take advantage of the PowerShell engine to save work for your own in-application automation. With workflow engine integration in PowerShell 3.0 (it is now at 4.0) this is a great way to orchestrate workflows activities in an easy-to-manage way.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  6. Re:New users don't know about CLI by hawguy · · Score: 5, Informative

    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.