Show your Tools

From NoName e.V.
Revision as of 16:54, 27 January 2015 by Supaake (talk | contribs)

Jump to: navigation, search

Hallo zusammen,

auf dem vorletzten Chaostreff hat jemand von ranger(1) erzählt und es fanden sich zahlreiche jahrelange Linux-Nutzer, die über das Tool genauso begeistert waren wie Linux-Neulinge. Auf dem letzten Chaostreff habe ich mit lsblk(8) ähnliche Freude bei einigen ausgelöst und heute per Jabber jemanden auf mtr(8) gestoßen -- worauf cherti und ich auf die Idee kamen, am Donnerstag eine "Show Your Tools"-Runde zu machen, es gibt nämlich sicher noch drölfzig andere simple Tools (und nicht nur für Linux), die noch nicht alle kennen, aber super-nützlich sind.

Da für die meisten Tools, die wir meinen, eine ganze c¼h Overkill ist, möchten wir nächste Woche das Format ein wenig sprengen. Wir fänden es daher cool, wenn möglichst jeder, der am Donnerstag kommt und sich dazu in der Lage fühlt, sich ein oder zwei Tools herauszupicken und sich zu überlegen, wie er das Tool in drei bis fünf Sätzen erklären kann.

Bitte lasst keine Tools weg, nur weil ihr denkt "die kennt doch eh jeder", das stimmt nämlich wahrscheinlich nicht.

Wenn ihr sicher gehen wollt, dass sonst keiner das gleiche Tool wählt, könnt ihr euch auf diese Wiki-Seite eintragen.

--Rami (talk) 19:12, 2 January 2015 (CET)

Falls jemand Anregungen braucht:

cut -d';' -f2 < .zsh_history | cut -d' ' -f1 | sort | uniq -c | sort -g

--PhilFry (talk) 22:19, 2 January 2015 (CET)

empfohlene Tools

  • vnstat, stat, readlink (mfh)


  • "ranger" - the most awesome filemanager in the world, vim-ähnlich, im Terminal
  • "abcde" - CD-Ripper mit automatischem Tagging, Naming, Converting in Format der Wahl etc., der einfach exzellent funktioniert, ohne den Nutzer zu nerven
  • "ncdu" (sPhErE) - Größenverteilung im Verzeichnis in Dateien und Unterverzeichnissen (rekursiv); gut um Speicherfresser abzuschätzen
  • "cal" (sPhErE) - simpler Kommandozeilen-Kalender
  • "bc -q" (sPhErE) - simple commandline-calculator
  • "scrot" (sPhErE) für screenshots (Bsp: -s für snipping-tool-Funktionalität)
  • "replace" - massenumbenennen, kann auch via perl-regex
  • "mmv" - multiple mv, alternative zu replace
  • "qmv" - another alternative to replace (in packet "renameutils")
  • "vidir" - open directory in vi(m), directory is represented in textform. Changes applied to the text (deleting files, renaming of files etc.) will propagate magically to the filesystem (in packet "moreutils")
  • "watch <command>" (TrickSTer) - beobachte den Output eines <Command>s; -d -> highlighte Differenzen
  • "rsync" - kopieren von Daten mit vielen Extrafunktionen (nur schreiben der Änderungen, exclude von bestimmten Verzeichnissen etc.)
  • "storebackup" - Backups mit hardlinks und Kompression
  • "badblocks" (mfh) - to test functionality and integrity of disks and to write random (in Paket efsprogs)
  • "haveged" - daemon, der Zufall sammelt, um den verfügbaren Zufall im System zu erhöhen (damit Crypto schneller geht etc.)
  • "lsblk" - see device-hierarchy of the system with more details
  • "ls{pw,usb,pci}" - gather information about several parts of the system
  • "lshw" - get information about systemhardware (separat package)
  • "tree" (slowpoke) - the better "ls -l"
  • "dmidecode" - Information über hardware (in welcher Bank steckt der defekte RAM-Riegel? Seriennummer des Laptops)
  • "sponge" (Hauro) - saugt Output auf und schreibt danach (paket moreutils); usecase: cat $file > $file empties file; cat $file | sponge $file is the working way
  • "comm" (Hauro) - Vergleichen von Dateien
  • "cd -" - wechselt ins letzte Verzeichnis
  • "pushd" & "popd" - directory stacks auf der shell. pushd legt $PWD auf den stack, danach kann man mit cd herumwandern, popd bringt einen wieder an den anfang. hilfreich für verschachtelte shellskripte, geht logischerweise mehrfach da stack
  • "ack" (koebi) - grep für Code, grept durch eine komplette Baumstruktur (rekursiv!), vermeidet Binarys, .git, etc., zeigt dann, in welchen Files der String gefunden wurde
  • reimplemented in schnell als "ag" ("the silver searcher")
  • "mpd" - music player daemon, Musikserver
  • "ncmpcpp" - mpd-frondend
  • "ario" - grafischer MPD-Client (gtk)
  • "mpv" (koebi) - video player, mplayer-style in sinnvoll
  • "curl" (PhilFry) - do http-magic, PUT, GET, auch wget-Funktionalität, alles, was man so mit HTTP machen kann
  • "httpie" (Kungi) - reimplementation of curl (claims to be better)
  • "wget" - Download files from Commandline
  • "axel" - verbesserung von "wget"
  • "pgrep" - greppe in der Prozessliste (gibt PID aus, mit -l gibt's auch den Prozessnamen mit aus)
  • "pkill" - greppe in der Prozessliste und kille, was du findest ("pkill $name" ungefähr "kill $(pgrep $name)")
  • "jq" (PhilFry) - json processor for cli, kann pretty-printing, highlighting, bestimmte Felder abfragen, etc.
  • "tee" - write stdout in ein file und nach stdout. use: cat $foo | tee $file
  • "pee" (slowpoke) - wie tee, nur mit Prozessen; Outputmultiplexer
  • "pv" - PipeView zählt die Daten, die durch dieses Programm gepiped werden und gibt entsprechende Statistiken, Statusbalken aus. Lässt sich z.B. mit dd kombinieren: dd if=/dev/sda bs=1M |pv -s 500G | dd of=/dev/sdb bs=1M
  • besser noch: pv < /dev/sda > /dev/sdb # pv macht die puffer/block-magie von alleine richtig und braucht in dem fall dann auch kein -s mehr
  • "zsh" - die bessere interaktive Shell im Vergleich zum Linux-de-facto-Standard "bash"
  • zsh-Funktion: "cd src doc" to change from src/a/b/c nach doc/a/b/c
  • "percol" - mit integration in Zsh ausgezeichnete Completion
  • grml-zsh-config: ein Set von Einstellungen für die zsh, die von der Linux-Distribution grml benutzt und gepflegt werden
  • "mosh" - mobile shell, alternative zu "ssh" für instabile Verbindungen, versucht, auch bei viel Packetloss und anderen Instabilitäten noch gut zu funktionieren
  • "jp2a" - make jpeg to ascii-art
  • "cacaview" - Pictureviewer in ascii-art, nicht so schön konvertiert wie in jp2a
  • & Kollegen: "fortune", "cowsay"
  • "tmux" - terminal multiplexer, mehrere Shells in einem Terminal, praktisch für ssh, shells bestehen auch nach Verbindungsende weiter und können wieder attached werden
  • "detach": wie tmux und screen, kann nur attach und detach
  • "sieve" - filtern von mail serverseitig, Konfiguration ist sehr ähnlich einer Programmiersprache, die Filter werden mehr oder weniger programmiert
  • "sm" - screen message, Text auf dem Bildschirm mit automatischer Größenanpassung, gut, wenn man mal eben Text auf den Beamer klatschen will etc.
  • "pwsafe" (cherti) - passwort-manager für Kommandozeile, incl. Passworte in die Zwischenablage, wipen derselben, etc.
  • "KeePassX" - grafischer Passwortmanager mit autotype-Funktion (automatisches Eintragen von Username und Passwort in Formularfelder)
  • "pass" - plaintext passwordmanager mit git-integration, basiert auf gpg, baumartige struktur, kann teilbäume mit anderen keys verschlüsseln. Vorteil: im Notfall kann man das mit plain git+gpg anfassen, kein proprietäres Format
  • "beet" - cli-tool zum musik-taggen. tut das mit einträgen der music-brainz datenbank(picard nutzt die auch) auch ziemlich sinnvoll.
  • "exfalso" - auch zum taggen
  • "musicbrainz" - onlinedatenbank für Musik, wird von vielen Programmen zum taggen von Musik verwendet wichtig dazu dann: picard als client-tool
  • gute Konsolenfonts: consolas, Inconsolata
  • Ctrl+L to clean terminal
  • Postfix kann an diversen Stellen regex (für Adressen etc.)


nicht in der c¼h gezeigt, aber dennoch hier empfohlen

  • "mktemp" - Problem: man braucht mal eben eine datei, und "vim /tmp/bla" öffnet schon eine bestehende datei. Lösung: "mktemp" gibt einem eine temporäre datei, die es noch nicht gibt. (gibt auch ein zugehöriges python modul, was am ende auch aufräumt). "mktemp -d" gibt einem analog ein neues leeres verzeichnis.
  • "dict" - wenn man einen dict server auf seinem rechner laufen hat, kann man mit "dict tower" die übersetzung von "tower" nachschlagen. Komfortabel als spellcheck oder lightweight wörterbuch. oft schlechter als google translate oder leo, aber offline verfügbar! (und die NSA sieht deine rechtschreibschwächen nicht)
  • "&&" - Kompilieren dauert lange und man will nach dem bauen eh gleich die executable ausführen und nicht ständig "↑" drücken: "<command 1> && <command 2>" führt das zweite command nur aus, wenn das erste erfolgreich war. z.B. nach einem build fehler in "make && ./execute" wird die alte executable nicht ausgeführt. macht debuggen wenn man müde und gestresst ist angenehmer.
  • "!!$" das letzte argument des letzten Befehls nochmal -- in zsh. [[1]] nett für "ll langes-tab-completen-von-filename ; # ja, das ist die richtige datei ; vim $$!" oder "cp org-file target-dir ; cd !!$ "