Hi there! As a fellow Linux enthusiast, I wanted to share my list of go-to open source tools that every Linux sysadmin should have in their toolbox. Whether you‘re just getting started managing Linux systems or a seasoned pro, mastering these 10 tools will make you more effective and productive. I‘ll provide some high-level overviews, but also go in-depth from the lens of a sysadmin geek to give you insider tips and tricks. Get ready to level up your Linux fu!
1. htop – Dropping a Visual NUKE on Processes
You‘re likely familiar with the tried-and-true
top command, but
htop takes it to the next level for visualizing running processes. The interactive ncurses interface lets you easily scroll, sort, filter, and search processes with keyboard or mouse.
One killer feature I love is the ability to view the full command line arguments and environment for processes. No more cutting off long commands in
top! The colored bars indicating CPU and memory usage make it simple to identify resource hogs at a glance.
Pro tip: install
htop from the standard repos, then customize the meter types, color schemes, displays, and add monitoring modules in the config file at
~/.config/htop/htoprc. I have presets configured to focus on certain metrics for quick troubleshooting.
According to the 2020 StackOverflow survey, Linux is the most loved OS by developers. With
htop, you get incredible visibility into what all those developers‘ processes are doing!
2. Glances – Monitor All The Things!
htop zooms in on processes, Glances provides top-level system visualization spanning CPU, memory, disk I/O, network, and other critical metrics. The real-time curses dashboards give you instant insights into the health and performance of your systems.
I‘m a huge fan of the multi-server monitoring capabilities. Just run Glances in server mode on your systems, then connect from your workstation with the Glances client pointed at the servers. Now you have all the dashboards centrally in one place!
The data export options are handy too. I pipe the Glances JSON API into Elasticsearch to analyze usage patterns over time with Kibana. The metrics help guide capacity planning and forecasting.
Fun fact: over 70% of web servers globally run on Linux, so tools like Glances are essential for monitoring web-scale infrastructures.
3. bash-it – Pimp Your Shell
I spend all day in the Bash shell scripting and running commands, so having a tailored, productivity-boosting environment is a must. bash-it provides a phenomenal framework for customizing your shell with plugins, completion scripts, themes, and aliases.
A few of my favorite bash-it plugins:
- git – handy Git shortcuts and tab completion
- npm – autocomplete for NPM packages
- sudo – prompts for password upfront then caches credentials temporarily
- python – automatically activates Python virtualenvs
- safe-paste – prevents accidential dangerous pastes into terminal
Pro tip: install bash-it using Git, then override or extend settings by copying files from
~/.custom. All your customizations will stay in tact when you update bash-it.
With around 5 million developers using Git on Linux, client-side enhancements like bash-it git shortcuts are a big win. In fact, 67% of all Git deployments are on Linux.
4. Terraform – Repeatable Infrastructure Magic
HashiCorp‘s Terraform is one of my favorite open source tools for treating infrastructure-as-code. I like to think of it as "infrastructure-as-commit". The declarative model allows you to version and changelog your cloud environments right alongside application code.
Terraform shines for building complex, multi-tier architectures. Simply define components like servers, databases, networks, and load balancers as code, then Terraform handles provisioning and connecting everything automatically.
Some key terraform tips:
- Store and version your Terraform code in Git for team collaboration
- Separate configurations by environment (dev, staging, prod)
- Validate changes before applying to detect issues early
- Refactor common config into reusable modules
According to RightScale‘s 2021 State of the Cloud Report 93% of enterprises have a multi-cloud strategy. With Terraform, you avoid lock-in by dynamically managing infrastructure across AWS, Azure, Google Cloud, OpenStack, etc.
5. Ansible – Your Infrastructure Sommelier
When I think of Ansible, I picture a skilled sommelier adeptly managing a sprawling wine cellar. Ansible allows you to elegantly orchestrate your infrastructure and applications with simple, human-readable playbooks.
I love that Ansible promotes idempotence and declarative management. Just describe the end state you want, and Ansible figures out how to configure the systems. Some key Ansible advantages:
- Agentless – Uses OpenSSH and WinRM to push configs
- Batteries Included – Tons of modules for common tasks
- Playbook readability – See the big picture in YAML
- Dynamic inventories – CMDBs not required
- Awesome community support
Fun fact: NASA uses Ansible to manage systems on the International Space Station!
6. Nginx – Outserving the Competition
The Apache web server is time-tested, but Nginx is one of my secret weapons for squeezeing more performance from servers running Linux. Its event-driven architecture easily handles tens of thousands of concurrent connections with modest hardware and memory.
Some perks of running Nginx:
- Lean and efficient – low CPU and memory footprint
- Easy to configure with simple config files
- Supports load balancing requests across apps
- Caching and compression speed up sites
- Runs great as an API gateway or reverse proxy
When optimizing WordPress performance, I enable Nginx for serving static files which takes load off the PHP processes. For large-scale deployments, combining Apache and Nginx lets you capitalize on the strengths of each.
According to W3Techs market share data, Nginx now powers over 41% of web servers globally. Its growth shows no signs of stopping!
7. Netdata – Insane Metrics Visualized
I‘m absolutely obsessed with Netdata for its unreal metrics visualization capabilities. The interactive web dashboards provide jaw-dropping insights into system health with meaningful real-time visualization.
Netdata really shines when you hook up its native data backends:
- cgroups – per-container resource usage
- apps – track service health and performance
- Linux stats – system-level KPIs down to I/O
- web servers – Nginx, Apache, and more
When performance mysteriously degrades, I fire up Netdata dashboards to pinpoint what exactly is bogging down the system. It helps me optimize configurations and resource allocations.
According to Netdata‘s GitHub page, it‘s the "fastest hosted real-time performance monitoring solution" in the world. I believe it!
8. Wireshark – Packet Surgical Strikes
As a network admin, Wireshark is my go-to open source packet sniffing tool for analyzing protocols and troubleshooting traffic down to the byte level.
Mastering Wireshark filters helps you surgically dissect network issues. Some examples:
- Find traffic by IP or MAC address
- Filter by protocol – TCP, UDP, ICMP
- Analyze DNS, HTTP, VoIP, and more
- Look for anomalies like latency or errors
I load up packet captures in Wireshark to analyze everything from security events to bandwidth utilization trends. Having raw access to network traffic gives incredible insights.
Fun fact: Wireshark traces its roots back to 1990 when it was a tool called Ethereal used in Unix and Linux distributions. Ethereal was later rebranded as Wireshark in 2006.
9. systemd – The One Init to Rule Them All
Like it or not, systemd has become the standard for initializing systems and managing services in most major Linux distros. Though controversial, its capabilities streamline several sysadmin responsibilities.
Some handy systemd features:
- Centralized logging via journald
- Configurable log filtering, storage, forwarding
- Quickly manage services with
- Socket and D-Bus activation models
- Consistent service unit configuration
- Resource management and sandboxing
Systemd isn‘t perfect, but once you embrace it your init system management becomes much simpler. I suggest reviewing the ArchWiki docs on systemd to better understand how to utilize it.
According to the systemd project page, as of 2022 systemd is running on over 90% of all Linux servers globally based on distros shiped with it by default.
10. Samba – Frictionless File Sharing
In heterogeneous environments, Samba is the Linux admin‘s secret weapon for slick interoperability with Windows clients. Its implementation of SMB/CIFS seamlessly integrates Linux servers into Active Directory domains.
I leverage Samba for:
- Central file servers accessed from Windows PCs
- Printer sharing across platforms
- Distributed file locking between OSes
- Performance boosts by caching files locally
- Access controls with AD group policies
With Samba‘s SMB support and ability to emulate a domain controller, Linux servers become nearly indistinguishable from Windows servers on a network. It knocks down barriers for unified management.
Fun fact: Did you know Microsoft partnered with Samba devs way back in 2000 leading to major contributions? Microsoft saw the value early on!
Hopefully this journey through my favorite Linux tools was helpful. If even a couple are new to you, grab them and start experimenting! Mastering essential open source software is a never-ending journey. Linux landscape moves so rapidly, there‘s always new tech on the horizon.
Let me know if you have any other must-have tools I should be using! I‘m always looking to improve my workflow. Until next time, happy hacking!