Byte Journeys

Join me as I share insights and discoveries from my journey in the world as a software engineering manager by day and tinkerer by night.

🛠️ The Tooling Tip: Modern alternatives to old classics

If you are like me, you have learned about Linux and the GNU tools in the Kernel 2.2 - 2.6 era. Time to level up your command line fu with modern alternatives to the old classics:

ifconfig -> ip addr show or ip link show: The modern alternative to finding out your IP address and viewing your networking links.

route -> ip route: Here is a modern alternative to finding your networking routes. I do like the route command’s output better because it presents a table like view (which I think is appropriate to display a routing table).

netstat -> ss -tulwn: See what processes are occupying a port or are having connection open etc.

iwconfig -> iw: Linux and wireless was always a struggle (in the early days). The iw set of tools make this much more accessible than in the early days.

arp -> ip neigh: Now we are getting really low level and are looking at the ARP table of the Kernel. Like with the route command, I do like the table-like output of the old command vs. the new one (which is probably much more easy to parse though).

Moving beyond networking, the Linux ecosystem has seen significant evolution in command-line tools across various domains. Here are some updates and modern alternatives for system and file management, monitoring, and other operations:

top -> htop or glances: While top is a classic tool for real-time system monitoring, htop provides an improved interactive interface with more information at a glance. glances goes further by offering a comprehensive overview of various system metrics.

ps -> pgrep and pkill: For finding or signaling processes based on name and other attributes without needing to parse ps output.

cron -> systemd timers: systemd has introduced timers as a more flexible way to schedule jobs, offering better logging and integration with system services over traditional crontab entries.

SysVinit scripts -> systemd: The systemd system and service manager has largely replaced SysVinit scripts for starting, stopping, and managing services and runlevels. Stop /etc/init.d‘ing things and learn the new way already!

iptables -> nftables or firewalld: nftables provides a new framework for defining firewall rules with improved performance and simplicity. firewalld offers a dynamic firewall management tool with support for zones and services, built on top of nftables.

vim/nano -> micro: While vim and nano are widely used text editors, micro offers a modern and intuitive terminal-based interface, aiming to be easy to use and install while still being a full-featured editor, no, please do not bring up emacs now.

grep -> ripgrep (rg): ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. It’s faster than grep by skipping binary files and respecting .gitignore files.

find -> fd: fd is a simple, fast, and user-friendly alternative to find, optimized for speed and focused on the most common use cases of finding files.

tar/gzip -> zstd: While tar combined with gzip or bzip2 is traditional for archiving and compression, zstd (Zstandard) offers compression with high ratios and fast decompression speeds.

screen/tmux -> byobu: byobu enhances tmux or screen by providing an easy-to-use interface for creating and managing multiple windows and sessions in a single terminal.

Adopting these modern tools can enhance your workflow with more efficient operations, better usability, and advanced features tailored to current computing environments.