예/아니요 질문이라면 죄송합니다..읽고 있어요이 UNIX 튜토리얼그리고 다음을 발견했습니다:
이전 명령 반복 및 수정
[..]
실수로 Leavenworth를 Leaveworth로 입력한 경우 다음을 사용하여 수정할 수 있습니다: % ^leave^leaven
안타깝게도 이 작업을 수행할 컴퓨터가 없지만 다음 사항을 알고 싶습니다.
일부 명령을 sudo
실행 해야 하므로 ^^sudo
이전 명령에 sudo를 "삽입"할 수 있습니까?
답변1
나는 역사 완성을 사용하는 것이 더 일반적인 접근 방식이라고 생각합니다
$ sudo !!
대부분의 쉘에는 이전 명령에 대한 단축키가 있습니다. 그것은 bash와 zsh에서 작동합니다. 교체를 수행하는 방법에는 여러 가지가 있지만 일반적으로 비트를 제거하거나 변경하는 데 가장 적합합니다. 확장하려는 경우 전체를 잡는 것이 가장 쉬운 방법입니다. 전후에 원하는 것을 추가할 수 있습니다! 이전 명령을 확장합니다.
편집하다:원래 질문은접두사위의 명령은 잘 설명되어 있습니다. 네가 원한다면변화구문 아래 주석자로서 이 내용은 다음과 같습니다.
$ sudo !!:s/search/replace/
...여기서 "search"는 일치 및 교체할 문자열입니다. 이해가 되실 겁니다.
답변2
Bash에서는 작동하지 않습니다.
$ whoami
mikel
$ ^^sudo
-bash: :s^^sudo: no previous substitution
또는 zsh:
$ ^^sudo
$
심지어 tcsh도 이 구문을 고안했다고 생각합니다.
% ^^sudo
No previous left hand side.
!!
수행한 작업:
$ whoami
mikel
$ sudo !!
sudo whoami
root
답변3
예. 당신은 이것을 할 수 있습니다. 예를 들어 /root 디렉토리에서 명령을 실행하려면 ls
다음을 수행합니다.
$ ls
$ ^ ^sudo
두 번째 명령은 "sudo ls"로 실행됩니다.
두 번째 줄의 sudo 뒤에 "공백"이 추가됩니다.