Globale Verwendung von „Aliasen“ unter Debian 10

Globale Verwendung von „Aliasen“ unter Debian 10

Ich habe erfolglos versucht, die globale Verwendung von Aliasnamen auf meiner Debian 10-Instanz hinzuzufügen.

Ich habe bereits versucht, meine Aliase zu /etc/bash.bashrc hinzuzufügen und diesen Snippet zu /etc/profile hinzuzufügen, um es als Quelle zu verwenden, aber es hat nicht funktioniert.

if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi

In meiner bash.bashrc:

#Aliases 
alias l='ls -la' 
alias ll='ls -l' 
alias la='ls -a'

BEARBEITEN*

Wie erstelle ich einen Alias ​​für „ls“. Beispiel: ls='ls -CF'. Wenn ich es als Alias ​​verwende, funktioniert es nicht?

Antwort1

Debian sollte mit /etc/bash.bashrc funktionieren. Überprüfen Sie /etc/passwd, ob der Benutzer die Bash-Shell verwendet.

user1:x:1000:1000:User 1:/home/user1:/bin/bash
user2:x:1001:1001:User 2:/home/user2:/bin/zsh

Wenn Benutzer mit useradd oder adduser hinzugefügt werden, werden sie standardmäßig mit Bash als Shell erstellt. Dies kann jedoch zu einer anderen Shell geändert worden sein (zsh ist sehr beliebt). Im obigen Beispiel verwendet Benutzer1 die Bash-Shell und Benutzer2 verwendet zsh. Benutzer2 führt /etc/bash.bashrc beim Anmelden nicht aus.

Antwort2

Wenn ich mir mein ansehe, ~/.bashrcsehe ich, lsdass bereits definiert ist als alias ls='ls --color=auto'.

Das Hinzufügen einer neuen lsAliasdefinition zu /etc/bash.bashrc„as“ alias ls='ls -CF'hilft nicht, da ich davon ausgehe, dass die Definition in ~/.bashrcVorrang hat.

Bei meinen Tests hat es funktioniert, wenn ich den lsin „Aktiviert“ definierten Alias ​​durch ~/.bashrcden von mir für die globale Definition hinzugefügten Alias ​​auskommentiere etc/bash.bashrc.

Dies unterscheidet sich erheblich von der Art und Weise, wie Red Hat globales Aliasing handhabt, wodurch Sie Ihre globalen Aliase eingeben können. /etc/profile.d/[filename].shAufgrund der unterschiedlichen Konfiguration von Debian und Red Hat und der Beziehung zwischen den Profil- und Bashrc-Dateien scheint dies jedoch für Debian keine Option zu sein.

Damit meine ich, dass es für Red Hat Profil-/Bashrc-Dateien verarbeitet, indem es sie so bereitstellt, dass sie für verschiedene Shells/Anmeldetypen funktionieren (wie hier erklärt)https://unix.stackexchange.com/questions/170493/login-non-login-and-interactive-non-interactive-shells). Für Debian scheinen die Dateien jedoch /etc/profile.d/*.shnur für Login-Shells zu sein. Da meine vorherige Antwort hier jedoch gelöscht wurde, konnte ich sie nicht bearbeiten und klarstellen.

Wenn Sie damit einverstanden sind, dass globale Aliase bei Debian nur für Login-Shells funktionieren, fügen Sie sie beispielsweise in ein /etc/profile.d/aliases.sh. Andernfalls müssen Sie sie anscheinend zu hinzufügen /etc/bash.bashrc. Bedenken Sie dabei, dass Aliase ~/.bashrcin Vorrang haben. Wenn die von Ihnen definierten Aliase nicht funktionieren, sind sie wahrscheinlich an anderer Stelle definiert und überschreiben Ihre.

verwandte Informationen