7 Linux commands that have been deprecated Linux commands

Over the years, several Linux commands have become obsolete, either because they are no longer relevant, have security issues, or have ceased to be maintained. You may still be able to use these common commands, but you probably shouldn’t. Instead, try alternatives that are less prone to bugs and also offer more features.
cron: use systemd or launchd instead
Cron, one of my favorite commands that I learned a long time ago, was nevertheless a frustrating tool to master. Its tricky syntax and difficult-to-debug environment made it difficult to work with, so it’s not surprising that modern alternatives are available. In Linux, the systemd software performs many startup-related tasks, including managing timers.
If you have access to a recent Linux distribution, try using the systemctl command to display all systemd timers:
systemctl list-timers
You can then get more information about a timer with the status subcommand:
systemctl status motd-news.service
The output includes a “Process” line that lists the actual command executed by this timer:
On macOS, cron is also deprecated, but its replacement is launchd instead of systemd. Again, launchd does much more than just schedule tasks, but it acts like a cron upgrade, with features like better handling of tasks that may need to run when your computer is off.
ifconfig: ip replaces it
The ip command tells you everything you might need to know about your network connection, including its IP address, its route to the public Internet, and its network devices. This is a low-level tool whose full power you will only unlock if you are a network or system administrator. For most users, it replaces the old ifconfig tool with one purpose: discovering your public IP address:
ip address
Of course, you can get the same information from a website like ifconfig.me, which shows the IP address you send to it, along with other diagnostics. You can even access it from the command line to see your IP in plain text:
But if you’re debugging a network issue, these options may not be available and a local tool will always be more reliable than a remote website that might one day also become obsolete.
nslookup: dig is more powerful
The “ns” in “nslookup” stands for name server, so this tool provides an interface for querying the DNS. dig is the same thing, with more features and better formatting. Although nslookup’s status has changed several times, becoming obsolete and vice versa, dig is a useful replacement.
In practice, dig is a drop-in replacement for nslookup: pass it a domain name and you’ll get the IP address(es) the domain corresponds to:
If you need a really simple tool, nslookup will do the trick. But whenever you want detailed debugging information or a more advanced recording query, dig should be your first choice.
neofetch: many successors are available
Some commands are so popular that when they become obsolete, they lead to many replacements. The Neofetch program is responsible for all those colorful ASCII logos you see brightening up screenshots of Linux terminals:
Unfortunately, the tool was retired in 2024, but fortunately there are many alternatives. It seems like every programming language has its own version of this utility, from Bash scripting to C and Rust.
Fastfetch is the main competitor, featuring a colorful logo and detailed system specifications and statistics. You can configure everything about its output, from the layout to the precise information it reports to how it presents it:
Although many options exist, fastfetch is probably the best, especially because it is actively maintained. Other alternatives, like ufetch or pfetch, have been archived or are no longer updated. And some other tools can clearly take inspiration from fastfetch’s design, but they perform different functions; onefetch, for example, displays summary information about a git project:
scp: rsync can be much faster
scp – for “secure copy” – is a quick and easy command that securely copies files across a network, using an SSH connection. This was an upgrade to FTP, but is now deprecated in favor of rsync, depending on your required usage.
In the simple case, you can use either tool in the same way to download a file to a remote computer:
rsync foo.txt user@some-computer:/path/to/remote/foo.txtscp foo.txt user@some-computer:/path/to/remote/foo.txt
While scp works great for downloading files, rsync is better for more complex directory structures that you may want to download (or upload) more than once. As the name suggests, rsync ensures that a remote set of files and a local set are in sync. If there are differences, it intelligently transfers a set of deltas rather than full files, making it much more efficient than scp.
netstat: ss is the upgrade to achieve
The netstat tool, short for “network status”, is another networking tool that is now deprecated because it was part of the net-tools package. The modern equivalent is art.
netstat displays open network sockets, routing tables, and other network statistics. It is useful for troubleshooting network problems and checking network traffic performance.
ss, which belongs to the iproute2 collection, displays various network statistics. It is similar to IP routebut is available as a standalone order.
which: type is a better option
Another aspect of Linux that can be difficult to understand is what exactly happens when you run a command. For example, running a command seems simple enough:
ls
However, behind the scenes, several things could be happening, including:
-
Run a builtin command.
-
Execute a shell function.
-
Run an executable program.
-
Executing an alias, causing the process to repeat.
There are several commands to help you find out exactly what is going on. These include the following, with descriptions of their man or tldr pages:
-
which: locate a program file in the user’s path.
-
hence: a Zsh builtin to indicate how a command would be interpreted.
-
where: reports all known instances of a command.
-
where is: locate programs.
-
command -v: Shows the executable path or alias definition of a specific command.
The whatis command is yet another task-related command, but with a slight difference. what is -d keyword will show you detailed information about a command (and related commands) by searching for a keyword in the man pages.
They all do pretty much the same sort of thing, with slight differences in their performance. But the recommended replacement for which is a completely different program: type.
On macOS, the which command is a built-in shell, but my Ubuntu 24 system only has one executable program, in /usr/bin/which. This program cannot give as much information as a built-in shell because it does not have access to this data. So running “which cd” on Ubuntu gives me no output, while macOS tells me “cd: shell built-in command”.
The standard command, for its part, is integrated. On macOS and Ubuntu (and any other Linux distribution), it should tell you exactly what a command is and where it is located, if applicable:
Note that type also supports the same useful -a option as this, to show all instances of a command, not just the first:
If the presence of cd as an executable, in addition to a built-in component, seems weird to you, it should! On macOS the program is simply a shell script that calls the built-in cd, so it’s just a dummy wrapper. This is for POSIX compliance and you will probably never need to use it.


