Bash에서는 !!
. ksh에서는 비슷한 작업을 수행할 수 있다고 생각 r
하지만 일반적인 패턴 중 하나인 input 에서는 실패하는 것 같습니다 sudo [last command]
.
> cp foo /bar
cp: permission denied
> r c # If I do this it will repeat my cp call
> sudo r c # when I do this, it tells me that "r" is not a command
기록을 사용하여 "sudo [마지막 명령]"을 빠르게 입력하는 방법은 무엇입니까?
답변1
저는 명령줄 버전을 사용할 것입니다. Upand Home(또는 Ctrl+ P다음에 Ctrl+ A또는 vi 모드의 다른 시퀀스)를 입력한 다음 를 입력 sudo␣
하고 를 누르십시오 Return.
답변2
므케시.mkshrc
한동안 예제 파일에 이 기본 별칭을 제공했습니다.
alias doch='sudo mksh -c "$(fc -ln -1)"'
여기에서 "doch"는 독일어 사용자만 이해할 수 있는 말장난이므로 설명하겠습니다. 일부 명령은 사용자가 무언가를 할 수 없다는 것을 말하며, 이는 우리가 하지 않는 한 예-아니요-예-아니오 상황을 초래합니다. 이에 대한 독일어의 특정 단어입니다. 따라서 이 별칭은 "nee-nee, I"에 대한 응답입니다.예이것을 허용하십시오! ”라는 오류 메시지가 표시됩니다.영어 학습자거기에도 뭔가가 있는데, 너무 헷갈릴까봐…
하지만 이 별칭 명명으로 인해 제한을 두지 마세요☺
답변3
내가 할 수 있는 가장 좋은 방법은 다음과 같은 자동 로드 기능을 만드는 것입니다 sudo_r
.
function sudo_r {
typeset comm=$(hist -nl ${@:- -1 -1} | sed 1q);
print -- $comm;
sudo $comm;
}
그런 다음 "별칭 ss=sudo_r"이라고 말합니다. 이 작업을 완료한 후에는 으로 시작 하고 접두사가 붙은 ss cp
마지막 명령을 입력하여 반복 할 수 있습니다 . 또는 를 입력하면 이전 명령이 됩니다 .cp
sudo
ss
Returnsudo
답변4
ksh를 사용한 지 꽤 됐지만, 이 명령은 recall
대개 다음과 같은 별칭으로 사용되는 것 같습니다.r
Bash에서는 텍스트로 시작하는 마지막 명령을 입력하여 기억할 수 있으며, ESC CTRL-e
이는 다른 명령에 비해 이점이 있습니다! 명령을 실행하지 않고 단지 "호출"하여 사람들이 명령을 실행하기 전에 텍스트를 편집할 수 있는 기회를 제공하므로 히스토리 명령의 스타일을 지정하세요.
$ sudu <ESC><CTRL>-e
명령줄로 시작하는 마지막 명령을 호출하고 sudo
실행 전에 편집하세요.