- Samsung Galaxy S25 Ultra hands-on: Why I'm nearly sold on the flagship Android phone
- This new framework aims to finally set the standard for open-source AI models
- Operational Security: The Backbone of Effective Police Communication
- CISOs Dramatically Increase Boardroom Influence but Still Lack Soft Sk
- Navigating E-rate for FY2025: Key Deadlines and New Opportunities
6 Linux commands I can't work without – and what I use them for
Before we get into this, I want to be clear: Using the command line is not a requirement for using Linux. I mention this because the idea of typing commands tends to scare off new users and my goal — for years — has been to introduce people to the open source operating system.
That said, there are certain Linux commands that I can count on to use every single day. Those commands help me do the things I do, keep my systems running well, and ensure that I’m informed about what’s happening on my machines.
Also: The first 5 Linux commands every new user should learn
Of course, everyone’s computing experience is different, so what you need likely will differ from the commands I depend on. That said, here are the six Linux commands that are almost guaranteed to be run daily from my keyboard.
1. top
I always like to know what’s going on under the hood, especially if I feel as if something has gone awry. When that time comes, top is my command of choice. With top, I can quickly find out how many system resources an app or command is using. On top of that, I can see the PID (Process ID) associated with that command or app and can use it to kill the app, should it be necessary.
The reason I use top rather than one of the GUI apps is that I can remote into a machine and uncover the information from the terminal. Top is fast, easy to use, and never fails me.
To open top, issue the following command:
top
2. ssh
I could make a case for ssh being the most important command on the list. Why? Consider this: Sometimes VirtualBox loses its mind, and a guest VM will start behaving badly enough to lock up my system. When that happens, I can use ssh to access the system, use top to find out the PID associated with the VM, then kill the VM with the kill PID (where PID is the process ID of the VirtualBox guest) — and I’m all set.
I often have to remote into other machines on my network (or outside of my network) to get certain things done (like updating a server). I also use scp (which is part of ssh) to move files around on my network, so, yeah, ssh is pretty important.
SSH is simple to use. For example, if I want to remote into a server on my LAN, I could issue the following:
ssh jack@192.168.1.100
3. sudo
This one is probably the command I run most often — because I’m always installing software, updating apps, managing processes and services, and doing all sorts of things that require admin privileges. If it weren’t for sudo, I’d have to first change to the root user, which can be a security issue. With sudo, I gain temporary admin privileges, can run a command or app, and then know those privileges will be automatically revoked after a set period. Sudo was a very smart addition to Linux and continues to be one of the most important commands I’ve run to date.
Also: 5 Linux network-related commands every new user should know
Sudo is simple to use. You simply add it to the beginning of any command you would run that requires admin privileges like so:
sudo apt install upgrade -y
4. apt
Given how often I test and review open-source software on Debian/Ubuntu-based distributions, it should be no surprise that apt is one of my most-used commands. The apt package manager simplifies the process of managing applications and even fixing broken installations (sudo apt install -f has saved my hide on several occasions). Although the GUI frontends for apt are outstanding, there are some things they cannot do (such as apt purge apt autoremove), which is why I often prefer to manage packages from the command line.
Apt is easy. For example, if you want to install GIMP, you’d issue the following command:
sudo apt install gimp -y
5. wget
Wget is one of those commands that may not get used every day, but when it does get used, I realize how important it is. When there’s a file or script I need to download, and there’s no web browser-accessible link to use, wget can get the job done. I use wget regularly, especially when installing server-based software, where the operating system probably doesn’t have a GUI to depend on. With wget, it doesn’t matter if there’s a desktop environment or not; I can still grab whatever I need to get the job done.
Let’s say you want to download the source for the latest release of GIMP. You can do that with:
wget https://download.gimp.org/gimp/v2.10/gimp-2.10.0-RC1.tar.bz2
6. systemctl
Systemctl allows me to control processes. Not only can I start and stop them, but I can check to see if they are running or not. If a process has died, systemctl will report it. Then I can also use it to help troubleshoot why the process stopped in the first place (with journalctl – which is part of systemctl), set the default target (such as GUI or terminal), mask or unmask a service, enable a service to start at boot, list unit files, and more.
Also: My 5 favorite Linux text editors (and why you should be using one)
Systemctl is a must-use to keep a system running well. Those new to Linux probably won’t need to bother with systemctl at first, but eventually, you’ll want to dig into the ins and outs of this command because it comes in very handy.
The systemctl command is simple. Say you want to start the SSH daemon. This can be done with:
sudo systemctl start ssh