Upload
mayflower-gmbh
View
2.658
Download
0
Embed Size (px)
DESCRIPTION
Franz Pletz möchte mit seinem Vortrag, nachdem vor einigen Wochen bereits Martin Brotzeller in die grundlegende Shell- und UNIX-Tools-Benutzung eingeführt hat, in die Customization der eigenen Shell und in sinnvollen weiteren Tools, die den Developer-Alltag erleichtern, einführen. Dies sind einerseits Standardtools mit ungeahnter Zusatzfunktionalität, die allerdings häufig nicht bekannt sind aber auch Zusatztools, die erst neu zu installieren sind.
Citation preview
© Mayflower GmbH 2011
Shell-Fu for Developers
Franz Pletz I 15. September 2011
Mayflower GmbH I 2
Kung Fu?
Quelle: http://www.flickr.com/photos/stopherjones/707077871/
Mayflower GmbH I 3
Shell Fu!
Quelle: http://www.flickr.com/photos/tom_focus/5710555681/
Mayflower GmbH I 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 5
Die Shell – first things first
I Tipp: zshZum Anfang Config von grml: http://grml.org/zsh/
I Viele nützliche Features von bash, ksh, tcsh und eigene, z.B.Globbing: Negierung, Grouping, RangesDirectory Stacking: pushd, popd, AUTOPUSHDProcess Substitution: =()Erweiterte Command Line Editing und Completion
I Egal welche Shell man nutzt, Manpage komplett lesen und nach eigenen Vorlieben konfigurieren!
Mayflower GmbH I 6
vim/emacs – Dateien editieren mit Style
I Tipp: Münzwurf um sich zwischen vim oder emacs zu entscheidenVergleich beider Editoren am besten gar nicht anfangenReligionskriege!
I Mindestens eine Woche Zeit nehmen, einarbeiten und benutzen!Painful, aber schnelleres editieren garantiert
Mayflower GmbH I 7
most – more or less enhanced pager
I Pager: Langen Text in Console als Seiten anzeigenmore: einfacher Pagerless: more mit forward/backward, vi Keybindings
I FeaturesWindows!Binary FilesLine Wrapping
Mayflower GmbH I 8
pgrep & pkill – Prozesse brauchen Pflege
I Wer kennt das nicht? ps aux | grep fooProbleme: nicht weiterverwendbar, taucht selbst in Liste auf
I $ pgrep zsh314531483174
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 9
ack – Das bessere grep
I Komplett in Perl geschrieben, auf Suche in Quellcode optimiert
I Schneller, da nur Source Code Files durchsucht werdenKeine 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 10
ack – Das bessere grep (2)
Mayflower GmbH I 11
pv – stalking the pipes
I Verlauf von Daten durch Pipes beobachten
I $ tar c dir | pv | nc fnordhost 234264kB 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 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 13
curl – HTTP Magic for the masses
I $ curl ifconfig.me88.217.134.114
I $ curl -s -I nyan.cat | head -n1HTTP/1.1 200 OK
Nur die Headers bitte!
I $ curl -c cookies.txt -H "User-Agent: Mozilla/5.0" -F "name=test;[email protected]" mysocialnetwork.com/profile
Cookies, Headers, Formularfelder, Dateiupload!
Mayflower GmbH I 14
openssh – fun with remote servers
I Der openssh Client hat eine Config-File: ~/.ssh/configMan kann Optionen global oder auf Host-Basis festlegen
I Connection SharingControlMaster autoControlPath /tmp/ssh-%h-%p-%r
I Hostname Aliases, Local ForwardsHost dev
HostName dev.foobar.deLocalForward 5433 localhost:5432
I Restriktive Proxies bezwingen (sshd auf Port 443)ProxyCommand corkscrew proxy.org 8080 %h %p
Mayflower GmbH I 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 16
git – git it up (2)
I $ git log --oneline --decorate
Mayflower GmbH I 17
git – git it up (3)
I $ git diff --word-diff
Mayflower GmbH I 18
tmux – modern terminal multiplexing
I Prinzip: mehere Terminals in einem darstellen, wie GNU screen
I Features:Client/Server-ModellTransfer/Linking von Terminals in andere SessionsCopy/Paste mit mehreren BuffersWindows mit horizontal und vertikal splittenFreies verschieben, resizen oder einpassen in LayoutsTerminal LockingGute Dokumentation
I Quickstart fuer screen-User: Ctrl+B statt Ctrl+A ;-)
I http://tmux.sourceforge.net/
Mayflower GmbH I 19
Fragen?Quelle: http://www.flickr.com/photos/ericarhiannon/3591044454/
29.09.11 Mayflower GmbH 20
Vielen Dank für eure Aufmerksamkeit!
Kontakt Franz Pletz
+49 89 242054 1173
Mayflower GmbH
Mannhardtstrasse 6
80538 München