나는 명령줄/터미널에서 사용하는 키보드 단축키에 대해 이야기하고 있습니다.
예: Ctrl+ c프로세스 종료, Ctrl+ d로그아웃, Ctrl+ z프로세스를 백그라운드로 보내기 등.
몇 가지를 테스트한 결과 터미널(예: gnome-terminal
)이나 셸(예: )에 특정하지 않으며 s에서도 작동한다는 사실을 발견했습니다.xterm
konsole
bash
zsh
tty
그래서 나는 알고 싶습니다:
- 이러한 단축키는 누가 제공합니까?
- 어떻게 나열하고 수정/정의합니까?
답변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
특수 문자 및 기타 "터미널 라인 설정"의 현재 값을 보기 위해 호출됩니다 . 아래 예에서는 intr
is Ctrl+ C, eof
is Ctrl+ D, susp
is Ctrl+ 를 볼 수 있습니다 Z. (특수 문자 설정만 표시하기 위해 다른 출력을 제거했습니다.)
stty -a
GNU/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 -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중단 문자를 +에서 +로 변경합니다 ( 실제로 C두 문자, 곡절 부호( ) 뒤에 문자 1개가 옵니다 ).CtrlEstty
^E
^
E
stty intr '^E'
stty
자세한 내용은 의 매뉴얼 페이지를 참조하십시오 termios
. GNU/Linux에서는 tty_ioctl
매뉴얼 페이지 도 볼 수 있습니다 .
노트:
키 intr
(기본값은 Ctrl+ C)는 실제로 프로세스를 종료하지는 않지만 커널이 SIGINT
프로세스 그룹의 모든 프로세스에 인터럽트 신호( )를 보내도록 합니다. 프로세스는 신호를 포착하거나 무시하도록 예약할 수 있지만 대부분의 프로세스는 종료되며 이는 기본 동작입니다.
Ctrl+당신을 로그아웃시키는 것은 d터미널 라인 드라이버가 쉘의 표준 입력에 EOF(파일 끝)를 보낸다는 것입니다. 표준 입력에서 파일 끝을 수신하면 쉘이 종료됩니다.