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.

Bash - Referência a trechos de comandos anteriores

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.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida