The following programs are all free and work on most Unix-based systems. They mostly target power users and programmers.
Recurring characteristics: lightweight, fast, versionable configuration (plain text, non-XML), keyboard-driven, Unix design.
atool is a wrapper around many tools to unify compression and extraction from
cdrtools can process ISO files.
xz offers a good compression ratio together with great decompression
performance. Compression is quite demanding.
bzip2 has little to offer
p7zip bundles the features
ccrypt in one
lrzip is at its best on large files and with multiple CPUs available.
upx can compress executables.
The rest is for decompression.
calc are simple arbitrary-precision calculators. bc is lighter but
calc has somewhat more features.
PARI/GP is an extremely fast and advanced algebra system for number theory.
Great for prime numbers and such.
Octave will serve as a Unix-designed Matlab.
GnuPG is overkill when it comes to encrypting files for personal use.
ccrypt is good at encrypting single files.
encfs can encrypt folders and mount them as an encrypted file system. Files
can be browsed transparently without being ever written in clear to the disk. It
uses the fuse backend which makes it portable across systems at the expense of
ncdu is a very fast and convenient disk usage analyzer.
trash-cli is a command-line interface implementing FreeDesktop.org’s Trash
specification. It can be combined with a file browser for easier use.
wipe can delete folders securely while
shred can only process files.
apvlv are light and keyboard-driven.
PostScript .ps files and SyncTeX.
apvlv supports UMD, HTML and .txt files.
Evince is far too heavy but can fill PDF forms. (Yet another ill-conceived
Poppler has numerous PDF converters (e.g. pdftotext).
ghostscript can convert PDF to and from PS.
highlight outputs source code files to stdout with syntax highlighting.
Most of these programs can be used for previewing files from some
rangeris very configurable and extensible. It previews any kind of file in the way you want. It can run an arbitrary command on any file selection and it remembers the selection in every folder. It can run various powerful commands conveniently, such as recursive hardlink creation or batch-renaming.
rsynchas a lot of useful options, like
fzf puts any shell on steroids. To such an extent it can replace any file
browser with no hesitation. It allows you to fuzzy-find anything: files, folders
to cd into, command history, folder history, completion…
xosdcan display text on screen, such as FPS or network traffic.
clyrics can display the lyrics of the song currently playing in
cmus is extremely fast at updating the library. Its UI makes it convenient
to browse the library and to create playlists.
mps-youtube can build albums from Youtube links automatically and save the
resulting playlist locally.
dcraw can convert many camera raw formats.
ImageMagick are very similar in feature, and they may
be complementary regarding performance.
fehcan set the wallpaper.
sxivis very fast at loading and displaying big pictures. It supports GIF animations unlike
Splint are static analyzers with overlapping features.
Uncrustify is much better engineered than
GNU Indent and
Astyle. See the
slock is as simple as it can be but does not support PAM sessions unlike
vlock is for TTY sessions. It is part of the
DASH is a light, fast and POSIX compliant shell. It is quite limited for
interactive use but ideal for testing the POSIX-ness of scripts.
fish departs from the POSIX-derived shells.
Bash suffers from the design
issues of the venerable Bourne shell (e.g. word-splitting).
Zsh has tried to
unite all shell languages under one banner, thus becoming complicated beyond
reason to the point that the simplest configuration can be an Odyssey on its
fish uses a clear syntax. It also has a straightforward API,
which makes it very straighforward to customize and extend. Last but not least,
its interactive features are efficient and to the point.
The lack of POSIX-ness is no problem in practice:
Any POSIX shell script will be executed by the interpreter pointed by the shebang.
Initialization files such as
.profile can still be set up by
sh at the
beginning of the session: use
sh as your login shell and
exec fish at the
shellcheck is a static-analyzer for shell scripts.
Emacsmode lets you write plain text tables and apply functions to cells. These functions are either pre-defined or self-written in Lisp. From there you can use every Elisp feature, and if that would not be enough (e.g. too slow) you can call external programs to perform the task. This makes the tables infinitely programmable.
They can be used as TODO managers, calendars, etc.
Taskwarrior file format is plain text but hard to read. The editing is
far less convenient than with a proper text editor. It is, however, a
stand-alone program that does not force you to use
Transmissionis full-featured and offers various UIs: GTK, Qt, curses… Beside not supporting magnet links,
rtorrenthas a poor UI for selecting files and folders manually, which makes it very impractical for large torrents.
FFmpeg is the swiss-army knife of transcoding: aspect ratio, concat, crop,
mixdown, remux, metadata, etc. It is much more efficient to use FFmpeg from a
smart custom script than using a GUI.
mkvtoolnix can process mkv files in place, e.g. it can instantly change metadata.
cdparanoia rips audio CDs.
dvdbackup decrypts VOB files.
Gaupol is a simple yet complete subtitle editor.
MediaInfo displays the media property of pictures, audio and video files
(codecs, container, etc.). It overlaps a lot with
still manages to provide some details that
The rest is a set of tools for containers and codecs.
Asymptote is a full-featured descriptive vector graphics renderer. It
features libraries for: plots, trees, 3D (with perspective!), and much more. The
language is much more convenient (C-style) and far less limited than its
competitors (TikZ, Metapost, PSTricks): it has double-precision arithmetic
support, classic control structures, data structures, custom structures, etc. It
also supersedes Gnuplot.
Graphviz is a smart graph drawing tool that will decide automatically of the
best arrangement for the vertices and edges.
Inkscape can export in LaTeX, which is useful to improve typography or make
the font consistent in your document.
mpv is a fork of
mplayer with fewer dependencies and some additions such
as an on-screen display, support for resuming and chapter markers. Both
mplayer allow for very fast video rendering, which can render 1080p
videos on lower-end machines where
VLC would stutter.
subdl will often fetch the right subtitles for the desired language. When it
fails to pick the right one, it is still possible to select it manually.
Wget are overlapping but also very complementary.
youtube-dl, as the name does not imply, is not restricted to YouTube.
Awesome is extensible in Lua.
i3 is lighter than
Awesome but relies on externals scripts for