De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 17 de março de 2014
É bastante comum executarmos um comando que requer privilégios de super usuário (root) usando a shell de login de usuário comum.
Precisamos então redigitar todo o comando, precedendo-o do comando sudo
,
para então executar o comando com os privilégios requeridos. A shell bash
nos oferece um recurso que nos permite fazer isto com menos esforço:
$ apt-get install package E: Não foi possível abrir arquivo de trava /var/lib/dpkg/lock - open (13: Permissão negada) E: Não foi possível criar acesso exclusivo ao directório de administração (/var/lib/dpkg/), é root? $ sudo !! sudo apt-get install package [sudo] password for queiroz:
A diretiva "!!
"" representa todo o comando executado anteriormente. No
exemplo acima este recurso para completar um comando, mas podemos usá-lo
também para repetir o comando anterior.
Explorando um pouco mais este conceito, a diretiva "!^
"" assume o valor
do primeiro argumento do comando anterior. Tomando novamente por base
o comando "apt-get install package
" temos:
$ !^ $ apt-get
E da mesma forma, a diretiva !$ assume o valor do último argumento do comando anterior:
$ !$ $ package
Estes recursos são particularmente úteis quando temos que digitar trechos longos, como caminhos de diretórios ou arquivos com muitos caracteres.