Upload
mayflower-gmbh
View
3.413
Download
2
Embed Size (px)
Citation preview
Mayflower GmbH I 2
RTFM
Mayflower GmbH I 3
Bash - Umleitungen
> leitet die Ausgabe in eine Datei um< holt die Eingabe aus einer Datei| leite die Ausgabe an ein weiteres Kommando>> hängt die Ausgabe an eine Datei an<<2> leitet die Fehlerausgabe um2>&1 leitet die Fehlerausgabe in die Standardausgabe( ) kapselt eine Subshell` `
ermöglicht Eingabe über ein Here-Dokument wie in PHP
(Backticks) kapseln einen Befehl dessen Ausgabe direkt als Kom-mandozeilenargument verwendet wird
Umleitungen und Datenfluss bei Verknüpfungen
Mayflower GmbH I 4
Beispiele: Umleitungen
Beispiele zu Umleitungen
ls | wc -l
Zählt die Dateien im aktuellen Verzeichnis
find 2>&1 | grep „.php“ > phpfiles.txt
Leitet die Fehler- und Standardausgabe weiter an grep. Der ganze Befehl erstellt eine Liste von PHP-Dateien (ja, das geht auch einfacher)
Mayflower GmbH I 5
Bash - History
Die History kann auf verschiedene Weise bedient werden. Am schnellsten geht das mit dem Expansionssymbol (normalerweise '!')
I !$wird zum letzten Argument des vorigen Befehls
I !!wiederholt das letzte Kommando (kombinierbar)
I !?sucht nach einem String in der History
I ^string1^string2^ersetzt string1 mit string2 im vorhergehenden Kommando
I :pam Ende des Kommandos verhindert Ausführung
I :gs/string1/string2/ersetzt string1 mit string2, aus beliebigem Historyeintrag
Mayflower GmbH I 6
Beispiele: History
vi config.php
svn diff !$
^diff^commit
tar tzvf datei.tgz
^tz^xz
Mayflower GmbH I 7
Beispiele: History II
cp /www/htdocs1/datei1.php /www/htdocs2/datei1-foo.php
!!:gs/datei1/datei2/
!!:gs/datei2/datei3/
Drei Dateien nach dem selben Muster kopieren
Mayflower GmbH I 8
Tools
I wcZählt Zeichen, Wörter und Zeilen. Mit -l werden nur Zeilen gezählt
I fmtFormatiert (Plain-)Texte – Zeilenumbrüche, Absätze, etc
I cat / tacAusgabe von Dateien vorwärts und rückwärts
I psZeigt Prozesse an. Mit Optionen axuw erwischt man alle Prozesse
Mayflower GmbH I 9
Tools II
I head / tailAnzeige von Beginn oder Ende einer Datei, -f bei tail fortlaufend
I cutSpaltenweise Ausfiltern der Eingabe anhand von einem Trennzeichen
cut -d “:” -f 1 /etc/passwd
Zeigt alle (lokalen) Nutzername des Systems an
I xargsÜbergibt Eingabe als Reihe von Parametern an ein Kommando
find -name ”*php“ | xargs grep ”require“
grept nach „require“ in allen PHP-Dateien
Mayflower GmbH I 10
Tools III
I sortsortiert zeilenweise
I uniqentfernt doppelte aufeinanderfolgende Zeilen
I bcKommandozeilen-Taschenrechner
I odOktal/Hexadezimaler Dump
I seqErzeugt Reihe von Zahlen
Mayflower GmbH I 11
Grep
grep steht kurz für “Global Regular Expression Parser“ - Suche nach Eingabemustern die auf reguläre Ausdrücke passen. Statt der Standardeingabe kann auch eine Liste von Dateien übergeben werden
I Nützliche Optionen· -i (case insensitive)· -l (nur Dateiname zeigen)· -c (count)· -r (rekursiv)· -A/-B-/C <num> Anzahl Zeilen Kontext· -E “extended“ ermöglicht Alternativen
Mayflower GmbH I 12
Beispiele: Grep
I ps uxaw | grep “http“ | grep -v “grep”finde alle Prozesse mit “http” im Pfad
I find -type d | grep -v “\.svn”finde Verzeichnisse die nicht “.svn“ im Pfad enthalten
I grep -E “(include|require)“ *.phpsuche alle Zeilen mit include oder require in den PHP-Dateien des aktuellen Verzeichnis
Mayflower GmbH I 13
Find
Finden von Dateien zur Weitergabe an andere Tools
I find /www/ -name “*.php“
Zeigt alle PHP-Dateien unterhalb von /www an (-iname für case insensitive Suche)
I find /www/ -type d \( -name CVS -o -name SVN \) \-exec safe-rm -r {} \;
sucht alle Verzeichnisse namens CVS oder SVN und löscht diese
Mayflower GmbH I 14
Beispiele: Find
I find . -newer <Dateiname> -print
Zeigt alle Dateien, die editiert wurden, nachdem Dateiname zum letzten mal editiert wurde
I find -name “*.sql“ | xargs rm
Sucht alle Dateien die auf .sql enden und übergibt sie an rm als Kommandozeilenargument
Mayflower GmbH I 15
Sed
I Mächtiges Werkzeug zur Textmanipulation
I Agiert zeilenweise
I Versteht Reguläre Ausdrücke
I sed -e 's/foo/bar/' datei.txt
Ersetzt in der Datei auf jeder Zeile jeweils das erste foo mit barund gibt das Ergebnis aus.
Mayflower GmbH I 16
Beispiele: Sed
Es geht auch komplizierter:
sed -e 's/</\n</g' *.html | \grep '^<a' | \sed -e 's/.*href=“\([^“]*\)“.*/\1/' \grep -v '^<a'
(...und das ist noch nicht das Ende der Fahnenstange)
Mayflower GmbH I 17
AWK
I „AhWehKah“ (Aho-Weinberger-Kernighan)
I Stream-basiert
I Beginnt, wo Sed nicht mehr ausreicht
I Jede Regel hat ein Muster
I Pro Zeile wird die Regel ausgeführt, deren Muster passt
Mayflower GmbH I 18
Beispiele: AWK
I ls -l | awk '{print $6 “ “ $7 “ “ $8 “ “ $9 “ “ $5}'
Besseres „cut“, hier wird unabhängig von der Anzahl der Leerzeichen immer die selbe Spalte ausgegeben – konkret hier Datum, Uhrzeit, Dateiname und danach Dateigrösse
I awk 'BEGIN{ printf(“%i\n“,0x37ab); }'
Einfach nur mal 0x37ab in dezimal ausgeben
Mayflower GmbH I 19
Beispiele: AWK II
I ls -l | awk '
BEGIN{ x=0; }
{ x+=$5; }
END{ printf(„x is %s\n“,x); }'
Zusammenzählen der Dateigrössen im aktuellen Verzeichnis
Mayflower GmbH I 20
Vi
I Überall verfügbar
I Schnelles, ressourcenschonendes Editieren
I Mächtige Kommandos für Textersetzungen
Mayflower GmbH I 21
Screen
I „Container“ für Shells
I Session nicht an Verbindung geknüpft
I Schnelles wechseln von Tasks
I Arbeiten auf mehreren Rechnern
I Teilen des sichtbaren Bereichs
29.07.2011 Mayflower GmbH 22
Vielen Dank für Ihre Aufmerksamkeit!
Referent Martin Brotzeller
+49 931 35965 16
Mayflower GmbH
Pleichertorstr. 2
97070 Würzburg