나는 종종 다음과 같은 상황에 놓이곤 합니다. bash 프롬프트에서 긴 명령을 입력하기 시작했지만 중간에 다른 명령으로 뭔가를 확인해야 한다는 것을 알게 되었습니다. 이것은 내가 콘솔에 있을 때(X 없이) 문제가 되는 경우가 많은데, 그 이유는 내가 아는 대로 다음과 같은 불만족스러운 방법만 사용하기 때문입니다.
- ctrl++를 누르고 다른 가상 콘솔에 로그인 alt하여 F2내가 원하는 것이 무엇인지 파악한 다음 돌아가서 계속하세요.
- ctrl+ a, echo ++ 를 입력 space하고 enter내가 원하는 것을 찾은 다음 내 명령 + , x 5, + ↑를 찾을 때까지 누른 다음 계속하세요. ctrladelctrle
- 마우스로 지금까지 입력한 내용을 강조 표시하고(gpm이 실행 중인 경우 일반적으로 그렇습니다) ctrl+ cBreak를 누르고 마우스로 아무것도 강조 표시하지 않도록 주의하면서 원하는 것이 무엇인지 파악한 다음 마우스 가운데 버튼을 누르고 새로운 메시지를 받고 계속하세요
- 반쯤 작성된 명령이 나쁜 영향을 미치지 않도록 명령줄 신들에게 기도하십시오. 실패하고 조심스럽게 Enter를 누른 다음 내가 원하는 것이 무엇인지 파악하고 명령을 얻을 때까지 화살표를 누른 다음 계속하십시오.
- 타임머신으로 뛰어들어 명령 입력을 시작하기 전에 시간을 거슬러 올라가서 화면을 시작하도록 상기시키고, 현재로 돌아가서 ctrl+를 누르고 a c, 내가 원하는 것이 무엇인지 파악하고, ctrl+를 누르고 a ctrl+a계속하세요.
그래서 제가 궁금한 것은 이 작업을 수행하는 좀 더 우아한 방법이 있다는 것입니다. 일종의 서브 쉘 명령이나 이와 유사한 것입니까?
제가 가장 관심을 갖는 것은 어떤 준비나 설정도 필요하지 않은 방법입니다.
답변1
더 빠른 버전알렉스 Ctrl+ A Ctrl+ K(라인의 맨 앞으로 이동한 다음 앞으로 모든 것을 잘라내기)는 Ctrl+ 를 사용하는 것입니다 U. 이는 bash에서 뒤로 잘라내고 zsh에서는 전체 라인(현재 위치에 관계없이)을 사용합니다. 그런 다음 Ctrl+를 사용하여 Y다시 붙여넣습니다 .
답변2
줄의 시작 부분으로 이동하려면 Ctrl-A를 수행하고 해시를 추가한 다음 Enter 키를 누르세요. 이렇게 하면 명령 기록에 주석으로 남게 되며 커서를 위로 올려 돌아갈 수 있습니다.
편집: 방금 이것이 #2의 약간 더 우아한 변형이라는 것을 알아차렸습니다.)
답변3
클릭하면 Ctrl+A
해당 Ctrl+K
줄의 시작 부분으로 이동하고, 해당 줄의 끝 부분까지 삭제(삭제)됩니다. 그런 다음 연구를 수행하고 Ctrl+Y
저장된(죽인) 라인을 복원하기 위해 계속 클릭(홱 잡아당기기)할 준비를 하십시오.
답변4
Bash에서는 Alt+ 를 입력하세요 #.
그런 다음 준비가 되면 + 를 Up누르세요 .Alt#
첫 번째 #
는 줄의 시작 부분에 a를 넣어 주석으로 변환한 다음 마치 누른 것처럼 해당 줄을 받아들입니다 Enter.
#
그런 다음 이 작업을 두 번째로 수행하면 해당 줄의 시작 부분에 이미 줄이 있는 것을 볼 수 있으므로 해당 줄을 삭제하고 수락하여 키를 다시 저장합니다 Enter.
두 번째로 다른 것을 삽입하는 것이라면 ++를 #
입력해야 합니다 Alt.- Alt#
다음을 입력하여 zsh에게 동일한 작업을 수행하도록 요청할 수 있습니다.
bindkey -M emacs '\e#' pound-insert
~/.zshrc에 있습니다.
또는 vi 바인딩을 사용하는 경우 #bash 및 zsh의 명령 모드에서 입력할 수 있습니다.