Is it possible to remove a terminal command? For example, if there was a command call lookup (not an alias), how would I go about removing it?
closed as unclear what you're asking by Eliah Kagan, Zanna, TheWanderer, David Foerster, Pilot6 Sep 27 '17 at 8:51
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
A better way would be to redirect the output of the command to
/dev/null. That way, the command will 'be there' but will show no results.
- Make an alias
alias ls = "ls > /dev/null"
lsnow will not show any results.
EDIT: Thanks to @scai
In the answer above, the command will still show errors because we have redirected
stdout but not
stderr plus a more serious issue, it will still run the command.
If the command in question does things you don't like, for example creating or deleting files, changing settings, painting your nose blue, then this alias won't stop it from doing these things.
For the workaround, we will just alias the command to an empty string, then just redirect the resulting error to
alias ls = "" > /dev/null 2>&1
That's much better now.
EDIT 2: Thanks to @scai again :-)
This is a temporary solution.
To revert back to the original function of the command (in our case
ls), just run
You can do that but you shouldn't.
Anyway there are four main places for commands.
/bin & /usr/bin & /sbin & /usr/sbin
To know the command you want where is
Then as a root you can delete or just rename or move to other directory
sudo rm /path/command
sudo mv /path/commad /newPath
Be sure that the newPath is not in your $PATH environment
I think this "proper" way to do this would be to use permissions. Let's take the
ls command as an example as well.
-rwxr-xr-x 1 root root 105840 /bin/ls*
Here's how I would do it :
Create a group for users allowed to use
ls, let's say we call it lsusers.
sudo addgroup lsusers
Add users to this group accordingly
sudo usermod -aG lsusers [username]
Remove world permissions on
sudo chmod o= /bin/ls
Change the group ownership of
sudo chgrp lsusers /bin/ls
Make sure group permission allow at least executing
sudo chmod 0710 /bin/ls
This should bring something like :
-rwx--x--- 1 root lsusers 105840 /bin/ls*
Which allows root and lsusers members to execute
/bin/ls. Actually, the big problem of aliases is that they can be overridden most of the time. Changing permissions of something belonging to root, now that is a little harder.
Now, about real removal, well this is a package problem. If you want to remove a program (command) from your system, just ask for its package to be removed with :
sudo apt-get --purge remove [package name]
Of course, this is not the kind of things you could do with
/bin/ls (and I'm not sure you'd like to actually
rm it :p)