/ / Sudo funktioniert nicht bei Aliases [duplicate] - sudo, bash-alias

Sudo funktioniert nicht mit Aliases [duplicate] - sudo, bash-alias

Ich habe hinzugefügt alias ll="ls -la" in /etc/bash.bashrc aber sudo ll funktioniert nicht. Gibt es eine Möglichkeit, bash.bashrc als Quelle anzugeben? In einem ähnlichen Beitrag schlägt ein anderer Benutzer vor, einen Alias ​​für sudo mit einem Leerzeichen danach zu erstellen. Z.B. alias sudo="sudo " Aber es gab keinen Zusammenhang zu dieser Antwort. Sollte ich dies meinem Baschromat hinzufügen? Scheint hackisch.

Was ist die richtige Methode zum Hinzufügen eines Alias ​​für meine sudo einmalige Befehle?

Antworten:

2 für Antwort № 1

Ja, das hinzufügen alias sudo="sudo " Linie wird Ihr Problem beheben. Für eine bessere Definition (aus dem Bash-Handbuch),

Aliase ermöglichen das Ersetzen von a durch eine ZeichenfolgeWort, wenn es als erstes Wort eines einfachen Befehls verwendet wird. Die Shell verwaltet eine Liste von Aliasen, die mit den integrierten Befehlen alias und unalias festgelegt und deaktiviert werden können.

Das erste Wort jedes einfachen Befehls, wennohne Anführungszeichen wird überprüft, ob ein Alias ​​vorhanden ist. In diesem Fall wird dieses Wort durch den Text des Alias ​​ersetzt. Die Zeichen "/", "$", "` "," = "und alle oben aufgeführten Shell-Metazeichen oder Anführungszeichen erscheinen möglicherweise nicht in einem Aliasnamen. Der Ersetzungstext kann eine gültige Shell-Eingabe enthalten, einschließlich Shell-Metazeichen. Das erste Wort des Ersetzungstextes wird auf Aliase geprüft, ein Wort, das mit einem zu erweiternden Alias ​​identisch ist, wird jedoch nicht ein zweites Mal erweitert. Dies bedeutet, dass beispielsweise ein Alias ​​"ls" für "ls -F" verwendet werden kann und Bash nicht versucht, den Ersetzungstext rekursiv zu erweitern. Wenn das letzte Zeichen des Alias-Werts ein Leerzeichen oder ein Tabulatorzeichen ist, wird auch das nächste Befehlswort nach dem Alias ​​auf Alias-Erweiterung überprüft.

Sie können sicher sein, dass Sie es eingeben in einem Terminalfenster.

Wenn Sie dies auf diese Weise tun, sind die Änderungen nicht dauerhaft, sondern nur so lange vorhanden, bis Sie das Terminal schließen / abmelden.

Ich denke, in Ihrem Fall wäre es sicherer, die Änderungen hinzuzufügen ~/.bashrc Anstatt von /etc/bash.bashrc, aber es macht wirklich keinen großen Unterschied.


0 für Antwort № 2

Versuchen Sie stattdessen, den Alias ​​zu ~ / .bashrc hinzuzufügen. Dies ist die Initialisierungsdatei, die bash pro Benutzer anzeigen wird. Ich denke, dass das Bearbeiten dieser Datei das Alias ​​systemweit macht.

In ~ / .bashrc würde ich zum Beispiel die folgenden sudo apt-get-Befehle für die meisten Ubuntu-Installationen festlegen

alias apts="sudo apt-cache search"
alias apti="sudo apt-get install"
alias aptr="sudo apt-get remove"

Für welchen Befehl möchten Sie einen Alias ​​erstellen? In der Regel ist ein Alias ​​ein Weg, einen langwierigen Befehl zu einem einfachen Ein-Wort-Befehl zu machen.

Auch, warum versuchen Sie, einen Befehl, dass sudobenötigt normalerweise kein sudo wie ls -la? Ich denke, wenn Sie einen Befehl über sudo ausführen, werden die Umgebungsvariablen geändert, die Ihnen zur Verfügung stehen, sodass dies auch Teil Ihres Problems sein kann.


Verwandte Fragen
Bemerkungen
Einen Kommentar hinzufügen