^ 명령을 통해 sudo를 삽입할 수 있나요?

^ 명령을 통해 sudo를 삽입할 수 있나요?

예/아니요 질문이라면 죄송합니다..읽고 있어요이 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 뒤에 "공백"이 추가됩니다.

관련 정보