Pressionar o botão para cima é entediante e eu posso perder o comando que estava procurando. Portanto, ao digitar history
no terminal, todos os comandos que eu inseri antes foram indexados para um número. Existe alguma maneira de eu ligar para o número associado ao comando?
20
Respostas:
A história do bash pode fazer muitas coisas úteis, e a pesquisa
Strg-r
mencionada por Terry Wang é importante entre elas. Mas também é possível fazer exatamente o que você pediu.Você pode refazer o comando anterior com
!!
. Com isso, você também pode editar o comando anterior. Se, por exemplo, você esqueceu de obter privilégios de root para um comandovocê não precisa digitar tudo isso novamente. Em vez disso, basta ligar
Se você deseja executar novamente o comando em uma posição específica do seu histórico, também pode usar
!
, por exemplopara executar novamente o comando na posição 3. Lembre-se de que isso conta do topo. Portanto, se você estiver armazenando 500 comandos em seu histórico,
!1
seria "500 comandos atrás". Você também pode usar números negativos. Por exemploexecutaria novamente o segundo último comando.
Você também pode executar novamente o último comando iniciado com uma sequência como
o que refaz a última linha que começou com "apt-". Se você quiser o último comando em que a string apareceu em qualquer lugar da linha, use algo como
Há coisas mais interessantes que a história do bash pode fazer. Apenas para dar uma impressão da ampla gama de possibilidades, você pode acessar especificamente um parâmetro de um comando a partir do histórico. então
imprimiria o terceiro parâmetro no quinto do último comando.
EDIT: Com relação ao comentário de Rudie abaixo, com as configurações padrão, essas expansões do histórico do bash são realmente executadas diretamente. Provavelmente é melhor descrito assim: uma chamada como
!-3
é substituída pelo shell pelo terceiro último comando do seu histórico e, em seguida, sua entrada (com a substituição) é executada. Portanto, se você digitar!-3
e pressionarENTER
e seu terceiro último comando forls ~
, é o mesmo que se você digitassels ~
novamente e pressionasseENTER
"por conta própria".Se você não quiser, pode definir a opção shell
histverify
. Para definir e desmarcar opções de shell, convém ler oshopt
comando. Comhistverify
set, uma chamada como!-3
apenas grava a substituição do seu histórico na linha de comando, mas não a executa diretamente. Assim, você deve pressionar o crucialENTER
- ou abster-se, se quiser.fonte
!
é muito perigoso ... eu gostaria de saber o que!-4
fez exatamente antes de executá-lo. Ou isso mostra primeiro? Resumo legal!!-238
. Não deve ser muito difícil lembrar o seu segundo último, terceiro último, talvez o último comando;) Como sempre no Linux (e, na verdade, com a computação em geral), é esperado que você saiba o que está fazendo. E se você realmente quer a rede de segurança adicional, é umshopt
fora;)Sim existe. Se, por exemplo, você deseja executar o comando que possui o número 1234 ao lado, faça:
!1234
Outras coisas úteis:
Se você deseja executar o último comando executado, faça:
Se você deseja executar o último
ls
comando executado, faça:Se você acabou de executar
ls /some/long/path
e desejacd
, faça:Para maiores informações:
fonte
Usar combinação de teclas
Ctrl
-r
, você poderá usar as palavras-chave para pesquisar o histórico do bash.Uma referência rápida de ligação de chave de bash: http://ss64.com/bash/syntax-keyboard.html
fonte
Se você encontrou o número do histórico de um comando e deseja executá-lo novamente, digite
!
seguido pelo número, por exemplo,!1234
e pressione Enter. Isso faz parte da expansão da história ; você pode usar modificadores nele.Se você deseja editar o comando antes de executá-lo,
fc 1234
chama um editor externo.Mas, como Terry Wang já mencionou , geralmente há maneiras mais rápidas de localizar um comando no histórico do que determinar seu número, incluindo Ctrl+ Rpara chamar a pesquisa incremental (pressione Enterquando você encontrar o comando que deseja executar) ou
fc PREFIX
para executar o anterior. comando começando comPREFIX
.fonte
O
history
comando mostrará todos os comandos e seus números associados. Se você quiser apenas fazer uma verificação rápida antes de executar a linha de comando # 135, digite:Isso mostrará o que será executado.
fonte