Introduction to Unix 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-platform, interoperable way.
GNU and BSD command line utilities generally try to follow the specs, but add the so called extensions which endow the tools with further and/or improved capabilities, making writing scripts and programs easier and sometimes less verbose, albeit reducing their 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 Man, Info and Help page.
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
Note
The examples on this site assume GNU tools and GNU Coreutils. If you find something that doesn’t work on your version/vendor of the tool, feel free to open a PR to this project proposing an alternative working solution. |
It is worth taking a look at following resources:
There is also the mind-blowing, awesome Decoded GNU Coreutils project by MaiZure.