Verstehen von Shell -Initialisierungsdateien und Benutzerprofilen unter Linux

Verstehen von Shell -Initialisierungsdateien und Benutzerprofilen unter Linux

Linux ist ein Multi-User-, Time Sharing-System, was impliziert, dass mehr als ein Benutzer sich anmelden und ein System verwenden kann. Und Systemadministratoren haben die Aufgabe, verschiedene Aspekte zu verwalten, wie unterschiedliche Benutzer ein System in Bezug auf die Installation/Aktualisierung/Entfernen von Software, Programme, die sie ausführen können, bedienen können, Dateien, die sie anzeigen/bearbeiten können und so weiter.

In Linux können Benutzerumgebungen auch auf zwei wichtige Weise erstellt oder verwaltet werden: Verwendung systemweiter (globaler) und benutzerspezifischer (persönlicher) Konfigurationen. Normalerweise ist die grundlegende Methode für die Arbeit mit einem Linux -System die Shell, und die Shell erstellt eine Umgebung, die von bestimmten Dateien abhängt, die sie während ihrer Initialisierung nach einem erfolgreichen Benutzeranmeldung liest.

Vorgeschlagene Lesen: So setzen Sie Umgebungsvariablen unter Linux

In diesem Artikel erläutern wir Shell -Initialisierungsdateien in Bezug auf Benutzerprofile für die lokale Benutzerverwaltung unter Linux. Wir werden Sie wissen, wo Sie benutzerdefinierte Shell -Funktionen, Aliase, Variablen und Startup -Programme beibehalten können.

Wichtig: Für den Zweck dieses Artikels werden wir uns darauf konzentrieren verprügeln, A Sch Kompatible Shell, die die beliebteste/gebrauchte Shell auf Linux -Systemen da draußen ist.

Wenn Sie ein anderes Programm (ZSH, Asche, Fisch usw.) verwenden, lesen Sie die Dokumentation durch, um mehr über einige der damit verbundenen Dateien zu erfahren, über die wir hier sprechen werden.

Shell -Initialisierung unter Linux

Wenn die Shell aufgerufen wird, gibt es bestimmte Initialisierungs-/Startdateien, die dazu beitragen, eine Umgebung für die Shell selbst und den Systembenutzer einzurichten. Das sind vordefinierte (und angepasste) Funktionen, Variablen, Aliase usw.

Es gibt zwei Kategorien von Initialisierungsdateien, die von der Shell gelesen wurden:

  • Systemweite Startdateien - Diese enthalten globale Konfigurationen, die für alle Benutzer im System gelten und befinden sich normalerweise in der /usw Verzeichnis. Sie beinhalten: /etc/Profile Und /etc/bashrc oder /etc/bash.bashrc.
  • Benutzerspezifische Startdateien - Diese speichern Konfigurationen, die für einen einzelnen Benutzer im System gelten und befinden sich normalerweise im Home -Verzeichnis der Benutzer als DOT -Dateien. Sie können die systemweiten Konfigurationen überschreiben. Sie beinhalten: .Profile, .bash_profile, .bashrc Und .Bash_login.

Auch hier kann die Schale in drei möglichen Modi aufgerufen werden:

1. Interaktive Anmeldeschale

Die Shell wird aufgerufen, nachdem sich ein Benutzer erfolgreich im System verwendet hat /Bin/Login, Nach dem Lesen von Anmeldeinformationen in der gespeicherten /etc/passwd Datei.

Wenn die Schale als interaktive Anmeldeschale gestartet wird, liest sie die /etc/Profil und sein benutzerspezifisches Äquivalent ~/.bash_profile.

Linux Interactive Login Shell

2. Interaktive Nicht-Loginschale

Die Shell wird beispielsweise in der Befehlszeile mit einem Shell-Programm gestartet $/Bin/Bash oder $/bin/zsh. Es kann auch mit dem Ausführen des /bin/su Befehl.

Darüber hinaus kann auch eine interaktive Nicht-Login-Hülle mit einem Terminalprogramm wie z Konsole, Terminator oder Xterm aus einer grafischen Umgebung.

Wenn die Shell in diesem Zustand begonnen wird, kopiert sie die Umgebung der übergeordneten Shell und liest den benutzerspezifischen ~/.bashrc Datei für zusätzliche Anweisungen zur Startkonfiguration.

$ su # ls -la 
Interaktive Nicht-Loginschale

3. Nicht interaktive Hülle

Die Shell wird aufgerufen, wenn ein Shell -Skript ausgeführt wird. In diesem Modus verarbeitet ein Skript (Set von Shell- oder Generic System -Befehlen/-funktionen) und erfordert keine Benutzereingabe zwischen Befehlen, sofern nicht anders anders. Es arbeitet mit der von der Elternhülle geerbten Umgebung.

Systemweite Shell-Startdateien verstehen

In diesem Abschnitt werden wir Shell -Startdateien, die Konfigurationen für alle Benutzer auf dem System speichern, mehr Licht beschatten. Dazu gehören:

Der /etc/Profildatei - Es speichert systemweite Umgebungskonfigurationen und Startprogramme für das Anmeldungsaufbau. Alle Konfigurationen, die Sie auf alle Systembenutzerumgebungen anwenden möchten, sollten in dieser Datei hinzugefügt werden.

Zum Beispiel können Sie hier die Global Path Environment Variable festlegen.

# Katze /etc /Profil 
Systemweite Konfigurationsdatei

Notiz: In bestimmten Systemen wie Rhel/Centos 7, Sie erhalten solche Warnungen wie "Es wird nicht empfohlen, diese Datei zu ändern, es sei denn, Sie wissen, was Sie tun. Es ist viel besser, einen Brauch zu erstellen .Sch Shell -Skript in /etc/Profil.D/ Um benutzerdefinierte Änderungen an Ihrer Umgebung vorzunehmen, verhindern dies die Notwendigkeit, in zukünftigen Updates zu verschmelzen. “.

Der /etc/Profil.D/ Verzeichnis - Speichert Shell -Skripte, die verwendet werden, um benutzerdefinierte Änderungen an Ihrer Umgebung vorzunehmen:

# CD /etc /Profil.D/ # ls -l 
Speichert benutzerdefinierte Shell -Skripte

Der /etc/bashrc oder /etc/bash.bashrc Datei - Enthält systemweite Funktionen und Aliase, einschließlich anderer Konfigurationen, die für alle Systembenutzer gelten.

Wenn Ihr System über mehrere Arten von Shells verfügt, ist es eine gute Idee, Bash-spezifische Konfigurationen in diese Datei zu setzen.

# CAT /ETC /BASHRC 
Systemweite Funktionen und Aliase

Verständnis der benutzerspezifischen Shell-Startdateien

Als nächstes erklären wir uns mehr über die von der benutzerspezifische Shell (BASH) Startup-DOT-Dateien (BASH), die Konfigurationen für einen bestimmten Benutzer auf dem System speichern. Sie befinden sich im Heimverzeichnis eines Benutzers und enthalten:

# ls -la 
Benutzerspezifische Konfigurationsdateien

Der ~/.bash_profile Datei - Dies speichert benutzerspezifische Umgebungen und Startprogramme Konfigurationen. Sie können Ihre benutzerdefinierte Pfadumgebungsvariable hier festlegen, wie im folgenden Screenshot gezeigt:

# cat ~/.bash_profile 
User Bash -Profil

Der ~/.bashrc Datei - Diese Datei speichert benutzerspezifische Aliase und Funktionen.

# cat ~/.bashrc 
User Bashrc -Datei

Der ~/.Bash_login Datei - Es enthält spezifische Konfigurationen, die normalerweise nur ausgeführt werden, wenn Sie sich beim System anmelden. Wenn das ~/.bash_profile Fehlen, diese Datei wird von Bash gelesen.

Der ~/.Profil Datei - Diese Datei wird in Abwesenheit von gelesen ~/.bash_profile Und ~/.Bash_login; Es kann die gleichen Konfigurationen speichern, die auch von anderen Shells auf dem System zugegriffen werden können. Da wir hier hauptsächlich über Bash gesprochen haben, beachten Sie, dass andere Shells die Bash -Syntax möglicherweise nicht verstehen.

Als nächstes werden wir auch zwei weitere wichtige benutzerspezifische Dateien erklären, die nicht unbedingt Initialisierungsdateien verprügeln:

Der ~/.bash_history Datei - Bash behält einen Verlauf der Befehle bei, die von einem Benutzer auf dem System eingegeben wurden. Diese Liste der Befehle wird im Heimverzeichnis eines Benutzers in der ~/.bash_history Datei.

Um diese Liste anzuzeigen, geben Sie ein:

$ History oder $ History | weniger 
Zeigen Sie zuletzt ausgeführte Befehle anzeigen

Der ~/.Bash_logout Datei - Es wird nicht für das Shell -Start verwendet, speichert jedoch benutzerspezifische Anweisungen für die Abmeldungsprozedur. Es wird gelesen und ausgeführt, wenn ein Benutzer aus einer interaktiven Anmeldeschale ausgeht.

Ein praktisches Beispiel würde durch Löschen des Terminalfensters beim Abmelden löschen. Dies ist wichtig für Remote -Verbindungen, die nach dem Schließen ein sauberes Fenster hinterlassen:

# Cat Bash_logout 
Löschen Sie den Verlauf nach dem Abmelden

Weitere Erkenntnisse finden Sie in den Inhalten dieser Shell -Initialisierungsdateien auf verschiedenen Linux -Distribos und lesen Sie auch die Bash -Man -Seite durch:

Das ist alles fürs Erste! In diesem Artikel haben wir Shell Startup/Initialisierungsdateien unter Linux erläutert. Verwenden Sie das Kommentarformular unten, um an uns zurückzuschreiben.