você está aqui: Home  → Arquivo de Mensagens

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.



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