shell salva o endereço IP que você pingar? [duplicado]

1

Uma vez eu fui mostrado um atalho que não consigo lembrar / encontrar. Depois de pingar um ip, então tentar ssh nele - o ip foi salvo em uma variável automagicamente.

Algo como:

    ping 10.1.23.4
    ...
    ssh root@$!

e o ip foi replicado na segunda linha substituindo $! sem mais delongas.

Então isso soa um pouco sobre qual é a sintaxe real? Ou isso foi uma configuração especial? Eu acredito que isso estava rodando centos se isso está relacionado. tia

    
por user1541542 13.08.2013 / 05:37

2 respostas

3

Este é um bashmo - bash sendo a linguagem de shell padrão no CentOS. (Csh tem algo similar.) Confira a parte sobre Expansão do Histórico no manual; provavelmente você está interessado em !* , que é "todos os argumentos para o comando anterior", ou !^ , que lhe dará o primeiro, ou !$ , que lhe dará o último.

Observe que essas variáveis não são . Eles são expandidos e substituídos pelo valor de substituição na história.

    
por 13.08.2013 / 06:01
0

Outra alternativa, se você estiver usando o bash no modo de edição do emacs (o padrão), então você pode fazer:

$ ping x.x.x.x Ctrl - w Ctrl - y

A tecla Ctrl - w irá apagar a última palavra (o endereço IP), colocando-a no kill ring , Ctrl - y irá colar o conteúdo do kill ring.

Você pode então executar qualquer número de comandos e, em seguida, no momento em que você precisar do IP novamente reutilizar Ctrl - y

$ ssh root@ Ctrl - y

Observe que a emissão de quaisquer funções relacionadas a kill em uma nova linha de comandos substituirá o conteúdo do kill kill:

$ ping x.x.x.x Ctrl - w Ctrl - y

$ touch /tmp/example.file Ctrl - w Ctrl - y

$ ssh root@ Ctrl - y

resultará em:

$ ssh root@/tmp/example.file

    
por 14.08.2013 / 01:11