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.
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