Stop using these 5 deprecated Linux commands (and what to use instead)

Linux has hundreds of available commands, and unless you’re keeping up with the latest news, changes to the default tools may slip under your radar. While it’s true that Linux is very stable, and tool deprecations are rare, some of our much-beloved and well-known utilities changed years ago, and nobody informed us. I have five deprecated Linux commands and their replacements.
Ditch arp for ip n
A modern and colorful alternative
For those unaware, network hardware communicates with MAC addresses, but software uses IP addresses. When software makes a request, our computers ask the local area network (LAN) which MAC address belongs to a particular IP address. This process is called an ARP (Address Resolution Protocol) request.
A MAC address is a (typically) unique, 6-byte hexadecimal number that most LAN devices have burned into them—unless changed by the OS.
For as long as I’ve been on Linux, and even Windows, the command to interact with ARP was always “arp.” But for around a decade now, the new norm has been to use ip neigh (neighbor) or ip n for short.
The “ip” command is part of the newer iproute2 package, which superseded the aging net-tools. The last release of net-tools was in 2021, and talks about deprecation occurred as far back as 2009.
So if you’re still using “arp,” it’s probably time to switch.
Drop ifconfig for ip a
ifconfig is legacy and development stopped long ago
The ifconfig command was likely one of the first you learned on Linux. It was easy to remember, and even easier to get useful information from. However, ifconfig is part of the now-deprecated net-tools package, and so development stopped for it long ago, leaving it without modern features and showing signs of age.
Its replacement (“ip a” or ip address), again, is part of iproute2, and it has a much sleeker, more colorful display:
It’s not just for viewing information either, because you can also use it to configure interfaces on the fly. These changes are volatile and don’t last, so beware.
Switch from iptables to nft
It’s more efficient and is the new norm
If you’ve configured a firewall on Linux, you’ve undoubtedly heard of iptables. It’s a long-standing command that allows administrators to build up complex policy rules—e.g., filtering, mangling, and routing packets. It’s one of those commands that I found hard to move on from because of the complexity of the role it fills. However, Debian 10 made nftables the default in 2019, and RHEL 9 formally deprecated iptables in 2022—iptablesis now consigned to the aging firmware on your talking toaster.
However, the Linux community isn’t rash; there was clearly a replacement, and nftables found its way into the kernel in 2014. It was a natural progression from its predecessor, with improvements in efficiency and reduced code complexity. If you don’t write firewall policy rules, this will probably bore you, but if you do, you have no choice but to use it.
Stop using which
Shell builtins are less wasteful and recommended
Everybody has used this command at some point, and I still use it. In a nutshell, if you’re looking for a binary path on your system, executing which tells you where it is. Although it isn’t yet explicitly deprecated, other commands have superseded it.
One of its replacements is type, a shell built-in for Bash, Zsh, and possibly others:
“type -p” behaves differently on Zsh. Check the Zsh manual.
Another alternative is to use command -v, which is also a built-in:
Since they’re both built into the shell, they’re much faster to execute from scripts because the shell doesn’t need to fork the process.
Switch from netstat to ss
It’s more powerful and easier to use
The last one on the list replaces a classic. Netstat is also available on Windows, and it’s another command I’ve used for decades. On Linux, netstat -altpn is long burned into my brainstem, but its newer replacement retains many of the commonly used flags:
It’s an improvement in terms of speed and utility. The ss command pulls information directly from kernel interfaces, making it much snappier. It’s not limited to network sockets either, because it can display information on Unix domain sockets:
The “ss” command can do a great deal more. For example:
-
ss -t state listening: View listening TCP sockets. -
ss state syn-sent: View connection status at various stages. -
ss dport = :443: View connections bound to a remote port.
The “ss” command is also part of the iproute2 package, and it’s a clear upgrade on netstat.
Please stop using these 7 deprecated Linux commands
Get with the program!
A large chunk of the commands covered today are part of the iproute2 package, and so you should dig a little deeper into the utilities it provides because, ultimately, it’s the replacement for many older, deprecated tools.
While most of the commands on Linux will remain the same for years, occasionally some change. It’s always nice to have a refresher and introduce yourself to new tools. The older commands are far from perfect, so even small upgrades can be plenty useful.
10 Linux apps I tried in 2025 that I’m still using daily
From the utilitarian to just the plain cute and fun, I’ve found several apps that I refuse to uninstall.



