Tips, tricks and tools for Linux/Unix

[article index] [] [@mattmight] [rss]

[I completely updated this article in early 2014. In particular, I included links directly to blog posts and books that discuss each tool.]

Unix is a different way -- a different philosophy -- of computing.

This is a compendium of all the useful Unix tools I've used over the years:

If you're new to Unix/Linux, you should check out my related posts:

Text, word and document processing

  • emacs: An instance of the text-editor-as-operating-system thesis.
    • WhizzyTeX: WYSIWYG LaTeX editing for emacs.
    • AUCTeX: Power-editing LaTeX inside emacs.
    • TNT: Instant-messaging inside emacs.
    • Aquamacs: An OS X-enhanced port of emacs.
    • Related book:
  • vim: A text editor that brutally minimizes the number of keystrokes.
    • NERDtree: a file browser for vim.
    • Related book:
  • TeX and LaTeX: High-quality scientific and technical publishing tools.
    • qtree: A package for drawing parse trees.
    • Active-DVI: A feature-rich DVI viewer.
    • ArabTeX: Write arabic script in LaTeX.
    • Xy-pic: A graph-rendering language for LaTeX.
    • Bibtex: Effortless bibliography and citation management.
    • pstricks: Graphics in LaTeX.
    • TikZ: Beautiful diagrams in LaTeX.
    • eepic: Graphics in LaTeX.
    • HeVeA: A powerful LaTeX-to-HTML converter.
    • Related books:
      For low-level TeX-hacking, Knuth's original is the only guide that helped me write programs in raw TeX:
  • gnuplot: Graph data of all kinds; import them into LaTeX.
  • Xfig: GUI tool for drawing diagrams for LaTeX. Old, but still useful.
  • DOT: For rendering large graphs/networks/charts automatically.
    • GraphViz: An excellent OS X interface for DOT files.
  • gnumeric + OpenOffice + catdoc and xls2csv: For dealing with Microsoft Office documents.
  • Google Docs/Drive: Makes cross-platform, multi-user documents easy; it has some support for Microsoft Office documents

Networking, security and system administration

Window managers

  • ion: The only innovative window manager ever.

Web browsing and web development

Mail and messaging

Command-line control

Programming languages and software development

  • Scheme Shell + Racket: Robust, hacker-friendly Scheme environments, interpreters and compilers.
    • SXML: A nifty encoding of XML into S-Expressions.
    • A guide to learning Racket, motivated by video games:
  • (MLton + SML/NJ) | OCaml: High-performance, high-reliability functional programming.
    • Related book:
  • Scala: A strictly superior replacement for Java.
    • My favorite guide to Scala, written by its creator:
  • haskell: A lazy, purely functional programming language.
    • Related books:
  • Java SDK: Beause it runs everywhere.
    • javadoc: Source-code documentation management.
    • ANTLR | (JLex + CUP): Lexer/parser generators for Java.
  • gnu toolchain: Because C is still around.
  • lex + yacc: Lexer/parser generators for C.
  • make: Project compilation management.
  • subversion: Centralized source-code version control. (Works great with LaTeX too.)
  • git | mercurial: Decentralized source-code version control.
  • SDL + OpenGL: A mature cross-platform 2D and 3D graphics libraries.
  • WebGL: A JavaScript API for 3D graphics.
  • Squeak: An instance of the programming-language-as-operating-system thesis.

Text manipulation

Digital media viewing and manipulation

Dealing with Windows

  • Wine: Run Windows programs under Linux.
  • Parallels: Run Windows (or Linux) on Mac OS X.

Good books

Related pages