위로 버튼을 누르는 것은 지루하며 내가 찾던 명령을 놓칠 수 있습니다. history
터미널에 입력하면 이전에 입력 한 모든 명령이 숫자로 색인됩니다. 명령과 관련된 번호로 전화 할 수있는 방법이 있습니까?
위로 버튼을 누르는 것은 지루하며 내가 찾던 명령을 놓칠 수 있습니다. history
터미널에 입력하면 이전에 입력 한 모든 명령이 숫자로 색인됩니다. 명령과 관련된 번호로 전화 할 수있는 방법이 있습니까?
답변:
배쉬 역사는 많은 도움이 될 수 있으며 Strg-r
Terry Wang이 언급 한 검색 은 그중 중요한 것입니다. 그러나 요청한 내용을 정확하게 수행 할 수도 있습니다.
로 이전 명령을 다시 실행할 수 있습니다 !!
. 이를 통해 이전 명령을 편집 할 수도 있습니다. 예를 들어 명령에 대한 루트 권한을 얻지 못한 경우
apt-get install a-long-list-of-packages
다시 입력하지 않아도됩니다. 대신 전화
sudo !!
히스토리의 특정 위치에서 명령을 다시 실행하려면 !
예를 들어
!3
위치 3에서 명령을 다시 실행하려면이 값이 맨 위에서 계산됩니다. 따라서 기록에 500 개의 명령을 저장하는 경우 !1
"500 명령 전"이됩니다. 음수를 사용할 수도 있습니다. 예를 들어
!-2
두 번째 마지막 명령을 다시 실행합니다.
다음과 같은 문자열로 시작한 마지막 명령을 다시 실행할 수도 있습니다.
!apt-
"apt-"로 시작한 마지막 줄을 다시 실행할 것입니다. 줄 어디에서나 문자열이 나타난 마지막 명령을 원하면 다음과 같은 것을 사용할 수 있습니다
!?pt-ge
배쉬 역사가 할 수있는 더 흥미로운 것들이 있습니다. 광범위한 가능성에 대한 인상을주기 위해 히스토리에서 명령의 매개 변수에 구체적으로 액세스 할 수 있습니다. 그래서
!-5:3:p
세 번째 매개 변수를 마지막 명령에서 다섯 번째 매개 변수로 인쇄합니다.
편집 : 아래 Rudie의 의견과 관련하여 표준 설정 으로이 bash 기록 확장은 실제로 직접 실행됩니다. 그것은 아마도 최고의 다음과 같이 설명 것 : 같은 호출 !-3
되어 대체 세 번째 마지막 기록에서 명령으로 쉘에 의해 다음 실행 (교체 포함) 귀하의 의견. 따라서 입력 !-3
하고을 누르고 ENTER
세 번째 마지막 명령이 ls ~
이면 ls ~
다시 입력 하고 ENTER
"직접" 누르는 것과 동일 합니다.
원하지 않으면 쉘 옵션을 설정할 수 있습니다 histverify
. 쉘 옵션을 설정 및 설정 해제하려면 shopt
명령 을 읽으십시오 . 로 histverify
설정, 같은 전화 !-3
에만이 명령 줄로 역사에서 교체를 기록하지만 직접 실행하지 않습니다. 당신은 훔쳐보기 위해 중요한 것을 ENTER
스스로 누르 거나 원하는 경우 자제하십시오.
!
위험합니다 ... 나는 그것을 !-4
실행하기 전에 정확히 무엇을 알고 싶습니다 . 아니면 먼저 보여 주나요? 멋진 요약!
!-238
. 두 번째, 세 번째, 마지막, 아마도 마지막 명령을 기억하는 것이 너무 어렵지 않아야합니다. 추가 안전망을 원한다면 shopt
멀리 떨어져 있습니다.)
그렇습니다. 예를 들어, 번호가 1234 인 명령을 실행하려면 다음을 수행하십시오.
!1234
다른 유용한 것들 :
마지막으로 실행 한 명령을 실행하려면 다음을 수행하십시오.
!!
마지막으로 실행 한 ls
명령 을 실행하려면 다음을 수행하십시오 .
!ls
방금 실행했는데 ls /some/long/path
원하는 경우 다음을 cd
수행하십시오.
cd !$
자세한 내용은:
키 조합 사용 Ctrl
- r
키워드를 사용하여 배쉬 기록을 검색 할 수 있습니다.
빠른 bash 키 바인딩 참조 : http://ss64.com/bash/syntax-keyboard.html
명령의 히스토리 번호를 찾아서 다시 실행하려면 !
다음에 번호를 입력하십시오 ( 예 !1234
:) Enter. 이것은 역사 확장의 일부입니다 . 수정자를 붙일 수 있습니다 .
명령을 실행하기 전에 편집하려면 fc 1234
외부 편집기를 호출하십시오.
그러나 Terry Wang이 이미 언급했듯이 증분 검색을 호출 하거나 (실행하려는 명령을 찾았을 때 누르기 ) 또는 이전 명령을 실행하는 Ctrl+ R를 포함하여 기록 번호를 결정하는 것보다 일반적으로 기록에서 명령을 찾는 방법이 더 빠릅니다. 로 시작하는 명령 .Enterfc PREFIX
PREFIX