SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Linuxtools für Developer


Martin Brotzeller I 28.07.2011




                                 © Mayflower GmbH 2011
RTFM


       Mayflower GmbH I 2
Bash - Umleitungen


Umleitungen und Datenfluss bei Verknüpfungen

     >      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
     <<     ermöglicht Eingabe über ein Here-Dokument wie in PHP
     2>     leitet die Fehlerausgabe um
     2>&1   leitet die Fehlerausgabe in die Standardausgabe
     ( )    kapselt eine Subshell
     ` `    (Backticks) kapseln einen Befehl dessen Ausgabe direkt als Kom-
            mandozeilenargument verwendet wird




                                                                              Mayflower GmbH I 3
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 4
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 :p
  am Ende des Kommandos verhindert Ausführung
I :gs/string1/string2/
  ersetzt string1 mit string2, aus beliebigem Historyeintrag




                                                                               Mayflower GmbH I 5
Beispiele: History



vi config.php

svn diff !$

^diff^commit




tar tzvf datei.tgz

^tz^xz




                     Mayflower GmbH I 6
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 7
Tools



I wc
  Zählt Zeichen, Wörter und Zeilen. Mit -l werden nur Zeilen gezählt



I fmt
  Formatiert (Plain-)Texte – Zeilenumbrüche, Absätze, etc



I cat / tac
  Ausgabe von Dateien vorwärts und rückwärts


I ps
  Zeigt Prozesse an. Mit Optionen axuw erwischt man alle Prozesse


                                                                       Mayflower GmbH I 8
Tools II


I head / tail
  Anzeige von Beginn oder Ende einer Datei, -f bei tail fortlaufend


I cut
  Spaltenweise 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 9
Tools III



I sort
  sortiert zeilenweise
I uniq
  entfernt doppelte aufeinanderfolgende Zeilen
I bc
  Kommandozeilen-Taschenrechner
I od
  Oktal/Hexadezimaler Dump
I seq
  Erzeugt Reihe von Zahlen


                                                 Mayflower GmbH I 10
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 11
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)“ *.php
  suche alle Zeilen mit include oder require in den PHP-Dateien des aktuellen
  Verzeichnis




                                                                                Mayflower GmbH I 12
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 13
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 14
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 bar
 und gibt das Ergebnis aus.




                                                                  Mayflower GmbH I 15
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 16
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 17
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(“%in“,0x37ab); }'

 Einfach nur mal 0x37ab in dezimal ausgeben




                                                            Mayflower GmbH I 18
Beispiele: AWK II



I ls -l | awk '

    BEGIN{ x=0; }

           { x+=$5; }

      END{ printf(„x is %sn“,x); }'


 Zusammenzählen der Dateigrössen im aktuellen Verzeichnis




                                                            Mayflower GmbH I 19
Vi



I Überall verfügbar
I Schnelles, ressourcenschonendes Editieren
I Mächtige Kommandos für Textersetzungen




                                              Mayflower GmbH I 20
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




                                         Mayflower GmbH I 21
Vielen Dank für Ihre Aufmerksamkeit!




      Referent   Martin Brotzeller
                 martin.brotzeller@mayflower.de
                 +49 931 35965 16
                 Mayflower GmbH
                 Pleichertorstr. 2
                 97070 Würzburg

29.07.2011                              Mayflower GmbH   22
Beispiel


Fragen?

           Mayflower GmbH I 23

Contenu connexe

En vedette

Goldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchen
Goldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchenGoldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchen
Goldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchenGoldmedia Group
 
BITKOM - Soziale Netzwerke in Deutschland
BITKOM - Soziale Netzwerke in DeutschlandBITKOM - Soziale Netzwerke in Deutschland
BITKOM - Soziale Netzwerke in DeutschlandJustRelate
 
Pregon para anunciar la cuaresma
Pregon para anunciar la cuaresmaPregon para anunciar la cuaresma
Pregon para anunciar la cuaresmairissubir
 
Hemorragias
HemorragiasHemorragias
HemorragiasIARM
 
Como se trabaja matemáticas con estudiantes con un
Como se trabaja matemáticas con estudiantes con unComo se trabaja matemáticas con estudiantes con un
Como se trabaja matemáticas con estudiantes con unadriloaiza
 
Historia de la tecnología
Historia de la tecnologíaHistoria de la tecnología
Historia de la tecnologíaLeidivalencia
 
Entrenamiento de perros
Entrenamiento de perrosEntrenamiento de perros
Entrenamiento de perrosarielech21
 
Crecimiento de las ciudades urbanismo
Crecimiento de las ciudades urbanismoCrecimiento de las ciudades urbanismo
Crecimiento de las ciudades urbanismo96101919150
 
Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...
Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...
Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...FABIS Sales Solutions GmbH & Co. KG
 
Bachelorpruefungszeugnis_klein
Bachelorpruefungszeugnis_kleinBachelorpruefungszeugnis_klein
Bachelorpruefungszeugnis_kleinTobias Schmidt
 
U8 t1 act_2_raul_mp
U8 t1 act_2_raul_mpU8 t1 act_2_raul_mp
U8 t1 act_2_raul_mpcoyotecosmic
 
Catalogo distribuidora la oriental (1)
Catalogo distribuidora la oriental (1)Catalogo distribuidora la oriental (1)
Catalogo distribuidora la oriental (1)Glendis Portillo
 
Inv novedades fiscales2014 zaragoza
Inv novedades fiscales2014 zaragozaInv novedades fiscales2014 zaragoza
Inv novedades fiscales2014 zaragozaAnna Forastier
 
Practica de mi ple
Practica de mi plePractica de mi ple
Practica de mi plemejiasarria
 
Recursos naturales
Recursos naturalesRecursos naturales
Recursos naturalesyady7750
 

En vedette (20)

Goldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchen
Goldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchenGoldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchen
Goldmedia blm web_tv_monitor 2010_vortrag_medientage_muenchen
 
BITKOM - Soziale Netzwerke in Deutschland
BITKOM - Soziale Netzwerke in DeutschlandBITKOM - Soziale Netzwerke in Deutschland
BITKOM - Soziale Netzwerke in Deutschland
 
MVODS
MVODSMVODS
MVODS
 
Pregon para anunciar la cuaresma
Pregon para anunciar la cuaresmaPregon para anunciar la cuaresma
Pregon para anunciar la cuaresma
 
Hemorragias
HemorragiasHemorragias
Hemorragias
 
Como se trabaja matemáticas con estudiantes con un
Como se trabaja matemáticas con estudiantes con unComo se trabaja matemáticas con estudiantes con un
Como se trabaja matemáticas con estudiantes con un
 
01 bloga sortu
01 bloga sortu01 bloga sortu
01 bloga sortu
 
Historia de la tecnología
Historia de la tecnologíaHistoria de la tecnología
Historia de la tecnología
 
Entrenamiento de perros
Entrenamiento de perrosEntrenamiento de perros
Entrenamiento de perros
 
Crecimiento de las ciudades urbanismo
Crecimiento de las ciudades urbanismoCrecimiento de las ciudades urbanismo
Crecimiento de las ciudades urbanismo
 
Seminario 5
Seminario 5Seminario 5
Seminario 5
 
Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...
Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...
Rollen und Rechte, Zugriffskonzept in der Userverwaltung im CRM für Homeoffiv...
 
Bachelorpruefungszeugnis_klein
Bachelorpruefungszeugnis_kleinBachelorpruefungszeugnis_klein
Bachelorpruefungszeugnis_klein
 
U8 t1 act_2_raul_mp
U8 t1 act_2_raul_mpU8 t1 act_2_raul_mp
U8 t1 act_2_raul_mp
 
Catalogo distribuidora la oriental (1)
Catalogo distribuidora la oriental (1)Catalogo distribuidora la oriental (1)
Catalogo distribuidora la oriental (1)
 
Inv novedades fiscales2014 zaragoza
Inv novedades fiscales2014 zaragozaInv novedades fiscales2014 zaragoza
Inv novedades fiscales2014 zaragoza
 
secuencias
secuenciassecuencias
secuencias
 
Practica de mi ple
Practica de mi plePractica de mi ple
Practica de mi ple
 
Reloj flotante
Reloj flotanteReloj flotante
Reloj flotante
 
Recursos naturales
Recursos naturalesRecursos naturales
Recursos naturales
 

Similaire à Linuxtools fuer Developer

FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtFMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtVerein FM Konferenz
 
An Introduction to Ruby
An Introduction to RubyAn Introduction to Ruby
An Introduction to RubyJonathan Weiss
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Nane Kratzke
 

Similaire à Linuxtools fuer Developer (6)

FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtFMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
 
An Introduction to Ruby
An Introduction to RubyAn Introduction to Ruby
An Introduction to Ruby
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
Unixkurs 06 - Shellskripte
Unixkurs 06 - ShellskripteUnixkurs 06 - Shellskripte
Unixkurs 06 - Shellskripte
 
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 

Plus de Mayflower GmbH

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: SecurityMayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftMayflower GmbH
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientMayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingMayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyMayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming MythbustersMayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im GlückMayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefernMayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsMayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalierenMayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastMayflower GmbH
 

Plus de Mayflower GmbH (20)

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Usability im web
Usability im webUsability im web
Usability im web
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
 

Linuxtools fuer Developer

  • 1. Linuxtools für Developer Martin Brotzeller I 28.07.2011 © Mayflower GmbH 2011
  • 2. RTFM Mayflower GmbH I 2
  • 3. Bash - Umleitungen Umleitungen und Datenfluss bei Verknüpfungen > 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 << ermöglicht Eingabe über ein Here-Dokument wie in PHP 2> leitet die Fehlerausgabe um 2>&1 leitet die Fehlerausgabe in die Standardausgabe ( ) kapselt eine Subshell ` ` (Backticks) kapseln einen Befehl dessen Ausgabe direkt als Kom- mandozeilenargument verwendet wird Mayflower GmbH I 3
  • 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 4
  • 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 :p am Ende des Kommandos verhindert Ausführung I :gs/string1/string2/ ersetzt string1 mit string2, aus beliebigem Historyeintrag Mayflower GmbH I 5
  • 6. Beispiele: History vi config.php svn diff !$ ^diff^commit tar tzvf datei.tgz ^tz^xz Mayflower GmbH I 6
  • 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 7
  • 8. Tools I wc Zählt Zeichen, Wörter und Zeilen. Mit -l werden nur Zeilen gezählt I fmt Formatiert (Plain-)Texte – Zeilenumbrüche, Absätze, etc I cat / tac Ausgabe von Dateien vorwärts und rückwärts I ps Zeigt Prozesse an. Mit Optionen axuw erwischt man alle Prozesse Mayflower GmbH I 8
  • 9. Tools II I head / tail Anzeige von Beginn oder Ende einer Datei, -f bei tail fortlaufend I cut Spaltenweise 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 9
  • 10. Tools III I sort sortiert zeilenweise I uniq entfernt doppelte aufeinanderfolgende Zeilen I bc Kommandozeilen-Taschenrechner I od Oktal/Hexadezimaler Dump I seq Erzeugt Reihe von Zahlen Mayflower GmbH I 10
  • 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 11
  • 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)“ *.php suche alle Zeilen mit include oder require in den PHP-Dateien des aktuellen Verzeichnis Mayflower GmbH I 12
  • 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 13
  • 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 14
  • 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 bar und gibt das Ergebnis aus. Mayflower GmbH I 15
  • 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 16
  • 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 17
  • 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(“%in“,0x37ab); }' Einfach nur mal 0x37ab in dezimal ausgeben Mayflower GmbH I 18
  • 19. Beispiele: AWK II I ls -l | awk ' BEGIN{ x=0; } { x+=$5; } END{ printf(„x is %sn“,x); }' Zusammenzählen der Dateigrössen im aktuellen Verzeichnis Mayflower GmbH I 19
  • 20. Vi I Überall verfügbar I Schnelles, ressourcenschonendes Editieren I Mächtige Kommandos für Textersetzungen Mayflower GmbH I 20
  • 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 Mayflower GmbH I 21
  • 22. Vielen Dank für Ihre Aufmerksamkeit! Referent Martin Brotzeller martin.brotzeller@mayflower.de +49 931 35965 16 Mayflower GmbH Pleichertorstr. 2 97070 Würzburg 29.07.2011 Mayflower GmbH 22
  • 23. Beispiel Fragen? Mayflower GmbH I 23