Command Line

Intro

Command line tools have NOT faded out into the past. They have kept consistently evolving and being improved. They still do! A lot of GUI interfaces use command line tools behind the scenes.

There exists a specification to standardize how command line utilities should behave so that they work in a cross-plataform, interoperable way.

GNU and BSD command line utilities generally try to follow the specs but add the so called extensions which add further capabilities to the tools, making writing scripts and programs easier and sometimes less verbose, but also reduce the portability. Some tools can be run in a more restrict way that disallow extensions. The docs for each tool should specify those things. Information about these things is also scattered across this website’s notes and examples when they are deemed important and/or worthwhile.

Besides reading the specs, also take a look at the sidebar about reading and understanding man pages, info pages and help pages.

Note

Assume all text and examples on this site is written considering GNU tools and the Bash shell unless otherwise noted.

Single Unix Specification (SUS)

More info on the link The Open Group Base Specifications Issue 7, 2018 edition. There is also a question about the difference between SUS and Open Group.

Yes, That Website Sucks

Yes, that website sucks. Not the contents of the website, but the way it works!

The whole thing is full of iframes. URLs don’t change (only the iframes contents do) when we click on sidebar links which means it is impossible to share or bookmark different URLs do. HOWEVER, if we open links on a new tab then we get out of the iframe hell thing. So, open links on a new tab when you need the URL for that link.

GNU Coreutils

It is worth taking a look at following resources:

There is also the mind-blowing, awesome Decoded GNU Coreutils project by MaiZure.