Also, warum * NIX und warum müssen Sie zur Konsole gehen?
Nach den Statistiken von W3Techs wird Unix von 68% aller Websites verwendet, deren Betriebssystem sie kennen. Das heißt, wenn Sie Webentwickler sind, wird Ihr Code höchstwahrscheinlich auf einem Linux-Server ausgeführt. Und Sie müssen zumindest wissen, wie Sie Ihren Code auf Unix- und Linux-Systemen konfigurieren und debuggen. Finden wir heraus, was Sie wissen müssen, um sich in der Befehlszeile wohl zu fühlen.
Der grundlegende Befehl * NIX besteht aus drei Komponenten:
Zum Beispiel, wenn Sie eine Liste der Dateien im Verzeichnis abrufen müssen / var / www
, Sie müssen den Befehl ausführen ls
mit dem Argument / var / www
. Um die Dateigröße der Ausgabe hinzuzufügen, müssen Sie die -s
Option und der letzte Befehl sieht so aus:
ls -s / var / www
Viele * NIX-Befehle verwenden Texteingabe und -ausgabe, mit der Sie arbeiten können, und das großartige Feature ist, dass Sie die Ausgabeergebnisse des Befehls mithilfe einer Umleitung an eine Datei senden oder sogar die Ausgabe eines Befehls an die Eingabe von übergeben können ein anderer Befehl mit den Pipelines. Zum Beispiel können wir den Befehl aus dem vorherigen Beispiel in eine Datei ausgeben:
ls -s / var / www> /var/www/files.txt
Dieser Befehl erstellt oder löscht eine Datei /var/www/files.txt
und eine Liste der Dateien in der ausgeben / var / www
Verzeichnis. Hier finden Sie eine Liste mit Standard-E / A-Weiterleitungen und Pipelines:
>
Leiten Sie die Ausgabe von einem Befehl in eine Datei auf der Festplatte um. Die Datei wird gelöscht und überschrieben.>>
Dieselbe Umleitung, aber die Ausgabedatei wird angehängt.<
Liefert die Eingabe aus einer Datei in den Befehl.|
Übergeben Sie die Ausgabe eines Befehls an die Eingabe eines anderen Befehls.Abschlag
Beide leiten die Ausgabe in eine Datei um und übergeben sie an den nächsten Befehl in der Pipeline.Um manuelle Seiten für einen Befehl zu erhalten, führen Sie den Befehl aus Mann
. Handbuchseiten haben ein gemeinsames Layout und können Namen, Übersicht, Beschreibung und Verwendungsbeispiele enthalten. Dadurch wird die Dokumentation für die angezeigt chmod
Befehl:
man chmod
Um einige Befehle wie das Speichern von Konfigurationen oder das Neustarten von Prozessen auszuführen, müssen Sie diese als Superuser ausführen. Dazu müssen Sie vorausgehen Sudo
zu deinem Befehl:
user @ server: / var / www $ chmod 777 log chmod: Ändern der Berechtigungen für 'log': Vorgang nicht zulässig user @ server: / var / www $ sudo chmod 777 protokoll sudo chmod 777 protokoll
Wenn Sie mehrere Befehle als Superuser ausführen müssen, können Sie verwenden su
, oder Benutzerbefehl wechseln.
Benutzer @ Server: / var / www $ su Kennwort: root @ server: / var / www #
Hinweis: Verwenden Sie nicht, um die Sicherheitsschicht zu speichern und die versehentliche Ausführung unerwünschter Befehle zu vermeiden Sudo
und su
ohne jeden Zweck.
Es gibt drei Hauptbefehle zum Navigieren im Dateibaum:
pwd
um den Namen des aktuellen Arbeitsverzeichnisses auszudruckenCD
Verzeichnis wechselnls
Verzeichnisinhalt auflistenHier ist ein Beispiel für die Verwendung dieser Befehle mit der Ausgabe des Terminals:
Benutzer @ Server: ~ $ pwd / home / Benutzer Benutzer @ Server: ~ $ cd / var / www Benutzer @ Server: / var / www $ ls -alF insgesamt 16 drwxr-xr-x 5-Stammverzeichnis 4096 Jan 22 09:45 ./drwxr-xr-x 14 Wurzelwurzel 4096 Jan 22 09: 38… / drwxr-xr-x 2 Wurzelwurzel 4096 Jan 22 09:45 html / drwxr-xr-x 3 Wurzelwurzel 4096 Jan 22 09:45 log / drwxrwxrwx 1 user user 442 Mar 24 12:22 testing /
Dort ist der finden
Befehl zum Suchen nach Dateien in einer Verzeichnishierarchie. Dieser Befehl ist sehr leistungsfähig und kann nach Namen und Zugriffsberechtigungen, Datum und Größe nach Dateien und Verzeichnissen suchen.
Finden Sie alle Verzeichnisse mit dem Namen "logs" in / var / www
Verzeichnis mit der -Art
Möglichkeit:
find / var / www -type d -name Protokolle
Um nach PHP-Dateien im aktuellen Verzeichnis zu suchen, fügen Sie das -Name
Möglichkeit:
finden . -type f -name "* .php"
Finden Sie Dateien mit definierten Berechtigungen mit der -Dauerwelle
Möglichkeit:
finden . -type f -perm 0777 -print
Finden Sie alle Dateien, die größer als 500 MB sind:
find / -size + 500M
Natürlich können Sie alle diese Optionen in einem Befehl kombinieren, und dies sind nur die Grundlagen von finden
Befehl, ein sehr leistungsfähiges Werkzeug zum Suchen von Dateien. Verwenden Sie die Handbuchseiten, um weitere Informationen zu erhalten.
Es gibt fünf Hauptbefehle zum Bearbeiten von Dateien und Ordnern im * NIX-System:
berühren
wird verwendet, um Zeitstempel für vorhandene Dateien und Verzeichnisse zu ändern. Dies ist jedoch der einfachste Weg, neue Dateien zu erstellenmkdir
Verzeichnisse erstellencp
um Dateien und Verzeichnisse zu kopierenmv
um Dateien und Verzeichnisse zu verschieben oder umzubenennenrm
um Dateien und Ordner zu löschenIm nächsten Beispiel wird eine Datei erstellt index.html
, Kopieren Sie diese Datei in das neue Verzeichnis in / var / www
, und entfernen Sie die Quelldatei.
root @ localserver: ~ # touch index.html root @ localserver: ~ # mkdir / var / www / newdir root @ localserver: ~ # cp index.html / var / www / newdir / root @ localserver: ~ # rm index.html
Ein weiterer großer Befehl ist l
, die dazu dient, Verknüpfungen zwischen Dateien herzustellen. Der Befehl l
wird häufig verwendet, um einen symbolischen Link zum Aktivieren eines virtuellen Hosts zu erstellen:
sudo ln -s /etc/apache2/sites-available/newvirtualhost.com.conf / etc / apache / sites-enabled / newvirtualhost.com.conf
Um den Dateieigentümer und die Gruppe zu ändern, verwenden Sie chown
. Vergessen Sie nicht, dem Apache-Benutzer den Besitz zu gewähren, wenn Sie einen neuen virtuellen Host Ihrer Webanwendung erstellen:
sudo chown -R www-data: www-data /var/www/newvirtualhost.com
Manchmal müssen Cache- oder Protokollverzeichnisse Ihrer Anwendung für alle Benutzer beschreibbar sein, sodass Sie den Zugriffsmodus mit 777 auf 777 ändern müssen chmod
Befehl. Ergänzen Sie die -R
Option zum Hinzufügen von Berechtigungen für alle verschachtelten Dateien und Ordner.
sudo chmod -R 777 / var / www / private / cache
Wenn Sie nur eine Datei ausführbar machen möchten, verwenden Sie chmod
mit dem +x
Möglichkeit.
sudo chmod + x /var/www/private/backup.sh
Um Dateien in der Konsole anzuzeigen, können Sie die Katze
Befehl. Mit Katze
, Sie können den Inhalt der Dateien mithilfe zusätzlicher Parameter verketten. Sie können auch die Maske in Dateinamen verwenden.
cat /etc/apache2/apache2.conf cat /etc/apache2/apache2.conf /etc/apache2/ports.conf cat / etc / apache2 / mods-enabled / *
Aber die Katze
Mit dem Befehl werden Sie sehr schnell verwirrt, da er die Ausgabe im unformatierten Format ohne Paging anzeigt. Daher ist die Verwendung mit der Protokollausgabe unbequem. Um einen Filter für das Durchblättern von Text für einen Bildschirm zu erhalten, verwenden Sie die Mehr
oder Weniger
Befehle, die sehr viel sind.
weniger /etc/apache2/apache2.conf cat / etc / apache2 / mods-enabled / * | Weniger
Ein weiterer nützlicher Befehl ist Schwanz
, die erstellt wird, um den letzten Teil der Dateien auszugeben. Dieser Befehl eignet sich hervorragend zum Durchsehen von Protokollhistorien. Standardmäßig druckt dieser Befehl die letzten 10 Zeilen, und Sie können diese Zahl mit ändern -n
Parameter.
tail /var/log/apache2/error.log tail -n 25 /var/log/apache2/error.log
Wenn Sie jedoch beispielsweise eine Reihe von Protokolldateien haben, benötigen Sie etwas Stärkeres, um eine korrekte Suche durchzuführen. So etwas wie grep
-ein Programm, das aus der Standardeingabe liest, jede Zeile anhand eines Musters prüft und die Zeilen, die diesem Muster entsprechen, in die Standardausgabe schreibt. Durch die Verwendung in Kombination mit Katze
und Pipelines erhalten Sie, was Sie wollen.
Wenn Sie Textzeilen der Ausgabe filtern möchten, können Sie das verwenden grep
Befehl:
Grep-Mitteilung /var/log/apache2/error.log cat /var/log/apache2/*.log | Grep "Herunterfahren"
Wie du siehst, grep
ist gut für den Einsatz in Rohrleitungen. In diesem Beispiel gibt der letzte Befehl alle Zeilen aus, die die Zeichenfolge "Herunterfahren" aus Protokolldateien enthalten.
Wenn Sie Textdateien im Konsolenmodus bearbeiten möchten, können Sie einen der drei beliebtesten Texteditoren verwenden:
Vergleichen Sie sie und treffen Sie Ihre Wahl:
nano /var/log/apache2/error.log vim /var/log/apache2/error.log Mcedit /var/log/apache2/error.log
Manchmal müssen Sie einige Daten auf Ihrem Server sichern oder komprimieren.
Die gebräuchlichsten Archivierungsprogramme sind Teer
und Postleitzahl
. Beachten Sie, dass die Postleitzahl
Der Befehl ist möglicherweise nicht standardmäßig auf Ihrem Server installiert.
Sie können ein Archiv mit den folgenden Befehlen erstellen:
tar -zcvf Archivname.tar.gz Verzeichnis-oder-Dateiname tar -jcvf Archivname.tbz2 Verzeichnis-oder-Dateiname zip Archivname.zip Verzeichnis-oder-Dateiname
Wenn Sie nur eine Liste der Dateien im Archiv anzeigen möchten, können Sie das verwenden -l
Option für beide Teer
und entpacken
:
tar -ztvf Archivname.tar.gz tar -jtvf Archivname.tbz2 unzip -l Archivname.zip
Oder extrahieren Sie einige Quelldateien:
tar -zxvf Archivname.tar.gz tar -jxvf Archivname.tbz2 zip Archivname.zip
Wenn Sie möchten, dass Ihre Skripts regelmäßig ausgeführt werden, müssen Sie das Cron-Dienstprogramm verwenden, das von einer cron-Tabelle gesteuert wird. Diese Konfigurationsdatei gibt an, dass die Shell-Befehle nach einem bestimmten Zeitplan periodisch ausgeführt werden. Und der Befehl zur Pflege von Cron-Tabellen lautet Crontab
.
Crontab mit Option aufrufen -l
zeigt Ihren cron-Tisch.
Auch die -u
Mit dieser Option können Sie den Namen des Benutzers angeben, dessen Crontab verwendet wird. Wenn Sie Aufgaben Ihrer Webanwendung ausführen, ist es besser, Crontab für Benutzer www-data zu bearbeiten.
user @ server: ~ $ sudo crontab -lu www-data # mh dom mon dow befehl * / 5 * * * * php5 / var / www / yii do / task >> /var/www/tasks.log 00 15 * * 1-5 /var/www/backuper.sh
In dieser Ausgabe können Sie ein Beispiel einer cron-Tabelle betrachten. Wie Sie sehen, ist jede Zeile nach Minute, Stunde, Tag des Monats, Monats und Wochentags geplant. Jedes Feld kann ein Stern sein, dh jeder Wert des Feldes. Sie können Sets und Bereiche auch mit Kommas und Bindestrichen verwenden. Wenn Sie einem Bereich mit einem Schrägstrich folgen, werden Sprünge des Zahlenwerts durch den Bereich angegeben. In diesem Beispiel wird der erste Befehl alle fünf Minuten ausgeführt, und der zweite Befehl wird von Montag bis Freitag um 15:00 Uhr ausgeführt.
Um diese Liste zu bearbeiten, führen Sie crontab mit der -e
Schlüssel statt -l
. Die Cron-Liste wird in Ihrem Standardeditor geöffnet. Verwenden Sie die -r
Option zum Löschen der Cron-Liste.
Befehl oben Zeigt Systemzusammenfassungsinformationen an und bietet eine dynamische Echtzeitansicht der laufenden Systemprozesse. Drücken Sie Umschalttaste-M
Prozesse nach Speicherbelegung sortieren oder Umschalttaste-P
nach CPU-Auslastung sortieren.
top - 21:33:02 308 Tage, 21:24, 1 Benutzer, durchschnittlich: 0,00, 0,01, 0,05 Aufgaben: 87 insgesamt, 1 Laufen, 86 Schlafen, 0 gestoppt, 0 Zombie% Cpu (s): 0,3 us , 0,0 sy, 0,0 ni, 99,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 501800 insgesamt, 471348 verwendet, 30452 frei, 49672 Puffer KiB Swap: 4194300 insgesamt, 56192 verwendet, 4138108 frei. 149488 zwischengespeichert Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + BEFEHL 16269 www-data 20 0 348592 38884 12044 S 0.0 7.7 0: 02.42 php5 26533 www-data 20 0 409516 38488 24312 S 0.0 7.7 1: 00.04 php5- fpm 1076 mysql 20 0 887824 32748 1616 S 0.0 6.5 276: 46.59 mysqld 862 syslog 20 0 256612 31428 368 S 0.0 6.3 32: 45.88 rsyslogd 18901 root 20 0 105632 4316 3248 S 0.0 0.9 0: 00.04 sshd 25393 wshw-data 20 0 87356 4312 1564 S 0,0 0,9 4: 46,92 Nginx 27846 Memcache 20 0 328464 3828 252 S 0,0 0,8 1: 04,30-Memcache
Um die Menge des freien und verwendeten Speichers im System anzuzeigen, verwenden Sie die kostenlos
Befehl. Ergänzen Sie die -h
Option zur Anzeige von Ausgabefeldern in einem für Menschen lesbaren Format.
user @ server: ~ $ free -h insgesamt verwendete freie gemeinsam genutzte Puffer zwischengespeichert Mem: 490M 453M 36M 23M 46M 140M - / + Puffer / Cache: 265M 224M Swap: 4.0G 54M 3.9G
Ein weiterer nützlicher Befehl ist df
, Dies ist ein Befehl zum Melden des Festplattenspeicherplatzes im Dateisystem. Sie können es mit aufrufen -ein
Option, um alle Dateisysteme Ihres Servers anzuzeigen. Vergessen Sie auch nicht das -h
Option für ein vom Menschen lesbares Format.
user @ server: ~ $ df -ah Dateisystemgröße Verwendet Verwendet% Mounten auf / dev / vda1 20G 6.3G 13G 34% / udev 235M 4.0K 235M 1% / dev tmpfs 50M 344K 49M 1% / run
Du kannst den ... benutzen !!
Befehl, um den vorherigen Befehl zu wiederholen, oder verwenden Sie Sudo !!
wenn Sie vergessen haben, einen Befehl mit auszuführen Sudo
.
user @ server: / var / www $ chmod 777 log chmod: Ändern der Berechtigungen für 'log': Vorgang nicht zulässig user @ server: / var / www $ sudo !! sudo chmod 777 log
Wenn Sie die Syntax von Befehlen vergessen haben oder faul sind, wenn Sie eine große Befehlsabfrage eingeben, können Sie dies verwenden Geschichte
um Ihren Befehlsverlauf anzuzeigen. Es ist gut, diesen Befehl mit Strings-Filterbefehlen wie zu kombinieren grep
, Schwanz
und andere, um genau das zu finden, was Sie möchten.
Geschichte | Schwanzgeschichte | grep crontab geschichte | egrep -i 'ssh | ftp'
Die Verwendung der Konsole ist keine Hexerei. Unix- und Linux-Systeme sind aufgrund ihres einfachen Designs und ihrer guten Dokumentation leicht zu verstehen und zu verwenden. Ich hoffe, dieser Artikel macht Sie mit der Befehlszeile ziemlich vertraut und bringt Sie zur nächsten Stufe der Verwaltung Ihrer Webanwendungen über die Befehlszeile.
Wenn Sie Fragen haben oder Ihre bevorzugten Konsolenbefehle teilen möchten, zögern Sie nicht, einen Kommentar unter dem Artikel zu hinterlassen.