SlideShare ist ein Scribd-Unternehmen logo
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

Weitere ähnliche Inhalte

PDF
PHP Dependency und Paket Management mit Composer
PDF
Mozilla Audio Data API
PDF
Typo3 und Varnish
PDF
Linuxtools fuer Developer
PDF
Web-Automatisierung mit WWW::Mechanize
ODP
PhpStorm 6 Configuration for TYPO3
PDF
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
PDF
Facebook mit Rails und Facebooker
PHP Dependency und Paket Management mit Composer
Mozilla Audio Data API
Typo3 und Varnish
Linuxtools fuer Developer
Web-Automatisierung mit WWW::Mechanize
PhpStorm 6 Configuration for TYPO3
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Facebook mit Rails und Facebooker

Was ist angesagt? (8)

KEY
DevOps für PHP (und andere)
ODP
PDF
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
PPTX
PHAR better Tools
PDF
PHP 5.3 - da war doch was?
PDF
Coffee Backone Introduction
ODP
Mehrsprachiges Blog
PDF
Backendlayout mit FLUID-Templates
DevOps für PHP (und andere)
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
PHAR better Tools
PHP 5.3 - da war doch was?
Coffee Backone Introduction
Mehrsprachiges Blog
Backendlayout mit FLUID-Templates
Anzeige

Andere mochten auch (20)

PDF
Unidad 9 corelDRAWX5
DOCX
Tutorial software avogadro 1
PPTX
G Fast Final
PPT
dan s Kleidung
PDF
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
PPT
Gregor Samsa Ppp E Learning
PDF
Tim Heron
PPT
Grauen in der Bibliothek
DOCX
Actividad 1 ( sesion 1)
PPTX
Jose equilibrio quimico 25108379
PPTX
Warum Forschungseinrichtungen Social Media nutzen (sollten)
PPT
Presentación1
PPTX
Oratoria y presentaciones efectivas
PDF
Trabajo 5
PDF
Comenzar
PPTX
Fundamentos de contabilidad
PDF
Buch fatima in not
PPTX
Lazarillodetormes3ertratado 100513215000-phpapp02
PPTX
Psicologia presentacion
Unidad 9 corelDRAWX5
Tutorial software avogadro 1
G Fast Final
dan s Kleidung
Die zwei kulturen-oder: was macht E-Learning mit Dozenten und Studenten
Gregor Samsa Ppp E Learning
Tim Heron
Grauen in der Bibliothek
Actividad 1 ( sesion 1)
Jose equilibrio quimico 25108379
Warum Forschungseinrichtungen Social Media nutzen (sollten)
Presentación1
Oratoria y presentaciones efectivas
Trabajo 5
Comenzar
Fundamentos de contabilidad
Buch fatima in not
Lazarillodetormes3ertratado 100513215000-phpapp02
Psicologia presentacion
Anzeige

Ähnlich wie Shell Fu for Developers (20)

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

Mehr von Mayflower GmbH (20)

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