Reverse Engineering Command-Line Commands

As someone who still has a lot to learn about using the command line, I find it all too easy to just Google my problem then blindly copy the results. It’s only recently that I’ve invested some time and energy into working out exactly what’s going on with each argument to firstly make sure that I’m not about to accidentally blow my environment up and secondly so I don’t have to keep on googling the same search terms over and over.

This is where explainshell.com comes in. It’s the brainchild of one Idan Kamara, who has devised an elegant way to display your command with all its arguments. Simply paste your command into the textbox, click ‘EXPLAIN’ and the web page will break down your command into the various arguments and show you what each one means. Let’s use one of the given examples to illustrate this a little better.

This command has a number of parameters, some of which anybody could guess at and some which are a little more obscure. Let’s click the button.

The page instantly changes to a wall of text, separated into neat boxes with lines attaching them to the relevant portion of the command. Hovering over a box will make all the non-relevant lines fade so that you can instantly tell where you should be looking.

The explanation given isn’t simply a two word brief on the selected argument – there’s a full description, which is very welcome if you’re trying to learn rather than simply break down the arguments.

I’m definitely bookmarking this one.

explainshell’s source code can be found at github. Check out Kamara’s other project showthedocs.com (in development).