Nagios 패키지를 설치하려고 했는데 가이드에서 이상한 bash 확장 기능을 발견했습니다.여기. 확장이 무엇을 의미하는지 이해하도록 도와줄 수 있는 사람이 있나요? Wiki 링크는 향후 참조에도 도움이 됩니다.
root@z:~> wget http://mathias-kettner.de/download/check_mk-1.1.7i5.tar.gz
root@z:~> tar zxvf !#:t
root@z:~> chown -R root:root !$:r:r && chmod -R o-w !$:r:r && cd !$:r:r
root@z:~/check_mk-1.1.7i5> ./setup.sh
답변1
이것들은 모두bash
역사적 확장 키워드. 쉘 히스토리에서 행을 선택하고 그 행의 일부를 다시 삽입합니다(아마도 수정 후). 귀하가 링크한 사이트에서는 이에 대해 합리적으로 설명하고 있지만 모든 내용을 설명하지는 않습니다.
tar zxvf !#:t
실제로는 의미가 없습니다. !#
지금까지 입력한 줄을 선택했지만 tar zxvf
그 중 어떤 것도 재사용하고 싶지 않습니다. 그것은해야한다
tar zxvf !$:t
!$
주어진 URL인 이전 줄의 마지막 부분( )을 선택하고 wget
파일 이름 부분( :t
, tail을 의미함 - 기술적으로는 마지막 디렉토리 구분 기호 뒤에 남겨진 부분으로 /
URL과 잘 작동함)을 가져옵니다. .
그 다음에
chown -R root:root !$:r:r
이전 줄의 마지막 부분을 선택하고, 파일 확장자를 제거합니다( :r
엄밀히 말하면 마지막 부분 이후의 모든 것을 .
포함하여 제거 .
). 이렇게 하면 디렉토리 이름이 제공됩니다(타르볼에 타르볼의 기본 이름과 동일한 이름을 가진 디렉토리가 포함되어 있다고 가정). )). chmod
명령도 cd
같은 방식으로 진행됩니다.