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

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

나는 명령줄/터미널에서 사용하는 키보드 단축키에 대해 이야기하고 있습니다.

예: Ctrl+ c프로세스 종료, Ctrl+ d로그아웃, Ctrl+ z프로세스를 백그라운드로 보내기 등.

몇 가지를 테스트한 결과 터미널(예: gnome-terminal)이나 셸(예: )에 특정하지 않으며 s에서도 작동한다는 사실을 발견했습니다.xtermkonsolebashzshtty

그래서 나는 알고 싶습니다:

  • 이러한 단축키는 누가 제공합니까?
  • 어떻게 나열하고 수정/정의합니까?

답변1

~에서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– 일시 정지/중지 명령

배쉬뱅(!) 명령

불다사용하기 편리한 기능도 있어요! (쾅) 펑키한 일을 할 수 있게 해준다세게 때리다주문하다.

  • !!– 마지막 명령 실행
  • ! 무의미한 말– "blah"로 시작하는 최신 명령을 실행합니다(예: !ls).
  • ! 잠깐만 :p– 다음 명령어를 출력하세요.! 무의미한 말실행됩니다(명령 기록에 최신 명령으로 추가할 수도 있음)
  • !$– 이전 명령의 마지막 단어(와 동일)Alt + .)
  • !$:p– 단어를 출력하세요.!$대체할 것이다
  • !*- 마지막 단어를 제외한 이전 명령(예: 'some_file.txt/ 찾기', 그 다음에!*줄 것이다'some_file.txt 찾기')
  • !*:피– 무엇을 인쇄할 것인가!*대체할 것이다

답변2

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

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

stty -a특수 문자 및 기타 "터미널 라인 설정"의 현재 값을 보기 위해 호출됩니다 . 아래 예에서는 intris Ctrl+ C, eofis Ctrl+ D, suspis Ctrl+ 를 볼 수 있습니다 Z. (특수 문자 설정만 표시하기 위해 다른 출력을 제거했습니다.)

stty -aGNU/Linux의 특수 문자:

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 -aFreeBSD의 특수 문자:

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중단 문자를 +에서 +로 변경합니다 ( 실제로 C두 문자, 곡절 부호( ) 뒤에 문자 1개가 옵니다 ).CtrlEstty^E^E

stty intr '^E'

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

노트:

intr(기본값은 Ctrl+ C)는 실제로 프로세스를 종료하지는 않지만 커널이 SIGINT프로세스 그룹의 모든 프로세스에 인터럽트 신호( )를 보내도록 합니다. 프로세스는 신호를 포착하거나 무시하도록 예약할 수 있지만 대부분의 프로세스는 종료되며 이는 기본 동작입니다.

Ctrl+당신을 로그아웃시키는 것은 d터미널 라인 드라이버가 쉘의 표준 입력에 EOF(파일 끝)를 보낸다는 것입니다. 표준 입력에서 파일 끝을 수신하면 쉘이 종료됩니다.

관련 정보