Можно ли удалить команду терминала? Например, если был поиск командного вызова (а не псевдоним), как мне его удалить?
Лучший путь состоял бы в том, чтобы перенаправить вывод команды к /dev/null
. Тем путем команда 'будет там', но не покажет результатов.
Пример: ls
команда.
alias ls = "ls > /dev/null"
ls
теперь не покажет результатов.Править: Благодаря @scai
В ответе выше, команда все еще покажет ошибки, потому что мы перенаправили stdout
но нет stderr
плюс более серьезная проблема это все еще выполнит команду.
Заключение в кавычки @scai:
Если рассматриваемая команда делает вещи, Вам не нравится, например, создавая или удаляя файлы, изменяя настройки, крася Ваш нос синим, то этот псевдоним не будет мешать ему делать эти вещи.
Для обходного решения мы просто исказим команду к пустой строке, затем просто перенаправим получающуюся ошибку к /dev/null
.
alias ls = "" > /dev/null 2>&1
Это намного лучше теперь.
РЕДАКТИРОВАНИЕ 2: Благодаря @scai снова :-)
Это - временное решение.
Вернуться назад к исходной функции команды (в нашем случае ls
), просто выполненный unalias ls
.
Можно сделать это, но Вы не были должны.
Так или иначе существует четыре основных места для команд.
/ мусорное ведро &/usr/bin &/sbin &/usr/sbin
Для знания команды, которую Вы хотите, где
whereis COMMAND
Тогда как корень, который можно удалить или просто переименовать или переместить в другой каталог
sudo rm /path/command
Или
sudo mv /path/commad /newPath
Быть уверенными, что newPath не находится в среде $PATH
Я думаю, что этот «правильный» способ сделать это - использовать разрешения. Давайте также возьмем команду ls
в качестве примера.
-rwxr-xr-x 1 root root 105840 /bin/ls*
Вот как я это сделаю:
Создать группу для пользователей, которым разрешено использовать ls
, скажем, мы назовем ее lsusers .
sudo addgroup lsusers
Добавить пользователей в эту группу соответственно
sudo usermod -aG lsusers [username]
Удалить мировые разрешения для /bin/ls
sudo chmod o= /bin/ls
[ 1131] Измените групповое владение /bin/ls
sudo chgrp lsusers /bin/ls
Убедитесь, что разрешение группы позволяет по крайней мере выполнить
sudo chmod 0710 /bin/ls
Это должно привести к чему-то вроде :
-rwx--x--- 1 root lsusers 105840 /bin/ls*
Что позволяет членам root и lsusers выполнять /bin/ls
. На самом деле, большая проблема псевдонимов заключается в том, что они могут быть переопределены большую часть времени. Изменение прав доступа к чему-то, принадлежащему root, теперь немного сложнее.
Теперь о реальном удалении , ну, это проблема пакета. Если вы хотите удалить программу (команду) из вашей системы, просто попросите удалить ее пакет с помощью:
sudo apt-get --purge remove [package name]
Конечно, это не те вещи, которые вы могли бы сделать с /bin/ls
(и я не уверен, что вы бы хотели rm
это сделать: p)