기억나지 않거나 찾을 수 없는 지름길을 본 적이 있습니다. IP에 ping을 보낸 후 해당 IP에 ssh를 시도하면 IP가 자동으로 변수에 저장됩니다.
그것은 다음과 같습니다:
ping 10.1.23.4
...
ssh root@$!
그리고 IP는 두 번째 줄에 복사되어 문제 없이 $!를 대체합니다.
그러면 이것이 실제 구문이 무엇인지에 대한 아이디어를 제공합니까? 아니면 특별한 구성인가요? 관련이 있는 경우 Centos를 실행하고 있다고 생각합니다. 티아
답변1
이것이 bashism입니다. bash는 CentOS의 기본 쉘 언어입니다. (Csh에도 비슷한 것이 있습니다.) 관련 섹션을 참조하세요.역사적 확장매뉴얼에서는 !*
"이전 명령의 모든 인수"에 관심이 있을 수 있습니다. 또는 !^
, 첫 번째 인수를 제공하거나, !$
마지막 인수를 제공합니다.
이 점에 유의하시기 바랍니다아니요변하기 쉬운. 이는 기록 재설정 값으로 확장되고 대체됩니다.
답변2
또 다른 옵션은 emacs 편집 모드(기본값)에서 bash를 사용하는 경우 다음을 수행할 수 있습니다.
$ ping x.x.x.x
Ctrl- wCtrl-y
- 마지막 단어(IP 주소)를 Ctrl제거 w하고 입력합니다.살인 반지, Ctrl- y킬링의 내용이 붙여넣어집니다.
그런 다음 원하는 만큼 많은 명령을 실행할 수 있으며 IP가 다시 필요할 때 반복하면 됩니다 Ctrl.y
$ ssh root@
Ctrl-y
새 명령줄에서 종료 관련 함수를 실행하면 종료 루프의 내용이 대체됩니다.
$ ping x.x.x.x
Ctrl- wCtrl-y
$ touch /tmp/example.file
Ctrl- wCtrl-y
$ ssh root@
Ctrl-y
결과는 다음과 같습니다.
$ ssh root@/tmp/example.file