Sudo não funciona em aliases [duplicados]

1

Eu adicionei alias ll='ls -la' em /etc/bash.bashrc, mas sudo ll não está funcionando. Existe uma maneira de "fonte" bash.bashrc? Em um post relacionado, outro usuário sugeriu a criação de um alias para o sudo com um espaço depois dele. Por exemplo. alias sudo='sudo ' , mas não havia contexto para essa resposta. Devo adicionar isso ao meu bashrc? Parece hackish.

Qual é o método correto para adicionar um apelido para meus comandos sudo one-off?

    
por curios 04.02.2014 / 19:28

2 respostas

2

Sim, adicionar a linha alias sudo='sudo ' corrigirá seu problema. Para uma melhor definição (do manual do bash ),

Aliases allow a string to be substituted for a word when it is used as the first word of a simple command. The shell maintains a list of aliases that may be set and unset with the alias and unalias builtin commands.

The first word of each simple command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias. The characters ‘/’, ‘$’, ‘'’, ‘=’ and any of the shell metacharacters or quoting characters listed above may not appear in an alias name. The replacement text may contain any valid shell input, including shell metacharacters. The first word of the replacement text is tested for aliases, but a word that is identical to an alias being expanded is not expanded a second time. This means that one may alias ls to "ls -F", for instance, and Bash does not try to recursively expand the replacement text. If the last character of the alias value is a space or tab character, then the next command word following the alias is also checked for alias expansion.

Uma maneira de ter certeza é digitando em uma janela de terminal .

Se você fizer dessa forma, as mudanças não são permanentes, elas existem apenas até você fechar / sair do terminal.

Acho que, no seu caso, seria mais seguro adicionar as alterações a ~/.bashrc em vez de /etc/bash.bashrc , mas isso não faz muita diferença.

    
por 04.02.2014 / 19:43
0

Tente adicionar o alias a ~ / .bashrc, que é o arquivo de inicialização que o bash examinará por usuário. Acho que editar esse arquivo tornará o sistema de alias amplo.

Por exemplo, em ~ / .bashrc, eu configuraria os seguintes comandos sudo apt-get na maioria das instalações do Ubuntu

alias apts='sudo apt-cache search'
alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'

Qual comando especificamente você está tentando criar um alias? geralmente um alias é uma maneira de tornar o que seria um comando longo e complicado um simples comando de uma palavra.

Além disso, por que você está tentando sudo um comando que normalmente não requer sudo como ls -la? Eu acho que quando você executa um comando via sudo ele muda as variáveis ambientais disponíveis para você, então isso pode ser parte do seu problema também.

    
por 04.02.2014 / 19:44