Wenn man mit Putty arbeitet, gibt es den ein oder anderen Befehlt der einem schnell viel Arbeit erspart. Hier mal ein Paar Befehle die ich häufig nutze:
Grundsätzliche Steuer-Kommandos
pwd
Zeigt an in welchem Verzeichnispfad man sich derzeit befindet.
cd ..
Bewirkt das man im Verzeichnispfad eine Ebene nach oben geht. ACHTUNG anders als bei DOS muss zwischen dem cd und den .. eine Leerstelle sein.
cd ordnername
Bewegt den Zeiger in das angegebene Verzeichnis.
ll
Gibt den Inhalt des aktuellen Ordners aus.
-m –max-depth=1 $*
Gibt eine Liste mit den Größen der Dateien und Ordner und der Gesamtgröße
mc
Öffnet den midnight commander, eine art Dateiexplorer mit “grafischer” Oberfläche.
Steuern kann man im mc mit den Pfeiltasten hoch uind runter. Zwischen dem linken und dem Rechten Fenster im mc kann man durch hineinklicken mit der Maus wechseln.
Durch drücken der Taste “Einfügen” (einfg) auf der Tastatur wird ein im mc angeklickter Ordner oder eine Datei als ausgewählt markiert.
F5 Taste drücken um den kopiervorgang zu starten.
rsync Befehle
rsync -rtlv --bwlimit=5000 --exclude="templates_c/*" --stats /var/www/targetfolder/ ssh-key@domain.tld:/var/www/targetfolder
Mit diesem Befehl lassen sich komplette Webseiten auf einen anderen Server kopieren. Dabei muss wenigstens einer der Server die SSH Schlüssel des anderen Servers kennen und akzeptieren.
webperm ~/vhost/kundenname/www.kundendomain.tld
Berechtigungen auf dem Server nach dem Kopieren mit rsync grade biegen
Grep Befehle
grep -r Suchstring *
Mit diesem Befehl durchsucht man alles ab dem Ort in dem man sich befindet nach dem Wert der in Suchstring angegeben wurde.
grep -r "String1" * | grep "String2"
Mit dieser Anfrage wird alles gesucht was String1 und String2 beinhaltet.
grep -r "String1" serchInThisFile.txt | grep "String2"
Hier würde nur die einzelne Datei durchsucht werden. Bei nutzung des * wird jede Datei durchsucht
Folder kopieren / erstellen
mkdir erstellt den Ordner, cp -r kopiert den angegebenen Ordnerinhalt in den angegebenen Zielordner.
mkdir 'folderpath_to_fill_with_folderpath_to_copy' cp -r 'folderpath_to_copy' 'folderpath_to_fill_with_folderpath_to_copy'
Mysql Befehle
Datenbank aus exportierter sql Datei in Datenbank importieren
mysql -u benutzername -h urlzur.database.tld -p datenbankname < dump.sql
Hier wird eine Verbindung zur Datenbank aufgebaut und die komplette Datenbank wird in die Datei ausgabedatei.sql geschrieben. ( Komplett Backup )
mysqldump -u benutzername -h urlzur.database.tld -p datenbankname > ausgabedatei.spl
Sollte man Probleme mit der Zeichenkodierung der DB Inhalte haben, zum Beispiel die Daten sind mit UTF-8 Kodiert, kann man beim dump der DAten die Kodierung mit angeben:
mysqldump -u benutzername -h urlzur.database.tld -p datenbankname --default-character-set=utf8 > result-sql-file.sql
Nano (Consolen-Texteditor) Befehle
nano pfad/file.type
Öffnet Datei im Nano Consolen Editor
tail Befehle
tail -f dateiname -n 40
Error log Dienst für kontinuierliche Ausgabe von Error Meldungne
-f steht für kontinuierlich ausführen
-n XX Anzahl der maximal ausgegebenen Zeilen
SVN
checkout
1. in den Ordner wechseln in den die Dateien geladen werden sollen.
2. dort svn checkout “PfadZumSVNTrunk”
2 A: Wenn der Ordner des SVN Projektes nicht mit erstellt werden soll muss hinter dem PfadZumSVNTrunk eine Leerstelle und ein . eingegeben werden.
Zip Archiv entpacken
Der folgende befehl entpackt ein zi auf dem Server.
unzip meinezipdateip.zip
Zip Archiv erstellen
Zuerst wechselt man mit cd Verzeichnis/Unterverzeichnis in das Verzeichnis wo sich der Ordner oder die Datei befindet die man Zippen möchte.
Mit dem Befehl:
zip -r output_zip_name.zip folder_or_filename
Wird das Zip Archiv erstellt.
Zip Archiv erstellen und dabei bestimmte Ordner excluden
mit dem Parameter -x ‘*/folder1/*’ -x ‘*/folder2/*’….. werden Verzeichnisse angegeben die nicht mit ins Zip sollen.
-x startet den Parameter
*/ ist ein Platzhalter und bedeutet das der Ordner in allen Ordnern gesucht werden soll, ab dem start Ordner
dann kommt der Ordner Name
*/ bedeutet das alle Dateien die sich in diesem Ordner befinden ausgeschlossen sind.
zip -r output_zip_name.zip folder_or_filename -x '*/folder1/*' -x '*/folder2/*'
das gleiche geht natürlich auch mit expliziten Dateien
zip -r output_zip_name.zip folder_or_filename -x '*/zu_excludierende_date.ext' -x '*/datei2.ext'
Hierbei würden die Datei “zu_excludierende_date.ext” und “datei2.ext” nie mit ins Zip gepackt, egal in welchem Ordner sie sich befinden.
Möchte man die Datei nur in einem bestimmten Ordner ausschließen, kann man den Pfad genauer angeben:
zip -r output_zip_name.zip folder_or_filename -x '*/pfad1/unterordner1/zu_excludierende_date.ext' -x '*/pfad2/unterordner1/datei2.ext'
Im Beispiel würden nur die Datei im Ordner “*/pfad1/unterordner1/” und die Datei im Ordner “*/pfad2/unterordner1/” ausgeschlossen.
Gesplittete Zip erstellen, zum Beispiel für das Brennen von riesigen Archiven auf DVD:
zip -r outputname.zip target2zip -s 4.5GB -x '*/folderexclude1/*'
Dateien suchen
Bei der Angabe zum Filename kann man mit dem + einen Platzhalter angeben.
Beispiele:
“*test.php”: findet “test.php” und “abc_test.php” aber nicht “abc_test_1.php”
“test*.php”: findet “test.php” und “test_abc.php” aber nicht “abc_test_a.php” oder “abc_test.php”
“test.*“: findet “test.php” und “test.jpg” aber nicht “abc_test.php” oder test_abc.jpg”
find /the/path/to/the/folder/where/we/would/search/ -name "*thefilename*.*"
Liste der laufenden Prozesse ausgeben
ps aux
SSH in der cmd zum Server verbinden
ssh dein-benutzername@ip-oder-server-url
Den Befehl mit ENter bestätigen und dann das SSH Passwort eingeben wenn in der cmd die Aufforderung dazu erscheint.
Dateien von Server zu Server kopieren (SSH)
In der cmd lassen sich uch Dateien direkt von einem Server zumanderen übertragen. Folgender Befehlt kopiert die datei a.zip auf sever1 zum server2:
# auf server1 einloggen ssh dein-benutzername@server1.de # Passwort eingeben ... # a.zip über eine ssh Verbindung zu server2 senden scp a.zip my-ssh-username@server2_url_or_ip:ziel_ordner_pfad_auf_server2