Remover um comando do terminal [closed]

1

É possível remover um comando do terminal? Por exemplo, se houvesse uma consulta de chamada de comando (não um alias), como eu iria removê-la?

    
por George Newton 07.03.2014 / 08:29

3 respostas

7

Uma maneira melhor seria redirecionar a saída do comando para /dev/null . Dessa forma, o comando estará "lá", mas não mostrará resultados.

Exemplo: o comando ls .

  1. Faça um alias
    alias ls = "ls > /dev/null"
  2. A execução de ls agora não mostrará nenhum resultado.

EDIT: Obrigado ao @scai
Na resposta acima, o comando ainda mostrará erros porque redirecionamos stdout , mas não stderr , mais um problema mais sério, ele ainda executará o comando .

Citando @scai :

  

Se o comando em questão fizer coisas de que você não gosta, por exemplo, criar ou excluir arquivos, alterar configurações, pintar seu nariz azul, esse alias não o impedirá de fazer essas coisas.

Para a solução alternativa, apenas alias o comando a uma string vazia e, em seguida, redirecionamos o erro resultante para /dev/null .

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

Isso é muito melhor agora.

EDIT 2: Obrigado a @scai novamente: -)
Esta é uma solução temporária.
Para reverter para a função original do comando (no nosso caso ls ), apenas execute unalias ls .

    
por Parto 07.03.2014 / 08:40
3

Você pode fazer isso, mas não deveria.

De qualquer forma, existem quatro lugares principais para comandos.

/ bin & amp; / usr / bin & amp; / sbin & amp; / usr / sbin

Para saber o comando que você quer onde está

whereis COMMAND

Em seguida, como root, você pode excluir ou apenas renomear ou mover para outro diretório

sudo rm /path/command

Ou

sudo mv /path/commad /newPath

Certifique-se de que o newPath não esteja no seu ambiente $ PATH

    
por Maythux 07.03.2014 / 08:33
3

Acho que essa maneira "correta" de fazer isso seria usar permissões. Vamos pegar o comando ls como exemplo também.

-rwxr-xr-x 1 root root 105840 /bin/ls*

Veja como eu faria:

Crie um grupo para os usuários autorizados a usar ls , digamos que chamamos de lususers .

sudo addgroup lsusers

Adicione usuários a esse grupo de acordo

sudo usermod -aG lsusers [username]

Remova as permissões do mundo em /bin/ls

sudo chmod o= /bin/ls

Altere a propriedade do grupo de /bin/ls

sudo chgrp lsusers /bin/ls

Certifique-se de que a permissão de grupo permita pelo menos executar

sudo chmod 0710 /bin/ls

Isso deve trazer algo como:

-rwx--x--- 1 root lsusers 105840 /bin/ls*

Que permite que membros root e lusers executem /bin/ls . Na verdade, o grande problema dos aliases é que eles podem ser ignorados na maior parte do tempo. Alterar as permissões de algo que pertence ao root, agora é um pouco mais difícil.

Agora, sobre remoção real , esse é um problema de pacote. Se você quiser remover um programa (comando) do seu sistema, apenas peça que seu pacote seja removido com:

sudo apt-get --purge remove [package name]

É claro que esse não é o tipo de coisa que você poderia fazer com /bin/ls (e não tenho certeza se você gostaria de realmente rm it: p)

    
por John WH Smith 07.03.2014 / 10:07