Obwohl man als Software-Entwickler sein Zeit zumeist im PHP- oder HTML-Code und in PHPStorm oder einer anderen IDE unterwegs ist, kommt man gelegentlich in die Verlegenheit, die Software localhost, auf einem Testserver oder sogar im Produktiv-System zum Laufen zu bekommen und ggf. zu Debuggen. Hierbei spart es häufig extrem viel Zeit, sich auf die Konsolen-Ebene zu begeben und mit ein paar grundlegenden Befehlen zu operieren.
Meine Konsolen-Empfehlungen:
Windows:
- Console2 – super für lokale Arbeit
- kiTTY – ein besserer Nachfolger von Putty, üblicherweise bei remote SSH Servern benutzt
- Windows PowerShell – eigentlich ein furchtbares Tool, aber von den Befehlen her am nächsten an denen von Linux dran
Ubuntu:
- LXTerminal
- bash
- xTerm-256color
Mac:
- Terminal
- iTerm2
Befehle
Die Befehle funktionieren in der Regel auf allen Webservern oder in Docker Umgebungen mit Linux oder iOS Betriebssystem. In der Windows Eingabeaufforderung oder PowerShell sind die Befehle oft anders. Wo es mir bekannt war, habe ich einen Hinweis zum Windows-Equivalent ergänzt.
Die Befehle sind hier nur kurz beschrieben. Im Web finden sich zahlreiche Dokumentationen und Anwendungsbeispiele. Am besten sucht man nach „ssh [Befehl]“, um zielgerichtete Treffer zu finden. Zum Beispiel „ssh copy“.
Oder man lässt sich direkt im Terminal die Hilfe zum jeweiligen Befehl ausgeben,, indem man „help“ hinter das Kommando schreibt.
copy help
.
cat
Gibt den Inhalt einer Variable oder Datei aus – sehr nützlich, wenn man sich mal eben kurz eine Datei ansehen möchte, ohne sie runterzuladen. cat index.php
Siehe auch tail
.
copy
Kopiert eine Datei oder einen Ordner.
copy meinedatei.php meinedatei_backup.php
legt eine Backup-Kopie der Datei an.
crontab
Mit crontab -e
kann man üblicherweise auf Webservern die Cronjobs konfigurieren.
cd
Der change directory Befehl wechselt in ein anderes Verzeichnis. Dabei kann ich relativ in ein Unterverzeichnis des aktuellen Ordners gehen cd modules/fc/
oder absolut vom Hauptverzeichnis des Systems aus cd /var/www/htdocs/modules/fc/
.
Mit cd ..
navigiere ich eine Ebene höher.
df
Gibt eine Übersicht über die Festplattenauslastung des Systems aus.
Noch übersichtlicher wird es mit df -h
du
Mit dem Befehl kann man den Festplattenverbrauch im aktuellen Verzeichnis ausgeben. Die Parameter du -hs /var/www/html/out/pictures/
zeigen die Größe des Bilderordners übersichtlich an.
head
head google.csv
zeigt die ersten Zeilen der Datei an.
Siehe auch tail
.
ls
Listet alle Dateien im Verzeichnis auf, in dem man sich gerade befindet. Wird der Befehl ohne zusätzliche Parameter eingegeben, ist das ziemlich unübersichtlich. ls -al
ist prima, um eine ordentliche Ansicht zu bekommen.
(Windows Equivalent: dir
)
mkdir
Der make-directory Befehl erzeugt ein Verzeichnis. mkdir /var/www/htdocs/tmp
erzeugt das Verzeichnis „tmp“.
mv
Mit dem move-Befehl kann man Dateien oder Ordner verschieben oder umbenennen. mv oxideshop.log oxideshop_old.log
benennt das Logfile um. mv oxideshop.log archive/oxideshop.log
verschiebt das Logfile in den Unterordner „archive“.
php
Ist PHP installiert, starte ich damit einen PHP-Prozess. Mit php exportscript.php
z.B. kann ich einen Export starten.
Mit php -r 'echo date();'
kann ich direkt ein PHP-Kommando ausführen.
Manchmal muss man den gesamten Pfad zum PHP-Binary mit angeben, z.B. /usr/local/php7.1/bin/php exportscript.php
.
ps
Das ist zum Anzeigen der laufenden Prozesse auf dem Server da. ps -aux
gibt eine schöne Übersicht.
Darin kann man z.B. sehen, welche Cronjobs gerade laufen, und wie viele Ressourcen sie verbrauchen.
pwd
Oft verliert man die Orientierung, in welchem Verzeichnis man sich gerade befindet.
Der Befehl pwd
gibt den aktuellen Verzeichnis-Pfad aus.
rm
Gegenstand vieler Nerd-Witze und mit den falschen Rechten äußerst gefährlich, da man mit einem Befehl den ganzen Server löschen kann. Sowohl aus Versehen, als auch mit Absicht. Der Befehl ist zum Löschen von Dateien da.
Mit rm oxideshop.log
lösche ich das Logfile im aktuellen Verzeichnis.
Mit rm *.png
lösche ich alle PNG Dateien im aktuellen Verzeichnis.
Mit rm -r /var/www/htdocs/
lösche ich rekursiv alle Dateien und Unterverzeichnisse des htdocs-Ordners – also auch mal einen ganzen Shop mit einem Befehl.
Mit dem zusätzlichen Parameter -f
überspringe ich die nervigen „wollen Sie wirklich löschen“ Nachfragen.
(Windows Equivalent: erase
)
strg + c
Eher eine Tasten-Kombination als ein Befehl. Jedenfalls kann man damit jeden Befehl, der gerade ausgeführt wird, abbrechen, wenns mal wieder länger dauert.
Zum Beispiel ein PHP-Script, welches man mit php meinscript.php
gestartet hat.
top
top -c
ist eine tolle Hilfe bei der Performance-Beobachtung eines Servers. Der Befehl erzeugt eine sich ständig aktualisierende Anzeige, wieviel RAM und CPU gerade verbraucht werden und welcher Prozess wieviel davon benötigt.
Beenden mit strg + c
.
tail
Gibt den Schwanz bzw. das Ende einer Datei aus.
Zum Beispiel die letzten 10 Zeilen eines Logfiles mit tail -n10 oxideshop.log
.
Mit tail -f oxideshop.log
kann man Realtime zusehen, was gerade ins Logfile geschrieben wird.
Beenden mit strg + c
. tail
ist das Gegenteil von head
.
wget
Dieser Befehl wird genutzt, um eine URL aufzurufen und den Inhalt herunterzuladen. Beispielsweise geeignet zum Download größerer Dateien von einem anderen Server.wget https://meinshop.de/export/Datenbankdump.sql
Eränzt gerne Befehle, die Ihr wichtig findet, in den Kommentaren!