SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Shell-Fu for Developers


Franz Pletz I 15. September 2011




                                   © Mayflower GmbH 2011
Kung Fu?




Quelle: http://www.flickr.com/photos/stopherjones/707077871/
                                                               Mayflower GmbH I 2
Shell Fu!




Quelle: http://www.flickr.com/photos/tom_focus/5710555681/
                                                             Mayflower GmbH I 3
Ziele



I Sehr subjektiver Vortrag ;-)
I Aus meinem Linux-Sysadmin Alltag ein paar nützliche Tools und
     Tipps vorstellen
I In der Shell sind fast alle Dinge viel schneller erledigt, als mit jeder
      general purpose GUI
I Ihr sollt mehr Console benutzen!!!!11elf1




                                                                       Mayflower GmbH I 4
Die Shell – first things first



I Tipp: zsh
     Zum Anfang Config von grml: http://grml.org/zsh/
I Viele nützliche Features von bash, ksh, tcsh und eigene, z.B.
     Globbing: Negierung, Grouping, Ranges
     Directory Stacking: pushd, popd, AUTOPUSHD
     Process Substitution: =()
     Erweiterte Command Line Editing und Completion
I Egal welche Shell man nutzt, Manpage komplett lesen und nach
  eigenen Vorlieben konfigurieren!



                                                                  Mayflower GmbH I 5
vim/emacs – Dateien editieren mit Style



I Tipp: Münzwurf um sich zwischen vim oder emacs zu entscheiden
     Vergleich beider Editoren am besten gar nicht anfangen
     Religionskriege!
I Mindestens eine Woche Zeit nehmen, einarbeiten und benutzen!
    Painful, aber schnelleres editieren garantiert




                                                             Mayflower GmbH I 6
most – more or less enhanced pager



I Pager: Langen Text in Console als Seiten anzeigen
     more: einfacher Pager
     less: more mit forward/backward, vi Keybindings
I Features
     Windows!
     Binary Files
     Line Wrapping




                                                       Mayflower GmbH I 7
pgrep & pkill – Prozesse brauchen Pflege



I Wer kennt das nicht? ps aux | grep foo
    Probleme: nicht weiterverwendbar, taucht selbst in Liste auf
I $ pgrep zsh
    3145
    3148
    3174
I Weitere Optionen zum filtern nach z.B.
    -u, -g         User & Gruppen
    -n, -o         newest, oldest
I pkill mit gleichen Parametern als Alternative zu killall


                                                                   Mayflower GmbH I 8
ack – Das bessere grep



I Komplett in Perl geschrieben, auf Suche in Quellcode optimiert
I Schneller, da nur Source Code Files durchsucht werden
     Keine VCS-Verzeichnisse, Backup-Files, Core Dumps etc.
I Angabe von Dateitypen einfach
    $ ack –-php --js
I Syntax Highlighting!
I Viele GNU grep Parameter werden supportet
I 25% weniger Zeichen zu tippen!
I http://betterthangrep.com/

                                                                   Mayflower GmbH I 9
ack – Das bessere grep (2)




                             Mayflower GmbH I 10
pv – stalking the pipes



I Verlauf von Daten durch Pipes beobachten
I $ tar c dir | pv | nc fnordhost 2342
    64kB 0:00:00 [71.4MB/s] [ <=>                          ]
I Viele Optionen, z.B.
     -p       Progress Bar anzeigen
     -r       Datenrate anzeigen
     -a       durchschnittliche Datenrate anzeigen
     -s BYTES Dateigröße angeben
     -L RATE Datenrate begrenzen
     -R PID Commandline eines laufenden pv modifizieren


                                                          Mayflower GmbH I 11
ngrep – Grepping Network Traffic



I Wireshark ist toll, aber oft einfach Overkill
I # ngrep -W byline "^(GET|POST) .*"
    Mal schnell alle GET und POST Requests anzeigen
I # ngrep -q -W byline "search" host
  www.google.com and port 80
    Alle Google-Suchanfragen ausgeben




                                                      Mayflower GmbH I 12
curl – HTTP Magic for the masses



I $ curl ifconfig.me
    88.217.134.114
I $ curl -s -I nyan.cat | head -n1
    HTTP/1.1 200 OK
    Nur die Headers bitte!
I $ curl -c cookies.txt -H "User-Agent:
  Mozilla/5.0" -F
  "name=test;photo=@lolcat.jpg"
  mysocialnetwork.com/profile
    Cookies, Headers, Formularfelder, Dateiupload!




                                                     Mayflower GmbH I 13
openssh – fun with remote servers



I Der openssh Client hat eine Config-File: ~/.ssh/config
     Man kann Optionen global oder auf Host-Basis festlegen
I Connection Sharing
    ControlMaster auto
    ControlPath /tmp/ssh-%h-%p-%r
I Hostname Aliases, Local Forwards
    Host dev
        HostName dev.foobar.de
        LocalForward 5433 localhost:5432
I Restriktive Proxies bezwingen (sshd auf Port 443)
     ProxyCommand corkscrew proxy.org 8080 %h %p

                                                              Mayflower GmbH I 14
git – git it up



I Pull mit rebase statt merge
      $ git pull –rebase
      oder
      $ git config branch.master.rebase true
I Letzter Commit mit Message Regex Matching
      $ git show :/fix
      $ git show :/^Merge
I Einfaches Tracking von Remote Branches
      $ git checkout -t origin/feature




                                               Mayflower GmbH I 15
git – git it up (2)



I $ git log --oneline --decorate




                                   Mayflower GmbH I 16
git – git it up (3)



I $ git diff --word-diff




                           Mayflower GmbH I 17
tmux – modern terminal multiplexing



I Prinzip: mehere Terminals in einem darstellen, wie GNU screen
I Features:
     Client/Server-Modell
     Transfer/Linking von Terminals in andere Sessions
     Copy/Paste mit mehreren Buffers
     Windows mit horizontal und vertikal splitten
     Freies verschieben, resizen oder einpassen in Layouts
     Terminal Locking
     Gute Dokumentation
I Quickstart fuer screen-User: Ctrl+B statt Ctrl+A ;-)
I http://tmux.sourceforge.net/
                                                              Mayflower GmbH I 18
Fragen?
Quelle: http://www.flickr.com/photos/ericarhiannon/3591044454/
                                                                      Mayflower GmbH I 19
Vielen Dank für eure Aufmerksamkeit!




      Kontakt   Franz Pletz
                franz.pletz@mayflower.de
                +49 89 242054 1173
                Mayflower GmbH
                Mannhardtstrasse 6
                80538 München


29.09.11                             Mayflower GmbH   20

Contenu connexe

Tendances

DevOps für PHP (und andere)
DevOps für PHP (und andere)DevOps für PHP (und andere)
DevOps für PHP (und andere)Mayflower GmbH
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenB1 Systems GmbH
 
PHAR better Tools
PHAR better ToolsPHAR better Tools
PHAR better ToolsPHP in DD
 
PHP 5.3 - da war doch was?
PHP 5.3 - da war doch was?PHP 5.3 - da war doch was?
PHP 5.3 - da war doch was?Benjamin Josefus
 
Coffee Backone Introduction
Coffee Backone IntroductionCoffee Backone Introduction
Coffee Backone IntroductionTino Isnich
 
Mehrsprachiges Blog
Mehrsprachiges BlogMehrsprachiges Blog
Mehrsprachiges Blogcarmepla
 
Backendlayout mit FLUID-Templates
Backendlayout mit FLUID-TemplatesBackendlayout mit FLUID-Templates
Backendlayout mit FLUID-TemplatesMarcus Schwemer
 

Tendances (8)

DevOps für PHP (und andere)
DevOps für PHP (und andere)DevOps für PHP (und andere)
DevOps für PHP (und andere)
 
Test
TestTest
Test
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
 
PHAR better Tools
PHAR better ToolsPHAR better Tools
PHAR better Tools
 
PHP 5.3 - da war doch was?
PHP 5.3 - da war doch was?PHP 5.3 - da war doch was?
PHP 5.3 - da war doch was?
 
Coffee Backone Introduction
Coffee Backone IntroductionCoffee Backone Introduction
Coffee Backone Introduction
 
Mehrsprachiges Blog
Mehrsprachiges BlogMehrsprachiges Blog
Mehrsprachiges Blog
 
Backendlayout mit FLUID-Templates
Backendlayout mit FLUID-TemplatesBackendlayout mit FLUID-Templates
Backendlayout mit FLUID-Templates
 

En vedette

dan s Kleidung
dan s Kleidungdan s Kleidung
dan s Kleidungkllblog
 
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und StudentenDie zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und StudentenBerlin School of Economics and Law
 
Gregor Samsa Ppp E Learning
Gregor Samsa Ppp E LearningGregor Samsa Ppp E Learning
Gregor Samsa Ppp E Learningsaphira24
 
Grauen in der Bibliothek
Grauen in der BibliothekGrauen in der Bibliothek
Grauen in der Bibliothekplainjochen
 
Actividad 1 ( sesion 1)
Actividad 1 ( sesion 1)Actividad 1 ( sesion 1)
Actividad 1 ( sesion 1)Leticia Us
 
Warum Forschungseinrichtungen Social Media nutzen (sollten)
Warum Forschungseinrichtungen Social Media nutzen (sollten)Warum Forschungseinrichtungen Social Media nutzen (sollten)
Warum Forschungseinrichtungen Social Media nutzen (sollten)Alexander Stocker
 
Presentación1
Presentación1Presentación1
Presentación1nerea1n
 
Oratoria y presentaciones efectivas
Oratoria y presentaciones efectivasOratoria y presentaciones efectivas
Oratoria y presentaciones efectivasjudylopez
 
Lazarillodetormes3ertratado 100513215000-phpapp02
Lazarillodetormes3ertratado 100513215000-phpapp02Lazarillodetormes3ertratado 100513215000-phpapp02
Lazarillodetormes3ertratado 100513215000-phpapp02Maria G. Chavez- Verwiel
 
Psicologia presentacion
Psicologia presentacionPsicologia presentacion
Psicologia presentacion18052808jo
 

En vedette (20)

Unidad 9 corelDRAWX5
Unidad 9 corelDRAWX5Unidad 9 corelDRAWX5
Unidad 9 corelDRAWX5
 
Tutorial software avogadro 1
Tutorial software avogadro 1Tutorial software avogadro 1
Tutorial software avogadro 1
 
G Fast Final
G Fast FinalG Fast Final
G Fast Final
 
dan s Kleidung
dan s Kleidungdan s Kleidung
dan s Kleidung
 
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und StudentenDie zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
 
Gregor Samsa Ppp E Learning
Gregor Samsa Ppp E LearningGregor Samsa Ppp E Learning
Gregor Samsa Ppp E Learning
 
Tim Heron
Tim HeronTim Heron
Tim Heron
 
Grauen in der Bibliothek
Grauen in der BibliothekGrauen in der Bibliothek
Grauen in der Bibliothek
 
Actividad 1 ( sesion 1)
Actividad 1 ( sesion 1)Actividad 1 ( sesion 1)
Actividad 1 ( sesion 1)
 
Jose equilibrio quimico 25108379
Jose equilibrio quimico 25108379 Jose equilibrio quimico 25108379
Jose equilibrio quimico 25108379
 
Warum Forschungseinrichtungen Social Media nutzen (sollten)
Warum Forschungseinrichtungen Social Media nutzen (sollten)Warum Forschungseinrichtungen Social Media nutzen (sollten)
Warum Forschungseinrichtungen Social Media nutzen (sollten)
 
Monografia
MonografiaMonografia
Monografia
 
Presentación1
Presentación1Presentación1
Presentación1
 
Oratoria y presentaciones efectivas
Oratoria y presentaciones efectivasOratoria y presentaciones efectivas
Oratoria y presentaciones efectivas
 
Trabajo 5
Trabajo 5Trabajo 5
Trabajo 5
 
Comenzar
ComenzarComenzar
Comenzar
 
Fundamentos de contabilidad
Fundamentos de contabilidadFundamentos de contabilidad
Fundamentos de contabilidad
 
Buch fatima in not
Buch fatima in notBuch fatima in not
Buch fatima in not
 
Lazarillodetormes3ertratado 100513215000-phpapp02
Lazarillodetormes3ertratado 100513215000-phpapp02Lazarillodetormes3ertratado 100513215000-phpapp02
Lazarillodetormes3ertratado 100513215000-phpapp02
 
Psicologia presentacion
Psicologia presentacionPsicologia presentacion
Psicologia presentacion
 

Similaire à Shell Fu for Developers

FastCGI Process Manager
FastCGI Process ManagerFastCGI Process Manager
FastCGI Process ManagerMayflower GmbH
 
Gearman - Distributed Job System
Gearman - Distributed Job SystemGearman - Distributed Job System
Gearman - Distributed Job SystemMayflower GmbH
 
JS Best Practises Debugging und Logging
JS Best Practises Debugging und LoggingJS Best Practises Debugging und Logging
JS Best Practises Debugging und LoggingMayflower GmbH
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppetinovex GmbH
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang BarthNETWAYS
 
Verteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels HadoopVerteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels HadoopMayflower GmbH
 
Javascript debugging logging
Javascript debugging loggingJavascript debugging logging
Javascript debugging loggingMayflower GmbH
 
Html5 workshop Peter Voringer
Html5 workshop   Peter VoringerHtml5 workshop   Peter Voringer
Html5 workshop Peter VoringerMayflower GmbH
 
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...NETWAYS
 
FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...
FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...
FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...Verein FM Konferenz
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthGerhard Lausser
 
Mobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit WebtechnologienMobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit WebtechnologienMayflower GmbH
 
JAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJan Stamer
 
Legacy php - Sanieren oder Ablösen?
Legacy php  - Sanieren oder Ablösen?Legacy php  - Sanieren oder Ablösen?
Legacy php - Sanieren oder Ablösen?Johann-Peter Hartmann
 
Präsentation plug in development
Präsentation plug in developmentPräsentation plug in development
Präsentation plug in developmentxxtesaxx
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenSpeedPartner GmbH
 

Similaire à Shell Fu for Developers (20)

FastCGI Process Manager
FastCGI Process ManagerFastCGI Process Manager
FastCGI Process Manager
 
Gearman - Distributed Job System
Gearman - Distributed Job SystemGearman - Distributed Job System
Gearman - Distributed Job System
 
Symfony2
Symfony2Symfony2
Symfony2
 
JS Best Practises Debugging und Logging
JS Best Practises Debugging und LoggingJS Best Practises Debugging und Logging
JS Best Practises Debugging und Logging
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppet
 
Web Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 BetaWeb Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 Beta
 
RESTful WebServices
RESTful WebServicesRESTful WebServices
RESTful WebServices
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
 
Verteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels HadoopVerteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
 
Javascript debugging logging
Javascript debugging loggingJavascript debugging logging
Javascript debugging logging
 
Html5 workshop Peter Voringer
Html5 workshop   Peter VoringerHtml5 workshop   Peter Voringer
Html5 workshop Peter Voringer
 
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
 
FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...
FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...
FMK2014: Ein Warenwirtschaftssystem, das mit Scannern, Waagen und Mitarbeiter...
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
 
Mobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit WebtechnologienMobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit Webtechnologien
 
JAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzen
 
Legacy php - Sanieren oder Ablösen?
Legacy php  - Sanieren oder Ablösen?Legacy php  - Sanieren oder Ablösen?
Legacy php - Sanieren oder Ablösen?
 
Präsentation plug in development
Präsentation plug in developmentPräsentation plug in development
Präsentation plug in development
 
Dev ops für php talk
Dev ops für php talkDev ops für php talk
Dev ops für php talk
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
 

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
 

Shell Fu for Developers

  • 1. Shell-Fu for Developers Franz Pletz I 15. September 2011 © Mayflower GmbH 2011
  • 4. Ziele I Sehr subjektiver Vortrag ;-) I Aus meinem Linux-Sysadmin Alltag ein paar nützliche Tools und Tipps vorstellen I In der Shell sind fast alle Dinge viel schneller erledigt, als mit jeder general purpose GUI I Ihr sollt mehr Console benutzen!!!!11elf1 Mayflower GmbH I 4
  • 5. Die Shell – first things first I Tipp: zsh Zum Anfang Config von grml: http://grml.org/zsh/ I Viele nützliche Features von bash, ksh, tcsh und eigene, z.B. Globbing: Negierung, Grouping, Ranges Directory Stacking: pushd, popd, AUTOPUSHD Process Substitution: =() Erweiterte Command Line Editing und Completion I Egal welche Shell man nutzt, Manpage komplett lesen und nach eigenen Vorlieben konfigurieren! Mayflower GmbH I 5
  • 6. vim/emacs – Dateien editieren mit Style I Tipp: Münzwurf um sich zwischen vim oder emacs zu entscheiden Vergleich beider Editoren am besten gar nicht anfangen Religionskriege! I Mindestens eine Woche Zeit nehmen, einarbeiten und benutzen! Painful, aber schnelleres editieren garantiert Mayflower GmbH I 6
  • 7. most – more or less enhanced pager I Pager: Langen Text in Console als Seiten anzeigen more: einfacher Pager less: more mit forward/backward, vi Keybindings I Features Windows! Binary Files Line Wrapping Mayflower GmbH I 7
  • 8. pgrep & pkill – Prozesse brauchen Pflege I Wer kennt das nicht? ps aux | grep foo Probleme: nicht weiterverwendbar, taucht selbst in Liste auf I $ pgrep zsh 3145 3148 3174 I Weitere Optionen zum filtern nach z.B. -u, -g User & Gruppen -n, -o newest, oldest I pkill mit gleichen Parametern als Alternative zu killall Mayflower GmbH I 8
  • 9. ack – Das bessere grep I Komplett in Perl geschrieben, auf Suche in Quellcode optimiert I Schneller, da nur Source Code Files durchsucht werden Keine VCS-Verzeichnisse, Backup-Files, Core Dumps etc. I Angabe von Dateitypen einfach $ ack –-php --js I Syntax Highlighting! I Viele GNU grep Parameter werden supportet I 25% weniger Zeichen zu tippen! I http://betterthangrep.com/ Mayflower GmbH I 9
  • 10. ack – Das bessere grep (2) Mayflower GmbH I 10
  • 11. pv – stalking the pipes I Verlauf von Daten durch Pipes beobachten I $ tar c dir | pv | nc fnordhost 2342 64kB 0:00:00 [71.4MB/s] [ <=> ] I Viele Optionen, z.B. -p Progress Bar anzeigen -r Datenrate anzeigen -a durchschnittliche Datenrate anzeigen -s BYTES Dateigröße angeben -L RATE Datenrate begrenzen -R PID Commandline eines laufenden pv modifizieren Mayflower GmbH I 11
  • 12. ngrep – Grepping Network Traffic I Wireshark ist toll, aber oft einfach Overkill I # ngrep -W byline "^(GET|POST) .*" Mal schnell alle GET und POST Requests anzeigen I # ngrep -q -W byline "search" host www.google.com and port 80 Alle Google-Suchanfragen ausgeben Mayflower GmbH I 12
  • 13. curl – HTTP Magic for the masses I $ curl ifconfig.me 88.217.134.114 I $ curl -s -I nyan.cat | head -n1 HTTP/1.1 200 OK Nur die Headers bitte! I $ curl -c cookies.txt -H "User-Agent: Mozilla/5.0" -F "name=test;photo=@lolcat.jpg" mysocialnetwork.com/profile Cookies, Headers, Formularfelder, Dateiupload! Mayflower GmbH I 13
  • 14. openssh – fun with remote servers I Der openssh Client hat eine Config-File: ~/.ssh/config Man kann Optionen global oder auf Host-Basis festlegen I Connection Sharing ControlMaster auto ControlPath /tmp/ssh-%h-%p-%r I Hostname Aliases, Local Forwards Host dev HostName dev.foobar.de LocalForward 5433 localhost:5432 I Restriktive Proxies bezwingen (sshd auf Port 443) ProxyCommand corkscrew proxy.org 8080 %h %p Mayflower GmbH I 14
  • 15. git – git it up I Pull mit rebase statt merge $ git pull –rebase oder $ git config branch.master.rebase true I Letzter Commit mit Message Regex Matching $ git show :/fix $ git show :/^Merge I Einfaches Tracking von Remote Branches $ git checkout -t origin/feature Mayflower GmbH I 15
  • 16. git – git it up (2) I $ git log --oneline --decorate Mayflower GmbH I 16
  • 17. git – git it up (3) I $ git diff --word-diff Mayflower GmbH I 17
  • 18. tmux – modern terminal multiplexing I Prinzip: mehere Terminals in einem darstellen, wie GNU screen I Features: Client/Server-Modell Transfer/Linking von Terminals in andere Sessions Copy/Paste mit mehreren Buffers Windows mit horizontal und vertikal splitten Freies verschieben, resizen oder einpassen in Layouts Terminal Locking Gute Dokumentation I Quickstart fuer screen-User: Ctrl+B statt Ctrl+A ;-) I http://tmux.sourceforge.net/ Mayflower GmbH I 18
  • 20. Vielen Dank für eure Aufmerksamkeit! Kontakt Franz Pletz franz.pletz@mayflower.de +49 89 242054 1173 Mayflower GmbH Mannhardtstrasse 6 80538 München 29.09.11 Mayflower GmbH 20