bash의 대화식 입력 메커니즘이므로 시스템의 man bash , 특히 Readline 섹션을 읽어야 합니다 . gnu.org 의 Bash 매뉴얼에는 명령 줄 편집 에 대한 유용한 섹션이 있는데,이 부분 은 약간의 차이를 메우는 데 도움이됩니다.
기본적으로 이것들을 사용 하여 커맨드 라인 에서 이동할 수 있습니다 (여기에 몇 가지만 나열하십시오. 전체 목록에 대한 링크 참조).
- Ctrl+ a줄의 시작 부분으로 이동합니다 (또는 Home터미널 설정에 따라 다름)
- Ctrl+ e줄의 끝으로 이동 (또는 End...)
- Meta+ f"단어"앞으로 이동
- Meta+ b"단어"뒤로 이동
이것을 사용 하여 한 줄에서 텍스트 를 "킬"(일명 "컷") 할 수 있습니다.
- Ctrl+ k현재 커서 위치에서 줄 끝까지 텍스트를 죽입니다 ( "잘라 내기").
- Ctrl+ y가장 최근에 죽인 텍스트를 커서의 버퍼로 다시 가져 오는 양키
따라서 이들을 결합하여 반복하려는 일부 명령 줄 청크를 선택하고 종료 한 후 다음 명령 끝에 붙여 넣을 수 있습니다.
이제 더 재미있게 만들기 위해 bash의 History Expansion을 고려하십시오 . 이것은이다 !!
즉 인 Studer의 대답은 언급 . 히스토리 확장은 이벤트 지정자 , 단어 지정자 및 수정 자로 분류 됩니다.
이벤트 지정자는 다음과 같습니다 (다시 말하면 전체 목록에 대한 링크 참조).
!
-역사 대체를 시작합니다
!n
- n 번째 배쉬의 기록 목록에서 명령, 어떤 정수 n은 (네거티브를위한 작품도)
!!
-선행 명령; 에 해당!-1
!string
- 문자열로 시작하는 가장 최근의 명령
단어 지정자는 이벤트에서 특정 부분을 선택합니다. :
단어 지정자와 이벤트를 분리하는 데 사용하십시오 . 단어는 줄의 시작 부분부터 0부터 번호가 매겨지고 현재 줄에 공백으로 구분되어 삽입됩니다.
$
-마지막 인수를 지정합니다 (예 : !!:$
마지막 명령의 마지막 인수입니다. 단축 가능 !$
)
n
- 지정 n 번째 단어 (예 : !str:2
로 시작하는 가장 최근 명령의 두 번째 인수 인 STR , !!:0
한 명령 의 마지막 명령을)
따라서 예제에서 후속 조치를 취하기 위해 마지막 명령이 mkdir /some/really/long/path
인 경우 실행 !!
하면 해당 명령이 다시 실행 됩니다. 그러나 cd
대신 그 길로 가고 싶습니다 .
$ cd !$
이제 다른 명령을 수행 한 다음 해당 경로를 다시 참조하려고한다고 가정하겠습니다. 이것이 마지막으로 실행 한 mkdir 명령 인 경우이를 사용하여 해당 경로를 반복 할 수 있습니다.
$ tar czf ~/foo.tgz !mkdir:$