Über Linux

Annahme

Hauptthema

Funktionen von Linux

Kernel und Userland

Software ist in Basissoftware und angewandte Software unterteilt. Die Basissoftware ist weiter in zwei Teile unterteilt.

  1. Kernel Der Kernel ist der Kern des Betriebssystems und für die wichtigsten Funktionen wie die direkte Interaktion mit der Hardware verantwortlich. Der Kernel ist dafür verantwortlich, Hardwareunterschiede auszugleichen und zu ermöglichen, dass Programme auf jeder Hardware gleich ausgeführt werden.

2, Benutzerland Der andere Teil als der Kernel, der für den Betrieb des Betriebssystems erforderlich ist. Bezieht sich auf grundlegende Software wie Dateistämme, Dateibetriebsbefehle und Shells.

Schale

Die Shell versteht den eingegebenen Befehl und führt ihn aus. Die Shell selbst hat zwei Hauptfunktionen.

  1. Befehlseingabe akzeptieren 2, Ausführung des Shell-Skripts Ein Shell-Skript dient zur Automatisierung der Befehlseingabe. Erstellen Sie eine Befehlszeile zeilenweise in einer Datei. Durch Ausführen des erstellten Shell-Skripts kann die Ausführung von Befehlen automatisiert werden. Sie können das Shell-Skript, das Sie beim Serverstart oder alle paar Stunden erstellt haben, auch ausführen.

Grundlegende Befehle

Durchsuchen Sie Dateien und Verzeichnisse (ls)

#Format
ls [Möglichkeit][Datei]

#Möglichkeit
-a
// .Alle versteckten Dateien, die mit (ALL) beginnen, werden ausgegeben

-l
//Ausgabe im Langformat

-t
//Sortieren und Ausgeben nach der letzten Aktualisierungszeit (Zeit)

-r
//Sortieren und in umgekehrter Reihenfolge ausgeben

-la
//Anzeige im Langformat einschließlich versteckter Dateien

-lt
//Liste nach Sortierung nach Änderungszeit der Datei

* </ code> gibt eine beliebige Zeichenfolge an, und eine beliebige Anzahl von Zeichen, die zwischen ihnen eingegeben werden, wird als Suchergebnis ausgegeben. Beispiel) Anzeigen einer Liste von Dateien, die mit conf enden

$ cd /etc
$ ls *.conf

? </ Code> ist, wenn die Anzahl der Zeichen im Dateinamen bekannt ist.

$ cd /etc
$ ls ???.conf

Datei kopieren (cp)

$ cp [Möglichkeit]Quelle kopieren Ziel kopieren

-i
//Bestätigen Sie, ob die Datei bei der Verarbeitung überschrieben werden soll. Es wird verwendet, um sich zu entschuldigen und ein Überschreiben zu verhindern.

-r
//Kopieren Sie das Verzeichnis.-Mit der Option r können Sie in alle Dateien und Verzeichnisse im Verzeichnis kopieren.

-p
//Speichern Sie die Informationen der Originaldatei. Wenn Sie mit dem Befehl cp kopieren, wird die neue Datei mit allen gewünschten Inhalten kopiert. Verwenden Sie diese Option, wenn Sie eine Kopie erstellen möchten, während die alten Informationen erhalten bleiben, ohne neuen Inhalt zu erstellen.

Datei verschieben (mv)

$mv Quelldatei verschieben Zieldatei verschieben

-i
//Bestätigen Sie bei der Verarbeitung. Datei überschreiben etc.

-f
//Führen Sie den Prozess zwangsweise aus.

Datei löschen (rm)

$rm Dateiname

-i
//Bestätigen Sie bei der Verarbeitung. Datei überschreiben etc.

-f
//Führen Sie den Prozess zwangsweise aus.

-r
//Zielen Sie auf das Diktat. Löschen Sie Dateien und Verzeichnisse im Verzeichnis.
  • Unter UNIX-basierten Betriebssystemen einschließlich Linux können einmal gelöschte Dateien nicht wiederhergestellt werden. Außerdem kann der Befehl rm kein Verzeichnis löschen (ohne Optionen).

Verzeichnis erstellen (mkdir)

$Name des mkdir-Verzeichnisses

#Möglichkeit
-p
//Außerdem wird ein übergeordnetes Verzeichnis des angegebenen Verzeichnisses erstellt.

#Beim Erstellen von 3 Verzeichnissen gleichzeitig
$ mkdir -p dir1/dir2/dir3

Verzeichnis löschen (rmdir)

$rmdir Verzeichnisname

#Möglichkeit
-p
//Löschen Sie alle Verzeichnisse bis zur angegebenen Hierarchie. Wenn der Befehl rmdir ohne Optionen ausgeführt wird, wird nur das Verzeichnis der untersten Ebene gelöscht. In beiden Fällen muss das Zielverzeichnis jedoch leer sein.

#Beim Erstellen von 3 Verzeichnissen gleichzeitig
$ mkdir -p dir1/dir2/dir3

Dateiinhalt anzeigen (Katze)

$Name der Katzendatei

-n
Anzeige mit hinzugefügten Zeilennummern.

Anzeige mit Pager

$mehr Dateiname

#Nächster Befehl
Leerzeichen Gehen Sie zur nächsten Seite
b Kehren Sie zum vorherigen Bildschirm zurück
f Wechseln Sie zum nächsten Bildschirm
/Wortsuche nach einem Wort. Suchergebnisse mit der Taste n überspringen
q Pager-Befehl beenden (beenden)

$weniger Dateiname

#Nächster Befehl
Leerzeichen Gehen Sie zur nächsten Seite
b Kehren Sie zum vorherigen Bildschirm zurück
f Wechseln Sie zum nächsten Bildschirm
↑ Zur vorherigen Zeile wechseln
↓ Zur nächsten Zeile gehen
/Wortsuche nach einem Wort. Suchergebnisse mit der Taste n überspringen
q Pager-Befehl beenden (beenden)

Datei suchen (finden)

$Weg finden-Name Dateiname

Befehlspfad anzeigen (welcher)

$welcher Befehlsname
  • Wenn das Verzeichnis, in dem der Befehl vorhanden ist, nicht in der Umgebungsvariablen PATH enthalten ist, ist das Ergebnis dieses Befehls ein Fehler. Beispielsweise wird der Pfad zu einem Befehl, für den Administratorrechte erforderlich sind, möglicherweise nicht durch den Befehl which bestätigt, da er nicht von einem allgemeinen Benutzer festgelegt wurde.

Reguläre Ausdrücke und Pipes

grep Befehl

Der Befehl grep ruft Daten aus der Datei ab. Sie können auch nach Daten suchen, die von der Standardeingabe eingegeben wurden, indem Sie | grep </ code> festlegen.

$ grep [Möglichkeit]Suchbedingungen[Angegebene Datei]

#Möglichkeit
-e
//Behandeln Sie Zeichenketten als Suchmuster.

-i
//Unterscheiden Sie nicht sowohl im Suchmuster als auch in der Eingabedatei zwischen Groß- und Kleinschreibung.

-v
//Wählen Sie die Zeilen aus, die nicht mit dem Suchmuster übereinstimmen.

Reguläre Ausdrücke

#Symbole und Bedeutungen, die in regulären Ausdrücken verwendet werden

^Stellt den Zeilenanfang dar
$Stellt das Ende einer Zeile dar
.Bedeutet jeden Buchstaben
*Bedeutet 0 oder mehr Wiederholungen des vorherigen Zeichens
[...] ..Bedeutet einen Buchstaben in
[^...] ..Bedeutet, dass der Charakter von
\ Entkomme Symbolen für reguläre Ausdrücke
#Beispiel für die Verwendung regulärer Ausdrücke

^Zeilen beginnend mit a
b$Zeilen, die mit b enden
a.b Es gibt ein Zeichen zwischen a und b
[ab]ab a oder b gefolgt von ab(aab,bab)
[^ab]ab a oder nicht beginnend mit b (nicht) gefolgt von ab (zB xab,zab etc.)

Grundbefehl 2

Dateistempel ändern (berühren)

Die Datei hat immer einen Zeitstempel (Datum der letzten Änderung). Der Zeitstempel kann durch Hinzufügen der Option -l des Befehls ls bestätigt werden. Der Touch-Befehl ändert die letzte Aktualisierungszeit. Wenn die Datei mit dem angegebenen Dateinamen nicht vorhanden ist, wird eine leere Datei erstellt.

$ touch [Optionsname]Dateiname

#Möglichkeit
-t
//Geben Sie die Änderungszeit der Datei an.

Holen Sie sich einen Teil der Datei (Kopf, Schwanz)

$ head [Optionsname]Dateiname

#Möglichkeit
-n Zeilen
//Gibt die angegebene Zeile standardmäßig von Anfang an aus.

-c Bytes
//Gibt die angegebenen Bytes standardmäßig von Anfang an aus.
  • Head gibt standardmäßig den Anfang der Datei aus. Wenn keine Option hinzugefügt wird, werden die ersten 10 Zeilen standardmäßig ausgegeben.
$ tail [Optionsname]Dateiname

#Möglichkeit
-n Zeilen
//Gibt die angegebene Zeile standardmäßig vom Ende aus.

-c Bytes
//Gibt standardmäßig die angegebenen Bytes vom Ende aus.

-f
//Änderungen können in Echtzeit überwacht werden.
  • Tail gibt standardmäßig das Ende der Datei aus. Wenn keine Option hinzugefügt wird, werden die letzten 10 Zeilen standardmäßig ausgegeben.

Textdateien sortieren

$ sort [Möglichkeit]Dateiname

#Möglichkeit
-r
//In umgekehrter Reihenfolge sortieren.

-k n
//Sortieren Sie die Daten in der n-ten Spalte.

-n
//Als Zahl sortieren.

Datensortierung in Spalte n (-k)

Geben Sie mit der Option -k die Spaltennummer an, die als Sortierschlüssel verwendet werden soll.

$ sort -k 2 score

Doppelte Linien löschen (uniq)

Wenn mit dem Befehl uniq derselbe Inhalt wie in der vorherigen Zeile gefunden wird, wird die Zielzeile nicht ausgegeben. Aufeinanderfolgende Zeilen mit demselben Inhalt können zu einer Zeile zusammengefasst werden.

$Uniq-Dateiname

Ersetzen von Zeichenketten (tr)

Mit dem Befehl tr können Sie die Daten aus der Standardeingabe zeichenweise ersetzen (TRanslate).

$tr Zeichenkette 1 Zeichenkette 2

Dateivergleich (diff)

$ diff [Möglichkeit]Datei 1 Datei 2

#Möglichkeit
-c
//Geben Sie den Unterschied im Kontextdifferenzformat aus.

-u
//Geben Sie den Unterschied im einheitlichen Diff-Format aus.

vi Editor

Wenn Sie eine Datei mit vi öffnen, wird sie als Befehlsmodus bezeichnet. Es gibt Modi, mit denen Sie Zeilen und Seiten durch Paging verschieben, Vorgänge wie das Löschen von Zeilen, Kopieren, Ausschneiden und Einfügen sowie den Einfügemodus bearbeiten können, der die Zeicheneingabe akzeptiert. Gibt es.

Datei öffnen

$ vi [Dateiname]

Datei schließen

Um eine geöffnete Datei mit dem Befehl vi zu schließen, drücken Sie die ESC-Taste </ code> und geben Sie dann ein: q </ code>.

  • Abkürzung für beenden

Speicher die Datei

Um die mit dem Befehl vi geöffnete Datei zu speichern, drücken Sie die ESC-Taste </ code> und geben Sie : w </ code> ein.

  • Abkürzung für schreiben

Speichern Sie die Datei und beenden Sie sie

Um die Datei nach dem Speichern mit dem Befehl vi zu schließen, drücken Sie die ESC-Taste </ code> und geben Sie : wq </ code> ein.

Schließen erzwingen, ohne Datei zu speichern

Um eine mit dem Befehl vi geöffnete Datei zu schließen, ohne sie zu speichern, drücken Sie die ESC-Taste </ code> und geben Sie dann : q! </ Code> ein.

Text eingeben

Der Einfügemodus zur Eingabe einer Zeichenkette muss mit einem Befehl in den Einfügemodus umgeschaltet werden. Es gibt verschiedene Befehle zum Umschalten in den Einfügemodus. Um jedoch eine Zeichenfolge einzugeben, geben Sie den Befehl i </ code> oder den Befehl a </ code> ein.

  • Wenn Sie einen Fehler machen, können Sie das eine Zeichen vor dem Cursor mit Löschen oder BS löschen.

Bewegen Sie den Cursor

Wenn Sie eine Textdatei bearbeiten, bemerken Sie möglicherweise einen Tippfehler oder nehmen später Änderungen vor. Daher möchten Sie möglicherweise den bereits eingegebenen Text korrigieren. Wenn ein Zeichen hinzugefügt werden muss, bewegen Sie den Cursor an die Stelle, die Sie ändern möchten, und geben Sie das Zeichen ein.

*** Bewegen Sie den Cursor nach links und rechts *** Geben Sie h </ code> nach unten ein, um den Cursor mit vi nach links zu bewegen, oder l </ code>, um den Cursor nach rechts zu bewegen.

*** Bewegen Sie den Cursor nach oben und unten *** Sie können den Cursor nach oben und unten auf j </ code> nach unten und k </ code> nach oben bewegen.

*** Mit einem Befehl zum Zeilenanfang gehen *** Sie können zum Anfang der aktuellen Zeile wechseln, indem Sie den Befehl 0 </ code> ausführen.

*** Mit dem Befehl *** zum Zeilenende gehen *** Sie können zum Ende der aktuellen Zeile wechseln, indem Sie den Befehl $ </ code> ausführen.

Seite für Seite verschieben

Der Befehl vi kann kleine bis große Dateien bearbeiten. Verwenden Sie den Befehl, um den Bildschirm für eine schnelle Bearbeitung seitenweise (standardmäßig festgelegte Anzahl von Zeilen) hin und her zu bewegen.

Um zur nächsten Seite zu gelangen, verwenden Sie den Befehl "Strg" f </ code> und um zur vorherigen Seite zu wechseln, verwenden Sie den Befehl "Strg" b </ code>.

Verschieben Sie die angegebene Zeile

Geben Sie die Zeilennummer nach : </ code> an. Wenn Sie beispielsweise in die 10. Zeile wechseln möchten, geben Sie : 10 </ code> ein.

*** Gehen Sie mit dem Befehl zum Dokument *** Sie können zum Anfang des Dokuments zurückkehren, dh zur ersten Zeile, indem Sie den Befehl gg </ code> ausführen.

*** Mit dem Befehl *** zum Ende des Dokuments gehen *** Sie können zum Ende des Dokuments, dh zur letzten Zeile, wechseln, indem Sie den Befehl G </ code> ausführen.

Zeichen ausschneiden und einfügen

Im Befehlsmodus ausführen.

x 1 Zeichen gelöscht
dd Eine Zeile löschen
JJ 1 Zeile Kopie
nyy n Zeilenkopie
p Fügen Sie in die nächste oder nächste Zeile des Cursorzeichens ein
P Vor oder vor dem Zeichen des Cursors einfügen
u Abbrechen einmal ausschneiden und einfügen (rückgängig machen)

Reihe ausschneiden und einfügen

Geben Sie zum Kopieren mehrerer Zeilen die Anzahl der Zeilen an, die Sie kopieren möchten. Yy </ code>.

Wenn Sie beim Bearbeiten und Rückgängigmachen des Texts einen Fehler gemacht haben, geben Sie den Befehl u </ code> ein.

Ersetzen und suchen

Bei einer großen Datei, die nicht das gesamte Bild erfasst, ist es äußerst schwierig, die Zielposition zu erreichen, indem nur die Befehle zum Bewegen des Cursors und zum Verschieben der Seite vollständig verwendet werden. Sie können schnell zum gewünschten Speicherort wechseln, indem Sie mit dem Befehl nach einer Zeichenfolge in einer Textdatei suchen. Sie können auch den Befehl replace verwenden, um schnell eine Zeichenfolge in einem Satz zu finden und durch eine andere Zeichenfolge zu ersetzen.

/Zeichenfolge suchen Nach Zeichenfolge suchen
n Nach unten suchen
N Suchen Sie erneut nach oben
:Ziellinie s/Suchbegriff/Ersatzschnur/Option Zeichenfolge ersetzen

#Ersatzoption
:ns/old/neu Ersetzen Sie das erste alte in der n-ten Zeile durch neues und beenden Sie
:ns/old/new/g Ersetzen Sie alle alten in der n-ten Zeile durch neue und beenden Sie
:%s/old/new/g Ersetzen Sie den Suchbegriff für die gesamte Datei
:%s/old/new/gc Bitten Sie jedes Mal um Bestätigung, wenn es ersetzt wird
  • Wenn g </ code> nicht angegeben ist, wird es nur einmal pro Zeile ersetzt.

Gruppen und Benutzer

Für die Verwendung von Linux ist ein Benutzerkonto erforderlich. Sie können Linux verwenden, indem Sie sich als beliebiger Benutzer anmelden. Dies liegt daran, dass der angemeldete Benutzer das Recht hat, das System Linux zu verwenden. Sie können Gruppen verwenden, um mehrere Benutzer zu bündeln. Durch das ordnungsgemäße Festlegen von Gruppen und Benutzern können nur den erforderlichen Benutzern Berechtigungen zum Anzeigen / Bearbeiten und Ausführen von Dateien und Verzeichnissen, beliebigen Programmen, Shell-Skripten usw. erteilt werden. Da der Befehl zum Erstellen / Ändern / Löschen von Gruppen und Benutzern ein Verwaltungsbefehl ist, muss er vom Administrator root user </ code> ausgeführt werden.

Benutzer erstellen

$useradd Benutzername

#Möglichkeit
-c Kommentar
//Geben Sie einen Kommentar (Zeichenfolge) an.

-g Gruppenname
//Geben Sie den primären Gruppennamen an.

-G Gruppenname
//Geben Sie eine Hilfsgruppe an.

-d
//Geben Sie das Ausgangsverzeichnis an.

-s
//Geben Sie die Shell an.

-u Benutzer-ID-Nummer
//Geben Sie die Benutzer-ID an.

Benutzerkonto ändern

$usermod Benutzername

#Möglichkeit
-c Kommentar
//Ändern Sie den Kommentar (Zeichenfolge).

-g Gruppenname
//Ändern Sie den primären Gruppennamen.

-G Gruppenname
//Hilfsgruppe wechseln.

-l Benutzername
//Ändern Sie einen vorhandenen Benutzernamen.

-u Benutzer-ID-Nummer
//Ändern Sie die Benutzer-ID.

Benutzer löschen

$userdel Benutzername

#Möglichkeit
-r
//Home-Verzeichnis löschen.

Eine Gruppe erstellen

Verwenden Sie Gruppen, um die Berechtigungen mehrerer Benutzer gemeinsam zu verwalten. Der Benutzer gehört immer zu einer oder mehreren Gruppen, und die Gruppe, zu der der Benutzer hauptsächlich gehört, wird als primäre Gruppe bezeichnet. Zusätzlich zu den von Anfang an bereitgestellten Gruppen kann der Systemadministrator nach Bedarf Gruppen definieren.

$groupadd Benutzername

#Möglichkeit
-g Gruppen-ID-Nummer
//Geben Sie die Gruppen-ID an.

Ändern Sie die Gruppenregistrierungsinformationen

$ groupmod [-g gid] [-n new-group-name]Zu ändernde Gruppe

#Möglichkeit
-n
//Geben Sie an, wann der vorhandene Gruppenname geändert werden soll.

-g
//Ändern Sie die vorhandene Gruppen-ID. Gruppen-IDs unter 100 können nicht angegeben werden, da sie vom System verwendet werden.

Gruppe löschen

Gruppendel Gruppenname

Verfügbare Benutzer und Gruppen

Linux stellt Benutzer und Gruppen zur Verfügung, zu denen sie gehören, damit sie das System sofort nach der Installation verwenden können. Sie können nach Bedarf mehrere Benutzer und Gruppen hinzufügen.

Allgemeine Benutzer und Gruppen

Sie benötigen ein Konto, um sich bei Linux anzumelden. Wenn ein Konto erstellt wird, wird eine Gruppe mit demselben Namen wie der Benutzername erstellt, und der Benutzer wird im System registriert, wenn er zur Benutzergruppe gehört. Gruppen dienen zum Gruppieren mehrerer Benutzer. Einzelne Benutzer können nach Abteilung oder anderer Einheit gruppiert werden. Mithilfe von Gruppen können Sie Zugriffsrechte für Verzeichnisse im System festlegen und Verzeichnisse erstellen, auf die nur Benutzer zugreifen können, die zu einer bestimmten Gruppe gehören, oder nur Benutzer, die zu einer bestimmten Gruppe gehören, können Stammbenutzer werden. Bedienung wird möglich.

Root-Benutzer

Der Root-Benutzer ist ein spezieller Benutzer, der Systemeinstellungen ändern, Programme installieren und löschen sowie Benutzer ohne Einschränkungen erstellen und löschen kann. Der Root-Benutzer unterscheidet sich von allgemeinen Benutzern darin, dass er unabhängig von seinen Zugriffsrechten auf alle Benutzerverzeichnisse zugreifen und Inhalte lesen / schreiben kann. Wenn Sie sich auf diese Weise als Root-Benutzer anmelden können, können Sie alle Vorgänge ausführen. Daher müssen Sie das Konto des Root-Benutzers streng verwalten.

su Befehl

Der Befehl su ist ein Befehl, mit dem ein Benutzer, der bereits als ein anderer Benutzer angemeldet ist, vorübergehend ein anderer Benutzer werden kann. Starten Sie beim Ausführen des Befehls su die Shell als Root-Benutzer, wenn kein Benutzer als Option angegeben ist. Wenn Sie den Befehl su ohne Optionen ausführen, melden Sie sich als Root an, ohne das aktuelle Verzeichnis zu ändern. Um das aktuelle Verzeichnis in das Ausgangsverzeichnis von root zu ändern und sich anzumelden, führen Sie "su-" oder "su --root" aus, um das aktuelle Verzeichnis zu ändern, und melden Sie sich dann als Root an. Wenn Sie sich als Root anmelden, können Sie Befehle für die Systemverwaltung ausführen. Wenn mehrere Personen ein Linux-System verwalten und sich direkt als Root-Benutzer anmelden, bleibt nur der Verlauf als Root-Benutzer erhalten, nicht der Verlauf dessen, wer was getan hat. Wenn Sie von einem allgemeinen Benutzer zu einem Root-Benutzer wechseln, können Sie sofort sehen, wann Sie als Root-Benutzer angefangen haben. Aus Sicherheits- und Verwaltungsgründen ist es wünschenswert, sich als allgemeiner Benutzer anzumelden, Root-Benutzerrechte zu erhalten und am System zu arbeiten.

su
su - [Nutzer]

#Möglichkeit
su -(Oder su- root)
//Kann der Root-Benutzer sein.

su - user
//Kann der angegebene Benutzer sein.

Sudo-Befehl zum Ausführen von Befehlen als Root-Benutzer

Mit dem Befehl sudo können Sie Befehle mit Superuser- (Root-) Berechtigungen ausführen. Durch Ausführen von Befehlen mit sudo nach Bedarf, die während der normalen Arbeit nicht mit Benutzerrechten ausgeführt werden können, ist es möglich, Einstellungen und Programme auszuführen, für die Root-Rechte erforderlich sind, ohne den Benutzer mit dem Befehl su auf root umzuschalten. .. Wenn der Befehl sudo mit der Option -u ausgeführt wird, wird der Befehl von einem beliebigen Benutzer ausgeführt. Wenn Sie den Befehl sudo ohne Optionen ausführen, können Sie den Befehl mit Root-Rechten ausführen. In CentOS kann der Befehl sudo nicht mit den Standardeinstellungen verwendet werden. Um den Befehl sudo verwenden zu können, müssen Sie den Benutzer in einer Gruppe mit Superuser- (Root-) Berechtigungen registrieren, die als Radgruppe bezeichnet wird. Die sudo-Einstellungen stellen den Befehl sudo den Benutzern zur Verfügung, indem sie die Datei / etc / sudoers bearbeiten. Die Datei / etc / sudoers kann durch Ausführen des Befehls vicudo bearbeitet werden.

Sudo-Befehl
//Führen Sie Befehle mit Superuser- (Root-) Berechtigungen aus

#Möglichkeit
-u Benutzer
//Führen Sie den Befehl als angegebener Benutzer aus.

Benutzerrechte und Zugriffsrechte

Die Benutzer-ID und die Gruppen-ID des Dateierstellers sind der Eigentümer und die Eigentümergruppe der Datei. Eigentümer und Eigentümergruppe sind wichtige Attribute für Dateiinformationen. Der Eigentümer kann mit dem Befehl chown geändert werden, und die Eigentümergruppe kann mit dem Befehl chgrp geändert werden.

Eigentümerwechsel

Verwenden Sie den Befehl chown, um den Eigentümer einer Datei zu ändern.

chown Benutzer[.Gruppe]Verzeichnis
chown Benutzer[.Gruppe]Datei

#Möglichkeit
-R
//Zielverzeichnisse. Durchlaufen und ändern Sie rekursiv Verzeichnisse und Dateien innerhalb eines Verzeichnisses.
  • Sie müssen ein Root-Benutzer sein, um Benutzer und Gruppen zu ändern. Verzeichnisse und Dateien können ohne Unterschied geändert werden. Sie können auch: verwenden, um Benutzer und Gruppen zu trennen.

Eigentümergruppe wechseln

chgrp Gruppenverzeichnis
chgrp Gruppendatei

#Möglichkeit
-Zielen Sie auf das R-Verzeichnis. Ändern Sie rekursiv Verzeichnisse und Dateien in einem Verzeichnis.

Zugriff, der auf die Datei eingestellt werden kann

Die Berechtigungen einer Datei können auf drei Ebenen festgelegt werden: dem Benutzer, dem die Datei gehört, dem Benutzer, der den Dateieigentümer aus der Dateieigentumsgruppe ausschließt, und anderen Benutzern. Die Datei verfügt über drei vom Benutzer geteilte Lese-, Schreib- und Ausführungsberechtigungen für jede der drei Ebenen. Verwenden Sie den Befehl chmod, um den Modus der Datei zu ändern.

#Beispiel: d rwx rwx rwx

d  rwx       rwx         rwx
Eigener Benutzer Eigene Gruppe Andere

#Bedeutung
r Lesen
w Schreiben
x Verzeichnis ausführen oder verschieben

rwx kann für Benutzer, Gruppen und die anderen drei angegeben werden. Wenn r angezeigt wird, kann die Datei gelesen werden, und wenn w angezeigt wird, kann die Datei geschrieben werden. Wenn x angezeigt wird, kann die Datei als Programm ausgeführt werden, oder wenn es sich um ein Verzeichnis handelt, kann sie in das Verzeichnis verschoben werden.

Änderung der Zugriffsrechte

chmod Modus[,Modus]...Verzeichnis
chmod Modus[,Modus]...Datei
chmod Oktadezimalmodus-Verzeichnis
chmod Oktadezimalmodus-Datei

#Möglichkeit
-Zielen Sie auf das R-Verzeichnis. Ändern Sie das Verzeichnis im Verzeichnis rekursiv (wenn sich ein Verzeichnis im Verzeichnis befindet, folgen Sie allen Verzeichnissen darin).

Legen Sie den Dateimodus für Benutzer, Gruppen und andere Benutzer fest. Es gibt zwei Möglichkeiten, die Modusspezifikation zu schreiben.

  1. Schreiben Sie mehrere Modusformate und geben Sie sie durch Kommas getrennt an. Geben Sie die Stufe jedes Benutzers mit 2 oder 8 Dezimalstellen an.

Benutzergruppe und andere Erlaubnis r w x r w x r w x Achte Nummer 4 2 1 4 2 1 4 2 1 Sollwert Gesamtwert Gesamtwert Gesamtwert

Der Modus kann für u (Benutzer besitzen), g (Eigentümergruppe), o (andere Benutzer) usw. auf r (Lesen), w (Schreiben), x (Verzeichnis ausführen oder ändern) eingestellt werden. Hinzufügen (+) oder Abbrechen (-). Geben Sie a an, um dieselbe Berechtigung für u, g und o anzugeben.

Dateierstellungsmodus

Wenn eine neue Datei erstellt wird, wird die Datei mit Berechtigungen wie 644 oder 644 erstellt. Dies sind die für jeden Benutzer angegebenen Berechtigungen. Mit dem Befehl umask können Sie die Erstellung von Dateien mit angegebenen Berechtigungen steuern.

umask [Achter Modus Maskenwert]

Shell-Skript

Von der Shell eingegebene Befehle haben ein Format, das vom Shell-Skript nacheinander ausgeführt werden kann. Durch Anwenden ist es möglich, die Arbeit durch Befehlseingabe zu automatisieren.

Shell und Shell-Skript

Schale Shell bedeutet Shell. Wenn Sie die vom Kernel bereitgestellten Funktionen ausführen, müssen Sie interaktiv mit dem Betriebssystem arbeiten. Die Shell hat ihren Namen, weil sie das Betriebssystem, insbesondere den Kernel, umgibt und interaktive Funktionen bietet. Die Shell hat die Aufgabe, die Eingabe eines Befehls zu akzeptieren, den Befehl auszuführen und das Ergebnis an den eingegebenen Benutzer zurückzugeben.

*** Shell-Skript *** Betrachten Sie den Ablauf des Komprimierens des Verzeichnisses / etc und des Verzeichnisses / home und des Kopierens auf einen externen Server.

# tar cvzf 120626-etc.tar.gz /etc
# tar cvzf 120626-home.tar.gz /home
# scp 120626-etc.tar.gz [email protected] ~/backup
# scp 120626-home.tar.gz [email protected] ~/backup

Es ist mühsam, dies jedes Mal einzugeben, wenn Sie es ausführen. Als Mittel zur Automatisierung einer solchen sich wiederholenden Verarbeitung gibt es eine Methode zum Schreiben und Ausführen eines Shell-Skripts. Erstellen Sie eine Datei mit dem Namen system-backup.sh, schreiben Sie sie und führen Sie system-backup.sh aus, um die in der Datei geschriebenen Befehle der Reihe nach auszuführen.

#!/bin/bash

Erstellen eines Shell-Skripts

Das Shell-Skript ist in Text geschrieben.

$ vi lsdate.sh

Schreiben Sie das folgende Skript auf vi und speichern Sie es.

#!/bin/bash
ls
date

・ Shell-Bezeichnung Ich habe #! / Bin / bash in die erste Zeile geschrieben. In der ersten Zeile der Datei werden der zu verwendende Shell-Typ und seine Befehlsposition beschrieben. Geben Sie die Befehle ein, die Zeile für Zeile in der zweiten und den folgenden Zeilen ausgeführt werden sollen.

・ Berechtigungen ändern Um das erstellte Shell-Skript auszuführen, müssen Sie die Berechtigungen ändern, um der Datei die Berechtigung zum Ausführen zu erteilen. Überprüfen Sie die Dateizugriffsberechtigung mit dem Befehl ls.

$ ls -l sdate.sh
-rw-rw-r--. 1 tooyama tooyama 

Verwenden Sie den Befehl chmod, um die Ausführungsberechtigung zu erteilen.

$ chmod u+x lsdate.sh
$ ls -l lsdate.sh
-rwxrw-r--. 1 tooyama tooyama

Das Eigentum erhält nun die Ausführungserlaubnis. Wenn Sie dem Shell-Skript die Ausführungsberechtigung erteilen, führen Sie es sofort aus.

$ ./lsdate.sh

./ ist eine Pfadangabe. (Führen Sie lsdate.sh im aktuellen Verzeichnis aus.) Bei der Ausführung von ls oder cp muss ein solcher Pfad nicht angegeben werden, da er sich im Pfad befindet. Dieses Mal habe ich den Pfad zum Ausführen eines bestimmten Shell-Skripts im aktuellen Verzeichnis angegeben. Sie können sehen, dass der in lsdate.sh beschriebene Befehl ls und der Befehl date der Reihe nach ausgeführt wurden.

Kommentar

Ein Kommentar ist ein Kommentar zum Programm. Bei der Shell wird die mit # beginnende Zeile als Kommentar erkannt und der Kommentar wird ignoriert, wenn das Programm ausgeführt wird. Kommentare werden häufig verwendet, um zu beschreiben, was ein von einem Programmierer geschriebenes Programm tut, oder um einen bestimmten Prozess vorübergehend zu deaktivieren (auskommentieren).

$ vi lsdate.sh
#!/bin/bash
ls
#date

Führen Sie das Shell-Skript aus

$ ./lsdate.sh

Sie können sehen, dass die Ausgabe des Datumsbefehls verschwunden ist.

Echo-Befehl

Der Befehl echo ist ein Befehl, der die Zeichenfolge ausgibt, die als Argument für die Standardausgabe angegeben wurde.

echo [Möglichkeit]String

#Möglichkeit
-n
//Zeilenumbrüche unterdrücken. Die normale Ausgabe wird unterbrochen, bei dieser Option jedoch nicht.
$ echo Message test

Variable

Setzen Sie in der Shell-Funktion einen Wert auf abc und überprüfen Sie den Inhalt mit dem Befehl echo.

$ abc=123
$ echo $abc
123
(Inhalt von abc anzeigen)

Weisen Sie der Variablen abc 123 zu. In Bash können Sie eindimensionale Array-Variablen verwenden. Fügen Sie das Element in [] ein. Um den Inhalt einer Array-Variablen anzuzeigen, fügen Sie die Array-Variable in {} nach dem $ ein.

$ abc[0]=123
$ abc[1]=456
$ echo ${abc[0]}
123
$ index=1
$ echo ${abc[$index]}
456

*** Shell- und Umgebungsvariablen *** Es gibt zwei Arten von Variablen in der Shell. Shell-Variablen und Umgebungsvariablen. Shell-Variablen sind nur innerhalb der von Ihnen ausgeführten Shell gültig. Umgebungsvariablen sind auch in von ihnen ausgeführten Befehlen gültig. Umgebungsvariablen können aus Shell-Variablen erstellt werden.

$ export abc
$ export xyz=234

Der erste Befehl erstellt eine Umgebungsvariable namens abc. Abc ist kein Wert zugeordnet. Der zweite Befehl erstellt eine Umgebungsvariable namens xyz. 234 ist xyz zugeordnet. Verwenden Sie als Nächstes die beiden Skripte BBB.sh und CCC.sh, um den Unterschied im Verhalten zwischen Shell-Variablen und Umgebungsvariablen zu überprüfen.

$ cat BBB.sh
#!/bin/bash
xxx=123                  #Weisen Sie der Shell-Variablen xxx 123 zu
export yyy=234           #Ersetzen Sie die Umgebungsvariable JJJ durch 234
echo xxx=$xxx in BBB.sh  #Zeigen Sie den Wert der Variablen xxx an
echo yyy=$yyy in BBB.sh  #Zeigen Sie den Wert der Variablen JJJ an
./CCC.sh                 #CCC.lauf sh

$ cat CCC.sh
#!/bin/bash
echo xxx=$xxx in CCC.sh  #Zeigen Sie den Wert der Variablen xxx an
echo yyy=$yyy in CCC.sh  #Zeigen Sie den Wert der Variablen JJJ an

$ ./BBB.sh
xxx=123 in BBB.sh
yyy=234 in BBB.sh
xxx= in CCC.sh
yyy=234 in CCC.sh

Da JJJ eine Umgebungsvariable ist, wird der Wert angezeigt, da er bis zu CCC.sh vererbt wird.

Lesebefehl

Der Lesebefehl liest Daten von der Standardeingabe. Wenn die Variable bereits Daten enthält, werden diese mit neuen Daten überschrieben.

Variablenname lesen
$ echo $abc
123

$ read abc
aaa
(Gib etwas ein)

$ echo $abc
aaa
(Der Inhalt der Shell-Variablen abc wird ersetzt)

Shell-Variablen

Verwenden Sie den Befehl set, um eine Liste der Shell-Variablen anzuzeigen. Wenn Sie es löschen möchten, verwenden Sie unset.

$ set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:intera
BASH_ALIASES=()
$ set | grep ^abc
abc=aaa
(Überprüfen Sie nur Shell-Variablen, die mit abc beginnen.)
$ unset abc
(Shell-Variable abc löschen)
$ set | grep ^abc

Umgebungsvariable

Verwenden Sie den Befehl env, um eine Liste der aktuellen Umgebungsvariablen anzuzeigen. Verwenden Sie den Befehl unset, um die registrierte Umgebungsvariable zu löschen.

$ env
ABC=999999
HOSTNAME=host1.alpha.jp
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000

$ env | grep ^ABC
ABC=999999
$ unset ABC
(Umgebungsvariable ABC löschen)
$ env | grep ^ABC

Anführungszeichen

In Shell-Skripten können Zeichenfolgen in Anführungszeichen gesetzt werden. Zu den verfügbaren Anführungszeichen gehören "(einfaches Anführungszeichen)", "(doppeltes Anführungszeichen)", "(hinteres Anführungszeichen)". Wenn die in einem Fort eingeschlossene Zeichenfolge eine Variable mit "" als Referenz enthält, wird die Variable nicht erweitert, da "" auch als Zeichenfolge erkannt wird. Bei tabellarischen Anführungszeichen sind Variablen mit "" in Anführungszeichen erweiterte Zeichenfolgen. Die in Anführungszeichen eingeschlossene Zeichenfolge wird als Befehl interpretiert. Wenn zu diesem Zeitpunkt eine Variable mit "" vorhanden ist, wird der Befehl nach dem Erweitern ausgeführt.

$ ABC=123
$ echo 'Value of ABC is $ABC.'
Value of ABC is $ABC.
($ABC wurde als Zeichen erkannt und so angezeigt, wie es war)
$ echo "Value of ABC is $ABC."
Value of ABC is 123.
($ABC wurde als Variable erkannt und der Inhalt 123 erweitert)
$ XYZ=`date`;
$ echo"It is $XYZ now."
($XYZ enthält das Ausführungsergebnis des Datumsbefehls.
$ echo "It is `date` now."
(Schließen Sie die gesamte Zeichenfolge in doppelte Anführungszeichen ein, fügen Sie den in Anführungszeichen eingeschlossenen Datumsbefehl ein und lassen Sie die Zuordnung zur Variablen XYZ weg.)

Streit

Shell-Skripte können zur Laufzeit auf Optionen als Argumente verweisen. Auf Argumente kann verwiesen werden, indem die Argumentnummer nach $ angegeben wird, z. B. $ 1, $ 2 usw.

$ cat args.sh
#!/bin/bash

echo '$1:' $1;
echo '$2:' $2;
echo '$3:' $3;
echo '$0:' $0;
echo '$#:' $#;
$ ./args.sh aaa bbb ccc
$1: aaa
$2: bbb
$3: ccc
$0: ./args.sh
$#: 3
($1-$3 ist das Argument,$0 ist der Name des Ausführungsbefehls,$#Gibt die Anzahl der Argumente an.

Shift-Anweisung

Der Befehl shift verschiebt die Reihenfolge der Argumente. Wenn die Verschiebung ausgeführt wird, wird aus $ 2 $ 1, aus $ 3 wird $ 2 und so weiter.

$ cat argsshift.sh
#!/bin/bash

echo '$1:' $1;
echo '$2:' $2;
echo '$3:' $3;
shift
echo '$1:' $1;
echo '$2:' $2;
$ ./argsshift.sh aaa bbb ccc
$1: aaa
$2: bbb
$3: ccc
$1: bbb
($1 geändert zu bbb)
$2: ccc
($2 geändert in ccc)

Fluchtabfolge

Einige Programmiersprachen werden speziell behandelt. Zum Beispiel, wie man "(doppelte Anführungszeichen) wie" Wert von ABC ist "123" ausgibt. "Mit dem Befehl echo.

$ ABC=123
$ echo "Value of ABC is "$ABC"."
Value of ABC is 123.
($ABC""Ich habe es mit umgeben""Wird nicht angezeigt)
$ echo "Value of ABC is ¥"$ABC¥"."
Value of ABC is "123".
(Ich möchte anzeigen"Durch kurzes Hinzufügen von "¥""Kann angezeigt werden.

Auf diese Weise wird \ (Back Slash) im Shell-Skript als Escape-Zeichen bezeichnet, und ein Sonderzeichen ändert die Behandlung des unmittelbar folgenden Zeichens. Wirksam, wenn Sie die Behandlung von Zeichen in Kombination mit den verwendeten Anführungszeichen ändern möchten. \ (Back Slash) gilt auch für Zeilenvorschubcode. Durch Hinzufügen von \ (hinterer Schrägstrich) am Ende der Zeile kann es in die Mitte der Zeichenfolge eingeschlossen werden. Die Sichtbarkeit von Befehlen kann durch Einfügen geeigneter Zeilenumbrüche verbessert werden.

$ echo "I am a cat. As yet I have no name."
I am a cat. As yet I have no name.
$ echo "I am a cat.¥
> As yet I have no name."
I am a cat. As yet I have no name.

Backslash-Unterbrechungen können auch in Shell-Skripten verwendet werden. Der Backslash ist ursprünglich , aber in vielen japanischen Umgebungen wird er als \ angezeigt.

$ vi escape.sh

#!/bin/bash

echo "I am a cat. ¥
As yet I have no name."

$ ./escape.sh
I am a cat. As yet I have no name.

Es gibt andere Verwendungszwecke für \ (Schrägstrich), und es gibt eine Methode namens Escape-Sequenz, bei der es sich um eine Zeichenfolge handelt, die als Satz mit dem folgenden Zeichen eine besondere Bedeutung hat. Häufig verwendete sind \ t (Tabulator), \ n (Zeilenvorschub) und \ ooo (o ist eine Zahl in hexadezimaler Schreibweise).

$ echo -e "I am a cat. ¥nAs yet I have no name¥041"
I am a cat.
As yet I have to name!

Quellbefehl

Richten Sie eine Shell-Umgebung ein, indem Sie die angegebene Datei mit einem internen Shell-Befehl wie bash lesen. Der Inhalt der Datei wird als Shell-Befehl interpretiert und ausgeführt. Eine häufige Verwendung besteht darin, die Einstellungen der Shell-Umgebung wie ".bashrc" und ".bash_profile" zu ändern und dann die Einstellungen für die aktuelle Shell zu aktivieren, ohne sich erneut anzumelden.

$ cat set.sh
(set.Überprüfen Sie den Inhalt von sh)

#!/bin/bash
abc=xyz
echo $abc
$ echo $abc
($Es wird nichts angezeigt, da abc nichts speichert.
$ ./set.sh
xyz
(Der im Skript festgelegte Wert der Variablen abc wurde per Echo ausgegeben.)
$ echo $abc
(Die Werteinstellung für die Variable abc ist nur im Skript gültig, daher wird nichts angezeigt.)
$ source set.sh
xyz
(Der im Skript festgelegte Wert der Variablen abc wurde per Echo ausgegeben.)
$ echo $abc
xyz

Bedingte Verzweigung

wenn bedingter Ausdruck 1 dann...elif bedingter Ausdruck 2... else ... fi

#Operator zum numerischen Vergleich
a -True, wenn Gleichung b a und b gleich sind
a -wahr, wenn ne b a und b nicht gleich sind (nicht gleich)
a -True, wenn ge b a größer oder gleich ist
a -True wenn le b a und kleiner als b (kleiner als oder gleich)
a -True, wenn gt b a größer als b ist
a -Wahr, wenn b a kleiner als b ist

Überprüfen Sie die Dateiattribute

if test -d Pfad; then ...

Der Teil -d entspricht dem Bestätigungsoperator für Dateiattribute. Da -d bestimmt, ob es sich um ein Diktat handelt, ist die gesamte if-Anweisung ein bedingter Ausdruck, der den wahren Wert zurückgibt, wenn der Pfad im Verzeichnis angezeigt wird. Die Operatoren zur Bestätigung von Dateiattributen lauten wie folgt.

-f Dateiname True für reguläre Dateien
-d Dateiname True für Verzeichnis
-e Dateiname True, wenn die Datei vorhanden ist
-L Dateiname True wenn symbolisch
-r Dateiname True, wenn lesbare Datei
-w Dateiname True, wenn lesbare Datei
-x Dateiname True, wenn die Datei vorhanden ist und über Ausführungsberechtigung verfügt
-s Dateiname True, wenn die Größe größer als 0 ist

Der Testbefehl kann auch mit [] geschrieben werden.

if [Konditionalsatz] ; then ...
if test bedingte Klausel; then ...

Neben den Attributen gibt es noch andere Vergleichsoperatoren für Dateien. Weitere Informationen finden Sie im Element Testbefehl mit dem Befehl man.

man test

Überlappen Sie mehrere Bedingungen

*** Logisches UND ***

[Bedingung A.-a Bedingung B.-eine Bedingung C.] ...
[Bedingung A.] && [Bedingung B.] && [Bedingung C.] ...

Beachten Sie, dass -a und && unterschiedlich verwendet werden, je nachdem, ob sie sich innerhalb oder außerhalb befinden [].

*** Logische Summe ***

[Bedingung A.-o Bedingung B.-o Bedingung C.] ...
[Bedingung A.] || [Bedingung B.] || [Bedingung C.] ...

Eins-zu-viele bedingte Verzweigung

wenn bedingter Ausdruck dann
elif bedingten Ausdruck dann
elif bedingten Ausdruck dann
fi

Im Shell-Skript wird eine case-Anweisung vorbereitet, damit ein bis viele Zweige beschrieben werden können.

Fallvariable in
Wert A)
Prozess 1;;
Wert B)
Prozess 2;;
esac

Wenn der Wert der Variablen der Wert A ist, wird der Prozess 1 ausgeführt. Es ist wichtig, dass das Ende mit esac endet, einer Beschreibung auf der Rückseite der case-Anweisung. Es können mehrere Werte angegeben werden, indem sie durch ein Rohrsymbol (|) getrennt werden.

$ cat case.sh
#!/bin/bash

case $1 in
        a|A)
           echo "A oder A wurde als Argument eingegeben";;
        b|B)
           echo "B oder B wurde als Argument eingegeben";;
esac

Wenn du das machst

$ ./case.sh a
A oder A wurde als Argument eingegeben
$ ./case.sh B
B oder B wurde als Argument eingegeben

Um die Verarbeitung zu beschreiben, wenn kein Wert übereinstimmt, verwenden Sie ein Sternchen (*) für den Wert.

$ cat defaultcase.sh
#!/bin/bash

case $1 in
        1)
           echo "1 wurde als Argument eingegeben";;
        2)
           echo "2 wurde als Argument eingegeben";;
        *)
           echo "1,Alles andere als 2 wurde eingegeben";;
esac

Wenn du das machst

$ ./defaultcase.sh 1
1 wurde als Argument eingegeben
$ ./defaultcase.sh 2
2 wurde als Argument eingegeben
$ ./defaultcase.sh 0
1,Andere als 2 eingegeben

Recommended Posts