Dieses Buch ist in fünf Teile gegliedert, die detailliert in Shell-Programmierkenntnisse, verschiedene UNIX-Befehle und Syntax einführen und sich auch mit der Textverarbeitung unter UNIX und einer kleinen Anzahl von Systemverwaltungsproblemen befassen. Dieses Buch ist inhaltlich umfassend und im Text prägnant und glatt, sodass es für Shell-Programmierer zum Lernen und Nachschlagen geeignet ist.
Inhaltsverzeichnis Vorwort des Übersetzers Teil Eins Shell
Kapitel 1 Dateisicherheit und Berechtigungen 1
1.1 Dokument 1
1.2 Dateityp 2
1.3 Erlaubnis 2
1.4 Berechtigungsbit 4 ändern
1.4.1 Symbolmodus 4
1.4.2 chmod-Befehlsbeispiel 5
1.4.3 Absolutmodus 5
1.4.4 Weitere Beispiele für chmod-Befehl 6
1.4.5 Sie können wählen, ob Sie den symbolischen Modus oder den absoluten Modus 7 verwenden möchten
1.5 Inhalt 7
1,6 Suid/Guid 7
1.6.1 Warum suid/guid 8 verwenden
1.6.2 Beispiel für die Einstellung suid/guid 8
1,7 Chown und Chgrp 9
1.7.1 Chown-Beispiel 9
1.7.2 chgrp Beispiel 9
1.7.3 Finden Sie heraus, zu welchen Benutzergruppen Sie gehören 9
1.7.4 Finden Sie heraus, zu welchen Gruppen andere Benutzer gehören10
1,8umask 10
1.8.1 So berechnen Sie den umask-Wert 10
1.8.2 Häufig verwendeter umask-Wert 11
1.9 Symbolische Links 12
1.9.1 Verwenden von Softlinks zum Speichern mehrerer Bilder einer Datei 12
1.9.2 Symbolischer Link Beispiel 12
1.10 Zusammenfassung 13
Kapitel 2 Verwenden von find und xargs 14
2.1 Befehlsoptionen finden 14
2.1.1 Verwendung der Namensoption 15
2.1.2 Perm-Option 16 verwenden
2.1.3 Ein Verzeichnis ignorieren 16
2.1.4 Verwendung der Benutzer- und Nouser-Optionen 16
2.1.5 Verwendung der Group- und Nogroup-Optionen 16
2.1.6 Dateien anhand der Änderungszeit finden 17
2.1.7 Dateien suchen, die neuer oder älter als eine bestimmte Datei sind 17
2.1.8 Verwendung der Typoption 17
2.1.9 Verwendung der Größenoption 18
2.1.10 Verwendung der Tiefenoption 18
2.1.11 Verwendung der Mount-Option 18
2.1.12 Verwendung der cpio-Option 18
2.1.13 Verwenden Sie exec oder ok, um Shell-Befehle auszuführen 19
2.1.14 Beispiel 20 des Suchbefehls
2,2 xArgs 20
2.3 Zusammenfassung 21
Kapitel 3 Befehle im Hintergrund ausführen 22
3.1 Cron und Crontab 22
3.1.1 Crontab-Domäne 22
3.1.2 Beispiele für Crontab-Einträge 23
3.1.3 Crontab-Befehlsoption 23
3.1.4 Erstellen Sie eine neue Crontab-Datei 24
3.1.5 Crontab-Dateien auflisten 24
3.1.6 Crontab-Datei bearbeiten 24
3.1.7 Crontab-Datei löschen 25
3.1.8 Verlorene Crontab-Dateien wiederherstellen 25
3.2 bei Befehl 25
3.2.1 Verwenden Sie den Befehl at, um Befehle oder Skripte zu senden 26
3.2.2 Liste eingereichter Aufgaben 27
3.2.3 Einen Job löschen 27
3.3 & Befehl 27
3.3.1 Befehl an den Hintergrund senden 28
3.3.2 Verwenden Sie den Befehl ps, um den Prozess anzuzeigen 28
3.3.3 Hintergrundprozesse beenden 28
3.4 Nohup-Befehl 29
3.4.1 Verwenden Sie den Befehl nohup, um Jobs zu senden 29
3.4.2 Mehrere Jobs gleichzeitig übermitteln 29
3.5 Zusammenfassung 30
Kapitel 4 Ersetzen von Dateinamen 31
4.1 Verwendung* 31
4.2 Verwendung? 32
4.3 Verwendung von [...] und [!...] 32
4.4 Zusammenfassung 33
Kapitel 5 Shell-Eingabe und -Ausgabe 34
5.1 Echo 34
5.2 lesen 35
5,3 Katze 37
5.4 Rohrleitung 38
5,5 Abschlag 39
5.6 Standardeingabe, -ausgabe und -fehler 40
5.6.1 Standardeingabe 40
5.6.2 Standardausgabe 40
5.6.3 Standardfehler 40
5.7 Dateiumleitung 40
5.7.1 Standardausgabe umleiten 41
5.7.2 Standardeingabe umleiten 42
5.7.3 Umleitung des Standardfehlers 42
5.8 Gemeinsame Verwendung von Standardausgabe und Standardfehler 43
5.9 Zusammenführen von Standardausgabe und Standardfehler 43
5.10 Ausführung 44
5.11 Verwendung von Dateideskriptoren 44
5.12 Zusammenfassung 45
Kapitel 6 Befehlsausführungssequenz 46
6.1 Verwendung von && 46
6.2 Verwendung || 46
6.3 Verwenden Sie () und { }, um Befehle zu kombinieren 47
6.4 Zusammenfassung 48
Teil 2 Textfilterung Kapitel 7 Einführung in reguläre Ausdrücke 49
7.1 Verwendung von Punkten zur Zuordnung einzelner Zeichen 50
7.2 Ordnen Sie eine Zeichenfolge oder Zeichenfolge mit ^ am Anfang der Zeile 50 zu
7.3 Zeichenfolge oder Zeichen 51 mit $ am Zeilenende abgleichen
7.4 Verwenden Sie *, um ein einzelnes Zeichen oder seine wiederholte Sequenz in einer Zeichenfolge abzugleichen 51
7.5 Verwenden Sie , um die Bedeutung eines Sonderzeichens zu maskieren 52
7.6 Verwenden Sie [], um einen Bereich oder Satz abzugleichen52
7.7 Verwenden Sie {}, um die Häufigkeit anzupassen, mit der das Musterergebnis 53 erscheint
7.8 Zusammenfassung 55
Kapitel 8 Grep-Familie 56
8.1 grep 57
8.1.1 Doppelte Anführungszeichen 57
8.1.2 grep-Option 57
8.1.3 Mehrere Dateien abfragen 57
8.1.4 Linienübereinstimmung 57
8.1.5 Anzahl der Zeilen 58
8.1.6 Nicht übereinstimmende Zeilen anzeigen 58
8.1.7 Genaue Übereinstimmung 58
8.1.8 Groß- und Kleinschreibung58
8.2 grep und reguläre Ausdrücke 58
8.2.1 Modusbereich 59
8.2.2 Entspricht nicht dem Anfang von Zeile 59
8.2.3 Fall 59 einstellen
8.2.4 Entspricht einem beliebigen Zeichen 59
8.2.5 Datumsabfrage 59
8.2.6 Bereichskombination 60
8.2.7 Musterauftrittswahrscheinlichkeit 60
8.2.8 Verwenden Sie grep, um „AND“- oder „OR“-Muster abzugleichen 61
8.2.9 Leerzeile 61
8.2.10 Sonderzeichen abgleichen 61
8.2.11 Formatierten Dateinamen abfragen 61
8.2.12 IP-Adresse 61 abfragen
8.3 Klassenname 62
8.4 System grep-Befehl 62
8.4.1 Inhaltsverzeichnis 63
8.4.2 passwd-Datei 63
8.4.3 Verwendung des ps-Befehls 63
8.4.4 Verwendung von grep 64 für einen String
8,5 Egrep 64
8.6 Zusammenfassung 65
Kapitel 9 Einführung in AWK 66
9.1 Aufruf von awk 66
9.2 awk-Skript 67
9.2.1 Muster und Aktionen 67
9.2.2 Domänen und Datensätze 67
9.2.3 Reguläre Ausdrücke und ihre Operationen in awk 70
9.2.4 Metazeichen 70
9.2.5 Bedingte Operatoren 70
9.2.6 Integrierte awk-Variablen 73
9.2.7 NF, NR und FILENAME 74
9.2.8 awk-Operator 75
9.2.9 Integrierte String-Funktionen 78
9.2.10 String-Maskierungssequenz 80
9.2.11 awk-Ausgabefunktion printf 81
9.2.12 printf-Modifikator 81
9.2.13 awk-Array 86
9.3 Zusammenfassung 88
Kapitel 10 Einführung in die sed-Nutzung 89
10.1 So lesen Sie Daten mit sed 89
10.2 Sed 89 anrufen
10.2.1 Sed-Ausgabe speichern 90
10.2.2 So verwenden Sie sed zum Abfragen von Text in einer Datei 90
10.2.3 Grundlegende sed-Bearbeitungsbefehle 90
10.3 sed und reguläre Ausdrücke 91
10.4 Grundlegende Sed-Programmierbeispiele 91
10.4.1 Verwendung von p(rint) zur Anzeige von Zeile 91
10.4.2 Druckbereich 91
10.4.3 Druckmodus 92
10.4.4 Abfragen mit Mustern und Zeilennummern 92
10.4.5 Passende Metazeichen 92
10.4.6 Anzeige der gesamten Datei 92
10.4.7 Beliebiges Zeichen 92
10.4.8 Erste Zeile 92
10.4.9 Letzte Zeile 93
10.4.10 Zeilennummer 93 drucken
10.4.11 Zusatztext 93
10.4.12 Sed-Skriptdatei 94 erstellen
10.4.13 Text einfügen 94
10.4.14 Text ändern 95
10.4.15 Text 96 löschen
10.4.16 Ersatztext 96
10.5 Ändern von Zeichenfolgen mithilfe von Substitution 97
10.6 Sed-Ergebnisse in Datei schreiben, Befehl 97
10.7 Text aus einer Datei lesen 98
10.8 Verlassen Sie 98 nach dem Matching
10.9 Steuerzeichen in Dateien anzeigen 99
10.10 Verwendung von System Sed 99
10.10.1 Umgang mit Steuerzeichen 99
10.10.2 Bearbeitung der Meldungsausgabe 101
10.10.3 Entfernen Sie die Zahl 101 am Anfang der Zeile
10.10.4 Zusatztext 102
10.10.5 Übergabe des Werts 102 von der Shell an sed
10.10.6 Festlegen von Shell-Variablen aus der sed-Ausgabe 102
10.11 Schnelle einzeilige Befehle 102
10.12 Zusammenfassung 103
Kapitel 11 Fusion und Spaltung 104
11.1 Sortierverwendung 104
11.1.1 Übersicht 104
11.1.2 Sortieroptionen 104
11.1.3 Ausgabe speichern 105
11.1.4 Startmethode 105 sortieren
11.1.5 So bezieht sich sort auf Domänen 105
11.1.6 Ob die Datei klassifiziert wurde105
11.1.7 Grundsortierung 106
11.1.8 Sortierklassifizierungsumkehr 106
11.1.9 Klassifizierung nach ausgewiesener Domäne 106
11.1.10 Numerische Feldklassifizierung 106
11.1.11 Eindeutigkeitsklassifizierung 107
11.1.12 Andere Sortiermethoden mit k 108
11.1.13 Verwendung von k für die Sortierung nach Klassifizierungsschlüsseln 108
11.1.14 Sortierreihenfolge angeben 108
11.1.15 pos-Nutzung 108
11.1.16 Klassifizieren Sie die Ausgabe mithilfe von Kopf und Schwanz 109
11.1.17 awk verwendet Sortieren, um Ergebnisse auszugeben 109
11.1.18 Zwei Klassifizierungsdateien zusammenführen 110
11.2 Systemsortierung 110
11.3 Uniq-Nutzung 111
11.4 Join-Nutzung 112
11,5 Schnittverbrauch 114
11.5.1 Verwendung von Domänentrennzeichen 115
11.5.2 Schneiden Sie das angegebene Feld 115 aus
11.6 Paste-Nutzung 116
11.6.1 Spalten angeben 116
11.6.2 Verwendung verschiedener Feldtrennzeichen 116
11.6.3 Einfügen der Befehlspipeline-Eingabe 117
11.7 geteilte Nutzung 117
11.8 Zusammenfassung 118
Kapitel 12 tr Verwendung 119
12.1 Über tr 119
12.1.1 Zeichenbereich 119
12.1.2 Ausgang speichern 120
12.1.3 Wiederholte Zeichen entfernen 120
12.1.4 Leerzeilen löschen 120
12.1.5 Großschreibung in Kleinschreibung 121
12.1.6 Kleinschreibung in Großschreibung 121
12.1.7 Angegebene Zeichen löschen 121
12.1.8 Steuerzeichen konvertieren 122
12.1.9 Schnellkonvertierung 122
12.1.10 Übereinstimmung mit mehr als einem Zeichen 123
12.2 Zusammenfassung 123
Teil 3 Anmeldeumgebung Kapitel 13 Anmeldeumgebung 125
13.1 /etc/profile 125
13.2 $HOME.profile des Benutzers 128
13.3 stty-Nutzung 129
13.4 .logout-Datei erstellen 131
13.5 Zusammenfassung 131
Kapitel 14 Umgebungs- und Shellvariablen 132
14.1 Was sind Shell-Variablen132
14.2 Lokale Variablen 132
14.2.1 Variablen anzeigen 133
14.2.2 Variablen löschen 133
14.2.3 Alle lokalen Shell-Variablen anzeigen 133
14.2.4 Variablenwerte kombinieren 134
14.2.5 Testen, ob eine Variable gesetzt wurde 134
14.2.6 Verwenden von Variablen zum Speichern von Systembefehlsparametern 135
14.2.7 Nur-Lese-Variablen festlegen 135
14.3 Umgebungsvariablen 136
14.3.1 Umgebungsvariablen festlegen 136
14.3.2 Umgebungsvariablen anzeigen 136
14.3.3 Umgebungsvariablen löschen 137
14.3.4 Einbetten von Shell-Variablen 137
14.3.5 Andere Umgebungsvariablen 139
14.3.6 Befehl 140 einstellen
14.3.7 Variablen in untergeordnete Prozesse exportieren 140
14.4 Positionsvariablenparameter 141
14.4.1 Verwendung von Positionsparametern in Skripten 142
14.4.2 Parameterübergabe an Systembefehle 142
14.4.3 Spezifische variable Parameter 143
14.4.4 Endgültiger Ausgangsstatus 144
14.5 Zusammenfassung 145
Kapitel 15 Zitate 146
15.1 Zitierweise 146
15.2 Doppelte Anführungszeichen 146
15.3 Einfache Anführungszeichen 147
15.4 Backticks147
15.5 Backslash 148
15.6 Zusammenfassung 149
Teil 4 Grundlegende Shell-Programmierung Kapitel 16 Einführung in Shell-Skripte 151
16.1 Gründe für die Verwendung von Shell-Skripten 151
16.2 Skriptinhalt 151
16.3 Ausführen eines Skripts 152
16.4 Zusammenfassung 153
Kapitel 17 Bedingungstests 154
17.1 Testdateistatus 154
17.2 Verwendung logischer Operatoren beim Testen 155
17.3 Stringtest 155
17,4 Testwert 156
17,5 Ausdrucksverwendung 157
17.5.1 Inkrementelles Zählen 158
17.5.2 Numerische Prüfung 158
17.5.3 Mustervergleich 158
17.6 Zusammenfassung 159
Kapitel 18 Kontrollflussstrukturen 160
18.1 Ausgangsstatus 160
18.2 Kontrollstruktur 160
18.2.1 Flusskontrolle 161
18.2.2 Schleifen 161
18.3 if then else-Anweisung 161
18.3.1 Einfache if-Anweisung 162
18.3.2 Variablenwertprüfung 162
18.3.3 grep-Ausgabeinspektion 163
18.3.4 Testen der grep-Ausgabe mit Variablen 163
18.3.5 Ausgabeprüfung der Dateikopie 164
18.3.6 Aktueller Verzeichnistest 164
18.3.7 Dateiberechtigungsprüfung 165
18.3.8 In Skripten übergebene Parameter testen 165
18.3.9 Feststellen, ob sich das Skript im interaktiven Modus befindet165
18.3.10 Einfache if else-Anweisung 166
18.3.11 Variableneinstellungstest 166
18.3.12 Erkennen des Benutzers, der das Skript ausführt 166
18.3.13 Skriptparameter an Systembefehle übergeben 167
18.3.14 null: Befehlsverwendung 167
18.3.15 Ergebnisse der Testverzeichniserstellung 168
18.3.16 Eine weitere Kopieinstanz 169
18.3.17 Mehrere if-Anweisungen 169
18.3.18 Umgebungsvariablen testen und festlegen 169
18.3.19 Erkennen des letzten Befehlsstatus 170
18.3.20 Ganzzahlwerte hinzufügen und prüfen 171
18.3.21 Einfaches sicheres Anmeldeskript 172
18.3.22 elif-Nutzung 173
18.3.23 Verwendung von elif zur Erkennung mehrerer Bedingungen 173
18.3.24 Erkennung mehrerer Dateispeicherorte 174
18.4 Fallaussage 175
18.4.1 Einfache Fallaussage 175
18.4.2 Übereinstimmungsmuster verwenden |
18.4.3 Aufforderung zur Eingabe von y oder n 177
18.4.4 Fall- und Befehlsparameterübergabe 177
18.4.5 Eingaben erfassen und einen leeren Befehl ausführen 178
18.4.6 Standardvariablenwerte 179
18,5 für Schleife 180
18.5.1 Einfache for-Schleife 181
18.5.2 String-Liste drucken 181
18.5.3 Verwendung des ls-Befehls mit einer for-Schleife 181
18.5.4 Verwendung von Parametern mit for-Schleifen 182
18.5.5 Verwendung der for-Schleife zum Herstellen einer Verbindung zum Server 183
18.5.6 Verwendung der for-Schleife zum Sichern von Dateien 183
18.5.7 Konvertierung mehrerer Dateien 183
18.5.8 Mehrere Sed-Löschvorgänge 184
18.5.9 Schleifenanzahl 184
18.5.10 for-Schleifen und lokale Dokumente 184
18.5.11 für Schleifeneinbettung 185
18,6 bis Schleife 186
18.6.1 Einfach bis Schleife 186
18.6.2 Dateien überwachen 187
18.6.3 Speicherplatz überwachen 187
18,7 while-Schleife 188
18.7.1 Einfache while-Schleife 188
18.7.2 Verwenden Sie die while-Schleife, um die Tastatureingabe 188 zu lesen
18.7.3 Lesen von Daten aus einer Datei mithilfe einer While-Schleife 189
18.7.4 Dateien mit IFS 189 lesen
18.7.5 Dateiverarbeitung mit Testbedingungen 190
18.7.6 Dateizeilen nach Anzahl 191 durchsuchen
18.7.7 Ein Datensatzpaar gleichzeitig lesen 193
18.7.8 Ignorieren Sie das #-Zeichen 193
18.7.9 Formatierte Berichte verarbeiten 194
18.7.10 while-Schleifen und Dateideskriptoren 196
18.8 Verwenden von „Break“ und „Fortfahren“ zur Steuerung von Schleifen 197
18.8.1 Pause 197
18.8.2 Aus der Case-Anweisung 197 herausspringen
18.8.3 weiter 197
18.8.4 Dateizeilen durchsuchen 198
18.9 Menü 199
18.10 Zusammenfassung 201
Kapitel 19 Shell-Funktionen 202
19.1 Funktionen in Skripten definieren 203
19.2 Verwendung von Funktionen in Skripten 203
19.3 Parameterübergabe an Funktionen 203
19.4 203 von der aufrufenden Funktion zurückgeben
19.5 Funktionsrückgabewerttest 204
19.6 Funktionen in der Shell nutzen 204
19.7 Funktionsdateien erstellen 204
19.8 Dateien finden 205
19.9 Ladefunktionen prüfen 205
19.10 Shellfunktionen ausführen 205
19.10.1 Shell-Funktion 206 löschen
19.10.2 Shell-Funktionen bearbeiten 206
19.10.3 Funktionsbeispiele 207
19.10.4 Funktionen gruppieren 219
19.11 Funktionsaufrufe 219
19.11.1 Aufruf von Funktionen in Skripten 219
19.11.2 Aufruf von Funktionen aus Funktionsdateien 220
19.12 Das Auffinden von Dateien dient nicht nur den Funktionen 222
19.13 Zusammenfassung 223
Kapitel 20 Übergabe von Parametern an Skripte 224
20.1 Schaltbefehl 225
20.1.1 Einfache Nutzung des Schaltbefehls 225
20.1.2 Der letzte in der Befehlszeile eingegebene Parameter 225
20.1.3 Verwenden der Umschalttaste zum Verarbeiten der Dateikonvertierung 226
20.2 getopts 229
20.2.1 getopts-Skriptbeispiel 229
20.2.2 Verwendung von getopts 231
20.2.3 Verwenden Sie getopts, um Variablenwerte anzugeben 231
20.2.4 Zugriffswertmethode 232
20.2.5 Verwendung von getopts zur Abwicklung der Dateikonvertierung 233
20.3 Zusammenfassung 235
Kapitel 21 Bildschirmausgabe erstellen 236
21,1 Tput-Nutzung 236
21.1.1 String-Ausgabe 236
21.1.2 Digitaler Ausgang 237
21.1.3 Boolescher Ausgang 237
21,2 tput-Nutzung 237
21.2.1 Einstellen des tput-Befehls 237
21.2.2 Verwendung der booleschen Ausgabe 237
21.2.3 Verwendung von tput in Skripten 237
21.2.4 Escape-Sequenzen generieren 238
21.2.5 Cursorposition 239
21.2.6 Text in der Mitte des Bildschirms anzeigen 240
21.2.7 Terminalattribute finden 240
21.2.8 Verwendung von Funktionstasten in Skripten 241
21.2.9 Verwendung von Farbe 242
21.2.10 Farbe erzeugen 243
21.2.11 Erlesenes Menü 246 erstellen
21.3 Zusammenfassung 251
Kapitel 22 Bildschirmeingabe erstellen 252
22.1 Datensätze hinzufügen 252
22.2 Datensätze löschen 262
22.3 Änderungsaufzeichnungen 266
22.4 Datensätze anzeigen 270
22.5 Zusammenfassung 273
Kapitel 23 Debugging-Skripts 274
23.1 Allgemeine Fehler 274
23.1.1 Schleifenfehler 274
23.1.2 Typische fehlende Anführungszeichen 274
23.1.3 Testfehler 274
23.1.4 Zeichenfall 275
23.1.5 für Schleife 275
23.1.6 Echo 275
23.2 Befehl 275 einstellen
23.3 Zusammenfassung 276
Kapitel 24 Shell-Einbettungsbefehle 277
24.1 Vollständige Liste der in die Shell eingebetteten Befehle 277
24.1.1 pwd 277
24.1.2 Satz 278
24,1,3 mal 278
24.1.4 Typ 278
24.1.5 ulimit 279
24.1.6 warte 279
24.2 Zusammenfassung 279
Teil 5 Fortgeschrittene Shell-Programmiertechniken Kapitel 25 Ausführliche Diskussion
Expandieren