Удалить команду терминала [закрыто]

Можно ли удалить команду терминала? Например, если был поиск командного вызова (а не псевдоним), как мне его удалить?

1
задан 7 March 2014 в 11:29

3 ответа

Лучший путь состоял бы в том, чтобы перенаправить вывод команды к /dev/null. Тем путем команда 'будет там', но не покажет результатов.

Пример: ls команда.

  1. Сделайте псевдоним
    alias ls = "ls > /dev/null"
  2. Выполнение ls теперь не покажет результатов.

Править: Благодаря @scai
В ответе выше, команда все еще покажет ошибки, потому что мы перенаправили stdout но нет stderr плюс более серьезная проблема это все еще выполнит команду.

Заключение в кавычки @scai:

Если рассматриваемая команда делает вещи, Вам не нравится, например, создавая или удаляя файлы, изменяя настройки, крася Ваш нос синим, то этот псевдоним не будет мешать ему делать эти вещи.

Для обходного решения мы просто исказим команду к пустой строке, затем просто перенаправим получающуюся ошибку к /dev/null.

alias ls = "" > /dev/null 2>&1

Это намного лучше теперь.


РЕДАКТИРОВАНИЕ 2: Благодаря @scai снова :-)
Это - временное решение.
Вернуться назад к исходной функции команды (в нашем случае ls), просто выполненный unalias ls.

7
ответ дан 10 November 2019 в 18:01

Можно сделать это, но Вы не были должны.

Так или иначе существует четыре основных места для команд.

/ мусорное ведро &/usr/bin &/sbin &/usr/sbin

Для знания команды, которую Вы хотите, где

whereis COMMAND

Тогда как корень, который можно удалить или просто переименовать или переместить в другой каталог

sudo rm /path/command

Или

sudo mv /path/commad /newPath

Быть уверенными, что newPath не находится в среде $PATH

3
ответ дан 10 November 2019 в 18:01

Я думаю, что этот «правильный» способ сделать это - использовать разрешения. Давайте также возьмем команду 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)

3
ответ дан 10 November 2019 в 18:01

Другие вопросы по тегам:

Похожие вопросы: