Sometimes it's best to learn the lowest common denominator tool

Posted by: on

It’s almost irresistible. A new tool to learn, the promise of a ‘better way’ to work. But, perhaps it’s worth learning older, more mature, skills too.

  • More established tools tend to be, well, more established. You’re more likely to find these time tested tools available on your system where newer tools will often require installing—and one thing enterprise computing environments resist is installing software because every new piece of software installed on a system increases its attack surface, adds potential for conflicting libraries etc., and potentially adds overhead into the system.

  • More mature tools have survived rigorous in-the-field testing, often over many years. They’re still around for a reason!

Consider Linux networking. Most of use are familiar with iptables, it’s almost unavoidable when dealing with Linux firewalls, network QoS issues, or simply NAT on a gateway router. Yet iptables is ‘old’ technology. For 5 years now the new kid on the block has been nftables and yet a quick survey of ServerOverflow will reveal that the majority of admins continue to use iptables. So, even if you learn nftables (and you should) it is still worthwhile learning iptables even if only so that you can translate answers given online into nftables format.

Similarly, it is worth learning vi because no matter with *nix system you use it is likely vi will be present. (Actually, I’d advocate learning the ‘modern’ vim but with one eye on which features are vi specific—vim is sufficiently ubiquitous that it’s almost as common as vi nowadays.)

Here are a randomly selected handful of tools I find useful on an almost daily basis.

  • Shell scripting (bash is a personal favourite that is commonly available on *nix systems, Windows PowerShell if you ever go near a Windows environment.) Sure, python or even perl are better languages, but shell script will pretty much always be available whereas higer-order languages may well not be installed on your machine(s).

  • Combine these four tools for a powerhouse of text processing!

    • grep—multi-purpose regular expression filter
    • find—for searching your file system
    • sed—the stream editor. Invaluable in numerous situations.
    • awk—text processing. Another invaluable command line tool.
  • Network analysis basics:

    • netstat—an oldie but a goodie (route is another older tool you might need. More modern systems will have ip tools (iproute2) installed, but netstat is still (probably) more common.
    • nslookup—(dig is a better tool, but nslookup hangs on in there)
    • tcpdump—almost any network analysis will benefit from knowling tcpdump!
    • iptables—you’re almost always going to need this! (Again, nftables is to be preferred nowadays, but iptables remains king in terms of popularity/availability.)

There are many, many more—too many to list individually—but my point stands, there are many tools that people see as ‘old’ that still serve magnificently, especially for those of us working at the command line.