Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
Software

Ask Slashdot: Command Line Interfaces -- What Is Out There? 383

Posted by Soulskill
from the anything-but-the-truth dept.
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 discussion has been archived. No new comments can be posted.

Ask Slashdot: Command Line Interfaces -- What Is Out There?

Comments Filter:
  • systemd is there (Score:2, Informative)

    by Anonymous Coward

    You all will love to use

    systemctl
    journalctl

    The first shows all services running on Linux

    The last shows all binary logging on Linux

    Get used to those commands because its the defacto standard now.

    • I've been seeing the love for CLI's in a couple of articles here lately, and I'm wondering... why are GUI's "walled gardens", and CLI's are not? The CLI's have their definite boundaries as well. You can't run a function using a system utility that doesn't support it.

      At best, I'd call GUI's walled gardens, and CLI's (larger) fenced in fields with rocks and weeds along with the trees and flowers. Definitely more versatile, not as friendly for some uses.

      To get out of the boundaries of either a GUI or a CL
      • by gtall (79522) on Wednesday January 01, 2014 @09:07AM (#45836503)

        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.

      • by crutchy (1949900)

        in some cases gui's only seem like walled gardens because the user doesn't know how to do something, but that doesn't imply that they couldn't

        everything is easy when you know how

        gnome2 has a decent little tool called gconf-editor, which allows you to drill fairly deep into gui configuration

        i'm sure even "windoze" could do a lot of cool things if users bothered to learn about the registry... maybe they shouldn't have to, but if you are willing to learn cli as an alternative it would be reasonable to assume t

  • What is this? (Score:4, Insightful)

    by Anonymous Coward on Wednesday January 01, 2014 @05:22AM (#45835733)
    This isn't worthy of being a story, we all grew up using command lines.
    • Re:What is this? (Score:5, Informative)

      by weilawei (897823) on Wednesday January 01, 2014 @05:31AM (#45835757) Homepage
      I'd like to bash the submitter. Command shells less useful my ass. Pretty much the entire *nix world is built around shells and files, with variations on a theme thrown in (pipes, sockets, etc.). Welcome to what the rest of us have known for decades.
      • Re: What is this? (Score:3, Informative)

        by Anonymous Coward

        Your way of thinking needs an upgrade. Soon everyone needs to understand the concepts of systemd. That means your overall usage of grep, sed, awk, etc. will decrease. Wayland will bring another change in your life. Hope you welcome these. Oh I forgot, you won't be asked :)

      • Pretty much my initial response, too.

        But you know what, I hadn't made any realistic new year's resolutions actually, but now I am thinking it would be nice if instead of the reflexive elitist slashdot reaction to new users (yes I wrote that out in full) let's just try to help these folks feel at home and somewhat supported in our little world.

        My 2 cents: learn shell scripting. It's a great way to apply the shell commands you've already learned and a very natural way to learn some more (control structures, l

      • by gl4ss (559668)

        it's not really "using the command line" unless you're using the line ... to command things, yourself.

        if its automation and communications between system components, it's just protocol of some sorts.. could start saying that pop3 is a commandline then too

        • Re:What is this? (Score:5, Insightful)

          by msauve (701917) on Wednesday January 01, 2014 @09:14AM (#45836547)
          "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.

      • by Culture20 (968837)
        My guess is that submitter writes commands sequentially into .bat, .ps1, .sh, or .csh files then double clicks the files to run them. Not knowing anything about loops or conditionals, submitter is happy to just use shell scripts to run commands and considers this the command line.
      • Re:What is this? (Score:4, Insightful)

        by hairyfeet (841228) <bassbeast1968@@@gmail...com> on Wednesday January 01, 2014 @10:54AM (#45837125) Journal

        Yes and that is why the GUI has been stagnant in Linux for the better part of a decade. hate on me ALL you want but anybody who is honest will admit its true, look at the file managers for just one example. The default is deep fried ass across the board. Fugly as fugly can be fonts, incredibly shitty icons...its like they went out of their way to make the GUI as ugly and nasty as they possibly could. And the whole OS has a disjointed "Meh lets just throw shit together" look as its pretty damned obvious nobody gives a rat's ass about the human interface guidelines. As much shit as Shuttleworth gets at least he tried to have a look stick across the system, its just too damned bad he gives Steve Ballmer a run for his money in the "no damned taste at all" dept because everything Jobs said about MSFT goes doubly true for Ubuntu. Ubuntu, an ancient word that means "We are totally colorblind".

        Having a great CLI is fine and dandy but sadly its become a crutch, you can completely remove CLI access from Windows and OSX and ya know what? The user would be fine,most wouldn't even notice that it was gone. Try removing access to the CLI for just one year in the Linux of your choice, I DARE you. You can't because 1.- Many of the distros won't even function without user access to the shell, as too many things are depending on CLI, and 2.- The first time you run into a problem the ONLY CHOICE you will have to fix it is "Open up Bash and Type"...that's it, that is all. Hell just ask for a non Bash solution and watch the howls of impotent rage! As an experiment I tried that very thing on a dozen forums with a wireless problem that would have taken all of 30 seconds to solve with the GUI in Windows. I was called every name in the book, had a dozen guys preach to me about how wonderful the church of CLI is, until finally one guy had the balls to admit the truth, there simply wasn't a GUI way to fix the problem!

        If there is anything that Android and ARM should have taught it is that the future is NOT some 40+ year old throwback to the age of disco UIs, its intuitive, easy to discover,and easy to learn is THE way of the future! Nobody but nobody is gonna want to sit there and type a bunch of arcane gibberish using a touch keyboard into a 5 inch screen,they are gonna want simple yet powerful GUIs to control these new marvels in their pockets. Linux SHOULD be at the forefront of this GUI revolution, after all its beholden to no corp, doesn't have to maintain backwards compatibility to please the masses, no reason why the next great GUI shouldn't come from Linux....except that too many have taken CLI as their religion, their way to "test the faith" and see if the user is "worthy" to be part of the little club.

        CLI will always have its place, in high performance servers where every byte counts, but even there the cost of a GUI is so trivial compared to what resources the boxes have it isn't funny. And you'll probably never come up with a better way to automate repetitive tasks than simply writing a script and letting the computer run, but its 2014 guys, time to accept that disco is dead and that if you aren't administrating a pile of servers or batch processing a thousand files there really should be NO reason to use a CLI at all. It should be there if you WANT to use it, but it should never ever be the case that you HAVE to use it, not on a modern OS anyway.

        • Re:What is this? (Score:4, Insightful)

          by Dutch Gun (899105) on Wednesday January 01, 2014 @12:51PM (#45837869)

          From my perspective as a Windows programmer/user who is trying to learn more about Linux development: Let me know if you disagree with this analysis.

          CLI is mostly useful for programmers and power-users / sys admins, and *nix was built around the concept of lots of small, useful command-line utilities that can be chained together to get useful things done. Visual interfaces, if they exist at all, are often just pretty wrapping around the core functionality available via the CLI.

          Windows (and the Mac preceding it) was built from the ground up with visual metaphors to make computing simpler for the masses. Command-lines are typically NOT the primary interface with the computer. Often, programs have built-in scripting to provide the power-user with equivalent CLI power on the *nix systems. Less importance is placed on command-line interoperability. Instead, interoperability is achieved through visual metaphors (drag and dropping files, for instance) or through OS services (OLE).

          This is a cultural clash which explains why an OS like Linux will probably never innovate in regards to visual interfaces - I think perhaps its just not all that important to those that control the core feature sets of the operating systems. Essentially, Windows users tend to see the necessity of falling back to a command-line as a crutch for a system that isn't well designed or fully featured (as you indicated), while *nix users take the opposite view, with the command line as the natural place to work, and the visual interfaces as a crutch to assist those who are not as skilled or don't need the power of the CLI.

          I just don't see that perspective changing anytime soon, and so I think UI innovation will tend to be driven by external forces in the *nix world, while the majority of the work still requires a command-line interface to access ALL the important options. BTW, Windows isn't perfect here either, of course. The equivalent in Windows starts with the phrase "Open regedit and search for the key...", but it just seems to happen far less often.

        • Re:What is this? (Score:5, Insightful)

          by serviscope_minor (664417) on Wednesday January 01, 2014 @02:57PM (#45839113) Journal

          hate on me ALL you want but anybody who is honest will admit its true,

          the hating on you will be for using a blatant "no true scotsman" fallacy, not for disliking the gui. You're a massive wanker for claiming I'm a liar because I disagree with you.

          you can completely remove CLI access from Windows and OSX and ya know what? The user would be fine,most wouldn't even notice that it was gone.

          Not if the user in question was me. In fact I know quite a lot of people who install the cygwin commandline stuff for Windows because the builtin commandline is not very good. And then there's the MinGW effort. Apparently enough people miss the commandline that there are not one but two competing efforts to bring a good commandline to windows.

          Fiven that they're Free that means there are enough people wanting that that there are enough developers from withing that subset to make two.

          That's a lot of people and you're dishonest if you don't agree, naturally.

          Try removing access to the CLI for just one year in the Linux of your choice, I DARE you.

          Why the fuck would I want to do that?

          The first time you run into a problem the ONLY CHOICE you will have to fix it is "Open up Bash and Type"...that's it, that is all.

          Well, no. That's true in some cases, but then registry hacks are true in some cases in Windows and commandline-fu is the only solution in some cases in OSX. Not sure what your point is.

          Hell just ask for a non Bash solution and watch the howls of impotent rage!

          So basically, you ask people to donate their time to you for free and they do. They give you an answer in a clear, succint way which doesn't involve the rather tricky comminucation of visual information in a forum and you have the entitledness to complain that they're not helping you "the right way".

          Wow, you sound like an asshole.

          If there is anything that Android and ARM should have taught it is that the future is NOT some 40+ year old throwback to the age of disco UIs, its intuitive, easy to discover,and easy to learn is THE way of the future!

          Except that it's not unless you have very limted horizons. And ARM was in fact developed to run an OS with an integrated commandline.

          So, mr. intiutive, how do I script repetitive actions in my workflow on Android?

          Linux....except that too many have taken CLI as their religion, their way to "test the faith" and see if the user is "worthy" to be part of the little club.

          You're the one who sounds like a religious nutball. I happen to like the commandline. I really don't care if you do. You seem to care that I like it. that's got religious quackery written all over it.

          Oh and almost forgot, of course you're dishonest if you don't agree with me.

        • by sjames (1099)

          My mom uses Linux and she has no idea how to use the CLI at all. Literally none. It works fine.

    • by tlambert (566799)

      This isn't worthy of being a story, we all grew up using command lines.

      At least one of those programs is Windows-only, and all the rest have Windows versions, and Visual Basic is Windows-only.

      I'm pretty sure he has little or no familiarity with the UNIX programming environment, and he's not even aware of COM-based programming using third party libraries and components on Windows well enough to know that you can in fact script all Microsoft GUI products, and many third party products on Windows use the same techniques making them fully scriptable as well.

      This isn't the first ti

    • by HalAtWork (926717)
      Some didn't and are just getting into Linux now, where it's Gnome and KDE and LiveCDs. How about helping some newbies?
    • Re:What is this? (Score:5, Informative)

      by hsa (598343) on Wednesday January 01, 2014 @07:51AM (#45836223)

      OP is just discovering the command line and finding out, that you can actually do almost anything with it.Don't bash his learning process (pun intended).

      Take a webcam picture:
      streamer -f jpeg -o image.jpg

      Do magic with that picture:
      convert image.jpg -colorspace Gray image_gray.jpg

      And do check out rest of the ImageMagick:
      http://www.imagemagick.org/ [imagemagick.org]

    • by gwolf (26339)

      The fact this comment is uttered by an eight-digit user does not make it any less true.

    • Well, like you, I did grow up using command lines, but check your six; at least one generation of serious IT people did not. And the ranks of those of us who did are rapidly dwindling.
      • Re:What is this? (Score:5, Interesting)

        by i.r.id10t (595143) on Wednesday January 01, 2014 @09:00AM (#45836467)

        And based on the students I teach in my "intro to linux" class, a good 30% are dependent on GUIs and aren't capable of becoming half way competent in using a command line only system over a 14 week term.

        Typically, these are the same students that are in a networking track because "i'm good at helping grandma with facebook and I like to play world of warcraft" - not because they are curious about computers and networking

        • And based on the students I teach in my "intro to linux" class, a good 30% are dependent on GUIs and aren't capable of becoming half way competent in using a command line only system over a 14 week term.

          Yeah, ok, that one's on you. You suck as a teacher, there's no other way to say it. I've seen heaps of kids go through and learn to use a command line in a beginning Linux class, with rare failures (mainly caused by absences). If you are really desperate and can't figure out how to get this right, the Redhat Academy has an ok curriculum that will have all your students writing shell scripts by the end of the semester.

          Seriously, you've got to get out of the 'blame the student' mode because you're ruining a

    • You are missing the point of the OP. While not elegantly worded, the original request is valid....

      What are your secret CLI commands? These are the things that go INSIDE those bash scripts that make bash useful....Or maybe a bash construct that makes life super easy.

      A new F18 HTPC install that I just did has 1897 different commands in /usr/bin, and an F20 upgrade that has been in service for a number of years now has over 3300 "commands" in /usr/bin....While I like to think myself a BASH power user, I am gue

  • by philip.paradis (2580427) on Wednesday January 01, 2014 @05:29AM (#45835751)

    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:

    • Shells, at minimum a Bourne-compatible shell
    • Bash, Perl, and Python
    • Man pages

    I really, truly, honestly, brain-explodingly do not know what else to say here. Holy crap.

    • Replying to my own post here for clarification: the second entry in the unordered list (which /. decided to render in a less than graceful manner) should have had the term "scripting" appended to it. One-liners are great; knowing how to write useful self-contained programs yourself in various interpreters is far better.

      This aside, I'm seriously beginning to suspect a bored troll managed to get the best of Soulskill on this one.

      • Re: (Score:2, Informative)

        by anagama (611277)

        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

        What I'm trying to understand, is how the submitter intends to use the CLI for a program without a shell of some kind. Unless he's talking about programs like Midnight Commander or Norton Commander (for people who really are getting old) by the term "command shells".

        All that said, an interesting program is motion -- it lets you use a USB webcam as

    • by mvar (1386987) on Wednesday January 01, 2014 @05:49AM (#45835813)
      First this Tips for your new laptop [slashdot.org] and then this.
      I have a feeling that there's more shitty noob advice to come on this site from now on..Holy crap indeed
    • by petes_PoV (912422)

      I really, truly, honestly, brain-explodingly do not know what else to say here. Holy crap

      I think the polite thing to say would be "Welcome to the world of computing. How did you like your first day?"

  • by will_die (586523) on Wednesday January 01, 2014 @05:35AM (#45835771) Homepage
    If you are doing windows and still doing Visual Basic for Applications for general scripts you are part of the problem and really behind in your skill level.
    Powershell has easily replaced most VBA script usage, there are still a few special cases where it has to be used.
    • VBA is almost VB6.

      VBScript is not quite VBA. There are some VERY annoying inconsistencies, like this :

      For ii = 0 To 10
              ' Do Stuff
      Next ii ' This is legal in VBA / VB6 - but it's a syntax error in VBScript!

      • VB was BASIC, then it was Pascal, then pretty well cut down Java. Where do you want to go today?
        You won't be able to do it the same way tomorrow.
  • Is this some sort of joke?
    A Unix-style shell is the most useful command line interface. It is itself its own scripting language.

    There are various ones. The most popular is bash, but there are also fairly different ones like fish.

  • by Viol8 (599362) on Wednesday January 01, 2014 @05:43AM (#45835793)

    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 (Score:5, Informative)

    by jones_supa (887896) on Wednesday January 01, 2014 @05:46AM (#45835797)

    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.

    • Re:PowerShell (Score:5, Informative)

      by benjymouse (756774) on Wednesday January 01, 2014 @11:28AM (#45837311)

      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 [powershell.com]) 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.

  • Great topic (Score:5, Informative)

    by Ceriel Nosforit (682174) on Wednesday January 01, 2014 @05:46AM (#45835799)

    mulk - much needed modernization of wget's functionality
    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 :color ir_black
    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!

    • In the spirit of "command-line tools I use all the time":

      sed - search and replace within files
      git - redistributable file system that tracks changes, often used for version control of text files
      ssh - secure command-line connection to another machine
      scp - secure copy between machines
      diff - compare differences between files

  • by YuppieScum (1096) on Wednesday January 01, 2014 @06:06AM (#45835855) Journal

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

    • by philip.paradis (2580427) on Wednesday January 01, 2014 @06:22AM (#45835909)
      Man, my original ID was in the 75K-ish range, and I'm seriously debating whether this was (1) a troll submission that got through, or (2) a tactical move to get folks like us to finally just say "fuck it" here and move along while Dice moves along to pursue the new, hip, trendy, GUI-loving, tablet-toting, no-fucking-idea-whatsoever-how-things-work-at-all crowd for ad views. I honestly don't know, but I can safely say this is the most ridiculous thing I've ever seen posted to this site.
  • The movie Titanic was rendered, in no small part, with Amigas running AREXX to control the per-frame rendering and result submission. Many Amiga applications included an AREXX interface port (I used the one in the terminal emulator for automated dialing).

    PC-DOS 6 (The IBM release, that also included CDROM drivers, and came on CD), had an IBM port of mainframe REXX, as well.

    • by zoward (188110)

      REXX was the "blessed" scripting language of OS/2 as well, and had lots of hooks into the OS.

  • by cerberusss (660701) on Wednesday January 01, 2014 @06:53AM (#45835985) Homepage Journal

    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.

    • So far this submission has seen a really disappointing response from the Slashdot crowd. They look like braggarts who do not actually know anything about the subject matter.

      • by geoskd (321194) on Wednesday January 01, 2014 @09:16AM (#45836561)

        So far this submission has seen a really disappointing response from the Slashdot crowd. They look like braggarts who do not actually know anything about the subject matter.

        That's because the question itself shows a fundamental lack of understanding that renders any answer that might be provided as simply incomplete at best, and actively misleading at worst. The submitter does not understand the subject matter well enough to understand why the question was flawed, and knowing where to begin explaining to the submitter what he/she needs to know is a very tricky problem.

        We can infer from the way the question is asked that the submitter probably has spent most of their life as a windows user, and has probably recently discovered power shell. It is also possible, although unlikely that they have recently started playing with Linux, but if they did, it would have to be Ubuntu, or another newbie friendly distro, and they probably installed it, and not much more. My guess is that this person is in their late teens or early twenties, and if they are attending college, it is not in a CS or related degree. The probability that this person is Male is about 87% give or take.

        All that having been said, my advice is actually rather simple. If he/she has not already installed Ubuntu, do so now. regardless of their current enrollment status, get signed up to take a beginner level programming class. Make absolute sure that this class uses a UNIX based curriculum, and not Windows, as the UNIX curriculum will almost definitely be Command Line only. The reason I make this suggestion is because beginner level programming will teach the fundamentals of command line interpreting, and will give a solid basis for understanding how programs start up, and what they have to do, and how they do it. If (as I suspect) this person is still a high school student, this will give them college credit as well, and will look good on a college application, especially for a CS related program. The one warning I will give, is that this class will be relatively boring. There is nothing sexy or exciting about beginner level programming. You will need years of experience before you will be ready to tackle the fun stuff, and 90% of programming is "boring" details anyway, but this will help align your understanding of how programs work to what they are really doing under the hood, and should give you a basis for asking more salient questions, and getting better answers, in the future.

    • Re: (Score:3, Interesting)

      by Anonymous Coward

      There is lots of information out there and, very much unlike 20 years ago, the tools to find this information are numerous, easy to use and freely available. It's nice that someone stumbled upon the power of the command line, but it doesn't need to make front page news. No, we're not going to deliver the information on a silver plate any more than it already is delivered on a silver plate if you bother to look. Granted, some will write about their favorite programs, but the scorn to offset these nuggets of

  • by lkcl (517947)

    although it has a built-in python command prompt i.e. it's python it does have that as an actual tab, with the electrum python module pre-loaded. really handy.

  • ... of any less value than the others.

    From http://abstractionphysics.net/pmwiki/index.php [abstractionphysics.net]

    Primary computer user interfaces:
    Nature likes three (3) in primaries, as color in light (additive - red, blue, green) and paint (subtractive - blue, yellow, red) from which we can create all other colors in the rainbow. This applies to abstraction physics as well, as applied through the tool of computer, for there are three primary user interfaces. The command line, the Graphical User interface (GUI) and the side door p

  • by wjcofkc (964165) on Wednesday January 01, 2014 @07:26AM (#45836141)

    GUIs are walled gardens in that features available in one piece of software is not available to other pieces of software.

    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.

    However, there is software out there with command-line options that can make software features accessible to power users and programmers.

    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.

    Less useful but still useful are command shells.

    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.

  • GUIs are walled gardens in that features available in one piece of software is not available to other pieces of software.

    If only Members of Congress were programmers, companies would be modular entities instead of the monolithic monsters they are now.

  • The AT&T Documenters Workbench has the best spell checker I have ever used. If you keep spelling "the" as "xqy", it learns and copes to the point where it can will offer "then" to xqyn". It knows that "rhw" might be "the" as well as "tje" is "the" as it knows keyboard layout. It was also the best spell checker for then/than lose/loose and it would adapt its dictionary based on reading level so it won't get tripped up on efficiency/efficacy

    Someone needs to find out who (if anyone) owns the copyright a

  • The two I use a lot in a terminal is bc and cal.

    Put this in your .bashrc:

    alias bc='bc -i -l' Then just run bc for a interctive calculator:

    (18*(567/23))+67
    510.73913043478260869548

    e.g.

    and cal is brilliant.
  • Don't dismiss so easily the plumbing tools as minor, good part of the magic on everything happens there, a lot of things have command line interface (even destop programs like openoffice, or gimp), of course a lot of servers can be accessed by commands (mysql, wget/curl) or even for pure graphical tools, you can script a lot with i.e. D-Bus [fpmurphy.com]. But something that combines the pieces, like, don't know, extracting urls from a mysql table, obtaining the images from there, making a collage and putting it as backgr
  • by avm (660) on Wednesday January 01, 2014 @08:37AM (#45836383) Journal

    Setup a virtual machine, or a partition, install a BSD (I'm partial to NetBSD), and go to it. Skip the graphical interface packages on installation.

    You want to learn about this, here's how most of us did it (flavor and variant will vary of course). Your motivation determines how much you will learn. Enjoy.

  • LOAD “$”,8 - Now that was useful!

  • by Rick Richardson (87058) on Wednesday January 01, 2014 @08:50AM (#45836423) Homepage
    Happy New Year. Whose going to get the FTF?

    From http://geo.rkkda.com/. All are bash and awk tools run via a terminal. Lots of them build upon gpsbabel (e.g. geo-nearest), or ImageMagick (e.g. reverse-montage) or, you get the drift.

    Tools for accessing gc.com...
    (SO) : this program works only for gc.com subscribers

    geo-found List caches found (by you or someone else)
    geo-nearest List the nearest caches to a location
    geo-newest List the newest caches in a state
    geo-placed List caches placed (by you or someone else)
    geo-keyword List caches by keywords.
    All of the above can enter the waypoints into the
    GpsDrive MySQL database.
    geo-html2gpx Convert a gc.com printable web page (such as the
    above commands can produce with the -H option) to
    a GPX file.

    geo-count Count caches found
    geo-usernum Determine gc.com user number (used by geo-count)

    (SO) geo-gid Retrieve cache info by GCxxxx waypoint name
    (SO) geo-gpx Retrieve GPX file by GCxxxx waypoint name
    (SO) geo-demand Request an immediate pocket query email
    (SO) geo-gpxmail Process PQ email using gpx2html
    (SO) geo-gpxprocess Process PQ download(s) using geo-pqdownload and gpx2html
    (SO) geo-pqdownload Perform a Pocket Query download(s)
    (SO) geo-myfinds Schedule a Pocket Query containing your finds.
    (SO) geo-rehides From your found.gpx file, produce a GPX file of rehides
    (SO) geo-correct-coords Correct the coords of cache(s)
    geo-density Compute cache density of an area

    gpx2html Lightly hacked converter from GPX to HTML
    Originally by fizzymagic (v1.90). My version
    fixes issues with HTML in the cache descriptions, adds
    sort by latest log date for easy perusing of recent
    cache activity, and fixes bug in GC[1-9]xxxx.
    gpx-loghistory Print all logs in reverse cron order.
    geo-pqs Figure out what PQs to run to get an entire state.
    geo-state Convenience script; geo-state -? gives usage.
    geo-sdt Replace Size, Difficulty, Terrain from a PQ file
    geo-suffix Replace name with name/TypeSizeDiffTerr/gcid/LatLon
    geo-uniq Unique the tabsep database

    Tools for accessing opencaching.com...
    oc-nearest List the nearest caches to a location
    oc-newest List the newest caches in a state
    EXPERIMENTAL, subject to drastic changes

    Tools for accessing opencaching.us (and .nl, .de,...) ...
    ok-nearest List the nearest caches to a location
    ok-newest List the newest caches in a state
    EXPERIMENTAL, subject to drastic changes

    Tools for accessing navicache.com...
    nc-nearest List the nearest caches to a location
    nc-newest List the newest caches in a state
  • by matria (157464) on Wednesday January 01, 2014 @09:00AM (#45836463)
    /rdb - definitely not free, but a fascinating use of the shell and shell extensions as a database management system. Don't know if it's even still available. The NoSQL developer Carlo Strozzi said that he was inspired by it. Used to be at http://www.rsw.com./ [www.rsw.com] An excellent white paper, "The UNIX Shell As a Fourth Generation Language" describes it, and there was a book too - "Unix Relational Database Management". I used it nearly 20 years ago for a retirement home's database when their DOS/dBase system broke down. Slackware Linux version 1 ran fine on their old PC. In fact, that was my first Linux kernel compilation.
  • great. I've been looking for a good command line spell check. All the graphics on the gui spell checkers are very distracting.

  • by Greyfox (87712) on Wednesday January 01, 2014 @09:46AM (#45836721) Homepage Journal
    In 1987 I took an assembly language class. We were presented a PDP 11/03 and an 8 inch floppy disk and instructed on how to type the bootstrap sequence into the computer in octal to cause the system to jump to the first instruction on the floppy disk. The GUI is good for one thing and that's standing between you and understanding what's really going on in your computer.

    Now I wouldn't even comment on this story, but I have recently been wondering why we haven't seen new developments in command line shells in the last couple of decades or so. The last big advance was tab completion in bash and then we just... stopped. Now I could see the argument that bash does everything we need it to, but I'm not sure I completely buy that. For one thing I'm constantly working around deficiencies in the shell. For another, we have seen OS advances we could be taking advantage of.

    The UNIX shell model for the last three decades is, you run a program and the shell finds it in the path, forks a child process, execs the program and waits on the child process. When the child process exits, the shell resumes and has the return status of the child process available for examination. And that does actually have its place. But it doesn't need to be all there is anymore. With threads, there's no reason not to have the ability to initiate a program in parallel in the same memory space. Obviously there are some drawbacks to that -- if the program crashes, you'd lose your working shell. But it'd have some advantages, too -- the program could modify the shell's environment, share or persist objects in local memory, and customize the shell's behavior much more easily than we do today. We'd move from having files on disk to having resources we can take advantage of. Naturally you should still be able to revert to the old fork/exec model for some applications.

    I'll probably write some code to explore this when I get my current couple of projects squared away.

  • I'd like to make mandatory to post the age of a submitter alongside any 'news' item. Why? Because if the poster of this item is a 10 year old, then I'd say OK, someone getting into the game is looking around, good job. However, I don't think this is the case here, I even thought first that it was a joke, which it doesn't seem so. I'd suggest redirecting noobies into other forums instead of posting their totally useless submissions on /.
  • Do you really let someone with less than 3 months experiance with big boy OSs fucking post. This is something someone with no real computer experiance would think.

    >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.

    Thats not true, not on any modern operating system. It was only true on windows, before the introduction of PowerShell.
  • by hodet (620484) on Wednesday January 01, 2014 @11:03AM (#45837181)

    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! ;-)

  • by SpaghettiPattern (609814) on Wednesday January 01, 2014 @11:04AM (#45837185)
    man(1)
  • More CLI-Fu (Score:5, Informative)

    by Bob9113 (14996) on Wednesday January 01, 2014 @11:19AM (#45837261) Homepage

    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.

    • The shell includes for, if, else, while and variables that allow you to write simple to complex scripts to manage all the self contained unix commands listed by Bob9113.

      Here's 3 more useful unix commands to add to Bob9113's list

      apropos COMMAND_or_COMMAND_FRAGMENT - to find the command you might want
      which COMMAND - to find the location of the command on the filesystem
      man COMMAND - to find the manual page for the command

      There is an entire book dedicated to just awk and sed, which are quite useful programs on

"If truth is beauty, how come no one has their hair done in the library?" -- Lily Tomlin

Working...