Sie können Utility -Programme und eine Shell (wie Bash, ZSH oder FISH) verwenden, um Anwendungen zu erstellen, indem kleinere, spezialisierte Tools kombiniert und verkettet werden, um komplexere Aufgaben auszuführen. Dies wird oft als
Shell Scripting bezeichnet oder Gebäude a
Pipeline . Dies ist eine leistungsstarke Möglichkeit, Aufgaben zu automatisieren und einfache Befehlszeilenanwendungen zu erstellen, ohne dass eine vollwertige Programmiersprache wie Python oder C ++ erforderlich ist.
So können Sie es tun:
1. Verwendung von Dienstprogrammen:
* Textverarbeitung: Tools wie "Grep", "sed", "awk" und "cut" sind für die Manipulation von Textdateien von unschätzbarem Wert. Sie können Daten in Dateien effizient filtern, extrahieren, transformieren und neu formatieren. Zum Beispiel können Sie "Grep" verwenden, um bestimmte Linien zu finden, Text zu ersetzen und Berechnungen auf Feldern innerhalb einer Zeile durchzuführen.
* Dateimanipulation: `cp`,` mv`, `rm`,` mkdir`, `rmdir`,` find`, `Locate` Ermöglichen Sie, Dateien und Verzeichnisse zu verwalten. Sie können Aufgaben wie das Erstellen von Verzeichnissen, das Kopieren von Dateien und das Löschen alter Protokolldateien automatisieren. `find` ist besonders leistungsstark für die Suche nach Dateien basierend auf verschiedenen Kriterien.
* Datenkomprimierung/Archivierung: `gzip`,` bzip2`, `tar`,` Zip` Ermöglichen Sie, Dateien zu komprimieren und Archive zu verwalten. Dies ist nützlich, um große Datensätze zu verwalten oder Anwendungen zu verteilen.
* Netzwerkversorgungsunternehmen: `wget`,` curl`, `netcat` Lassen Sie Sie mit Netzwerkressourcen interagieren, Dateien herunterladen und Daten über das Netzwerk senden. Dies öffnet die Tür zum Erstellen von Anwendungen, die mit Webservern oder anderen Remote -Systemen interagieren.
* Systemverwaltung: `ps`,` top`, `Kill`,` df`, `du` Bereitstellung Informationen über das System und erlauben Sie die Kontrolle über Prozesse. Sie können Anwendungen erstellen, die die Systemleistung überwachen oder Prozesse verwalten.
2. Die Schale als Orchestrator:
Die Shell fungiert als Klebstoff, der diese Nutzprogramme zusammenbindet. Es bietet:
* Sequentielle Ausführung: Sie können Befehle nacheinander auflisten, wobei die Ausgabe eines Befehls in die Eingabe des nächsten eingespeist wird.
* Piping (`|`): Auf diese Weise können Sie die Standardausgabe (STDOut) eines Befehls an die Standardeingabe (STDIN) eines anderen anschließen und eine Datenflusspipeline erstellen.
* Eingabe/Ausgangsumleitung (`>`, `<`, `>>`): Sie können die Ausgabe eines Befehls in eine Datei umleiten oder die Eingabe aus einer Datei lesen.
* Kontrollstrukturen: Die meisten Shells unterstützen Kontrollstrukturen wie "If`," sonst "," für "und" while ", und ermöglichen eine bedingte Logik und Iteration.
* Variablen: Sie können Werte in Variablen speichern, um Ihre Skripte flexibler und wiederverwendbarer zu machen.
* Funktionen: Sie können wiederverwendbare Codeblöcke definieren, um Ihre Skripte zu modularisieren.
Beispiel:Erstellen einer einfachen Anwendung
Angenommen, Sie möchten eine Anwendung erstellen, die alle ".log" -Dateien in einem Verzeichnis findet, Zeilen extrahiert, die "Fehler" enthalten, und dann die Anzahl der Fehlerzeilen zählt.
`` `bash
#!/bin/bash
find/path/to/logs -name "*.log" -print0 | xargs -0 grep -i "Fehler" | WC -l
`` `
Dieses Skript verwendet:
* `find`:So lokalisieren alle" .log "-Dateien. `-print0` und` xargs -0` handhaben Dateinamen mit Räumen korrekt.
* `grep`:zum Filter von" Fehler "(Fall-unempfindlich) Leitungen filtern.
* `wc -l`:um die Zeilen zu zählen.
Einschränkungen:
* Shell Scripting ist nicht so leistungsfähig oder effizient wie vollwertige Programmiersprachen für komplexe Anwendungen.
* Fehlerbehebung kann schwieriger sein.
* Debugging kann schwieriger sein.
Wenn Sie Shell Scripting verwenden:
Shell Scripting ist ideal für:
* Automatisieren einfacher bis mäßig komplexer Aufgaben.
* Erstellen kleiner Befehlszeilen-Dienstprogramme.
* Schnelle Prototyping -Anwendungen.
* Aufgaben mit Textverarbeitung und Dateimanipulation.
Indem Sie diese Nutzprogramme und Shell-Funktionen geschickt kombinieren, können Sie überraschend ausgefeilte Befehlszeilenanwendungen erstellen. Denken Sie daran, Ihre Skripte für die Wartbarkeit lesbar und gut ausgestattet zu machen.