Independência entre sudo e a instrução que recebe como argumento

2

Eu não entendo porque o diretório dir1 não é mostrado com a mesma cor. Embora isso possa parecer sem importância, parece-me que isso é uma violação do tão mencionado princípio da independência na computação (tenho professores que o mencionam em cada palestra).

Eu sei que 'ls' é um argumento de 'sudo', mas não deve 'sudo' apenas mudar privilégios e então NÃO interferir de forma alguma com a instrução que recebe como argumento?

    
por user3122885 10.01.2014 / 14:43

2 respostas

3

Esta discrepância vem de uma simples opção para ls mais nada.

Na verdade, seu ls está com alias para ls --color=auto . Para ver isso tente no terminal,

type ls

É por isso que você tem saídas coloridas. Mas quando você usa sudo ls , ele usa /bin/ls , que não tem a opção de cor com ele. Então, ele não mostra as saídas coloridas.

Se você tentar /bin/ls , também terá menos saída de cor. Ou tente sudo ls --color=auto , que deve dar cor a você.

    
por souravc 10.01.2014 / 15:07
0

Eu acredito que isso ocorre porque seu usuário octavian e a elevação das permissões desse usuário acontecem em dois shells diferentes.

O Ubuntu, por padrão, usa bash como shell para os usuários. Quando você executa comandos através de sudo , o shell muda para sh .

Aqui está uma captura de tela demonstrando as diferentes camadas.

Você pode ver a primeira vez que executo ls , estou no shell bash. Você pode dizer porque o prompt anota meu nome de usuário, nome de host e diretório atual.

Quando eu alterno para sh , o prompt é alterado, pois é um shell completamente diferente com recursos diferentes.

Existem toneladas de shells diferentes disponíveis, todas com recursos, prompts e opções de personalização diferentes. Um dos shell mais personalizável é zsh .

    
por Sajan Parikh 10.01.2014 / 14:52