Don’t be tempted to skip this post: you would miss something valuable. Of course most of us know how to operate a filesystem, but the underlying details of POSIX filesystems are not broadly known by most of the people. In this post I describe them quite accurately, trying to keep at a level that may intrigue, but avoiding to be too theoretical. Having such an expertise is certainly one of the things that make the difference from a technician and a skilled professional. In addition to that, this skill may really save your life when facing weird things that sometimes may arise.
Seasoned Linux professionals thoroughly know data formats: it is mandatory since these formats are used by many tools as:
- output format (CSV, XML, JSON, …)
- the format for their settings files (YAML, TOML, XML, JSON, INI, …)
- the format of the document to be sent to an API (XML by SOAP, JSON by REST)
It is straightforward that is mandatory to be familiar to Regular Expressions: many legacy tools like grep (in all of its flavours, such as egrep) and sed use them as pattern matching criteria. They should also know how to leverage on awk when a little bit of business logic is needed while processing data, and of course know most of the so called “coreutils” (sort, cut, wc, uniq, …). Modern Linux professionals are also skilled on format specific tools such as xpath and xmlstarlet (XML), jq (JSON) or yq (YAML).
In addition to that, Linux professionals should also have a thorough understanding of:
- encryption technologies that guarantee data integrity and confidentiality on the disk (openssl, GPG, PGP, …)
- encryption technologies that guarantee data integrity and confidentiality on the wire (TLS, X.509 certificates, Public Key Infrastructure
- design patterns that exploit encryption technologies, such as Shamir’s Secret Sharing
- Cryptographic API, such as PKCS#11
Honestly, in my experience, I saw too many technicians neglecting this topic, but believe me, this can be very dangerous.
A pillar every Linux professional must have are certainly Regular Expressions: they are broadly used every time is required to lookup or substitute a pattern that matches some criteria. Tools such as grep and sed miss almost all of their power if who is using them does not have a good understanding of Regular Expressions. This is really a huge topic: there's more than one book that is fully focused on regular expressions - this post is only a quick guide: the aim of this post is to let the reader get the gist of what Regular Expressions are by explaining everything that is needed to know to face the common use cases that may arise during daily work..