während meiner arbeit muss ich bashrc ständig alias-befehle hinzufügen, die meisten dieser befehle müssen von anderen benutzern ausgeführt werden. kann ich einem bashrc alias-befehle von einer externen quelle hinzufügen?
während meiner arbeit muss ich bashrc ständig alias-befehle hinzufügen, die meisten dieser befehle müssen von anderen benutzern ausgeführt werden. kann ich einem bashrc alias-befehle von einer externen quelle hinzufügen?
Antworten:
Viele Konfigurationsdateien im Home-Verzeichnis des Benutzers überschreiben nur die im Home-Verzeichnis /etc
des Benutzers vorhandenen Einstellungen für GIMP ~/.gimp-2.*
, wodurch die systemweite Konfiguration erweitert wird /etc/gimp/2.0
.
Also für ~/.bashrc
, können Sie das System bearbeiten breite Dateien Config /etc/bash.bashrc
(für Funktionen / Aliase ) oder /etc/profile
(für Umwelt Sachen) - Sie können die vollständige Liste von man bash
:
FILES
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
/etc/bash.bash_logout
The systemwide login shell cleanup file, executed when a login shell exits
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
Diese Warnung wird für einige Linux-Systeme in den Dateien angezeigt:
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
Sie können diese Dateien also bearbeiten, sie zuerst sichern ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
zum Beispiel) oder ein Shell-Skript erstellen ( zum Beispiel /etc/profile.d
mit den folgenden Befehlen (mit sudo / als root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Dann öffne es mit nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
Und prüfen , ob es durch Sehen funktioniert , wenn es in der Ausgabe erscheint alias
- Beachten Sie, dass Sie benötigen , um logout / login oder Neustart alle Änderungen zu sehen (wenn Sie wollen nicht, läuft source /etc/profile
nach jeder Änderung funktionieren könnte)
[Bearbeiten: Toten Link entfernt] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
und /etc/bash.bash_logout
nicht funktionieren. :(
/etc/profile.d/
wird nicht vom Unterprozess erfasst, oder? Der Alias ist also nur verfügbar, wenn Bash die Anmelde-Shell ist?
Gehe zu /etc/bash.bashrc
vim /etc/bash.bashrc
und mache dort deinen Alias.
Fügen Sie Ihren Alias in der letzten Zeile hinzu.
alias abc = "was auch immer"
Dieser Alias wird für alle Benutzer global.
Aus Sicherheitsgründen empfehlen wir Ihnen dies jedoch nicht.
Es gibt ein profile.d
Verzeichnis, das Benutzerumgebungsdateien enthält
gehe zu
cd /etc/profile.d/
vim Aliase
und fügen Sie hier Ihre Aliase hinzu.
ohne Auswirkungen auf Ihre Systemdateien. Es ist eine sichere und richtige Art, mit Ihren Umgebungsdateien zu arbeiten.
Hier gibt es bereits eine akzeptierte Antwort, aber Sie könnten in Betracht ziehen, Umgebungsmodule für die systemweite Konfiguration von Benutzerumgebungen zu verwenden, anstatt mit den Dateien in /etc/profile.d usw. herumzuspielen. Dies gilt insbesondere dann, wenn Sie dies möchten Verwalten Sie diese Steuerung an einem Ort über viele Muscheln. Lmod (in sehr aktiver Entwicklung), C / TCL-Module (die klassische Lösung) oder Cmod (leichtgewichtig).
Ich weiß nicht, ob ich es richtig mache, aber es funktioniert für mich, ein / home / ComunAtodos-Verzeichnis zu führen (in Großbuchstaben und in Spanisch, um zu verdeutlichen, dass es kein natives Linux-Verzeichnis ist) und .bashrc, .nanorc und .bash_aliases dort. Dann verweise ich auf diese in /etc/skel/.profile, damit neue Benutzer auf sie verweisen und nur bestimmten Benutzern Extras hinzufügen, die sie benötigen.
Ich bin wirklich neu im Linux-Betriebssystem, aber ich habe eine Skizze eines Bash-Skripts erstellt, mit dem alle Benutzer die .bashrc-Datei und nicht die Systemdatei /etc/.bashrc ändern können.
#!/bin/bash
X=$( cat etc/passwd | cut -f1 -d: ) #All-users
For X in /home/*/.bashrc ; do
echo "alias ls='ls -al'" >> $X
2>/dev/null
done
source $X
exit 0
Okay, ich weiß, dass dieses Skript funktioniert, aber ich weiß es nicht, wenn es fehlerfrei ist :) Sie können es auch so ändern, dass nicht alle Benutzer daran beteiligt sind. Möglicherweise erstellen Sie eine Datei für alle Benutzer, die ihre .bashrc-Datei benötigen angepasst.
.bashrc
voraus, dass alle Benutzer bereits über eine Datei verfügen , und hängt diese immer an, unabhängig davon, ob sich die Zeile bereits in ihrer Datei befindet.
/etc/skel/.bashrc
, um zu ändern, wie der Inhalt~/.bashrc
für neu erstellte Benutzer aussehen wird.