명령 줄의 단축키는 무엇입니까?


10

커맨드 라인 / 터미널에서 사용하는 키보드 단축키에 대해 이야기하고 있습니다.

예 : Ctrl+ c프로세스를 죽이고, Ctrl+ d그 로그 아웃, Ctrl+ z배경이 전송 과정 ... 등

나는 몇 가지를 테스트하고 터미널 (즉, 어느 것을 발견했습니다 gnome-terminal, xterm, konsole) 특정도 쉘 (즉 bash, zsh에서) 특정, 그들은 심지어 작업 tty들.

그래서 알고 싶습니다.

  • 누가 이러한 지름길을 제공합니까?
  • 그것들을 어떻게 나열하고 수정 / 정의 할 수 있습니까?

다른 bind -phelp bind
것들도

답변:


10

커널의 터미널 드라이버 ( termios)는 프로세스에 신호를 보내거나 파일의 끝을 보내거나 문자를 지우는 등 입력 할 수있는 특수 키를 해석합니다. 이것은 기본 Unix 커널 기능이며 대부분의 Unix 및 Linux 구현에서 매우 유사합니다.

stty명령은 termios특수 문자 및 터미널 라인 드라이버의 기타 매개 변수를 표시하거나 설정합니다 .

stty -a특수 문자 및 기타 "터미널 라인 설정"의 현재 값을 보려면 호출 하십시오. 다음 예에서, 당신이 볼 수 intr있습니다 Ctrl+ C, eof이다 Ctrl+는 D, susp이다 Ctrl+ Z. (특수 문자 설정 만 표시하기 위해 다른 출력을 삭제했습니다) :

stty -a GNU / 리눅스의 특수 문자 :

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

stty -a FreeBSD의 특수 문자 :

cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ^@; eol2 = ^@;
        erase = ^?; erase2 = ^H; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;

예를 들어, 특수 문자의 값을 변경하려면에서 인터럽트 문자 변경 Ctrl+를 CCtrl+ E호출 stty이 같은 ( ^E말 그대로 두 개의 문자, 곡절입니다 ( ^문자 뒤에) E) :

stty intr '^E'

자세한 내용은 stty및 의 매뉴얼 페이지를 참조하십시오 termios. GNU / Linux에서는 tty_ioctl매뉴얼 페이지를 볼 수도 있습니다 .

노트:

intr키 ( Ctrl+ C기본적으로는) 실제로 프로세스를 종료하지만, (인터럽트 신호를 전송하기 위해 커널을 유발하지 않는 SIGINT프로세스 그룹 내의 모든 프로세스에). 프로세스는 신호를 포착하거나 무시하도록 정렬 할 수 있지만 대부분의 프로세스가 종료됩니다 (기본 동작).

이유 Ctrl+는 d터미널 라인 드라이버는 쉘의 표준 입력에 EOF (파일 끝) 전송하기 때문에 로그 아웃이다. 쉘은 표준 입력에서 파일 끝을 수신하면 종료됩니다.


@Sukminder, FreeBSD에서 POSIX -a옵션이 추가되었습니다 stty.
RobertL

나는 stty intr '^E'그것이 작동 (세트)했지만 일시적으로 현재 터미널 / tty에 대해서만 시도 했습니다. 전 세계적으로 영구적으로 변경하려면 어떻게합니까?
Pandya

가장 좋은 방법은 stty$ HOME / .profile 또는 $ HOME / .bashrc 또는 다른 쉘 시작 초기화 파일에서 호출하는 것 입니다.
RobertL

나는 시도했다 : 그것은 터미널하지만 효과와 함께 작동tty
디야

무엇을 보았으며 무엇을보고 무엇을 의미 tty합니까? 어쩌면 그것은 새로운 질문이 될 수 있습니까?
RobertL

15

에서 http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/

명령 편집 바로 가기

  • Ctrl+ a– 명령 행의 시작으로 이동
  • Ctrl+ e– 명령 행 끝으로 이동
  • Ctrl+ k– 커서에서 명령 행 끝까지 삭제
  • Ctrl+ u– 커서에서 명령 줄의 시작 부분까지 삭제
  • Ctrl+ w– 커서에서 단어 시작까지 삭제 (즉, 한 단어 뒤로 이동)
  • Ctrl+ y– 커서 뒤에 삭제 바로 가기 중 하나 (예 : 위와 같은)를 사용하여 잘라낸 단어 또는 텍스트 붙여 넣기
  • Ctrl+ xx– 명령 행 시작과 현재 커서 위치 사이를 이동합니다 (다시 다시).
  • Alt+ b– 한 단어 뒤로 이동 (또는 커서가 현재있는 단어의 시작으로 이동)
  • Alt+ f– 한 단어 앞으로 이동 (또는 커서가 현재있는 단어의 끝으로 이동)
  • Alt+ d– 커서에서 시작하는 단어의 끝까지 삭제 (커서가 단어의 시작 부분에 있으면 전체 단어)
  • Alt+ c– 커서에서 시작하는 단어의 끝을 대문자로 표시합니다 (커서가 단어의 시작 부분에 있으면 전체 단어)
  • Alt+ u– 커서에서 단어 끝까지 대문자로 만들기
  • Alt+ l– 커서에서 단어 끝까지 소문자 만들기
  • Alt+ t– 현재 단어를 이전 단어로 교체
  • Ctrl+ f– 한 문자 앞으로 이동
  • Ctrl+ b– 한 문자 뒤로 이동
  • Ctrl+ d– 커서 아래 문자 삭제
  • Ctrl+ h– 커서 앞의 문자를 삭제합니다
  • Ctrl+ t– 커서 아래 문자를 이전 문자로 교체

커맨드 리콜 단축키

  • Ctrl+ r– 역사를 거꾸로 검색
  • Ctrl+ g– 히스토리 검색 모드에서 탈출
  • Ctrl+ p– 기록의 이전 명령 (예 : 명령 기록을 다시 살펴 봅니다)
  • Ctrl+ n– 기록의 다음 명령 (예 : 명령 기록을 진행합니다)
  • Alt+ .– 이전 명령의 마지막 단어 사용

명령 제어 바로 가기

  • Ctrl+ l– 화면 지우기
  • Ctrl+ s– 화면에 대한 출력을 중지합니다 (장시간 실행 명령의 경우)
  • Ctrl+ q– 화면에 출력 허용 (이전에 명령을 사용하여 이전에 중지 한 경우)
  • Ctrl+ c– 명령 종료
  • Ctrl+ z– 명령 일시 중단 / 중지

배쉬 뱅 (!) 명령

배쉬 는 또한! bash 명령으로 펑키 한 일을 할 수 있습니다 .

  • !! – 마지막 명령 실행
  • ! blah – 'blah'로 시작하는 가장 최근 명령을 실행합니다 (예 :! ls)
  • ! blah : p! blah 가 실행할 명령을 인쇄 합니다 (명령 기록에서 최신 명령으로 추가)
  • ! $ – 이전 명령의 마지막 단어 ( Alt + 와 동일 )
  • ! $ : p! $ 가 대체 할 단어를 출력
  • ! * – 마지막 단어를 제외한 이전 명령 (예 : ' find some_file.txt / ' 를 입력하면 ! * 는 ' find some_file.txt '를 제공합니다 )
  • ! * : p – 대체 할 내용을 인쇄 ! *

1
@Sukminder 아니요, Ctrl + S는 출력을 중지합니다. Ctrl + Z와 혼동되는 것 같습니다.
Gilles 'SO- 악마 그만해'

이맥스 참조.
Erich

좋은! 그리고 도달 할 수있는 방법이 ^U있는지, stty -a쇼 떠들썩한 파티에서, 리눅스에 SIGKILL에 대해 정의? 바람직하게는 판독 라인을 정의하지 않고 (아마도 세 번째 mod / meta 키를 통해). 나는 그것이 ctrl + u readline 바인딩에 의해 음영 처리되었다고 가정합니까?
nyov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.