나는 종종 다음과 같은 위치에 자신을 발견한다 : 나는 bash 프롬프트에서 긴 명령을 입력하기 시작했지만, 도중에 다른 명령으로 무언가를 확인해야한다는 것을 알았다. 이것은 내가 콘솔에있을 때 문제입니다 (X 없음). 그런 경우에 나는 다음과 같은 불만족스러운 방법 만 가지고 있기 때문에 종종 그런 경우가 있습니다.
- 히트 ctrl+ alt+ F2돌아가서 계속 한 후, 다른 가상 콘솔에 로그인하고 내가 원하는 것을 찾아
- ctrl+ a, echo + space+를 입력 enter하고 원하는 ↑것을 찾은 다음 명령을 찾을 때 까지을 누릅니다 . ctrl+ a, delx 5, ctrl+ e, 계속
- 마우스로 지금까지 입력 한 내용을 강조 표시하고 (gpm이 실행중인 경우 일반적으로 실행) ctrl+ c를 눌러 중단하고 마우스를 사용하여 내용을 강조 표시하지 않도록주의하면서 원하는 내용을 찾은 다음 마우스 가운데 버튼을 누릅니다. 새 프롬프트에서 계속
- 반줄로 쓴 명령이 악영향을 끼치 지 않고 단순히 실패하고 진지하게 enter를 누른 다음 원하는 것을 찾은 다음 명령을 다시받을 때까지 위쪽 화살표를 누르고 계속되도록 명령 행 신에게기도하십시오.
- 내 타임머신으로 뛰어 들어 시간을 거슬러 여행을 시작하기 전에 명령을 입력하기 전에 화면을 시작하라는 메시지를 표시하고, 현재로 돌아가고, ctrl+를 누르고 a c, 원하는 것을 찾고, ctrl+를 누른 다음 a ctrl+a계속하십시오.
내가 알고 싶은 것은 더 우아한 방법이 있습니까? 일종의 하위 셸 명령입니까?
준비 나 설정이 필요하지 않은 방법에 가장 관심이 있습니다.
답변
의 다소 빠른 버전 알렉스의 Ctrl + A Ctrl+ K(앞줄로 이동 한 후 모든 기대를 절단하는) 만 사용하는 것입니다 Ctrl+ U배쉬에 뒤로 절단하는, 전체 라인 (관계없이 현재 위치) zsh을합니다. 그런 다음 Ctrl+ Y를 사용 하여 다시 붙여 넣습니다.
답변
ctrl-A를 사용하여 줄의 시작을 시작하고 해시를 추가하고 return을 누르십시오. 이렇게하면 명령 내역에 주석으로 유지되며 커서를 사용하여 다시 가져올 수 있습니다
편집 : 방금 이것이 # 2에서 약간 더 우아한 변형이라는 것을 알았습니다.)
답변
히트 Ctrl+A
, Ctrl+K
그것의 끝 (죽) 라인의 시작으로 이동 및 삭제 할 수 있습니다. 그런 다음 연구를 수행하고 계속 준비가되었을 때 Ctrl+Y
(잉크)를 누르면 저장된 (킬된) 라인을 되돌릴 수 있습니다.
답변
zsh에서는 Ctrl+ Z를 입력하여 입력하는 명령을 “일시 중지”하고 다른 명령을 입력합니다. 해당 명령을 실행하거나 Ctrl+로 중단 C하면 일시 중단 된 명령이 에디션으로 돌아옵니다 (커서 위치를 기억하더라도). 또한 편의상 Ctrl+를 입력 할 때 명령 줄이 비어 있으면 대신 Z키가 bg
내장 기능을 호출 하므로 double Ctrl+ Z는 실행중인 명령을 백그라운드로 직접 보냅니다.
fancy-ctrl-z () {
emulate -LR zsh
if [[ $#BUFFER -eq 0 ]]; then
bg
zle redisplay
else
zle push-input
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
나는 bash에서 비슷한 것을하는 법을 모른다.
모든 쉘에서, 현재 행의 시작 부분에 a #
를 추가하는 최첨단 방법을 사용할 수 있습니다 .
답변
bash에서 Alt+ 만 입력하십시오 #.
그런 다음 준비를 눌러 Up다음 Alt+ #.
첫 번째 #
는 줄의 시작 부분에 a를 넣어 주석으로 바꾼 다음을 누른 것처럼 줄을 수락합니다 Enter.
그런 다음 두 번째로 수행 #
하면 시작에 이미 줄이 있음을 알 수 있으므로 제거하고 수락하여 다시 Enter키를 저장합니다 .
두 번째는 또 다른 삽입하는 경우 #
에, 당신은 입력해야 Alt+ - Alt+ #대신.
다음과 같이 넣어서 zsh를 동일하게 만들 수 있습니다.
bindkey -M emacs '\e#' pound-insert
~ / .zshrc에.
또는 vi 바인딩을 사용하는 경우 #bash 및 zsh 모두에서 명령 모드에서 입력 할 수 있습니다 .
답변
내가 가장 좋아하는 기능 중 하나는 zsh
다른 답변의 해커가 없어도이를 처리하는 내장 푸시 라인 기능입니다. 내 파일에서 다음과 같이 Ctrl+ l에 바인딩 .zshrc
했습니다.
bindkey '^L' push-line
그런 다음 명령에 입력 할 때 다른 빠른 작업을 수행해야 할 때 하나의 키로 호출하여 빈 프롬프트를 얻을 수 있습니다. 다른 명령을 실행하면 이전에 입력했던 내용으로 프롬프트가 자동으로 채워집니다.
이 계층을 여러 계층으로 연결할 수도 있으며 명령은 대기열로 푸시 한 순서와 역순으로 다시 나타납니다.
답변
받는 사람뿐만 아니라 ctrl– a ctrl– k당신은 화면에 있다면 트릭, 단지 ctrl– a d에 다시 연결 한 후 분리하기screen -r
ctrl+로 다른 창을 열 수도 있습니다.a c