Advertisement
  1. Code
  2. Web Development

7 Einfache und nützliche Kommandozeilentipps

Scroll to top
Read Time: 11 min

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Eines der nützlichsten, aber wenig genutzten Tools eines Webentwicklers ist die Kommandozeile. Das Terminal schreckt oft Leute ab; Hier zeigen wir einige der nützlichsten Alltagsbefehle.


1. Die Grundlagen

Wenn Sie neu in der Kommandozeile sind, sollten Sie einige Dinge wissen, um sich zurechtzufinden.

Verzeichnisse ändern

Sie können wie folgt in ein anderes Verzeichnis wechseln:

Wenn Sie sich verlaufen, können Sie mit dem Kommando "cd ~" zu Ihrem "home" -Verzeichnis zurückkehren.

Auflisten von Dateien und Verzeichnissen

Wenn Sie wissen müssen, welche Dateien ein bestimmtes Verzeichnis enthält:

Sie können den Schalter "-l" verwenden, um den Inhalt als Liste anzuzeigen, und den Schalter "-A", um auch versteckte Dateien anzuzeigen (auf Linux-basierten Computern werden Dateien und Verzeichnisse, deren Name mit einem "." Beginnt, als "versteckt" betrachtet').

Zeigt Ihr aktuelles Verzeichnis an

Manchmal möchten Sie nur wissen, in welchem Verzeichnis Sie sich gerade befinden!

Dadurch wird ein Pfad zu Ihrem aktuellen Ordner angezeigt.

Dateien kopieren

Das Kopieren von Dateien von einem Ort an einen anderen ist schnell und einfach:

Sie können beim Kopieren auch den Schalter "-R" verwenden, um es rekursiv zu machen, sodass auch alle Unterverzeichnisse und Dateien kopiert werden.

Aber das Tippen ist langsam, und was ist, wenn ich mich nicht an den genauen Pfad oder Kommando erinnern kann?

In den meisten Fällen ist in der Kommandozeile die Tab-Vervollständigung aktiviert. Sie können also den Namen eines Befehls oder eines Dateipfads eingeben, die Tabulatortaste drücken und ihn für Sie vervollständigen. Wenn es mehr als eine Option gibt, wird diese für Sie nicht abgeschlossen. Wenn Sie jedoch zweimal auf die Tabulatortaste drücken, werden die Optionen aufgelistet.

Durch die Tab-Vervollständigung können lange Dateipfade viel schneller eingegeben werden!

Woher wissen Sie, welche Optionen ein Kommando hat?

Es gibt verschiedene Möglichkeiten, um festzustellen, über welche Optionen ein Befehl verfügt. Für die meisten Kommando steht ein Operator --help (oder -help oder -h) zur Verfügung, der die möglichen Argumente und Optionen auflistet, die Sie verwenden können:

Wenn Sie feststellen, dass die kurze Hilfe des Operators --help nicht ausreicht, können Sie mit dem man-Programm weitere Details lesen:

Was Ihnen alles über das "Nano" -Programm erzählen wird. Einfache Befehle wie "cd" haben möglicherweise keinen Eintrag in man.


2. Erstellen einer Datenbanksicherung (mit GZip-Komprimierung)

Das Sichern Ihrer Datenbank sollten Sie häufig durchführen. Wie bei den meisten Dingen gibt es viele Möglichkeiten, dies zu tun, aber die Verwendung der Kommandozeile ist eine der besten. Warum? Weil es Ihnen hilft, potenzielle Probleme wie Ausführungszeitlimits für Tools wie phpMyAdmin und potenzielle Netzwerkausfälle durch die Verwendung eines lokalen Verwaltungstools wie MySQL Workbench zu umgehen.

Der Befehl zum Ausführen der Sicherung ist recht klein, erfordert jedoch möglicherweise einige Erläuterungen:

Nun, um zu erklären, was hier los ist! Das Programm "mysqldump" ist ein Tool zum Erstellen von Datenbanksicherungen. Die verwendeten Parameter sind:

  • "-u" -Schalter bedeutet, dass Sie einen Benutzernamen angeben, mit dem eine Verbindung hergestellt werden soll, der folgen muss, wie oben "-u mysqluser"
  • Der Schalter "-p" bedeutet, dass Sie entweder sofort das zu verwendende Kennwort angeben (ohne Leerzeichen) oder dass Sie dazu aufgefordert werden
  • Der letzte im obigen Beispiel verwendete Parameter ist der Name der zu sichernden Datenbank (natürlich!)

Wenn Sie den obigen Befehl ausgeführt hätten, hätten Sie gesehen, wie der Inhalt Ihrer Datenbank auf dem Bildschirm vorbeizischte. Das ist gut, weil wir wissen, dass dieser Teil funktioniert (tatsächlich eine Verbindung zur Datenbank herstellen), aber es ist auch schlecht, weil ... wo ist er hingegangen? Antwort: nirgendwo! Es rollte vorbei, und das war es. Jetzt müssen wir es erfassen und in eine Datei einfügen.

Um den Inhalt der Ausgabe zu Sicherungszwecken in eine Datei zu platzieren, müssen Sie eine sogenannte Umleitung verwenden.

Also haben wir einen Redirecter hinzugefügt und den Dateinamen, in den die Ausgabe gehen soll. Jetzt sollte eine Datei mit dem Namen "db_backup.sql" angezeigt werden. Wenn Sie sie öffnen, wird ein SQL-Skript mit der Struktur und dem Inhalt Ihrer Datenbank angezeigt, das für die Wiederherstellung oder Migration bereit ist.

Eine letzte Sache, die für eine Sicherung nützlich sein könnte, ist das Komprimieren des SQL-Skripts. In diesem Beispiel werde ich die GZip-Komprimierung verwenden, da dies durchaus üblich ist. Sie können jedoch auch Bzip2 oder etwas anderes verwenden.

Um diesem Befehl eine Komprimierung hinzuzufügen, führen wir einfach das aus, was als Piping bezeichnet wird. Wir leiten die Ausgabe von mysqldump durch gzip und leiten sie dann wie folgt in die gewünschte Datei um:

Ich habe dem Dateinamen auch das ".gz" hinzugefügt, damit ich weiß, dass es komprimiert ist und nicht mehr nur einfacher Text (es wird auch kleiner!).


3. Wiederherstellen aus einer Datenbanksicherung (mit GZip-Komprimierung)

Sie haben also eine Sicherungskopie Ihrer Datenbank (entweder mit der oben beschriebenen Methode oder auf eine andere Weise), und etwas ist schiefgegangen, und Sie müssen sie wiederherstellen, oder Sie migrieren sie auf einen neuen Server. Sie könnten eines der anderen zuvor genannten Tools verwenden. Was ist jedoch im Beispiel von phpMyAdmin, wenn Ihre Datenbanksicherungsdatei größer als die zulässige Upload-Größe ist? Zum Glück macht es der Kommandozeile nichts aus.

Der Befehl zum Wiederherstellen ist dem zum Sichern sehr ähnlich. Erstens ohne GZip-Komprimierung:

Wir verwenden den Befehl "cat", um den Inhalt des Datensicherungsskript auszugeben und seinen Inhalt in das MySQL-Programm zu leiten. Wie Sie sehen können, verwendet das MySQL-Programm die gleichen Optionen wie das mysqldump in Abschnitt zwei.

Wenn das Skript nun GZip-komprimiert wurde, können wir seinen Inhalt nicht einfach in MySQL ausgeben, da es sich um komprimierte Daten anstelle eines netten SQL-Skripts handelt. Also machen wir folgendes:

Sehen Sie, es ist sehr vertraut, nur ein bisschen umgeschaltet.

Was hier passiert, ist, dass wir auch "gunzip" ausführen und das Backup-Skript in es umleiten, um es zu dekomprimieren. Wir leiten dann die dekomprimierte Ausgabe in das Programm "mysql" weiter.


4. Suchen / Ersetzen in einer Textdatei

Manchmal haben Sie eine große Datei, wie zum Beispiel einen Datenbankexport, und Sie müssen sie suchen / ersetzen ... aber sie wird in keinem Ihrer Texteditoren geöffnet, da auf Ihrem Computer nicht mehr genügend Speicher vorhanden ist, um sie zu öffnen es! Hier ist ein Weg, um das zu umgehen, indem Sie die Kommandozeile und ein paar reguläre Ausdrücke verwenden.

Auf diese Weise wird der Inhalt des SQL-Skripts (oder der von Ihnen verwendeten Datei) ausgegeben, durch ein Programm namens "sed" geleitet, das speziell für die Manipulation von Streaming-Inhalten verwendet wird, und diese Ausgabe wird dann in die neue Datei umgeleitet. Klingt kompliziert? Nun... ich denke, es ist ein bisschen, aber der Befehl selbst sieht einfach aus!

Der neue Teil hier ist wirklich das "sed" -Programm. Im Grunde genommen nimmt es die Eingabe und stimmt mit dem ersten Muster überein (in diesem Fall mein Name "Japheth") und ersetzt es durch das zweite Muster (in diesem Fall eine Verkürzung meines Namens "Japh") und dann gibt das uns.


5. Sicheres Kopieren von Dateien zu / von einem Server (über SSH mit SCP)

Wenn Sie an der Kommandozeile arbeiten und eine Datei kopieren müssen, insbesondere wenn Sie das sicher tun müssen, warum sollten Sie Ihren FTP-Client starten? Verwenden Sie einfach ein Programm namens Secure Copy oder SCP, das speziell für das sichere Kopieren von Remote-Dateien vorgesehen ist. Secure Copy verwendet SSH zum Kopieren der Dateien. Sie müssen also sicherstellen, dass Sie zuerst über SSH eine Verbindung zum Remotecomputer herstellen können (ich werde am Ende des Artikels noch etwas näher darauf eingehen, also halten Sie diesen Gedanken fest).

Die Syntax des Befehls scp ähnelt der des Befehls cp in Abschnitt ein, wobei der Hostname des Computers zum Entfernen und der Benutzername für die Verbindung hinzugefügt werden:

Die zu beachtenden Bits sind "username@hostname:". Dies ist, wie oben erläutert, der zu verwendende Benutzername und der Hostname, der beim Herstellen einer Verbindung verwendet werden soll. Sie werden aufgefordert, das Kennwort für diesen Benutzer einzugeben, und Sie erhalten eine Fortschrittsanzeige für das Kopieren, damit Sie sehen können, wie es funktioniert.

Sie können den Schalter "-r" (Hinweis: Kleinbuchstaben für scp, Großbuchstaben für cp) mit sicherem Kopieren verwenden, um ihn rekursiv zu machen. Wenn Sie SCP oder SSH zum ersten Mal verwenden, um eine Verbindung zum Remotecomputer herzustellen, werden Sie möglicherweise aufgefordert, aus Sicherheitsgründen einen RSA-Fingerabdruck zu akzeptieren, den Sie akzeptieren sollten (vorausgesetzt, Sie sind sicher, dass Sie eine Verbindung zum richtigen Server herstellen).

Es ist erwähnenswert, dass das in beide Richtungen funktioniert. Sie können Dateien auch vom Remotecomputer auf Ihren lokalen Computer kopieren, indem Sie die Argumente umschalten:

Wenn Sie SSH-fähig sind und Dateien auf einen anderen kopieren möchten, können Sie mit diesem Befehl die Dateien direkt kopieren, ohne sie zuerst auf Ihren lokalen Computer herunterladen zu müssen!


6. Suchen bestimmter Dateien in einem großen Projekt

Suchen einer Datei mit einem bestimmten Namen

Sie möchten eine bestimmte Datei finden, sind sich aber nicht sicher, wo sie sich in den vielen Verzeichnissen Ihres Projekts versteckt? (oder auch wenn es mehr als eine gibt!)

Der Befehl "find" dient zum Suchen von Dateien innerhalb einer Verzeichnis-Hierarchie. Es hat viele Optionen, so dass seine Verwendung sehr vielfältig ist. Hier habe ich angegeben, dass im aktuellen Verzeichnis mit "./" gesucht werden soll, und den Schalter "-iname" verwendet, dh nach einer Datei mit einem Namen wie dem von mir angegebenen gesucht. Es gibt auch einen "-name" -Schalter, aber der "-iname" -Schalter unterscheidet nicht zwischen Groß- und Kleinschreibung, sodass auch INDEX.php gefunden wird.

Suchen einer Datei mit einem bestimmten Inhalt

Haben Sie jemals gewusst, dass Sie eine Funktion für etwas geschrieben haben, sich aber nicht erinnern können, in welcher Datei sie sich befand?

"grep" ist ein Programm zum Ausdrucken von Zeilen, die einem bestimmten Muster entsprechen. Sie können einige Schalter verwenden, z. B. "-i", um die Groß- und Kleinschreibung nicht zu berücksichtigen, und "-R", um es in meinem Beispiel rekursiv zu machen. Geben Sie dann ein Muster und den Pfad für die Suche an (hier suche ich das aktuelle Verzeichnis mit "./"). In diesem Beispiel werden der Dateiname und die Zeile in dieser Datei für alle Übereinstimmungen mit "myfunction" angezeigt (Groß- und Kleinschreibung wird aufgrund des "-i" nicht berücksichtigt).

Wenn es sich bei Ihren Projekten um Subversion-Arbeitskopien handelt, ist es möglicherweise ärgerlich, Ergebnisse aus den Verzeichnissen ".svn" anzuzeigen. Um bestimmte Verzeichnisse von der Suche auszuschließen, verwenden Sie den Schalter "--exclude-dir=", z. B. "--exclude-dir=.svn".


7. Ausführen von Massenaktionen für bestimmte Dateien

Jetzt wissen wir, wie man bestimmte Dateien findet. Was ist, wenn wir mit diesen Dateien bestimmte Dinge tun möchten? Zum Beispiel arbeite ich oft auf einem Mac und stelle fest, dass Mac OS X beim Speichern von Dateien auf Windows- oder Linux-Samba-Freigaben im Netzwerk freundlicherweise überall Dateien mit dem Dateinamen "._filename" abwirft. Deshalb möchte ich diese regelmäßig aufräumen können.

Um solche Dateien zu finden, verwende ich beide Methoden aus dem vorherigen Abschnitt, um Dateien mit einem bestimmten Namen zu finden:

Wir finden eine Möglichkeit, alle Dateien im aktuellen Verzeichnis (rekursiv) auszugeben, und leiten die Ausgabe dann an grep weiter, um sicherzustellen, dass sie meinem regulären Ausdruck entspricht. Die regulären Ausdrücke sagen nur: "Entspricht allem, was mit einem Literal beginnt . Gefolgt von einem Literal _ gefolgt von 0 oder mehr von irgendetwas anderem." Führen Sie es so aus, um sicherzustellen, dass Sie die gewünschten Dateien sehen.

Um nun mit allen Dateien, die Sie mit diesem Befehl erfasst haben, etwas zu tun, schließen Sie ihn mit Anführungszeichen (``) ein. Wenn ich alle löschen wollte:

Ich habe den Befehl "rm" (zum Entfernen oder Löschen von Dateien) mit einem "-f" -Schalter (was bedeutet, einen Löschvorgang zu erzwingen, ohne um Bestätigung zu bitten), und er wird für jede Datei ausgeführt, die vom Befehl auf der Rückseite zurückgegeben wird -zitate!

Ich halte es für unverantwortlich, hier nicht zu erwähnen, dass Sie mit dem Befehl "rm" sehr vorsichtig sein sollten. Wenn Sie den Befehl "rm" mit dem Schalter "-f" verwenden, stellen Sie sicher, dass Sie genau wissen, was Sie löschen werden, und dass Sie wirklich möchten, dass es weg ist! Wenn Sie "-f" verwenden, erhalten Sie keine zweite Chance.


Wie erhalte ich Kommandozeilenzugriff auf meinen Webhost?

Ich habe bereits in dem Artikel über die Verbindung zu einem Remotecomputer über SSH erwähnt. Viele dieser Befehle sind am nützlichsten, wenn sie auf Ihrem Webserver verwendet werden, auf dem wahrscheinlich Linux ausgeführt wird. Daher müssen Sie in der Lage sein, eine Verbindung zur Kommandozeile herzustellen. Der Weg, dies zu tun, ist die Verwendung eines Programms namens SSH, das dies sicher tut.

Unter Mac OS X oder Linux können Sie SSH über die Terminalanwendung ausführen:

Wenn Sie unter Windows arbeiten, müssen Sie ein frei verfügbares Programm namens PuTTY verwenden.

Sie werden aufgefordert, Ihr Passwort einzugeben, wenn Sie eine Verbindung herstellen.

Wenn Sie noch keinen SSH-Zugriff auf Ihren Webhost haben, können Sie ihn höchstwahrscheinlich anfordern und er wird für Sie eingerichtet.


Zusammenfassend...

Wie die meisten Dinge: "Du weißt nicht, was du nicht weißt." Es scheint schwierig zu sein, die Verwendung der Kommandozeile zu ermitteln. Aber wenn Sie Ihren Kopf darum wickeln, steht Ihnen eine enorme Menge an Kraft zur Verfügung! Hoffentlich können Sie mit diesem Artikel loslegen! Einige Fragen?

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.