Ich versuche, einen Alias für sudo !!
in Bash festzulegen. Ich habe es versucht alias sbb='sudo !!
', aber es interpretiert das als wörtlich !!
und druckt
sudo: !!: command not found
Wenn ich doppelte Anführungszeichen verwende, wird der doppelte Knall in der Zeichenfolge selbst ersetzt, sodass dies nicht funktioniert.
Gibt es eine Möglichkeit, diese Arbeit zu machen? Oder ein alternativer Alias? `
bash
sudo
alias
command-history
history-expansion
Manishearth
quelle
quelle
Antworten:
!!
wird bei der Eingabe um Bash erweitert. Es wird nicht durch Alias-Ersetzung erweitert.Sie können die
history
eingebaute Funktion verwenden, um die Erweiterung durchzuführen:Wenn der Befehl mehr als ein einfacher Befehl ist (z. B. enthält er Umleitungen oder Pipes), müssen Sie eine Shell unter sudo aufrufen:
quelle
man tcsh
und entdecken , dass es tut , tut Geschichte Expansion während alias Expansion „ als ob der ursprüngliche Befehl war die vorherige Eingabezeile.“ Interessant. Hatalias sbb 'sudo \!-2
jedoch nicht wie erwartet funktioniert (hat tatsächlich den zweiten vorherigen Eintrag ersetzt);alias sbb 'sudo \!\!'
funktioniert als (substituiert erwartetsbb
für!!
); und am Ende stellte sich heraus, dass das, was ich wollte, das war,alias sbb 'sudo \!-1'
was ich erwartet hätte, dasselbe zu sein wie\!\!
. (tcsh 6.17.06 (Astron) 15.04.2011) YMMV. Viel Glück.sbb
würde ich es vorziehen,prease
als Alias wie von @jpschorrVersuchen:
Ich mag es eigentlich lieber "bitte" zu nennen:
Info:
fc
ist ein eingebauter Befehl in der Bash-Shell. Hier werden Befehle aufgelistet, bearbeitet und erneut ausgeführt, die zuvor in eine interaktive Shell eingegeben wurden.quelle
please
ist definitiv der richtige Weg!please
Es fühlt sich so an, als ob das Terminal eine Einheit ist, in der ich nett sein muss, um Dinge zu erledigen. Ich bevorzuge etwas, das ein besseres Gefühl der Kontrolle gibt - wiefuck
;)Jetzt gibt es ein Repository für diesen Zweck in GitHub, es prüft auf magische Weise, ob es Superuser-Rechte benötigt, und behebt auch die Tippfehler:
https://github.com/nvbn/thefuck
quelle
apt-get install thefuck
was existiert, aber es funktioniert nicht auf meinem Ubuntu 15.10; (Dies wurde ursprünglich bei dieser Frage gepostet , aber später vorgeschlagen, hier zu posten.
Hier erfahren Sie, wie Sie
fc
undhistory
mit Alias für!-
ähnliche Ersetzungen verwenden können. Nehmen wir an, wenn Sie verwenden möchten!-n
(wo n ist die Ziffer für n - te letzte Befehl verwendet wird ), dann können Sie verwendenfc
undhistory
mit alias wie folgt:Verwenden von
history
:Hinweis: Hier
!-n
sollte mit'
oder umschlossen werden''
.Verwenden von
fc
:Hinweis: hier 1 st und 2 nd
-n
werden verwendet , um den Bereich der Verlaufsliste angeben.Hier habe ich Echo-Echo benutzt, bevor ich den Befehl zum Fällen ausgeführt habe
!-<n>
.quelle
history -p
und abfc
. Alles neu hier?-ln -n -n
sehr verwirrend; auch das bisschen über'
oder''
(und auch das bisschen über-<n>
).$(fc -ln -1)
quelle