Grundlagen der Windows-Befehlszeile. Evolution von Linux-Shells Linux-Shell

Heimat / Nützlich

Dieser Artikel behandelt die Grundlagen Windows-Befehlszeile, nämlich:

  • Das Konzept der Kommandozeile;
  • Shell-Befehlsreferenz;
  • Abfolge von Ereignissen während der Befehlsausführung;
  • Erstellen von Befehlszeilenskripten;
  • Verwalten der Anzeige von Text und Befehlen;
  • Befehle zum Studieren von Systeminformationen;
  • Befehle zur Verwendung der Registrierung;
  • Verwaltung von Systemdiensten;
  • Systeme über die Befehlszeile neu starten und herunterfahren;
  • Verwalten Sie Anwendungen und Prozesse über die Befehlszeile.

Befehlszeilenkonzept

Die Befehlszeilenunterstützung ist in das Microsoft Windows-Betriebssystem integriert und über ein Befehlsshellfenster verfügbar. Die Befehlszeile wird in allen Windows-Versionen unterstützt und zum Ausführen integrierter Befehle, Dienstprogramme und Skripts verwendet. Trotz der Leistungsfähigkeit und Flexibilität der Befehlszeile verwenden einige Windows-Administratoren sie nie. Wenn Sie über genügend grafische Verwaltungstools verfügen, können Sie diese nur verwenden, indem Sie auf Elemente der Benutzeroberfläche klicken.

Erfahrene Windows-Administratoren, qualifizierte Spezialisten des technischen Supports und "fortgeschrittene" Benutzer können jedoch nicht auf die Befehlszeile verzichten. Wenn Sie wissen, wie Sie die Befehlszeile richtig verwenden, insbesondere welche Befehlszeilen-Tools Sie auswählen, wie und wann Sie sie verwenden müssen, damit sie effektiv arbeiten, können Sie viele Probleme vermeiden und einen reibungslosen Betrieb erreichen. Wenn Sie mehrere Domänen oder Netzwerke unterstützen, ist es nicht nur wichtig, sondern auch notwendig, ein Verständnis für zeitsparende Befehlszeilenmethoden zur Automatisierung des täglichen Betriebs zu haben.

Mit jeder neuen Version von Windows wurde die Befehlszeile verbessert und ihre Fähigkeiten wurden erweitert. Die Befehlszeile wurde erheblichen Änderungen unterzogen, nicht nur um die Leistung zu verbessern, sondern auch um die Flexibilität zu erhöhen. Sie können jetzt die Windows-Befehlszeile verwenden, um Aufgaben auszuführen, die in früheren Windows-Versionen nicht möglich waren.

Die Windows-Befehlsshellumgebung wird auf verschiedene Weise gestartet, z. B. durch Angabe von Optionen beim Ausführen von Cmd.exe oder durch Verwenden einer eigenen Startdatei, die im Verzeichnis gespeichert ist %SystemRoot%\System32.

Darüber hinaus kann die Befehlszeile im Stapelmodus ausgeführt werden, um eine Reihe von Befehlen auszuführen. Im Stapelmodus liest die Befehlszeile die Befehle nacheinander und führt sie aus.

Wenn Sie mit der Windows-Befehlszeile arbeiten, müssen Sie verstehen, woher die von Ihnen verwendeten Befehle stammen. Es gibt zwei Arten von "nativen" Befehlen (in das Betriebssystem integriert):

  • Intern- innerhalb der Befehls-Shell existieren, sie haben keine separaten ausführbaren Dateien;
  • Extern- In separaten ausführbaren Dateien implementiert, die normalerweise im Verzeichnis %SystemRoot%\System32 gespeichert sind.

Kurzreferenz zu Shell-Befehlen (Cmd.exe)

  • assoziiert- zeigt oder modifiziert Mappings ( Vereine) Datentypen;
  • brechen- Setzt Haltepunkte beim Debuggen
  • Forderung ruft eine Prozedur oder ein anderes Skript aus einem Skript auf;
  • cd (chdir) - zeigt den Namen des aktuellen Verzeichnisses oder ändert das aktuelle Verzeichnis;
  • Kl- löscht das Befehlszeilenfenster und den Bildschirmpuffer;
  • Farbe- legt die Text- und Hintergrundfarben des Befehls-Shell-Fensters fest;
  • Müll- kopiert Dateien oder verkettet Dateien;
  • Datum- zeigt oder stellt das aktuelle Datum ein;
  • löschen (löschen) löscht die angegebene Datei, Dateigruppe oder das Verzeichnis;
  • dir- zeigt eine Liste der Unterverzeichnisse und Dateien im aktuellen oder angegebenen Verzeichnis;
  • Echo- zeigt Text im Befehlszeilenfenster an oder legt fest, ob Befehle auf dem Bildschirm angezeigt werden sollen (ein | aus);
  • endlokal— markiert das Ende der Lokalisierung ( lokaler Geltungsbereich) Variablen;
  • Ausfahrt- Beenden Sie die Befehlszeilen-Shell;
  • zum- führt den gegebenen Befehl für jede Datei im Satz aus;
  • ftyp zeigt oder ändert die aktuellen Dateitypen in Dateierweiterungszuordnungen mit Programmen;
  • gehe zu- gibt an, dass der Befehlsinterpreter zur Zeile mit dem angegebenen Label im Batch-Skript springen soll;
  • Wenn- führt Befehle gemäß der Bedingung aus;
  • md (mkdir)- erstellt ein Unterverzeichnis im aktuellen oder angegebenen Verzeichnis;
  • Bewegung- Verschiebt eine Datei oder eine Gruppe von Dateien aus dem aktuellen oder angegebenen Quellverzeichnis in das angegebene Verzeichnis. Kann auch ein Verzeichnis umbenennen;
  • Weg— zeigt oder setzt den Pfad zu Befehlen, die vom Betriebssystem bei der Suche nach ausführbaren Dateien und Skripten verwendet werden;
  • Pause- stoppt die Ausführung einer Batch-Datei und wartet auf Tastatureingaben;
  • popd- macht das Verzeichnis aktuell, dessen Name durch den PUSHD-Befehl gespeichert wurde;
  • prompt- gibt an, welcher Text in der Eingabeaufforderungszeile angezeigt werden soll;
  • gedrückt- speichert den Namen des aktuellen Verzeichnisses und macht ggf. das angegebene Verzeichnis zum aktuellen;
  • rd (rmdir)- löscht ein Verzeichnis oder ein Verzeichnis zusammen mit seinen Unterverzeichnissen;
  • Rest- markiert Kommentare in einem Batch-Skript oder Config.nt;
  • ren (umbenennen)- Benennt eine Datei oder eine Gruppe von Dateien um;
  • einstellen- zeigt die aktuellen Umgebungsvariablen an oder setzt temporäre Variablen für die aktuelle Befehlsshell;
  • setlocal— markiert den Beginn der Lokalisierung ( lokaler Geltungsbereich) Variablen in Batch-Skripten;
  • Verschiebung— verschiebt die Position von ersetzten Parametern in Batch-Skripten;
  • Anfang- startet das angegebene Programm oder den angegebenen Befehl in einem separaten Fenster;
  • Zeit— Zeigt oder stellt die Systemzeit ein;
  • Titel- legt den Titel des Befehls-Shell-Fensters fest;
  • Typ- zeigt den Inhalt einer Textdatei;
  • verifizieren- aktiviert den Modus zum Überprüfen von Dateien nach dem Schreiben auf die Festplatte;
  • vol- Zeigt das Etikett und die Seriennummer des Datenträgers an.

Die Syntax jedes internen Befehls ( und am äußerlichsten) erhalten Sie, indem Sie den Befehlsnamen gefolgt von /? in der Befehlszeile eingeben, zum Beispiel:

Kommando-Shell- eine sehr leistungsfähige Umgebung für die Arbeit mit Befehlen und Skripten. Sie können verschiedene Arten von Befehlen über die Befehlszeile ausführen: integrierte Befehle, Windows-Dienstprogramme und Befehlszeilenversionen von Anwendungen. Unabhängig vom Typ muss jeder verwendete Befehl denselben Syntaxregeln folgen. Gemäß diesen Regeln folgen dem Befehlsnamen erforderliche oder optionale Argumente. Darüber hinaus können Argumente Eingabe-, Ausgabe- oder Standardfehlerumleitung verwenden.

Abfolge von Ereignissen beim Ausführen eines Befehls

  • Die Shell ersetzt alle im Befehlstext eingegebenen Variablen durch ihre aktuellen Werte;
  • Wenn eine Gruppe oder Kette von mehreren Befehlen eingegeben wird, wird die Zeile in separate Befehle aufgeteilt, die wiederum nach Name und Argumenten des Befehls unterteilt werden. Weitere Befehle werden separat verarbeitet;
  • Wenn im Befehlsnamen ein Pfad angegeben ist, sucht die Shell in diesem Pfad nach dem Befehl. Wenn im angegebenen Verzeichnis kein solcher Befehl vorhanden ist, gibt die Shell einen Fehler zurück;
  • Wenn im Befehlsnamen kein Pfad angegeben ist, versucht die Shell zunächst, den Befehlsnamen intern aufzulösen. Wird ein interner Befehl mit diesem Namen gefunden, so wurde ein interner Befehl aufgerufen und kann sofort ausgeführt werden. Wenn es keinen internen Befehl mit diesem Namen gibt, sucht die Shell zuerst nach der ausführbaren Datei des Befehls im aktuellen Verzeichnis und dann in den Verzeichnissen, die in der Umgebungsvariablen PATH aufgeführt sind. Wenn die Befehlsdatei in keinem dieser Verzeichnisse existiert, gibt die Shell einen Fehler zurück;
  • Wenn der Befehl gefunden wird, wird er mit den angegebenen Argumenten ausgeführt und, falls erforderlich, wird die Eingabe aus der durch diese Argumente angegebenen Quelle gelesen. Die Ausgabe und Fehler von Befehlen werden im Befehlszeilenfenster angezeigt oder an eine bestimmte Ausgabe- und Fehlersenke geleitet.
  • Wie Sie sehen können, beeinflussen viele Faktoren die Befehlsausführung, einschließlich Befehlspfade, E/A-Umleitung, Gruppierung oder Befehlsverkettung.

Wenn Sie mit einer Shell arbeiten, haben Sie diese wahrscheinlich gestartet, indem Sie das Startmenü ( Start) und wählen Sie Programme ( Programme) oder Alle Programme ( Alle Programme), dann Zubehör ( Standard) und Eingabeaufforderung ( Befehlszeile). Andere Möglichkeiten zum Starten der Befehlszeile sind das Dialogfeld „Ausführen“ ( Programmstart) oder in einem anderen bereits geöffneten Shell-Fenster cmd eingeben. Mit diesen Methoden können Sie beim Starten der Befehlszeile Argumente angeben: Schalter, die den Betrieb der Befehlszeile steuern, und Parameter, die die Ausführung zusätzlicher Befehle einleiten. Beispielsweise können Sie eine Shell im "stillen" Modus ausführen ( d.h. Echoausgabe deaktivieren) mit dem Befehl cmd /q oder lassen Sie die Shell den angegebenen Befehl ausführen und beenden, indem Sie cmd /c gefolgt vom Befehlstext in Anführungszeichen eingeben.

Das folgende Beispiel startet eine Shell, führt den Befehl ipconfig aus, gibt die Ergebnisse in eine Datei aus und beendet sich:

Cmd /c "ipconfig > c:\ipconfig.txt"

Befehlszeilen-Scripting

Befehlszeilenskripte- Textdateien mit auszuführenden Befehlen. Dies sind dieselben Befehle, die normalerweise in der Windows-Befehlsshell eingegeben werden. Anstatt jedoch jedes Mal Befehle einzugeben, wenn Sie sie benötigen, können Sie das entsprechende Skript erstellen, um Ihr Leben einfacher zu machen.

Da Skripte aus Standardtextzeichen bestehen, können sie mit jedem Standard-Texteditor wie Notepad ( Notizbuch). Stellen Sie beim Eingeben von Befehlen sicher, dass jeder Befehl oder jede Gruppe von Befehlen, die zusammen ausgeführt werden sollen, in einer neuen Zeile beginnt. Dadurch wird sichergestellt, dass sie korrekt ausgeführt werden. Wenn Sie mit der Erstellung des Befehlszeilenskripts fertig sind, speichern Sie die Skriptdatei mit der Erweiterung .bat oder .cmd. Beide Erweiterungen funktionieren auf die gleiche Weise. Wenn Sie beispielsweise den Systemnamen, die Windows-Version und die IP-Konfiguration skripten müssen, fügen Sie die folgenden drei Befehle in Ihre SysInfo.bat- oder SysInfo.cmd-Datei ein:

Hostname ver ipconfig -all

Steuern der Anzeige von Text und Befehlen

Team ECHO dient zwei Zwecken: um Text in die Ausgabe zu schreiben ( B. in ein Kommando-Shell-Fenster oder eine Textdatei) und zum Aktivieren/Deaktivieren der Echoanzeige von Befehlen. Wenn Skriptbefehle ausgeführt werden, werden normalerweise die Befehle selbst und die Ausgabe dieser Befehle im Konsolenfenster angezeigt. Dies wird als Befehls-Echo-Mapping ( Befehl hallt).

Um den ECHO-Befehl zum Anzeigen von Text zu verwenden, geben Sie echo gefolgt von dem anzuzeigenden Text ein:

Echo Der Hostname des Systems lautet: hostname

Um das Echo von Befehlen mit ECHO zu steuern, geben Sie echo off oder echo on ein, zum Beispiel:

Echo aus Echo Der Hostname des Systems lautet: hostname

Um die Ausgabe in eine Datei statt in ein Shell-Fenster zu leiten, verwenden Sie die Ausgabeumleitung wie folgt:

Echo aus Echo Der Hostname des Systems lautet: > current.txt Hostname » current.txt

Sehen wir uns nun an, wie das Befehlsecho unterdrückt wird. Starten Sie eine Shell, geben Sie echo off und dann andere Befehle ein. Sie werden sehen, dass die Eingabeaufforderung für die Befehlszeile nicht mehr angezeigt wird. Stattdessen erscheint nur das, was in das Konsolenfenster eingegeben wird, und die Ausgabe der ausgeführten Befehle. In Skripten deaktiviert der Befehl ECHO OFF das Echo von Befehlen und der Eingabeaufforderung der Befehlszeile. Indem Sie Ihren Skripten den Befehl ECHO OFF hinzufügen, verhindern Sie, dass das Shell-Fenster oder die Datei mit Befehlstext überladen wird, wenn Sie nur an der Ausgabe dieser Befehle interessiert sind.

Untersuchen von Systeminformationen

Wenn Sie mit dem Computer eines Benutzers oder einem Remote-Server arbeiten, ist es häufig erforderlich, grundlegende Informationen über das System zu erhalten, wie z. B. den Namen des darin registrierten Benutzers, die aktuelle Systemzeit oder den Speicherort einer bestimmten Datei. Zu den Befehlen, die grundlegende Systeminformationen sammeln, gehören:

  • JETZT- Zeigt das aktuelle Systemdatum und die Uhrzeit im 24-Stunden-Format an, z. B. Sal 9. Mai 12:30:45 2003. Nur im Windows Server 2003 Resource Kit verfügbar;
  • WER BIN ICH- meldet den Namen des aktuell im System registrierten Benutzers, zum Beispiel adatum\administrator;
  • WO— sucht nach Dateien nach Suchmuster ( Suchmuster) und gibt eine Liste mit übereinstimmenden Ergebnissen zurück.

Um NOW oder WHOAMI zu verwenden, geben Sie einfach den Befehl in ein Shell-Fenster ein und drücken Sie die Eingabetaste. Die gebräuchlichste Syntax für WHERE sieht so aus:

Wobei /r base_dir_filename

Hier wird die Option /r für eine rekursive Suche angegeben, beginnend mit dem angegebenen Verzeichnis (base_directory) und einschließlich aller seiner Unterverzeichnisse, und Dateiname ist der vollständige oder teilweise Name der gesuchten Datei, der Platzhalter enthalten kann: sign? ersetzt ein Zeichen, und das Zeichen * ersetzt eine Gruppe von Zeichen, zum Beispiel data???.txt oder data*.*. Das folgende Beispiel durchsucht das Verzeichnis C:\ und alle seine Unterverzeichnisse nach allen Textdateien, deren Namen mit data beginnen.

Wobei /r C:\data*.txt

Sie können auch Dateien aller Art finden, deren Namen mit data beginnen:

Wo /r C:\data*.*

Manchmal müssen Sie Informationen über die Systemkonfiguration oder die Systemumgebung abrufen. Auf kritischen Systemen können diese Informationen zu Referenzzwecken gespeichert oder ausgedruckt werden. Die folgenden Befehle werden verwendet, um Informationen über das System zu sammeln.

  • TREIBERABFRAGE- Zeigt eine Liste aller installierten Gerätetreiber und deren Eigenschaften an, einschließlich Modulname (Modulname), Anzeigename ( Anzeigename), Treibertyp und Erstellungsdatum ( Datum der Treiberverknüpfung). Der vollständige Anzeigemodus (/V) meldet Status und Zustand des Treibers, Startmodus, Speichernutzung und Dateisystempfad. Die Option /V aktiviert außerdem ausführliche Informationen zu allen unsignierten Treibern.
  • SYSTEMINFORMATIONEN- Zeigt detaillierte Informationen zur Systemkonfiguration an, einschließlich Betriebssystemversion, Typ und Hersteller, Prozessor, BIOS-Version, Speichergröße, regionale Einstellungen, Zeitzone und Netzwerkadapterkonfiguration.
  • NLSINFO- Zeigt detaillierte Gebietsschemainformationen an, einschließlich der Standardsprache ( Standardsprache), Windows-Codepage, Zeit- und Zahlenanzeigeformate, Zeitzone und installierte Codepages. Dieser Befehl ist nur im Windows Server 2003 Resource Kit verfügbar.

Um diese Befehle auf Ihrem lokalen Computer zu verwenden, geben Sie einfach den Namen des gewünschten Befehls in das Befehls-Shell-Fenster ein und drücken Sie die Eingabetaste.

Befehle zur Verwendung der Registrierung

Die Windows-Registrierung speichert Konfigurationsinformationen für das Betriebssystem, Anwendungen, Benutzer und Hardware. Diese Daten sind in Abschnitten ( Schlüssel) und Parameter ( Werte) der Registrierung, die sich in einem bestimmten Stammabschnitt ( Wurzelschlüssel), die steuert, wie und wann Abschnitte und Optionen verwendet werden.

Wenn Sie die Pfade zu den Abschnitten kennen und die gültigen Datentypen in den Abschnitten verstehen, können Sie den Befehl verwenden REG Abschnitte und Parameter anzuzeigen und sie auf vielfältige Weise zu manipulieren. REG unterstützt mehrere Unterbefehle:

  • REG-Adr- fügt der Registrierung einen neuen Unterabschnitt oder ein neues Element hinzu;
  • REG löschen- entfernt einen Unterabschnitt oder ein Element aus der Registrierung;
  • REG-Abfrage- zeigt eine Liste von Abschnittselementen und Unterabschnittsnamen an ( wenn sie sind);
  • REG vergleichen- vergleicht Unterabschnitte oder Registrierungseinträge;
  • REG-Wurf— kopiert das Registrierungselement in den angegebenen Partitionspfad auf dem lokalen oder entfernten System;
  • REG-Wiederherstellung- schreibt zuvor gespeicherte Unterabschnitte, Elemente und Parameter in die Registrierung;
  • REG speichern– Speichert eine Kopie der angegebenen Registrierungsunterschlüssel, Einträge und Einstellungen in einer Datei.

Verwaltung von Systemdiensten

Dienste bieten Schlüsselfunktionen für Workstations und Server. Um Systemdienste auf lokalen und Remote-Systemen zu verwalten, verwenden Sie den Befehl service controller ( Dienstcontroller-Befehl) SC, das über eine Reihe von Unterbefehlen verfügt, wird im Folgenden nur ein Teil davon beschrieben:

  • SC-Konfig- Einrichten von Registrierungs- und Dienststartkonten;
  • SC-Abfrage- Anzeigen einer Liste aller auf dem Computer konfigurierten Dienste;
  • SC qc- Anzeigen der Konfiguration eines bestimmten Dienstes;
  • SC-Start- Dienste starten;
  • SC halt- Dienste stoppen;
  • SC-Pause- Aussetzung von Diensten;
  • SC weiter- die Wiederaufnahme der Dienste;
  • SC-Ausfall- Festlegen von Maßnahmen, die ergriffen werden sollen, wenn ein Dienst ausfällt;
  • SC qAusfall- Zeigen Sie Aktionen an, die ausgeführt werden, wenn ein Dienst ausfällt.

In allen Befehlen können Sie den Namen des entfernten Computers angeben, mit dessen Diensten Sie arbeiten möchten. Fügen Sie dazu den UNC-Namen oder die IP-Adresse des Computers vor dem zu verwendenden Unterbefehl ein. Hier ist die Syntax:

Sc ServerName-Unterbefehl

Neustarten und Herunterfahren von Systemen über die Befehlszeile

Systeme müssen oft neu gestartet oder heruntergefahren werden. Eine Möglichkeit besteht darin, hierfür das Shutdown-Dienstprogramm zu verwenden, mit dem Sie mit lokalen und Remote-Systemen arbeiten können. Eine andere Möglichkeit, das Herunterfahren oder Neustarten des Systems zu verwalten, besteht darin, dem Herunterfahren eine Aufgabe zuzuweisen. Hier können Sie Schtasks verwenden, um die Abschaltzeit festzulegen, oder ein Skript mit einer Liste von Abschaltbefehlen für einzelne Systeme erstellen.

Mit den folgenden Befehlen können Sie den Neustart und das Herunterfahren des lokalen Systems steuern.

Lokales System herunterfahren:

Abschaltung /s /t Abschaltverzögerung /1 /f

Abschaltung /r /t Abschaltverzögerung /1 /f

Anwendungs-, Prozess- und Leistungsmanagement

Immer wenn das Betriebssystem oder der Benutzer einen Dienst, eine Anwendung oder einen Befehl startet, startet Microsoft Windows einen oder mehrere Prozesse, um das entsprechende Programm zu verwalten. Mehrere Befehlszeilenprogramme erleichtern Ihnen die Überwachung und Verwaltung von Programmen. Zu diesen Dienstprogrammen gehören:

  • pmon (Prozessressourcenmanager) – Zeigt Leistungsstatistiken, einschließlich Speicher- und Prozessorauslastung, und eine Liste aller Prozesse, die auf dem lokalen System ausgeführt werden. Ermöglicht es Ihnen, ins Detail zu gehen Bilder» Beteiligte Ressourcen und laufende Prozesse. Pmon wird mit dem Windows Resource Kit geliefert;
  • Aufgabenliste (Aufgabenliste) - listet alle laufenden Prozesse nach Namen und Prozess-ID auf, gibt Informationen über die Benutzersitzung und den belegten Speicher aus;
  • Aufgabenkill (Aufgabe töten) - stoppt die Ausführung des durch Name oder ID angegebenen Prozesses. Mit Filtern können Sie Prozesse basierend auf ihrem Status, der Sitzungsnummer, der CPU-Zeit, der Speichernutzung, dem Benutzernamen und anderen Parametern stoppen.

Das ist im Grunde alles, was ich über die Grundlagen der Windows-Befehlszeile sprechen wollte.

Arbeiten mit der Kommandozeile

Anton Bojarschinow, Kirill Maslinsky

Effektives professionelles Arbeiten in Linux undenkbar ohne die Verwendung der Befehlszeile. Für Benutzer, die es gewohnt sind, auf Systemen mit einer grafischen Benutzeroberfläche zu arbeiten, mag die Arbeit mit der Befehlszeile unpraktisch erscheinen: Was mit einem Drag-and-Drop auf der Befehlszeile erledigt werden kann, erfordert die Eingabe mehrerer Wörter über die Tastatur: Befehle mit Argumenten. Allerdings hinein Linux Diese Art von Schnittstelle war schon immer die wichtigste und daher gut entwickelt. In Befehlsshells, die in verwendet werden Linux, gibt es viele Möglichkeiten, bei den häufigsten Aktionen Aufwand (Tastatureingaben) zu sparen: automatische Vervollständigung langer Befehls- oder Dateinamen, Suchen und erneutes Ausführen eines bereits ausgeführten Befehls, Ersetzen von Listen mit Dateinamen durch einige Muster und vieles mehr. Die Vorteile der Befehlszeile werden besonders deutlich, wenn Sie die gleiche Art von Operationen an vielen Objekten ausführen müssen. Auf einem GUI-System genügt ein einziger (wenn auch langer und komplexer) Befehl auf der Befehlszeile, da so viele Mausbewegungen wie Objekte vorhanden sind.

In diesem Abschnitt werden die wichtigsten Tools beschrieben, die es ermöglichen, die Befehlszeile zur Lösung beliebiger Benutzeraufgaben zu verwenden: von trivialen Operationen mit Dateien und Verzeichnissen (Kopieren, Umbenennen, Suchen) bis hin zu komplexen Aufgaben, die massive Operationen des gleichen Typs erfordern, die sowohl beim Benutzer auftreten Anwendungsarbeit, bei der Arbeit mit großen Daten- oder Textmengen und in der Systemadministration. Zunächst werden die Tools beschrieben, die die Arbeit mit der Befehlszeile im ALT Linux 2.4 Master-Distributionskit (Befehlsshells und Terminalemulatoren) ermöglichen, und dann die wichtigsten Befehlszeilendienstprogramme, die die wichtigsten Operationen mit dem ausführen Dateisystem und Daten.

Befehlsschalen

Allgemeine Informationen zu Muscheln

Kommando-Shell(oder Befehlsinterpreter) ist ein Programm, dessen Aufgabe es ist, Ihre Befehle an das Betriebssystem und Anwendungsprogramme sowie deren Antworten an Sie zu übermitteln. Entsprechend seinen Aufgaben entspricht es command.com in MS-DOS oder cmd.exe ein Windows aber funktional schießt ein Linux unvergleichlich reicher. In der Shell-Sprache können Sie kleine Programme schreiben, um eine Reihe von sequentiellen Operationen mit Dateien und den darin enthaltenen Daten auszuführen - Skripte (Skripte).

Nachdem Sie sich beim System angemeldet haben (indem Sie einen Benutzernamen und ein Passwort eingeben), sehen Sie eine Eingabeaufforderung für die Befehlszeile - eine Zeile, die mit dem Symbol endet $ (Im Folgenden wird dieses Zeichen verwendet, um die Befehlszeile zu bezeichnen). Wenn die Installation so konfiguriert wurde, dass die grafische Benutzeroberfläche beim Systemstart gestartet wird, können Sie auf jeder virtuellen Textkonsole zur Befehlszeile gelangen (durch Drücken von Strg-alt-F1 - Strg-alt-F6) oder mit einem Terminalemulationsprogramm wie xterm. Weitere Informationen zu Terminalemulatoren finden Sie unter Terminals. Die folgenden Befehlsshells sind in der ALT Linux 2.4 Master-Distribution verfügbar:


Die häufigste Schale Linux. Es kann die Namen von Befehlen und Dateien vervollständigen, den Befehlsverlauf verwalten und die Möglichkeit bieten, sie zu bearbeiten.

Ein Klon der Kornschale, bekannt in Systemen UNIX Kommando-Shell.

Die Besonderheit dieser Shell besteht darin, dass sie nicht von gemeinsam genutzten Bibliotheken abhängt und vereinfachte Implementierungen einiger der wichtigsten Dienstprogramme enthält, wie z ls, dd und gzip. Daher ist Sash besonders nützlich bei der Wiederherstellung nach einem Systemabsturz oder beim Aktualisieren der Version wichtiger gemeinsam genutzter Bibliotheken.

Eine verbesserte Version der C-Shell.

Die neueste hier aufgeführte Shell verfügt über eine erweiterte Befehlsargumentvervollständigung und viele andere Funktionen, die das Arbeiten mit der Shell noch bequemer und effizienter machen. Beachten Sie jedoch, dass alle zsh-Erweiterungen standardmäßig deaktiviert sind. Bevor Sie also mit der Verwendung dieser Shell beginnen, sollten Sie die Dokumentation dazu lesen und die benötigten Funktionen aktivieren.

Die Standard-Shell ist bash ( Bourne Again Shell). Geben Sie den folgenden Befehl ein, um zu überprüfen, welche Shell Sie verwenden: Echo $SHELL.

Shells unterscheiden sich nicht nur in den Fähigkeiten, sondern auch in der Befehlssyntax. Wenn Sie ein unerfahrener Benutzer sind, empfehlen wir Ihnen, bash zu verwenden. Die folgenden Beispiele beschreiben die Arbeit in dieser Shell.

Bash-Befehlsshell

Die Kommandozeile in bash besteht aus dem Kommandonamen, dem ggf Schlüssel(Optionen) - Anweisungen, die das Verhalten des Befehls ändern. Schlüssel beginnen mit einem Buchstaben - oder -- , und bestehen oft aus einem einzigen Buchstaben. Zusätzlich zu Schlüsseln kann dem Befehl gefolgt werden von Argumente(Parameter) sind die Namen der Objekte, auf denen der Befehl ausgeführt werden soll (häufig die Namen von Dateien und Verzeichnissen).

Die Befehlseingabe wird durch Drücken der Taste abgeschlossen Eingeben, wonach der Befehl zur Ausführung an die Shell übergeben wird. Als Ergebnis der Ausführung des Befehls kann das Terminal des Benutzers Nachrichten über den Fortschritt des Befehls oder über Fehler und das Erscheinen der nächsten Eingabeaufforderung (die mit dem Symbol endet $ ) - ein Zeichen dafür, dass die Ausführung des Befehls abgeschlossen ist und Sie den nächsten eingeben können.

bash hat mehrere Tricks, um das Eingeben und Bearbeiten der Befehlszeile zu vereinfachen. Mit der Tastatur können Sie beispielsweise:

an den Anfang der Zeile gehen, das gleiche kann durch Drücken der Taste erfolgen Heim;

die aktuelle Zeile löschen;

Abbrechen des aktuellen Befehls.

Sie können das Symbol verwenden ; um mehrere Befehle in einer Zeile einzugeben. bash zeichnet einen Verlauf aller ausgeführten Befehle auf, sodass es einfach ist, einen der vorherigen Befehle zu wiederholen oder zu bearbeiten. Wählen Sie dazu einfach den gewünschten Befehl aus der History:-Taste aus hoch druckt den vorherigen Befehl, Nieder- der Nächste. Um einen bestimmten Befehl unter den bereits ausgeführten zu finden, ohne durch den gesamten Verlauf zu scrollen, geben Sie ein Strg-R und geben Sie ein beliebiges Schlüsselwort ein, das in dem gesuchten Befehl verwendet wird.

Die im Verlauf vorhandenen Befehle werden in der Liste nummeriert angezeigt. Um einen bestimmten Befehl auszuführen, geben Sie Folgendes ein:

! Mannschaftsnummer

Wenn Sie eintreten !! , wird der zuletzt eingegebene Befehl ausgeführt.

Manchmal drin Linux Programm- und Befehlsnamen sind zu lang. Glücklicherweise kann bash Namen selbst vervollständigen. Drücken einer Taste Tab, können Sie den Befehl, das Programm oder den Verzeichnisnamen vervollständigen. Angenommen, Sie möchten das Dekomprimierungsprogramm bunzip2 verwenden. Geben Sie dazu Folgendes ein:

Dann klick Tab. Wenn nichts passiert, gibt es mehrere Möglichkeiten, den Befehl abzuschließen. Drücken einer Taste Tab Auch hier erhalten Sie eine Liste mit Namen beginnend mit Bu .

Zum Beispiel hat das System Programme buildhash, eingebaut, bunzip2:

$bu buildhash builtin bunzip2 $bu

Wählen n > (bunzip ist der einzige Name, dessen dritter Buchstabe ist n) und drücken Sie dann Tab. Die Schale vervollständigt den Namen und es bleibt nur noch zu drücken Eingeben um den Befehl auszuführen!

Beachten Sie, dass bash nach einem Programm sucht, das von der Befehlszeile in den Verzeichnissen aufgerufen wird, die in der Systemvariablen definiert sind WEG. Standardmäßig diese Liste von Verzeichnissen nicht enthält das aktuelle Verzeichnis, gekennzeichnet durch ./ (Schrägpunkt). Um das Programm prog aus dem aktuellen Verzeichnis auszuführen, müssen Sie daher den Befehl eingeben ./prog.

Grundlegende Befehle

Die ersten Aufgaben, die in jedem System gelöst werden müssen, sind die Arbeit mit Daten (normalerweise in Dateien gespeichert) und die Verwaltung von im System laufenden Programmen ( Prozesse). Nachfolgend sind die Befehle aufgeführt, mit denen Sie die wichtigsten Datei- und Prozessoperationen ausführen können. Nur der erste - CD- ist ein integraler Bestandteil der eigentlichen Befehlsshell, der Rest wird separat verteilt, ist aber immer auf jedem System verfügbar Linux. Alle unten aufgeführten Befehle können sowohl in der Textkonsole als auch im grafischen Modus (xterm, KDE-Konsole) ausgeführt werden. Verwenden Sie den Befehl, um detailliertere Informationen zu jedem der Befehle zu erhalten Mann, Zum Beispiel:

Mann ls

Ermöglicht Ihnen, das aktuelle Verzeichnis zu ändern (im Dateisystem zu wechseln). Es funktioniert sowohl mit absoluten als auch mit relativen Pfaden. Angenommen, Sie befinden sich in Ihrem Home-Verzeichnis und möchten in ein Unterverzeichnis davon wechseln. tmp/. Geben Sie dazu einen relativen Pfad ein:

Zum Verzeichnis gehen /usr/bin, geben Sie ein (absoluter Pfad):

cd /usr/bin/

Einige Optionen für die Verwendung des Befehls:

ermöglicht es Ihnen, das aktuelle übergeordnete Verzeichnis festzulegen (beachten Sie das Leerzeichen zwischen CD und .. ).

können Sie zum vorherigen Verzeichnis zurückkehren. Team CD ohne Parameter kehrt die Shell in das Home-Verzeichnis zurück.

ls (aufführen) listet die Dateien im aktuellen Verzeichnis auf. Zwei Hauptoptionen: -a- Alle Dateien anzeigen, einschließlich versteckter, -l- Anzeige detaillierterer Informationen.

Dieser Befehl wird zum Löschen von Dateien verwendet. Achtung: Nach dem Löschen einer Datei können Sie diese nicht wiederherstellen! . Syntax: rm Dateinamen .

Dieses Programm hat eine Reihe von Optionen. Meist genutzt: -ich- Aufforderung zum Löschen einer Datei, -r- rekursives Löschen (d.h. Löschen inklusive Unterverzeichnisse und versteckte Dateien). Beispiel:

Rm -i ~/html/*.html

Löscht alle Dateien .html, in Ihrem Verzeichnis html .

mkdir, rmdir

Team mkdir erlaubt Ihnen, ein Verzeichnis zu erstellen, während rmdir löscht das Verzeichnis, sofern es leer ist. Syntax:

mkdir Verzeichnisname rmdir Verzeichnisname

Team rmdir oft durch den Befehl ersetzt rm-rf, mit dem Sie Verzeichnisse löschen können, auch wenn sie nicht leer sind.

weniger können Sie durch den Text blättern. Syntax:

Weniger Dateinamen

Es kann nützlich sein, eine Datei in der Vorschau anzuzeigen, bevor Sie sie bearbeiten. Die Hauptanwendung dieses Befehls ist das letzte Glied in einer Kette von Programmen, die eine beträchtliche Textmenge anzeigen, die nicht auf einen Bildschirm passt und ansonsten zu schnell blinkt. Beenden weniger klicken q (Verlassen).

Mit diesem Befehl können Sie eine Zeichenfolge in einer Datei finden. beachten Sie, dass grep sucht nach regulären Ausdruck, das heißt, es bietet die Möglichkeit, eine Vorlage so festzulegen, dass nach einer ganzen Klasse von Wörtern auf einmal gesucht wird. In der Sprache der regulären Ausdrücke kann man Muster erstellen, die zum Beispiel solche String-Klassen beschreiben6: „vier Ziffern hintereinander, umgeben von Leerzeichen“. Offensichtlich kann ein solcher Ausdruck verwendet werden, um im Text nach allen in Zahlen geschriebenen Jahren zu suchen. Die Möglichkeiten der Suche nach regulären Ausdrücken sind sehr breit gefächert, für weitere Details können Sie sich auf die Bildschirmdokumentation beziehen grep (Mann grep). Syntax:

grep Suchmusterdatei

Zeigt eine Liste der aktuellen Prozesse an. Die Befehlsspalte gibt den Namen des Prozesses an, PID (Prozesskennung) ​​- die Prozessnummer (wird für Operationen mit dem Prozess verwendet - zum Beispiel das Senden von Signalen mit dem Befehl töten). Syntax:

PS Argumente

Streit u liefert Ihnen weitere Informationen Axt ermöglicht es Ihnen, die Prozesse anzuzeigen, die Ihnen nicht gehören.

Wenn das Programm nicht mehr reagiert oder hängt, verwenden Sie diesen Befehl, um es zu beenden. Syntax:

Töten PID_Nummer

PID_Nummer wobei die Prozessidentifikationsnummer ist, können Sie die Prozessnummer für jedes laufende Programm mit dem Befehl herausfinden p.s. Normalerweise der Befehl töten sendet ein normales Exit-Signal an den Prozess, aber manchmal funktioniert dies nicht und Sie müssen verwenden töten -9 PID_Nummer - In diesem Fall wird der Befehl vom System ohne Möglichkeit der Datenspeicherung sofort beendet (Absturz). Liste der Signale, die der Befehl töten an einen Prozess senden kann, kann durch Absetzen des Befehls abgerufen werden töte -l.

Mitternacht Kommandant

Wenn Sie viele Jahre gearbeitet haben MS-DOS / Windows, dann fühlst du dich wahrscheinlich etwas „nicht in deinem Element“. Um in die vertraute Umgebung zu gelangen, führen Sie Midnight Commander mit dem Befehl aus Mc. Midnight Commander ist eine kostenlose Alternative zu Norton Commander und seinem mittlerweile beliebten Nachfolger Far. Wenn Sie irgendwann denken, dass Midnight Commander etwas nicht kann, dann ist dies höchstwahrscheinlich falsch. Siehe seine Beschreibung in /usr/share/doc/mc-Versionsnummer oder Befehle erteilen Mann Mc.

Coreutils-Paket

Anton Bojarschinow

Paket Coreutils enthält viele kleine Dienstprogramme zum Arbeiten mit Dateien und Verzeichnissen (erstellen, kopieren usw.) und Textzeichenfolgen (kombinieren, sortieren usw.). Das Funktionsprinzip dieser Dienstprogramme wird vom Betriebssystem übernommen UNIX: Alle haben keine grafische Oberfläche und werden von der Befehlszeile mit verschiedenen Argumenten aufgerufen, arbeiten mit Daten in einem einfachen Textformat und verwenden den Standard-Eingabe- / Ausgabemechanismus, mit dem Sie die Ausgabe eines Befehls direkt weitergeben können die Eingabe eines anderen zur Weiterverarbeitung, ohne Verwendung von Zwischendateien (sog. Förderer).

Die effektive Arbeit mit diesen Dienstprogrammen liegt genau in ihrer Kombination. Sie ermöglichen es Ihnen, mit einem (wenn auch ziemlich langen) Befehl massive Operationen des gleichen Typs bei der Arbeit mit Dateien und Textdaten auszuführen, was eine Menge menschlicher Zeit spart. Die Dienstprogramme in diesem Paket werden häufig beim Schreiben von Shell-Skripten verwendet. Im Folgenden werden die meisten der im Paket enthaltenen Dienstprogramme beschrieben. Coreutils, hat jedes Dienstprogramm eine kurze Beschreibung seiner Funktionen. Sie können eine detailliertere Beschreibung jedes Dienstprogramms auf Russisch erhalten, indem Sie dieses Dienstprogramm mit der Taste aufrufen --Hilfe, und die vollständigste Dokumentation (leider nur auf Englisch) - indem Sie den Befehl ausgeben die Info Nützlichkeit .



Seit den ersten Computern helfen Shell-Skripte Systemadministratoren und Programmierern bei der Automatisierung von Routineaufgaben. Seit der Veröffentlichung der ersten Ausgabe dieses Buches im Jahr 2004 hat sich viel verändert, aber die Bash-Shell hat ihre Führungsposition nur gefestigt. Daher wird die Fähigkeit, alle seine Funktionen zu nutzen, zu einem dringenden Bedürfnis für Systemadministratoren, Ingenieure und Enthusiasten. Dieses Buch beschreibt allgemeine Probleme, auf die Sie beispielsweise beim Erstellen von Software oder beim Koordinieren der Aktionen anderer Programme stoßen können. Und die Lösungen sind so angegeben, dass sie leicht zugrunde gelegt und auf andere ähnliche Probleme extrapoliert werden können.

Der Zweck dieses Buches ist es, die praktische Anwendung von Bash-Scripting zu demonstrieren und die gebräuchlichsten Dienstprogramme durch kurze und kompakte Beispiele vorzustellen, ohne zu sehr ins Detail zu gehen. Experimentieren Sie mit diesen Szenarien – brechen, reparieren und passen Sie sie an Ihre Bedürfnisse an, um zu verstehen, wie sie funktionieren. Nur so werden Sie die schwierigsten Aufgaben lösen können.

Was in der zweiten Auflage verschwand

Dieses Buch beschreibt die typischen Herausforderungen, auf die Sie stoßen könnten, wenn Sie versuchen, eine portable, automatisierte Lösung zu schreiben, beispielsweise beim Erstellen von Software oder beim Koordinieren anderer Programme, und wie Sie sie überwinden können. Die Lösungen im Buch sind so dargestellt, dass Sie sie als Grundlage nehmen und auf andere ähnliche Probleme extrapolieren können. In Kapitel 1 werden wir zum Beispiel eine portable Version des echo-Programms als kleines Wrapper-Skript schreiben. Viele Systemadministratoren werden dieses spezielle Skript nützlich finden, aber die Grundidee besteht darin, ein Wrapper-Skript zu erstellen, das ein konsistentes Verhalten auf allen Plattformen gewährleistet. Später in diesem Buch werden wir uns einige der interessanten Funktionen von Bash-Skripten und die typischen Dienstprogramme ansehen, die auf Unix-Systemen verfügbar sind und uns die meiste Leistung verleihen.

Dieses Buch ist für dich, wenn...

Bash bleibt das Werkzeug der Wahl für alle, die mit Servern oder Workstations arbeiten, auf denen Unix-ähnliche Betriebssysteme ausgeführt werden, einschließlich Webentwickler (von denen viele auf OS X entwickeln und ihre Anwendungen auf Linux-Servern bereitstellen), Analysten, Entwickler mobiler Anwendungen und Programmierer. Darüber hinaus führen immer mehr Enthusiasten Linux auf ihren Mikrocomputern mit offener Architektur wie dem Raspberry Pi aus, um Haushaltsgeräte zu automatisieren. Shell-Skripte eignen sich hervorragend für all diese Fälle.

Die im Buch vorgestellten Skripte werden sicherlich für diejenigen nützlich sein, die ihr ohnehin schon beträchtliches Wissen über Bash durch das Studium praktischer Beispiele erweitern möchten, und für diejenigen, die Terminal- oder Shell-Skripte nur gelegentlich verwenden. Wenn Sie zum letzteren Lager gehören, müssen Sie Ihr Wissen wahrscheinlich auffrischen oder erweitern, indem Sie eine Einführung in erweiterte Bash-Funktionen lesen.

Dieses Buch ist kein Lehrbuch! Unser Ziel ist es, praktisches Bash-Skripting zu demonstrieren und allgemeine Dienstprogramme in (meist) kurzen und kompakten Beispielen vorzustellen, aber wir beschreiben sie nicht Zeile für Zeile. Wir erklären nur die grundlegendsten Teile, und erfahrene Drehbuchautoren können verstehen, wie der Rest des Codes funktioniert, indem sie ihn lesen. Wir hoffen, dass Sie, lieber Leser, mit diesen Skripten experimentieren – sie kaputt machen, reparieren und an Ihre Bedürfnisse anpassen – um zu verstehen, wie sie funktionieren. Unser Hauptziel ist es, aufzuzeigen, wie man typische Aufgaben, wie Netzwerkmanagement oder Dateisynchronisierung, löst, die jedem technischen Spezialisten gegenüberstehen.

Buchstruktur

Diese zweite Ausgabe enthält die überarbeiteten ursprünglichen 12 Kapitel und 3 neue Kapitel. Jedes Kapitel demonstriert neue Features oder Anwendungen für Shell-Scripting, und zusammen decken sie die gesamte Breite der Scripting-Features für eine einfachere Unix-Arbeit ab. Die meisten der im Buch vorgestellten Skripte funktionieren sowohl unter Linux als auch unter OS X. In anderen Fällen werden wir direkt darüber schreiben.

Kapitel 0: Eine kurze Einführung in Shell-Scripting
Dies ist ein brandneues Kapitel in der zweiten Ausgabe, das als kurze Einführung in die Syntax der Bash-Shell-Sprache und ihre Verwendung für unerfahrene Unix-Benutzer dienen wird. Dieses Kapitel behandelt schnell und ohne Abschweifungen alles, was Sie brauchen, um Kapitel 1 erfolgreich zu lesen: von der einfachen Definition von Shell-Skripten bis hin zum Erstellen und Ausführen einfacher Beispiele.

Kapitel 1: Die verschwundene Bibliothek
In der Unix-Umgebung weit verbreitete Programmiersprachen wie C, Perl und Python verfügen über umfangreiche Bibliotheken mit verschiedenen Funktionen und Dienstprogrammen zum Überprüfen von Zahlenformaten, Berechnen von Zeitintervallen zwischen Datumsangaben und vielen anderen Aufgaben. Aber mit der Shell müssen wir fast alles selbst erledigen, deshalb behandelt dieses Kapitel Tools und Tricks, die Shell-Scripting benutzerfreundlicher machen können. Alles, was Sie im ersten Kapitel lernen, wird Ihnen dabei helfen, die Skripte zu lesen, denen Sie in diesem Buch begegnen werden, und Ihre eigenen zu schreiben. Wir haben verschiedene Eingabevalidierungsfunktionen, eine einfache und leistungsstarke Schnittstelle zu bc, ein schnelles Komma-Tool zur Verbesserung der Lesbarkeit großer Zahlen, einen Trick für Unix-Varianten, bei denen der echo-Befehl das nützliche -n-Flag nicht unterstützt, und ein Skript zur Verwendung von ANSI-Farbsequenzen in Skripten.

Kapitel 2 und 3: Verbessern von Benutzerbefehlen und Erstellen von Dienstprogrammen
Diese beiden Kapitel führen neue Befehle ein, die das Standard-Unix-Toolkit ergänzen und erweitern. Schließlich ist die kontinuierliche Weiterentwicklung und Verbesserung eines der Markenzeichen von Unix. Wir sind auch an diesem Prozess beteiligt und stellen in den Kapiteln 2 und 3 Skripte zur Verfügung, die Folgendes implementieren: einen benutzerfreundlichen interaktiven Taschenrechner, ein Dateilöschtool, das keine Dateien von der Festplatte löscht, zwei Erinnerungs- und Ereignisverfolgungssysteme, eine verbesserte Version von der locate-Befehl, ein date-Befehl mit Unterstützung für mehrere Zeitzonen und eine neue Version des ls-Befehls, der Listen mit Verzeichnisinhalten zusätzliche Daten hinzufügt.

Kapitel 4: Optimierung von Unix
Es mag wie Häresie klingen, aber einige Aspekte von Unix sehen selbst nach Jahrzehnten der Entwicklung unvollendet aus. Wenn Sie unterschiedliche Versionen von Unix verwenden, z. B. von kostenlosen Linux-Distributionen zu kommerziellen Unix-Versionen wie OS X, Solaris oder Red Hat wechseln, werden Sie auf fehlende Flags und Befehle, inkonsistentes Verhalten einiger Befehle und anderes stoßen solche Probleme. Daher wird dieses Kapitel modifizierte Versionen und Schnittstellen zu Unix-Befehlen vorstellen, die sie etwas freundlicher oder konsistenter mit anderen Unix-Varianten machen. Unter anderem wird beschrieben, wie man lange Flags im GNU-Stil zu Nicht-GNU-Befehlen hinzufügt. Hier finden Sie auch ein paar intelligente Skripte, die die Arbeit mit verschiedenen Daterleichtern.

Kapitel 5 und 6: Systemverwaltung: Benutzerverwaltung und Systemwartung
Wenn Sie an unserem Buch interessiert sind, verfügen Sie wahrscheinlich über Administratorrechte und sind für die Verwaltung eines oder mehrerer Unix-Systeme verantwortlich, selbst wenn es sich nur um einen Ubuntu- oder BSD-PC handelt. Diese beiden Kapitel enthalten mehrere Skripte, die Ihnen bei Ihrer Verwaltung helfen, darunter: Dienstprogramme zur Analyse der Speicherplatznutzung, ein Speicherplatzquotensystem, das Benutzer automatisch per E-Mail benachrichtigt, wenn ihr Speicherplatz überschritten wird, eine verbesserte Implementierung des Befehls killall, a überprüfen Sie das Skript crontab, ein Rotationstool für Protokolldateien und einige Sicherungsdienstprogramme.

Kapitel 7: Internetnutzer
Dieses Kapitel enthält ein Paket mit wirklich interessanten Shell-Skripten, die einige großartige und einfache Tricks für die Verwendung der Unix-Befehlszeile für den Zugriff auf Ressourcen im Internet demonstrieren. Dazu gehören: ein Tool zum Extrahieren von URLs aus beliebigen Webseiten, ein Tool zum Abrufen einer Wettervorhersage, ein Tool zum Durchsuchen von Filmdatenbanken und ein Tool zum Erkennen von Website-Änderungen, das Sie automatisch per E-Mail benachrichtigt.

Kapitel 8: Webmaster-Tools
Wenn Sie ein Webmaster sind und eine Website unterhalten, die auf Ihrem eigenen Unix-System oder auf einem entfernten Server irgendwo im Web läuft, finden Sie in diesem Kapitel sehr interessante Tools zum spontanen Erstellen von Webseiten, zum Erstellen von Web-Fotoalben und sogar zum Protokollieren Ergebnisse der Websuche.

Kapitel 9 und 10: Webserververwaltung und Internetserververwaltung
Diese beiden Kapitel beschreiben Lösungen für Probleme, auf die Administratoren von Servern mit Zugriff auf das Internet häufig stoßen. Hier finden Sie zwei Skripte, die verschiedene Aspekte der Webserver-Verkehrsprotokollierung analysieren, Tools zum Erkennen ungültiger interner oder externer Links auf einer Website und ein praktisches Apache-Webserver-Passwortverwaltungstool, das die Verwaltung von .htaccess-Dateien erleichtert. Darüber hinaus werden Techniken zum Spiegeln von Verzeichnissen und ganzen Websites untersucht.

Kapitel 11: Skripterstellung für OS X
OS X mit seiner kommerziell erfolgreichen und attraktiven grafischen Oberfläche war ein großer Schritt nach vorne, um Unix zu einem benutzerfreundlichen Betriebssystem zu machen. Noch wichtiger ist, dass OS X ein vollständiges Unix-Betriebssystem hinter einer hübschen Oberfläche ist, was bedeutet, dass Sie viele nützliche und lehrreiche Skripte dafür schreiben können. Darum geht es in diesem Kapitel. Zusätzlich zu einem Automatisierungstool für die Bildschirmaufnahme enthält dieses Kapitel Skripts, die Ihnen dabei helfen, die Struktur der iTunes-Musikbibliothek zu erkunden, Titel von Terminalfenstern zu ändern und den Befehl „Öffnen“ zu verbessern.

Kapitel 12: Szenarien für Spiel und Spaß
Was ist ein Buch über Programmieren, wenn es nicht mindestens ein paar Spielsachen enthält? Kapitel 12 fasst viele der zuvor vorgestellten Ideen und Techniken zusammen und beschreibt die Erstellung von sechs unterhaltsamen und etwas herausfordernden Spielen. Obwohl das Kapitel geschrieben wurde, um Sie zu unterhalten, ist der Code für jedes Spiel sehr lehrreich. Das Hangman-Spiel ist besonders bemerkenswert und demonstriert einige Tricks und ungewöhnliche Szenario-Programmiertechniken.

Kapitel 13: Arbeiten in der Cloud
Seit der Veröffentlichung der ersten Auflage dieses Buches hat das Internet immer mehr Platz in unserem täglichen Leben eingenommen. Besonders wichtig ist uns das Thema Synchronisation von Geräten und Dateien mit Cloud-Diensten wie iCloud, Dropbox und Google Drive. Dieses Kapitel zeigt Shell-Skripte, mit denen Sie diese Dienste voll ausnutzen und sicherstellen können, dass Dateien und Verzeichnisse rechtzeitig synchronisiert und kopiert werden. Darüber hinaus finden Sie hier einige Skripte, die Funktionen von OS X zum Arbeiten mit Fotos und zum Lesen von Text verwenden.

Kapitel 14: ImageMagick und Bilddateiverarbeitung
Kommandozeilenanwendungen können nicht nur Textdaten, sondern auch Grafiken verarbeiten. In diesem Kapitel geht es um das Identifizieren und Verarbeiten von Bildern über die Befehlszeile mit einer Reihe von Grafiktools, einschließlich der Open-Source-Software ImageMagick. Die Skripte in diesem Kapitel implementieren gängige Bildoperationen, von der Bestimmung der Bildtypen bis zum Zuschneiden und Hinzufügen von Wasserzeichen, sowie einige weitere Anwendungsfälle.

Kapitel 15: Tage und Daten
Das letzte Kapitel zeigt Tricks, die den Umgang mit Datum und Uhrzeit vereinfachen: wie viele Tage zwischen zwei Datumsangaben liegen, auf welchen Wochentag eine Zahl fällt oder wie viele Tage bis dahin verbleiben. Wir werden diese Probleme mit einfach zu verwendenden Shell-Skripten lösen.

Anhang A: Installieren von Bash unter Windows 10
Während wir an der zweiten Ausgabe arbeiteten, hat Microsoft seinen Ansatz für Open-Source-Software erheblich geändert und 2016 sogar ein vollständiges Bash-System für Windows 10 veröffentlicht. Obwohl die Beispiele im Buch nicht in dieser Version von Bash getestet wurden, Viele der Ideen und Lösungen werden nicht schwer darauf zu übertragen sein. Im Anhang führen wir Sie durch die Installation von Bash unter Windows 10, damit Sie sich an der Skripterstellung auf einem Windows-Rechner versuchen können!

Anhang B: Zusätzliche Szenarien
Jeder gute Scout weiß, dass es immer einen Backup-Plan geben sollte! Während wir an diesem Buch arbeiteten, erstellten wir Backup-Skripte für den Fall, dass wir eines der Hauptskripte ersetzen mussten. Letztendlich brauchten wir die Backup-Skripte nicht, aber es wäre unhöflich von uns, sie vor Ihnen, unseren Freunden, geheim zu halten. Diese Anwendung enthält drei zusätzliche Skripte – für das Umbenennen von Massendateien, für die Massenbefehlsausführung und für die Berechnung von Mondphasen – die wir nicht verbergen konnten, nachdem wir Ihnen 101 Skripte gezeigt haben.

Über Autoren

David Taylor ist seit 1980 in der Computerbranche tätig. Seine Programme, die an der Erstellung von BSD 4.4 UNIX mitgewirkt haben, sind in allen wichtigen UNIX-Distributionen enthalten. Hervorragender Redner und Autor von Tausenden von Artikeln für Zeitschriften und Zeitungen. Er hat über 20 Bücher geschrieben, darunter Learning Unix for OS X (O'Reilly Media), Solaris 9 for Dummies (Wiley Publishing) und Sams Teach Yourself Unix in 24 Hours (Sams Publishing). Ein beliebter Kolumnist für das Linux Journal und Gründer der Website askdavetaylor.com, auf der er Benutzern technischen Support bietet und Rezensionen zu neuen Gadgets veröffentlicht.

Brandon Perry begann mit dem Schreiben von Anwendungen in C# mit der Veröffentlichung der Open-Source-Implementierung von .NET – Mono. In seiner Freizeit schreibt er gerne Module für das Metasploit-Framework, untersucht Binärdateien und testet Dinge.

Über den Science Reviewer

Jordi Gutiérrez Hermoso- Programmierer, Mathematiker und freiberuflicher Hacker. Seit 2002 verwendet er ausschließlich Debian GNU/Linux, nicht nur zu Hause, sondern auch bei der Arbeit. Geordie ist an der Entwicklung von GNU Octave, einer freien Computerumgebung, die weitgehend mit Matlab kompatibel ist, und Mercurial, einem verteilten Versionskontrollsystem, beteiligt. Er liebt reine und angewandte Mathematik, Skaten, Schwimmen und Stricken. In letzter Zeit macht er sich viele Gedanken über die Probleme der Treibhausgasemissionen und beteiligt sich an Kampagnen zur Rettung von Nashörnern.

» Weitere Informationen zum Buch finden Sie unter

Bei den meisten Linux-Distributionen ist die Bash-Shell standardmäßig installiert. Beachten Sie, dass es kaum einen Unterschied zwischen allen Shells gibt, die dem POSIX-Unix-ähnlichen Betriebssystemstandard entsprechen.

Bash läuft im Textmodus oder der Terminal-Anwendung und arbeitet interaktiv. Dies bedeutet, dass es auf Benutzereingaben wartet und dann die eingegebene Zeichenfolge als auszuführenden Befehl interpretiert. Befehle sind anders: Starten eines Programms, Operationen mit Dateien, Ausführen eines Skripts in der Sprache von Bash selbst usw.

Unix wurde als Mehrbenutzer-Betriebssystem entwickelt, auf das Benutzer über Terminals zugreifen. Beispielsweise gab es im Gebäude einen leistungsstarken Computer, und in den Arbeitsräumen von Spezialisten befanden sich Terminals - Zugangspunkte zu den Ressourcen einer gemeinsamen Maschine.

Im Zusammenhang mit der in den 80er Jahren einsetzenden Verbreitung von Personal Computern waren Multi-User-Betriebssysteme beim Massenverbraucher nicht gefragt. Für Server sind sie jedoch eine gute Wahl geworden.

Stellen Sie sich vor, Sie verbinden sich über SSH mit dem Webserver, auf dem Sie die Site-Dateien hosten. Wenn Sie im GNU / Linux-Betriebssystem arbeiten und das Programm „Terminal" ausführen, geben Sie Bash einen Befehl, um sich mit einem Remote-Computer unter einem bestimmten Benutzernamen zu verbinden. Der Server antwortet Ihnen und fordert Sie auf, das Passwort für diesen Benutzer einzugeben. Dies liegt daran Dieser Server-Computer kann bei weitem nicht von einer Person verwendet werden.

Auf dem lokalen Computer im Linux-Textmodus (wenn Sie beispielsweise Strg + Alt + F2 drücken) wird der Fernzugriff auf den Computer über das Terminal emuliert. Hier fordert Bash Sie zunächst auf, ein Login einzugeben, danach - ein Passwort. Bei der Eingabe des Passworts wird nichts auf dem Bildschirm angezeigt. Dies wurde absichtlich so gemacht, dass es unmöglich war, auch nur die Anzahl der eingegebenen Zeichen zu sehen. Wenn das eingegebene Login/Passwort-Paar mit einem zuvor im System registrierten Benutzer übereinstimmt, wird die Eingabeaufforderung der Bash-Befehlszeile zur Eingabe des Befehls angezeigt. Im Falle eines Fehlers müssen Sie Login/Passwort erneut eingeben.

Im grafischen Modus „übernimmt“ die „Terminal“-Anwendung automatisch die Daten des Benutzers, der sie gestartet hat, und überträgt sie an Bash. Sie werden also bereits dem System präsentiert und sehen als erstes eine Eingabeaufforderung.

Die Eingabeaufforderung der Befehlszeile hat eine relativ standardmäßige Syntax und sieht etwa so aus: Benutzername@Computername:aktuelles_Verzeichnis Zeichen.

Im Screenshot ist pl der Benutzername, comp der Computername. Das Tilde-Zeichen ~ auf Linux-Systemen ist eine Abkürzung für das Home-Verzeichnis des Benutzers (/home/user). Dies ist das Verzeichnis, das Bash standardmäßig aktuell macht. Das Dollarzeichen $ zeigt an, dass wir als nicht privilegierter Benutzer ausgeführt werden. Wenn Sie als Administrator angemeldet sind, ist das Dollarzeichen # anstelle eines Dollarzeichens.

Nach der Eingabeaufforderung wird automatisch ein Leerzeichen eingefügt und ein Befehl erwartet. Im obigen Bild wurde zunächst einfach die Eingabetaste gedrückt. In der zweiten Zeile wurde der Befehl zum Verschieben in ein anderes Verzeichnis eingegeben. In der dritten Zeile sehen wir das Ergebnis seiner Ausführung – /opt ist zum aktuellen Verzeichnis geworden, das in der Eingabeaufforderung angezeigt wird.

Es gibt viele Befehle, die in Bash ausgegeben werden können. Grundsätzlich sind dies Befehle zum Starten eines bestimmten Programms, die sich in den Verzeichnissen / bin, / usr / bin und einigen anderen befinden. Die zu prüfenden Verzeichnisse werden in die $PATH-Variable der Shell geschrieben:

Hier bitten wir Bash mit dem echo-Befehl, uns den Wert der $PATH-Variablen zu geben. In der Ausgabe werden die Verzeichnisse mit einem Doppelpunkt voneinander getrennt.

Sie können sehen, welche Programme in einem bestimmten Verzeichnis installiert sind, und dann eines davon ausführen:

Wenn die Anwendung nur über eine grafische Oberfläche verfügt, wird sie so gestartet (wenn Sie sich im grafischen Modus befinden, tritt bei einem Textmodus ein Fehler auf). In diesem Fall wartet Bash auf den Abschluss des Programms, dh es können keine anderen Befehle eingegeben werden. Im "Terminal" können Sie jedoch einen zweiten Tab öffnen oder ein zweites Fenster erstellen. Dadurch wird ein weiterer Prozess für Bash gestartet.

Es gibt Programme mit einer Textschnittstelle. Zum Beispiel der Nano-Editor:

In diesem Fall erhielt Bash den Nano-Befehl und der GNU Nano-Editor wurde direkt im Terminal geöffnet. Ein paar Wörter wurden darin eingegeben. Um den Editor zu verlassen, müssen Sie Strg + X drücken, bestätigen oder das Speichern verweigern. Danach eine Rückkehr zur Bash-Befehlszeile.

Viele der Programme, die in Bash ausgeführt werden, beinhalten keine interaktive (konversative) Benutzerinteraktion. In Bezug auf die Bedeutung ist es richtiger, sie Befehle und nicht Programme zu nennen. Der Benutzer gibt einen Befehl ein, er wird ausgeführt und die Kontrolle geht zurück an Bash. Was ein Team tut, hängt vom Team ab.

Bash kann Programme ausführen, die sich nicht nur in den in $PATH aufgeführten Verzeichnissen befinden. Allerdings muss in diesem Fall die Adresse dazu explizit angegeben werden. Außerdem sollte man nicht vergessen, dass die Datei das Ausführungsrecht haben muss.

Hier wurde im Home-Verzeichnis eine test.py-Datei erstellt, die Code in der Programmiersprache Python enthält, der die Zahl 10 anzeigt. Der Code wurde in Nano geschrieben (nicht im Screenshot zu sehen). Als nächstes versuchen wir, das Programm auszuführen, indem wir auf die Datei unter ihrer Adresse zugreifen. Der Punkt repräsentiert das aktuelle Verzeichnis. In diesem Fall ist es home, also entspricht es ~/test.py oder /home/pl/test.py .

Beim ersten Aufruf erhalten wir eine Fehlermeldung, weil wir keine Berechtigung zum Ausführen des Programms haben. Mit Hilfe des chmod-Befehls fügen wir ein solches Recht hinzu (Option +x).

Es gibt viele Befehle. Es ist schwer, sie alle zu kennen. Es gibt jedoch einige der beliebtesten. Dies sind Befehle zum Ausführen von Operationen an Dateien, zum Installieren von Programmen, zum Durchsuchen von Verzeichnissen und Dateien, zum Navigieren durch einen Verzeichnisbaum usw., dh alles, was wir im grafischen Modus des Betriebssystems tun. Viele davon werden in diesem Kurs behandelt. Einige davon sind uns bereits begegnet (cd, ls, echo, chmod).

Der Bedarf für den Rest tritt seltener auf. In diesen Fällen helfen Referenzhandbücher, die über Bash und andere Quellen verfügbar sind. Im Kurs wird zunächst auf die Besonderheiten des Arbeitens in Bash eingegangen.

Vergessen wir auch nicht, dass Bash auch eine Skript-Programmiersprache ist. Eine Datei, normalerweise mit der Erweiterung .sh, kann nicht nur eine Liste von Befehlen enthalten, sondern auch Sprachanweisungen (bedingte Operatoren, Schleifen usw.), die "sagen", wie und in welchen Fällen bestimmte Befehle ausgeführt werden sollen. Die Programmierung in Bash wird in diesem Kurs nicht behandelt.

Die Übung

Erkunden Sie selbst, was die folgenden Befehle bewirken: date, cal, pwd, who, clear, exit. Verwenden Sie den which-Befehl, um herauszufinden, in welchen Verzeichnissen sich die ausführbaren Dateien dieser Programme befinden.

Kurs mit Lösungen zu Aufgaben und zusätzlichen Lektionen:

Shells tauchten ganz am Anfang der Entwicklung von Unix auf, sie waren notwendig, weil es die einzige Möglichkeit war, mit dem System zu interagieren. In dieser Zeit haben sie einen sehr langen Entwicklungsweg zurückgelegt und viele neue Funktionen erhalten. Es ist nicht einfach, die Entwicklung von Linux-Shells zu verstehen. Darüber kann man sehr lange schreiben und ein Artikel ist definitiv zu wenig. Wir werden versuchen, nur das Grundlegendste abzudecken, ohne zu tief einzutauchen. Schauen wir uns zunächst an, was eine Linux-Befehlsshell ist und welche Shells es gibt.

Was ist eine Linux/Unix-Befehlsshell

Eine Unix-Shell ist ein Befehlszeileninterpreter, der vom Benutzer gegebene Befehle ausführt. Wir geben einen Befehl ein, er wird interpretiert, ausgeführt und dann erhalten wir das Ergebnis seiner Ausführung. Die Shell bietet die traditionelle Unix-Befehlseingabeschnittstelle, an die wir gewöhnt sind. Dies ist normalerweise ein schwarzer Bildschirm und weißer Text. Wir geben Befehle im Klartext ein, und wir können auch Skripte aus einem oder mehreren Befehlen erstellen.

Die Shell ist Ihre Schnittstelle zur Interaktion mit dem System. Nach dem Einloggen in ein Unix-System befinden Sie sich in einem Programm namens Shell.

Thompson-Shell

Der Geschichte und vielen Online-Quellen zufolge war die allererste Shell Thompson Shell, geschrieben von Ken Thomson bei Bell Labs. Es gab insgesamt 6 Versionen und es wurde von 1971 bis 1975 vertrieben. Unterstützte Features wie: Input/Output Redirection und einfache Kontrollstrukturen - if, goto. Diese Funktionen unterstützen alle modernen Befehlsshells in Linux.

PWB-Shell

Die PWB-Shell ist eine Modifikation der von John Masheu entwickelten Thomson-Shell. Es wurde geschrieben, um den Komfort der Shell-Programmierung zu erhöhen. Interessante Strukturen wie if-then-else-endif, switch und while-Schleifen sind aufgetaucht.

Bourne-Shell

Unix begann seinen Aufstieg mit der Bourne-Shell. Es wurde von Stefan Born bei Bell Labs geschrieben und wurde als Standard-Shell in der Unix-Version 7 von 1979 verwendet. Eine große Anzahl von Funktionen, die in modernen Shells verfügbar sind, wurden hier bereits implementiert - Dateinamenvervollständigung, Befehlsvervollständigung, Standardumgebungsvariablen und eingebaute Kontrollstrukturen. Die Bourne-Shell hieß sh und befand sich im Unix-Dateisystem unter /bin/sh.

Auf vielen Systemen ist das Bourne-Shell-Programm (sh) ein symbolischer oder fester Link zu einer seiner Alternativen:

  • Almquist-Schale (Asche)
  • Bourne-Again-Shell (bash)
  • Korn-Shell (ksh)
  • Z-Shell (zsh)

Beispielskript für Bourne Shell:

!/bin/sch
echo "Hallo Welt 1!"
echo "Hallo Welt 2!"

Almquist-Schale (Asche)

Almquist-Muschel, auch als A-Muschel bekannt. Es ist eine leichtgewichtige Unix-Shell, die ursprünglich von Kenneth Almqvist geschrieben wurde. Es wurde Ende der 1980er Jahre entwickelt. Es ist eine Modifikation der Bourne-Shell und ersetzte das Original in BSD Unix, das 1990 veröffentlicht wurde. Es kann jetzt auf Distributionen wie Debian und Ubuntu als Version von Ash namens Dash (Debian Almquist Shell) verwendet werden. Es ist auch bei eingebetteten Unix-Distributionen beliebt.

Es ist eine schnelle, kompakte und POSTIX-kompatible Unix-Shell, weshalb sie möglicherweise häufig auf eingebetteten Geräten verwendet wird. Aber Ash unterstützt keine Befehlsverläufe. Obwohl in modernen Versionen diese Funktion bereits hinzugefügt wurde.

Bourne-Again-Shell (Bash)

Geschrieben von Brian Fox als Teil des GNU-Projekts als freier und offener Ersatz für die Bourne-Shell. Bash ist die beliebteste und am weitesten verbreitete aller Shells. Alle Linux-Distributionen werden standardmäßig mit dieser Shell ausgeliefert. Es erweitert den Funktionsumfang von Bourne Shell. Auf den meisten Unix/Linux-Systemen ist diese Shell im Dateisystem unter /bin/bash zu finden. Es wurde 1989 veröffentlicht.

Aufgrund dieser Popularität wurde es auf Windows portiert und mit der Cygwin- und MinGW-Compiler-Suite verteilt. Bash wird auch in Android verwendet, und Sie können verschiedene Terminalemulatoren verwenden, um darauf zuzugreifen.

Es unterstützt Autovervollständigung, E/A-Umleitung, Befehlsvervollständigung, Variablen und Kontrollstrukturen für Entscheidungen (if-then-elese if) und Schleifen (loop).

Bash-Skripte beginnen mit dieser Zeile:

Diese Linux-Befehlsshell unterstützt auch das Lesen von Befehlen aus einer Datei und das Umleiten der Ausgabe in eine Datei oder einen anderen Befehl.

Bash-Code-Beispiel:

!/bin/sch
wenn [ $days -gt 365 ]
dann
Echo Dies ist über ein Jahr.
fi

Korn-Shell (ksh)

Geschrieben von David Kron und basierend auf den Quellen der Bourne-Shell. KornShell (ksh) ist eine Shell, die bereits 1980 von Bell Labs entwickelt wurde. Sie ist abwärtskompatibel mit der Bourne-Shell und enthält auch viele Funktionen der C-Shell.

Es gibt folgende Versionen und Modifikationen:

  • Dtksh
  • MKS Korn-Shell

Skriptbeispiel:

!/bin/ksh
print Speicherplatznutzung
du-k
Ausgang 0

Z-Shell (zsh)

Paul Falstad schrieb 1990 die erste Version mit dem Shell-Befehl zsh. Es ist eine Linux-Befehlsshell, die als interaktive Anmeldeshell verwendet werden kann, ein sehr leistungsfähiger Befehlsinterpreter. Eigentlich ist Zsh eine erweiterte Bourne-Shell mit vielen Verbesserungen, die einige Funktionen von Bash, KSH und Tcsh enthält.

Der Name Zsh stammt von Yale-Professor Zhong Shao, da Paul Student an der Princeton University war.

Folgende interessante Features werden unterstützt:

  • Zeilenabschluss
  • Gemeinsame Befehlshistorie über alle Shell-Sitzungen hinweg
  • Verbesserte Arbeit mit Variablen und Arrays
  • Bearbeiten mehrerer Zeilen in einem Puffer
  • Rechtschreibkorrektur und vieles mehr.

C-Schale

Die C-Shell ist auch als Csh bekannt. Es wurde von Bill Joy entwickelt, als er Student an der University of California war. Diese Shell ist auf BSD-Linux-Systemen sehr verbreitet. Hier gibt es viele interessante Funktionen, darunter Kontrollstrukturen und grammatikalische Ausdrücke. Diese Shell führte auch zum ersten Mal viele interessante Funktionen ein, wie Verlaufs- und Bearbeitungsmechanismen, Aliase, CDPATH, Aufgabenverwaltung und Hashing, Ausgabeumleitung, Anhängen, Variablenersetzung, Hintergrundausführung usw.

Wie andere Linux-Shells unterstützt es Skriptdateien, Umleitung und Kontrollstrukturen. Csh wird jetzt in Form von tcsh auf vielen Systemen wie MacOS X und Red Hat Linux verwendet. Unter Debian können sowohl CSH als auch Tcsh verwendet werden.

Beispielcode in C-Shell:

!/bin/csh
if ($days > 365) dann
Echo Dies ist über ein Jahr.
endif

Fisch

Fish oder Friendly Interactive Shell ist eine Linux-Befehlsshell der neuen Generation. Es wurde entwickelt, um dem Benutzer die Ausführung von Befehlen zu erleichtern, es verfügt über Syntaxhervorhebung, Hervorhebung der richtigen Dateiadressen, eine schnelle Verlaufssuche, einen Webkonfigurator sowie eine spezielle Skriptsyntax.

Dies ist eine neue Befehlsshell in Linux und ihre Syntax unterscheidet sich von allen modernen Befehlsshells, sondern eher von der Programmiersprache Python.

Ein Beispiel für das Erstellen einer Funktion für Fische:

!/usr/bin/fish
funtioniert su
Funktion su
/bin/su --shell=/usr/bin/fish $argv
Ende
funcsave su

Einen detaillierteren Vergleich der Befehlsshells in Linux finden Sie unter dem Link.

Das ist alles für heute. Ich hoffe, Sie waren interessiert.

© 2022 youmebox.ru -- Über das Geschäft - Nützliches Wissensportal