Explain Shell breaks down Linux command line arguments for you

Martin Brinkmann
Dec 2, 2013
Updated • Dec 2, 2013

While it is possible to use modern Linux distributions without touching the command line at all, or only on rare occasions, you will usually quickly come into contact with command line arguments when you want to make a change to the operating system and need to research how it is done on the Internet.

You can run these commands right away, but if you do not really know what they will do, it is usually not a good idea to do so.

Back in the days when I had to do some research on how to do certain things on a Linux server, it was quite common that some elitist users suggested you run the rm command on your server to fix the issue you were facing.

Their reasoning was that you should not be running Linux if you did not know it, and while they were certainly right to a degree, making the point by letting users run commands on their systems that wreaked them was hardly the way to do so.

Explain Shell

Explain Shell is a free online service that will break down command line arguments that you enter for you. If you do not know what the commands find . -type f -print0, tar xzvf archive.tar.gz or iptables -A INPUT -i eth0 -s ip-to-block -j DROP do, you can find out now using the service.

All you need to do is paste or type the command including all of its arguments into the form on the main website, and tap on the enter key afterwards.

The web service will look up the command, and break it down into its parts. Each element of the commend is explained on its own, and highlighted when you move the mouse cursor over it.

The source of the information is taken from manpages. While you can get the same information by displaying all arguments of a command on the command line, or by going through the manpage of a command manually, it is usually easier and faster to use Explain Shell instead.

The core reason here is that it will only display the arguments used in the command. So, instead of having to go through parameters that are not used in the command -- as manpages list them all -- you only need to go through those that are actually used.

If there is one thing to criticize, it is that the order of explanations is not necessarily the order of the command line argument. In the example above for example, the actual command (iptables) is listed in the third position and not the first as you would expect it to.


Explain Shell is a super-useful service for Linux users of all experience levels. It will quickly break down commands so that you can understand what they will do in as little time as possible.


Previous Post: «
Next Post: «


  1. Thrawn said on April 23, 2015 at 2:55 am

    Well, the information given by ExplainShell probably wouldn’t save someone from copying and pasting
    :(){ :|:& };:

    But potentially quite useful, nonetheless.

  2. Farraday said on December 6, 2013 at 8:30 pm

    Be a pro :
    $ tmux
    [prefix] %
    [prefix] ->
    $ elinks http://www.explainshell.com

    :D :D It really works !

  3. ivan said on December 4, 2013 at 11:28 am

    Thanks! And also it is recognized and automatically added to the Chrome search engines and could be used direct from the omnibox with a SE keyword.

  4. Richard Steven Hack said on December 4, 2013 at 12:53 am

    This looks like it would be a useful learning tool as well. Rather than just dumping a line in and executing it, you get to understand it. Do it often enough and you’ll start learning the command shell.

  5. Robert said on December 3, 2013 at 2:54 pm

    Martin, does it again you go boy. Awesome

  6. محمد said on December 3, 2013 at 11:32 am

    so helpful! thanks Martin.

  7. imu said on December 2, 2013 at 10:59 pm

    mv ~ /dev/null nice to see an article like this on ghacks :)

  8. Keith said on December 2, 2013 at 10:45 pm

    Thanks Martin. I’ll have a bash at this after I post this #.

  9. InterestedBystander said on December 2, 2013 at 9:19 pm

    Hot dog! This one will be a great help to me. Thanks!

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.