긴 명령을 빠르게 탐색하는 방법?


136

긴 명령을 입력해야 할 때 Linux CLI 탐색 속도를 높일 수있는 방법이 있습니까? 나는 지금 바로 화살표를 사용합니다. 명령이 길면 명령 시작에서 중간에 도달하는 데 시간이 걸립니다.

예를 들어 화살표를 사용하지 않고 명령의 중간으로 이동하는 방법이 있습니까?

답변:


174

Readline 라이브러리가 제공하는 유용한 라인 편집 키 바인딩 :

  • Ctrl-A: 줄의 시작으로 이동
  • Ctrl-E: 줄의 끝으로 이동
  • Alt-B: 한 단어 뒤로 건너 뛰기
  • Alt-F: 한 단어 앞으로 건너 뛰기
  • Ctrl-U: 줄의 시작 부분으로 삭제
  • Ctrl-K: 줄 끝까지 삭제
  • Alt-D: 단어 끝까지 삭제

7
Ctrl + 화살표가 작동하지 않는 경우에도 작동하기 때문에 +1. 주목할 가치가있는 것은 screen사용자의 경우 Ctrl-A는 Ctrl-A A가됩니다.
enzotib

3
삭제를 취소하거나 삭제하여 텍스트를 이동하려면 Ctrl + Y를 사용하십시오.
Lekensteyn

7
언급 할 가치가있는 Ctrl + 오른쪽 화살표, Ctrl + 왼쪽 화살표
mac

3
우분투에서 Gnome과 GnomeTerminal을 사용 Alt-A하면 커서를 이동하는 대신 메뉴가 열립니다. 당신 Alt-A은 그놈과 어떻게 사용 합니까? 그놈이 기본값이므로이 글을 읽는 사람은 누구나 그놈에서 터미널을 실행하고있을 것입니다.
Jason

1
SSH를 통해 OS X 에서 Ubuntu에 연결하는 경우 Esc-A, Esc-E 등과 같이 Ctrl 대신 "Esc"를 사용해야 할 수도 있습니다. 이것은 iTerm 및 터미널에 해당됩니다.
Fred Clausen

77

여기 에서 더 많은 단축키

Ctrl + a  go to the start of the command line
Ctrl + e  go to the end of the command line
Ctrl + k  delete from cursor to the end of the command line
Ctrl + u  delete from cursor to the start of the command line
Ctrl + w  delete from cursor to start of word (i.e. delete backwards one word)
Ctrl + y  paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor
Ctrl + xx  move between start of command line and current cursor position (and back again)
Alt + b  move backward one word (or go to start of word the cursor is currently on)
Alt + f  move forward one word (or go to end of word the cursor is currently on)
Alt + d  delete to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + c  capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + u  make uppercase from cursor to end of word
Alt + l  make lowercase from cursor to end of word
Alt + t  swap current word with previous
Ctrl + f  move forward one character
Ctrl + b  move backward one character
Ctrl + d  delete character under the cursor
Ctrl + h  delete character before the cursor
Ctrl + t  swap character under cursor with the previous one

이 간단하고 잡담없는 목록에 감사드립니다.
neverMind9

14

vi [m] 및 bash 사용자 인 경우 bash에서 사용하는 readline이 파일 또는 파일 에 추가 set editing-mode vi하여 vi 스타일 편집을 사용하는 것이 유용 할 수 있습니다. 또는 bash 명령을 실행하여 bash가 vi 스타일 편집을 사용하도록 할 수 있습니다 . 동작을 지속 시키려면 파일에 명령을 추가하십시오 .~/.inputrc/etc/inputrcset -o vi~/.bashrc

zsh 사용자 인 경우 vi 스타일 편집 bindkey -v을 위해 .zshrc파일에 추가 하십시오 .


8

나는 커서 키를 사용하지 않고 특별히 중간으로 점프하는 방법을 모른다. 그러나 CTRL + 커서 키를 사용하여 공백에서 공백으로 이동하는 것이 좋습니다 (즉, 한 단어에서 다른 단어로 이동).


1

.bashrc에서 아래의 코드 스 니펫을 찾으십시오. Ctrl-a는 시작으로 이동하고 Ctrl-a를 다시 누르면 중간으로 이동합니다.

jump_mid() {
    if [ "$READLINE_POINT" -eq "0" ]; then
        LEN=${#READLINE_LINE}
        POS=$(($LEN / 2))
        READLINE_POINT=$POS
    else
        READLINE_POINT=0
    fi
}
bind -x '"\C-a" : jump_mid'

또는 Ctrl-Something을 사용하여 중간으로 직접 이동하려면 코드를 다음과 같이 변경하십시오.

jump_mid() {
    LEN=${#READLINE_LINE}
    POS=$(($LEN / 2))
    READLINE_POINT=$POS
}

그리고 Ctrl-a와 다른 것에 바인드하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.