Aliase behalten, wenn ich sudo bash verwende

Aliase behalten, wenn ich sudo bash verwende

Ich habe einen Centos 5.5-Server, der über eigene Alias-Befehle für mein Konto verfügt. Wenn ich das tue, sudo bashkann ich diese Aliase weiterhin verwenden, ich musste die Aliase nicht zum Stammverzeichnis hinzufügen .bashrc.

Ich habe einen anderen Server, der Centos 6.5 ist. Aber wenn ich ausführe sudo bash, werden meine Aliase des Benutzers, mit dem ich angemeldet bin, nicht verwendet. Weiß jemand, wo ich es so konfiguriere, dass die Aliase des Benutzers, mit dem ich angemeldet bin, einbezogen werden, wenn ich verwende sudo bash?

Antwort1

Fügen Sie Ihrer ~/.bashrc die folgende Zeile hinzu:

alias sudo='sudo '

Aus dem Bash-Handbuch

Aliase ermöglichen das Ersetzen eines Wortes durch eine Zeichenfolge, wenn diese 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 aufgehoben werden können.

Das erste Wort jedes einfachen Befehls wird, sofern es nicht in Anführungszeichen steht, auf einen Alias ​​geprüft. Wenn ja, wird dieses Wort durch den Text des Alias ​​ersetzt. Die Zeichen '/', '$', '`', '=' und alle oben aufgeführten Shell-Metazeichen oder Anführungszeichen dürfen nicht in einem Aliasnamen vorkommen. Der Ersetzungstext kann jede gültige Shell-Eingabe enthalten, einschließlich Shell-Metazeichen. Das erste Wort des Ersetzungstexts wird auf Aliase geprüft, aber ein Wort, das mit einem zu erweiternden Alias ​​identisch ist, wird nicht ein zweites Mal erweitert. Das bedeutet, dass man beispielsweise ls als Alias ​​zu „ls -F“ verwenden 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 geprüft.

Bash prüft also nur das erste Wort eines Befehls auf einen Alias, alle Wörter danach werden nicht geprüft. Das bedeutet, dass in einem Befehl wie sudo ll nur das erste Wort (sudo) von Bash auf einen Alias ​​geprüft wird, ll wird ignoriert. Wir können Bash anweisen, das nächste Wort nach dem Alias ​​(also sudo) zu prüfen, indem wir am Ende des Alias-Werts ein Leerzeichen hinzufügen.

Antwort2

Verwenden Sie sudo -E, um Ihre Umgebung zu exportieren.

verwandte Informationen