categories: - label: utility name: Utilities description: - label: organizers name: Organizers and calendars description: Todo managers, calendar managers - label: transfer name: Data transfer description: - label: chat name: Chat and instant messaging (IM) description: - label: email name: Email description: | Email clients ([Mail User Agents](https://en.wikipedia.org/wiki/Email_client) - MUA), mail synchronization - label: browser name: Web browser description: - label: webdev name: Web development description: | static site generators ([staticgen.com](https://www.staticgen.com/) reports a comprehensive list of available options), load test tools. - label: games name: Games description: - label: funny name: Funny tools description: - label: file-handling name: File and file system handling description: file managers, tagging, bookmarking, directory traversal - label: backup name: Backup description: - label: conversion name: Conversion description: - label: file-manager name: File manager description: - label: file-systems name: File systems description: - label: versioning name: Versioning description: - label: graphics name: Graphics description: - label: music name: Sound and music description: - label: viewers name: Viewers description: - label: productivity name: Productivity description: - label: office name: Office tools description: spreadsheet and presentations - label: security name: Security and encryption description: cryptography, ciphered archive managers, encrypted file-systems, password managers - label: system name: System tools description: - label: shells name: Shells description: - label: monitor name: System monitoring description: - label: terminals name: Terminals description: - label: editors name: Editors description: - label: font name: Font management description: - label: text-processing name: Text processing description: - label: text-search name: Text search description: apps: text-search: - name: ack url: http://beyondgrep.com/ description: | A tool like `grep` optimized for programmers; written in Perl, it speeds up searches thanks to skipping non interesting directories, such as `.git`. - name: ag url: https://github.com/ggreer/the_silver_searcher description: | (The silver searcher) is a text search utility targeted to source code; it skips versioning systems data directories; it is inspired by `ack`, but faster. - name: paragrep url: http://software.clapper.org/paragrep/ description: | Greps regular expressions in a text file(s) and prints out the paragraphs containing those expressions; a paragraph is defined as a block of text delimited by an empty or blank line; fully customizable via command line parameters. - name: sift url: https://sift-tool.org/ description: | Fast and powerful open source alternative to grep; it targets flexibility and performance: can be as fast as "regular" grep and allows to specify complex expressions to find text. text-processing: - name: ccat url: https://github.com/jingweno/ccat description: | A `cat` command with colorized output. - name: fzf url: https://github.com/junegunn/fzf description: | (FuZzy Finder) is a general-purpose command-line finder with fuzzy search/filter capabilities; good integration with `vim`. - name: grc url: https://github.com/pengwynn/grc description: | (Generic Colouriser) can be configured to parse a given text stream and to colorize it according to regexp written in configuration files; different patterns can be associated to file types. - name: jq url: https://stedolan.github.io/jq/ description: | (JSON Query?) is sed-like processor for JSON data; can be used to process JSON files and data streams and perform operations such as those allowed by `cat`, `sed`, `grep` and `awk` on regular text files. - name: percol url: https://github.com/mooz/percol description: | A Python script that "1) receives input lines from `stdin` or a file, 2) lists the input lines and waits for input that filter/select the line(s), 3) outputs the selected line(s) to `stdout`"; can be used to add interactivity to many regular shell commands. - name: pick url: https://github.com/calleerlandsson/pick description: | Utility that allows users to choose one option from a set of choices using an interface with fuzzy search functionality. articles: - title: "Pick - A Commandline Fuzzy Search Tool For Linux" date: 2017-10-07 url: https://www.ostechnix.com/pick-commandline-fuzzy-search-tool-linux/ description: | The Pick utility can be helpful in certain situations where you wanted to search for a folder or file that contains a non-English characters in their name. You don’t have to learn how to type the non-english characters. - name: q url: http://harelba.github.io/q/ description: | Executes SQL-like queries on CSVs/TSVs tabular data files; each tabular file is treated as a database table; support to all SQL constructs (`WHERE`, `GROUP BY`, `JOIN`). font: - name: FIGlet url: http://www.figlet.org/ description: | Not exactly a font manager, but a nice program for making large letters out of ordinary text; an astonishing number of different fonts is available. - name: toilet url: http://caca.zoy.org/wiki/toilet description: | A program that tries to improve `FIGlet`; can load FIGlet fonts; supports Unicode input and output, colour fonts and output, and various output formats, including HTML, IRC and ANSI; uses `libcaca` to produce nice textual effects. editors: - name: Emacs url: https://www.gnu.org/software/emacs/ description: | One of the godfathers of text editors; free long-standing software project; tons of extensions and funcionalities; the biggest drawback (my taste): it needs [E-Lisp](https://www.gnu.org/software/emacs/manual/eintr.html) for being programmed. - name: jed url: http://www.jedsoft.org/jed/index.html description: | A text editor with a drop-down menu facility that make it especially user-friendly. - name: joe url: http://joe-editor.sourceforge.net/ description: | (Joe's Own Editor) is a compact text editor written in C; a detailed list of features and missing ones is explicitly reported in the website; this editor is mentioned in several web sources for its capability in handling large files. - name: nano url: https://www.nano-editor.org/ description: | Easy to use, lightweigth text editor; no complex keybindings to remember. - name: micro url: https://github.com/zyedidia/micro/ description: | A terminal-based text editor written in Go that aims to be easy to use and intuitive, while also taking advantage of the full capabilities of modern terminals. - name: neovim url: https://neovim.io/ description: | A work in progress attempt to improve [vim](http://www.vim.org/), dropping older/unused OS compatibility, improving the codebase readability, modularity and maintainability; it has chances to become the next choice of vim users. - name: slap url: https://github.com/slap-editor/slap description: | Text editor inspired by [Sublime Text](https://www.sublimetext.com/) written in NodeJS; extedable in Javascript. - name: vai url: https://github.com/stefanoborini/vai description: | A text editor similar to `vim` written in Python; many feature are nicely replicated, some are still missing; however, the advantage of this implementation is its simplicity, maintainability and extensibility, thanks to the Python implementation. - name: vim url: http://www.vim.org/ description: | Historically one of the preferred text editors; behavior based on editing modes; plenty of plugins and tips to address every possible editing problem. - name: vis url: https://github.com/martanne/vis description: | "a modern, legacy free, simple yet efficient vim-like editor", and more: "The intention is not to be bug for bug compatible with vim, instead a similar editing experience should be provided. The goal could thus be summarized as 80% of vim's features implemented in roughly 1% of the code"; the editor is scriptable in LUA and supports editing large files. - name: WordGrinder url: https://cowlark.com/wordgrinder/ description: | From the website: "WordGrinder is a word processor for processing words. It is not WYSIWYG. It is not point and click. It is not a desktop publisher. It is not a text editor. It does not do fonts and it barely does styles. What it does do is words. It's designed for writing text. It gets out of your way and lets you type." articles: - title: "WordGrinder: Distraction-Free Writing From the Command Line" url: http://fossforce.com/2017/03/wordgrinder-distraction-free-writing-command-line/ date: 2017-07-10 description: WordGrinder is an old fashioned command line program that doesn’t try to do a lot of things. Its purpose is to get the job done, and stay out of the user’s way while doing it. terminals: - name: byobu url: http://byobu.co/ description: | A text-based window manager and terminal multiplexer; it features enhanced profiles, convenient keybindings, configuration utilities, and toggle-able system status notifications; compatible with `screen` and `tmux`. - name: screen url: https://www.gnu.org/software/screen/ description: | Terminal multiplexer that split a physical terminal between several processes, typically interactive shells. - name: tmux url: https://tmux.github.io/ description: | Terminal multiplexer; born to improve `screen`; client-server architecture, `vi` and `emacs` key-bindings, search in window feature and many more. - name: warp url: https://github.com/spolu/warp description: | Secure and simple terminal sharing. monitor: - name: cv url: https://github.com/Xfennec/progress description: | (Coreutils Progress Viewer) "looks for coreutils basic commands (`cp`, `mv`, `dd`, `tar`, `gzip/gunzip`, `cat`, etc.) currently running on your system and displays the percentage of copied data. It can also show estimated time and throughput". - name: glances url: https://nicolargo.github.io/glances/ description: | A comprehensive and detailed system monitoring tool; monitored parameters include: CPU, memory, load, process list, network interfaces, disk I/O, sensors, filesystems, docker, system info, uptime. - name: GoTTY url: https://github.com/yudai/gotty description: | A program to turn CLI tools into web applications; basically, it runs a command and starts a server so that the output can be displayed in a web page. - name: inxi url: http://smxi.org/docs/inxi.htm description: | A comprehensive system information script; provides information about CPU, graphics, audio and network devices, drives and partitions, sensors; implemented as a Bash script. - name: iotop url: http://guichaz.free.fr/iotop/ description: | "A Python program with a top like UI used to show of behalf of which process is the I/O going on". - name: htop url: http://hisham.hm/htop/ description: | An interactive process viewer for Unix; improves the UI of `top`, by adding real-time meters and colors. - name: multitail url: https://www.vanheusden.com/multitail/ description: | A command to open multiple log files in a single terminal window and monitor them in real-time. - name: ngrep url: http://ngrep.sourceforge.net/ description: | (Network grep) applies the `grep` logic to the network layer, allowing to match regular expressions against data payloads of packets; it recognizes IPv4/6, TCP, UDP, ICMPv4/6, IGMP and Raw across Ethernet, PPP, SLIP, FDDI, Token Ring and null interfaces. - name: progress url: https://github.com/Xfennec/progress description: | A tool to monitor the progress of common Coreutils command-line tools (`cp`, `mv`, `dd`, `tar`, `rsync`, etc.); it uses an ncurses interface to display the percentage of data copied; it works by reading from system files and retrieving the necessary information for the estimation. - name: powertop url: https://01.org/powertop description: | A `top`-like utility to monitor the sources of power consumption; allows to turn on/off many components; quite useful to track possible power-related issues. - name: sysdig url: https://www.sysdig.org/ description: | Sysdig captures system calls and events from the Linux kernel. You can save, filter, and analyze the data with our CLI or our desktop app. Think of sysdig as strace + tcpdump + htop + iftop + lsof + wireshark for your entire system. articles: - title: "Sysdig – Linux System Exploration/Diagnostic And Troubleshooting Tool" date: 2017-10-07 url: https://www.2daygeek.com/sysdig-linux-system-diagnostic-monitor-troubleshoot-tool/ description: | Sysdig is an open source, system exploration/diagnosing and troubleshooting tool for Linux with native container support. It is capture system state and activity from a running Linux instance, then save, filter and analyze. - name: smem url: https://www.selenic.com/smem/ description: | Python program that reports memory usage; it can report the "proportional set size" (PSS), a meaningful representation of the amount of memory used by libraries and applications in a virtual memory system; it has built-in chart generation. - name: top url: http://www.unixtop.org/ description: | The classical Unix utility that provides a rolling display of top cpu using processes. - name: watch url: http://www.linfo.org/watch.html description: | Periodically runs a command in the console while temporarily clearing the screen content; it makes it easy to check differences between the output of two subsequent commands; it provides "diff" functionality to highlight the changing characters between outputs. articles: - title: "Watch command to execute script/shell command repeatedly" date: 2017-07-10 url: http://kerneltalks.com/commands/watch-command-to-execute-scriptshell-command-repeatedly/ description: “watch” command is small utility using which you can execute shell command or script repetitively and after every n seconds. Its helpful in automation or monitoring. shells: - name: Bash url: https://www.gnu.org/software/bash/ description: | (Bourne Again SHell) The most widespread system shell to date. - name: Fish url: https://fishshell.com/ description: | "A command line shell for the 90s"; focused on user-friendliness, with powerful autosuggestions, colors, "sane scripting" (w.r.t. to Bash). - name: Zsh url: http://www.zsh.org/ description: | Alternative shell designed for interactive use. system: - name: conspy url: http://conspy.sourceforge.net/ description: | "Conspy allows a (possibly remote) user to see what is displayed on a Linux virtual console, and send keystrokes to it." - name: Ntfy url: https://github.com/dschep/ntfy description: | Ntfy is a simple yet serviceable cross-platform Python utility that enables you to automatically get desktop notifications on demand or when long running commands complete. It can as well send push notifications to your phone once a particular command completes. - name: task-spooler url: http://vicerveza.homeunix.net/~viric/soft/ts/ description: | As the name implies, Task spooler is a Unix batch system that can be used to add the Linux commands to the queue and execute them one after the other in numerical order (ascending order, to be precise). This can be very useful when you have to run a lots of commands, but you don't want to waste time waiting for one command to finish and run the next command. You can queue it all up and Task Spooler will execute them one by one. In the mean time, you can do other activities. - name: ttyload url: http://www.daveltd.com/src/util/ttyload/ description: | ttyload is a lightweight utility which is intended to offer a color-coded graph of load averages over time on Linux and other Unix-like systems. It enables a graphical tracking of system load average in a terminal (“tty“). - name: hstr url: https://github.com/dvorka/hstr description: | A tool for managing the history; powerful visual search and execution of previous commands; history editing capabilities. - name: parallel url: https://www.gnu.org/software/parallel/ description: | A shell tool from GNU for executing jobs in parallel using one or more computers; it can split the input and pipe it into commands in parallel. security: - name: cipher url: https://github.com/ash-shell/cipher description: | An Ash module that makes it easy to perform aes-256-cbc encryption for files and directories. articles: - title: Linux-how-to by Alain Francois (posted June 27, 2017) url: https://linoxide.com/linux-how-to/cipher-command-line-tool-encrypt-decrypt-files-directories/ date: 2017-07-09 - name: hashcat url: https://hashcat.net/hashcat/ description: | A robust and efficient password cracking tool that can help you recover lost passwords, audit password security, benchmark, or just figure out what data is stored in a hash. - name: encfs url: http://www.arg0.net/#!encfs/c1awt description: | Encrypted filesystem in user-space based on [FUSE](https://it.wikipedia.org/wiki/FUSE); mounts an encrypted directory into a clear one. - name: LUKS url: https://guardianproject.info/code/luks/ description: | Hard disk encryption tool; it stores all setup information in the partition header, enabling easy data transport or migration. - name: safe.sh url: https://github.com/windowsrefund/safe description: | Pure Bash script to manage secure archives; simple and clean; uses [gnugpg](https://gnupg.org/) for encryption/decryption, thus can leverage tools like [GPG Agent](https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html). - name: titan url: https://www.byteptr.com/titan/ description: | Password management belongs to the command line, deep into the Unix heartland, the shell. Titan is written in C and is available under the MIT license. articles: - title: "A Command line Password Manager For Linux" url: https://www.ostechnix.com/titan-command-line-password-manager-linux/ date: 2017-07-10 description: There are plethora of GUI based password managers. A quick google search will lead you to pick one suitable for you. But the command line password managers are very few. The one today we talk about is Titan. It is written using C programming language. It uses SQlite. office: - name: trino url: https://github.com/eneserdogan/trino description: | Quick and easy translation of words and phrases entered in the command line. - name: Teapot url: https://www.syntax-k.de/projekte/teapot/ description: | Compact ncurses-based spreadsheet with original syntax, 3D-style and built-in functions. - name: sc-im url: https://github.com/andmarti1424/sc-im description: Spreadsheet Calculator Improvised -- An ncurses spreadsheet program for terminal. It is rich in functionalities, but the syntax of functions and other details are different from the common spreadsheets such as Excel and Calc, making difficult to "re-cycle" existing knowledge on these programs to work proficiently with sc-im. Neverthless, a nice piece of software. - name: tpp url: http://www.ngolde.de/tpp.html description: | (text presentation program) a ncurses Ruby program that allows to produce nice text-based presentation with simple markup language. organizers: - name: gcalcli url: https://github.com/insanum/gcalcli description: | CLI to access Google Calendars; allows to do the main tasks: create, delete, and list events. - name: khal url: https://github.com/pimutils/khal description: | CLI and terminal calendar program, able to synchronize with CalDAV servers through [vdirsyncer](https://github.com/pimutils/vdirsyncer). - name: ppl addressbook url: http://ppladdressbook.org/ description: | "``ppl`` is free software made out of other free software. It's built on top of Ruby and Git, and the completely free vcard address book format." - name: khard url: https://github.com/lucc/khard description: | Console carddav client written in Pyhton. - name: iKog url: https://sites.google.com/site/henspace/ikog/ description: | A fully-featured task manager incapsulated within a Python script (just carry around the script to retain all the TODOs). When the script is run, a Python shell is opened, where task-related commands can be entered (ADD, LIST, etc.); a pity that commands are uppercase, which requires the annoying use of the Shift key. - name: Yokadi url: https://yokadi.github.io/ description: | Project-based todo manager: every task must be specified with a mandatory project indication. Tasks are stored within a SQLlite DB. Written in Python. - name: Org mode url: http://orgmode.org/ description: | Super-powerful [Emacs](https://www.gnu.org/software/emacs/) plugin to manage outlines with associated timestamps, priorities, labels, etc.; available views grouped by time (agenda), tags, etc.; plain text storage format. - name: pal url: http://palcal.sourceforge.net/ description: | Calendar program for Unix/Linux systems that can keep track of events; custom, plain text storage format; interesting and fully functional. - name: Remind url: https://www.roaringpenguin.com/products/remind description: | Calendar program with possibility to set complex rules to define events; custom, powerful text-based storage format. - name: TaskWarrior url: https://taskwarrior.org/ description: | Todo manager with advanced features; dedicated synchronization server available; many plugins and related tools; healthy software project. - name: todo.txt url: https://ginatrapani.github.io/todo.txt-cli/ description: | Minimalistic todo manager that uses a simple plain text file to keep track of items; implemented as a shell script. - name: todolist url: http://todolist.site/ description: | A minimal clone of [Wunderlist](https://www.wunderlist.com/), with 30% of its features. GTD oriented. It stores the task list in a hidden JSON file in the home directory, making it easy to backup or share them. - name: TuDu url: https://code.meskio.net/tudu/ description: | A comand line interface to manage hierarchical todos. Each task has a title, a long text description, a deadline (tudu warns you when the date is close), and a scheduled date. There are categories and priorities. - name: Wyrd url: http://freecode.com/projects/wyrd/ description: | Curses front-end for [Remind](https://www.roaringpenguin.com/products/remind) written in OCaml with vertically scrollable time table. productivity: - name: arbtt url: http://arbtt.nomeata.de/ description: | (automatic, rule-based time tracker) runs in background, collecting information regarding open windows, focussed ones, etc.; it can be configured to display statistics on the collected data, e.g., figuring out the time spent on one specific window. - name: ledger url: http://ledger-cli.org/ description: | A powerful, double-entry accounting system from the command-line; it uses a simple yet powerful text syntax to specify the items to account. - name: Qalculate url: https://qalculate.github.io/ description: | Multi-purpose calculator with customizable functions, units, arbitrary precision, plotting (it includes a GUI). - name: Translate Shell url: https://www.soimort.org/translate-shell/ description: | Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc. viewers: - name: cacaview url: http://caca.zoy.org/wiki/libcaca description: | A library and a program to display JPG, PNG, GIF or BMP images in the terminal using ASCII characters. - name: feh url: https://feh.finalrewind.org/ description: | "X11 image viewer aimed mostly at console users" (cit.); with no fancy GUI, it is controlled via commandline arguments and configurable key/mouse actions. - name: mupdf url: http://mupdf.com/ description: | Lightweight graphical PDF visualizer; strong key-based control; fast and accurate rendering. - name: mplayer url: http://www.mplayerhq.hu/design7/news.html description: | One of the most popular video/audio players around; plays most audio and video formats (using ASCII characters) in the shell; provides a GUI for graphical visualization. - name: mpv url: https://mpv.io/ description: | A cross-platform media player with many features such as frame timing, MKV chapters and subtitles. It is a responsive video player with minimal layout customizable with themes. A good alternative media player to VLC since it can handle almost all the media formats as VLC, but using much less resources. - name: zathura url: https://pwmt.org/projects/zathura/ description: | Plugin based document file visualizer (PDF, DejaVu, PS); strongly key-based control. music: - name: ncmpcpp url: https://rybczak.net/ncmpcpp/ description: | NCurses Music Player Client (Plus Plus) - featureful ncurses based MPD client inspired by ncmpc. Relevant features: tag editor, playlist editor, easy to use search engine, media library, music visualizer, ability to fetch artist info from [last.fm](https://www.last.fm/), new display mode, alternative user interface, ability to browse and add files from outside of MPD music directory. - name: espeak url: http://espeak.sourceforge.net/ description: | "a compact open source software speech synthesizer for English and other languages." - name: Alsamixer url: http://www.alsa-project.org/main/index.php/Main_Page description: | ALSA mixer with curses interfaces. - name: cmus url: https://cmus.github.io/ description: | A fast and lightweight audio player with configurable keybindings and playlist support. - name: MOC url: https://moc.daper.net/ description: | (music on console) is a powerful and easy to use console audio player; user interface a la Midnight Commander; plenty of features; fully controllable from the keyboard. - name: mpg123 url: http://mpg123.org/ description: | Quick `mp3` sound file player; no visual interface, just a command-line audio file player for `mp3` files. - name: mps-youtube url: https://github.com/mps-youtube/mps-youtube description: | A curses player for music tracks from Youtube; it allows to search for songs and playlists; it downloads the video, extracts the audio track and plays it; handles local playlists and many configuration parameters. - name: ogg123 url: https://www.xiph.org/downloads/ description: | Quick `ogg` sound file player; no visual interface, just a command-line audio file player for the free and open `ogg` file format. graphics: - name: ImageMagick url: http://www.imagemagick.org/script/index.php description: | Software suite to create, edit, compose, or convert bitmap images; it handles many file formats (including PDF and SVG) and provides processing tools to "resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves". - name: scrot url: https://github.com/dreamer/scrot description: | A simple CLI tool to capture screenshots. versioning: - name: git url: https://git-scm.com/ description: | The winner across all the existing file versioning tools; distributed versioning; fully controllable from the command-line; plenty of configuration and usage options; behind a number of related project that leverage git as backend. - name: git-annex url: https://git-annex.branchable.com/ description: | Manages files with `git`, without checking the file contents into git; very useful to manage large/binary files. - name: git-stats url: hhttps://github.com/IonicaBizau/git-stats description: | "Local git statistics including GitHub-like contributions calendars." - name: Mercurial url: https://www.mercurial-scm.org/ description: | Free, distributed source control management tool. - name: tig url: https://github.com/jonas/tig description: | An ncurses-based text-mode interface for `git` that can act as a repository browser, but can also assist in staging changes for commit at chunk level. file-systems: - name: sshfs url: https://github.com/libfuse/sshfs description: | Locally mount a remote file-system through SSH and access files and directory as they would be on the local machine. - name: TMSU url: http://tmsu.org/ description: | A tool for tagging files; it provides a simple command line tool for applying tags and a virtual filesystem so that you can get a tag-based view of your files from within any other program. file-manager: - name: lfm url: https://inigo.katxi.org/devel/lfm/ description: | (Last File Manager) is a file manager written in Python; it comes with lots of features, including 1-pane or 2-pane view, files filters and bookmarks, tree view, virtual file-systems to open compressed archives, serch in files, customizable keybindings and themes. - name: Midnight Commander url: http://www.midnight-commander.org/ description: | a visual file manager, full-screen text mode application that allows you to copy, move and delete files and whole directory trees and search for files; includes an internal viewer and editor. - name: ncursesFM url: https://github.com/FedeDP/ncursesFM description: | File manager written in C; rather complete in terms of features; especially lightweight and responsive. - name: ranger url: http://ranger.nongnu.org/ description: | Console file manager with vi key bindings; curses interface with a view on the directory hierarchy; comes a file launcher that automatically finds out which program to use for a given file type. - name: vifm url: https://vifm.info/ description: | "ncurses based file manager with vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from mutt" (cit.). conversion: - name: catdoc url: http://www.wagner.pp.ru/~vitus/software/catdoc/ description: | Command line converter from Microsoft Word to plain text; output is sent to the standard output. - name: Pandoc url: http://pandoc.org/ description: | Universal document file converter; handles input output from/to a number of formats: HTML, PDF, LaTeX, docx, odt, AsciiDoc, Markdown, Textile, just to mention a few; the quality of conversion strongly depends on the combination of input/output formats. - name: xls2csv url: http://www.wagner.pp.ru/~vitus/software/catdoc/ description: | Command line converter from Excel to CSV file format. backup: - name: borg url: https://github.com/borgbackup description: | Encrypted backups with a clean and simple interface; easy to use and set up; possibility to mount the backup archive with FUSE and inspect it as a regular file system. - name: duplicity url: http://duplicity.nongnu.org/ description: | Creates GPG encrypted, compressed backups; client-side encryption allows to upload the backup onto untrusted servers. - name: Duply url: http://duply.net/ description: | Simplifies the use of [duplicity](http://duplicity.nongnu.org/) by keeping clean configuration files to automate the backup. file-handling: - name: classifier url: https://github.com/bhrigu123/classifier description: | Organize files in your current directory, by classifying them into folders of music, pdfs, images, etc. articles: - title: "Automatically Organize Your Downloads Folder In Linux Using Classifier" url: http://www.webupd8.org/2017/03/automatically-organize-your-downloads.html?m=1 date: 2017-07-10 description: My downloads folder is pretty messy but I can't just delete things because I still need most of the stuff I download. To "fix" this, I was looking for an app that can automatically organize my downloads, and I stumbled upon Classifier, an easy to use command line tool that can organize files in any directory. - name: detox url: http://detox.sourceforge.net/ description: | A utility designed to easily clean up filenames; it replaces characters like spaces with standard equivalents; it also replace UTF-8 or Latin-1 (or CP 1252) characters with more handy ones. - name: dtrx url: https://brettcsmith.org/2007/dtrx/ description: | (Do The Right eXtraction) aims at taking "all the hassle out of extracting archives"; allows to use one command to extract archives in different formatsl supports tar, zip, deb, rpm, 7z, rar, gz, bz2, xz; supports recursive extraction (files into file) and extracts files into dedicated directories. - name: exa url: https://the.exa.website/ description: | Replacement for 'ls' written in Rust, with colors and several additional "views". articles: - title: "exa a modern replacement for ls written in rust for Linux/Unix" url: https://www.cyberciti.biz/open-source/command-line-hacks/exa-a-modern-replacement-for-ls-written-in-rust-for-linuxunix/ date: 2017-08-09 description: ls is a command to show files in Linux and Unix-like operating systems. A ls command first appeared in a version of AT&T UNIX as well as in Multics. BSD and GNU Coreutils package provides the ls command with minor syntax changes. There is now third alternative named exa ... - title: "Exa – A Modern And Colorful Replacement For LS Command Written In Rust" url: https://www.2daygeek.com/exa-a-modern-replacement-for-ls-command-linux/ date: 2017-10-07 description: | ls is one of the very basic & essential Linux command for administrator that can be used in most of the actions (in other hands, Linux administrator can’t live without ls command). Exa is a small, fast, portable, modern and colorful replacement for ls command which was written in rust language. - name: fasd url: https://github.com/clvv/fasd description: | A Commandline Tool That Offers Quick Access to Files and Directories. Fasd (pronounced similar to "fast") is a command-line productivity booster. Fasd offers quick access to files and directories for POSIX shells. It is inspired by tools like autojump, z and v. Fasd keeps track of files and directories you have accessed, so that you can quickly reference them in the command line. - name: rename url: https://www.kernel.org/pub/linux/utils/util-linux/ description: | Included in `util-linux`, allows bulk rename of files with regex support. - name: renameutils url: http://www.nongnu.org/renameutils/ description: | A set of programs to change file and directory names by editing them inplace; I find `imv` especially useful to edit a filename at the program prompt. - name: rmlint url: https://github.com/sahib/rmlint/ description: | A tool to recursively scan a directory tree looking for duplicate and broken files; it outputs statistics and save the list of files in JSON format; it produce a shell script that can be inspected before running it to delete the desire files. - name: gcp url: https://github.com/petronny/gcp description: | `gcp` (Goffi’s cp) is an advanced file copier tool, heavily inspired from the traditional `cp` command utility, but with some additional features: Displays the copy progress indicator, with estimated time, current file speed; logs of all actions; resume of interrupted copy processes. - name: nnn url: https://github.com/jarun/nnn description: | "The missing terminal file browser for X". Provides only diretory traversal and file visualization. No delete/move operations are supported. - name: PathPicker url: https://facebook.github.io/PathPicker/ description: | A tool from Facebook that parses the output from a command and presents a UI to select files and directories; can be used to apply a command of a interactively selected files or to move across directories. - name: alder url: https://github.com/aweary/alder description: | "A minimal implementation of the UNIX tree command with colors!" - name: tree url: http://mama.indstate.edu/users/ice/tree/ description: | "Recursive directory listing command that produces a depth indented listing of files". funny: - name: asciiacquarium url: http://www.robobunny.com/projects/asciiquarium/html/ description: | Enjoy the mysteries of the sea from the safety of your own terminal! - name: cmatrix url: http://www.asty.org/cmatrix/ description: | ncurses program that display the scrolling lines found in the movie `The matrix`. - name: cowsay url: https://en.wikipedia.org/wiki/Cowsay description: | A program that generates a ASCII art of a cow with a bubble containing the specified message (I provide the Wikipedia link since at the moment the link to the author's homepage results to be unreachable). - name: cowthink url: https://en.wikipedia.org/wiki/Cowsay description: | Same as `cowsay`, but uses a "think" bubble instead of a speech bubble. - name: fortune url: http://software.clapper.org/fortune/ description: | Generates random messages feched from a quotation database. - name: Steam Locomotive url: http://www.cyberciti.biz/tips/displays-animations-when-accidentally-you-type-sl-instead-of-ls.html description: | A steam locomotive traverses the screen from right to left if `sl` is typed instead of `ls`. games: - name: StarWars vision url: description: | See Star Wars in ASCII with ``telnet towel.blinkenlights.nl``. - name: bastet url: http://fph.altervista.org/prog/bastet.html description: | (Bastard Tetris) implements the classical Tetris but with a logic to generate the next block which maximizes the difficulty for the player. - name: Dwarf fortress url: http://www.bay12games.com/dwarves/ description: | A fantasy game using ASCII art graphical representation of the game environment; it features a rich environment with many options and possibilities. - name: freesweep url: http://www.upl.cs.wisc.edu/~hartmann/sweep/ description: | A Minesweeper clone for the terminal which allows you to configure settings such as table rows and columns up to 1024x1024!), percentage of bombs, colors and also has a highscores table. - name: Nethack url: http://nethack.org/ description: | Single player rogue-like dungeon exploration game; I'm currently addicted to [Pixel Dungeon](http://pixeldungeon.watabou.ru/) and its derivatives (Android apps), thus I find nethack a little bit too graphically poor. - name: Oldrunner url: http://culot.org/public/Code/oldrunner.html description: | Character-based remake of Lode Runner; includes all the original 150 levels. - name: Slash'EM url: http://slashem.sourceforge.net/ description: | Rogue-like game derived from `nethack` offering extra features, monsters, and items; includes a GUI version. - name: Typespeed url: http://typespeed.sourceforge.net/ description: | Type words that are flying by from left to right as fast as you can; features different word sets, e.g., UNIX commands, English words, Non-English words. webdev: - name: Metalsmith url: http://www.metalsmith.io/ description: | An extremely simple static site generator; all functionalities are provided by plugins that can be combined and chained; written and extendable in Javascript. - name: nanoc url: http://nanoc.ws/ description: | Static site generator written in Ruby; extremely powerful and customizable; support many formats to generate HTML content. - name: siege url: https://www.joedog.org/siege-home/ description: | An http load testing and benchmarking utility designed to let web developers stress their code. - name: Tsung url: http://tsung.erlang-projects.org/ description: | A multi-protocol distributed load testing tool that can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers. browser: - name: Links url: http://www.jikos.cz/~mikulas/links// description: | A textual Web browser with tables and frames. - name: Elinks url: http://elinks.cz/ description: | "Advanced and well-established feature-rich text mode web browser"; started as a fork of `Links`; it supports background download with queueing, some support from CSS, text box editing in external text editor. - name: Linx url: http://lynx.invisible-island.net/ description: | A highly configurable text-based web browser; one of the oldest CLI browser I'm aware of. - name: w3m url: http://w3m.sourceforge.net/ description: | A text-based web browser as well as a pager like `less`; it can be used as a text formatting tool which typesets HTML into plain text. email: - name: Newsbeuter url: http://newsbeuter.org/ description: | "The Mutt of RSS Feed Readers": Newsbeuter is an open-source RSS/Atom feed reader for text terminals. It runs on Linux, FreeBSD, Mac OS X and other Unix-like operating systems. Newsbeuter's great configurability and vast number of features make it a perfect choice for people that need a slick and fast feed reader that can be completely controlled via keyboard. - name: alpine url: http://www.washington.edu/alpine/ description: | Mail client which aims at being "fast, easy to use email client that is suitable for both the inexperienced email user as well as for the most demanding of power users". - name: alot url: https://github.com/pazz/alot description: | MUA written in Python using the [NotMuch](https://notmuchmail.org/) backend; MailDir format support. - name: mbsync url: http://isync.sourceforge.net/mbsync.html description: | Mailboxes synchronization tool; allows to download email locally; MailDir format supported. - name: Mutt url: http://www.mutt.org/ description: | Mail client with tons of features, customization chances, support for IMAP, POP3, multiple storage formats. - name: sup url: http://sup-heliotrope.github.io/ description: | MUA written in Ruby; specifically developed for accounts with "a lot of emails"; nice thread-based presentation. transfer: - name: aria2 url: https://github.com/aria2/aria2 description: | Lightweight and easy-to-use download utility; it supports HTTP/HTTPS, FTP, SFTP, BitTorrent, Metalink and multiple sources; cross-platform. - name: curl url: https://curl.haxx.se/ description: | A tool and library for transferring data with URL syntax; supports a lot of protocols. - name: Deluge url: http://deluge-torrent.org/ description: | A lightweight, Free Software, cross-platform BitTorrent client; a terminal curses interface, web interface and command line client can connect to a running daemon to manage torrent downloads. - name: lftp url: https://lftp.yar.ru/ description: | "Sophisticated ftp/http client, and a file transfer program supporting a number of network protocols"; support for bookmarks and mirroring features. - name: Magic Wormhole url: https://github.com/warner/magic-wormhole description: | The program allows transfer arbitrary-sized files and directories (or short pieces of text) from one computer to another The two endpoints are identified by using identical human-readable codes. - name: rsync url: https://download.samba.org/pub/rsync/rsync.html description: | Mirror directories across networked machines; handles diffs/changed files; works across SSH; plenty of parameters. - name: sitecopy url: http://www.manyfish.co.uk/sitecopy/ description: | Synchronizes a local copy of a website with a remote copy on a server; does not use SSH/`scp` but FTP for file copy; useful when the remote server does not support secure copy. - name: stftp url: http://stftp.sourceforge.net/ description: | (simple terminal FTP) aims to be a "easy-to-use and unbloated client for the UNIX (and UNIX-like) console". - name: Woof url: http://www.home.unix-ag.org/simon/woof.html description: | (Web Offer One File) sets up an HTTP webserver to serve files from a given local directory; all the users connected to the network can see and download the files. - name: youtube-dl url: http://rg3.github.io/youtube-dl/ description: | Downloads videos from [YouTube](https://www.youtube.com/) and some other sites; useful for automated bulk downloads. chat: - name: finch url: http://www.pidgin.im/ description: IM program supporting many protocols, including Yahoo!, AIM, IRC, or WLM; comes with the `Pidgin` project. - name: irssi url: http://www.irssi.org description: The most popular IRC client for the command-line; a flexible program, with many options and supporting many protocols. - name: RainbowStream url: http://www.rainbowstream.org/ description: Twitter client for the terminal; allows almost all the operations that can be done from GUI and Web clients. - name: WeeChat url: http://weechat.org/ description: A "fast, light and extensible chat client". - name: ssh-chat url: https://github.com/shazow/ssh-chat description: "Custom SSH server written in Go. Instead of a shell, you get a chat prompt." misc-or-to-classify: - name: PSSH url: https://code.google.com/archive/p/parallel-ssh/ description: PSSH provides parallel versions of OpenSSH and related tools. Included are pssh, pscp, prsync, pnuke, and pslurp. The project includes psshlib which can be used within custom applications. articles: - title: "PSSH - Execute Commands on Multiple Linux Servers in Parallel" url: http://www.2daygeek.com/pssh-parallel-ssh-run-execute-commands-on-multiple-linux-servers/ date: 2017-07-10 description: By default everyone prefers openSSH to connect remote Linux servers. openSSH is one of the best tool to connect remote server securely and doing the job perfectly but it doesn’t have the features to execute commands on multiple Linux servers simultaneously, this is where Parallel SSH came to picture. - name: powerline url: https://github.com/powerline/powerline description: Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile. - name: rtop url: http://www.rtop-monitor.org/ description: rtop is a simple, agent-less, remote server monitoring tool that works over plain SSH. Written in golang, it does not need any software to be installed on the server that you want to monitor. It works by establishing an SSH session, and running commands on the remote server to collect system metrics. articles: - title: "rtop - A Nifty Tool to Monitor Remote Server Over SSH" url: http://www.2daygeek.com/rtop-monitor-remote-linux-server-over-ssh/# date: 2017-07-10 description: rtop is a simple, agent-less, remote server monitoring tool that works over SSH. It doesn’t required any other software to be installed on remote machine, except openSSH server package & remote server credentials. - name: geoiplookup url: https://github.com/maxmind/geoip-api-c description: a little application to find geographical and network information of an IP address based no the geoip C API. articles: - title: "How To Find The Geolocation Of An IP Address From Commandline" url: https://www.ostechnix.com/find-geolocation-ip-address-commandline/ date: 2017-07-10 description: geoiplookup is a command line utility that can be used to find the Country that an IP address or hostname originates from. It uses the GeoIP library and database to collect the details of an IP address. - name: quickserve url: https://github.com/charliesome/quickserve description: Quickserve is a very simple HTTP server written in Python that is intended for quickly sharing files on an ad-hoc basis. Aside from opening a port in your firewall if you have one, quickserve requires no set-up and should work with no hassle. articles: - title: "quickserve" url: https://xyne.archlinux.ca/projects/quickserve/ date: 2017-07-10 description: A simple HTTP server for quickly sharing files. - name: goobook url: https://gitlab.com/goobook/goobook description: The purpose of GooBook is to make it possible to use your Google Contacts from the command-line and from MUAs such as Mutt. It can be used from Mutt the same way as abook. articles: - title: "GooBook - Access Your Google Contacts From Commandline In Linux" url: https://www.ostechnix.com/goobook-access-google-contacts-commandline-linux/ date: 2017-07-10 description: Here is an useful and handy utility called GooBook that allows you to access your Google contacts from commandline. The main purpose of Goobook is to access google contacts from commandline or a command line Email client like Mutt. - name: lolcat url: https://github.com/busyloop/lolcat description: Ruby Gem to colorize the output of the cat command. articles: - title: "lolcat : tool to rainbow color linux terminal" url: http://kerneltalks.com/linux/lolcat-tool-to-rainbow-color-linux-terminal/ date: 2017-07-10 description: Paint your command outputs with rainbow color! Use lolcat (Ruby gem) tool and add some spice to black putty terminal! utility: - name: dasht url: http://sunaku.github.io/dasht/man/man0/README.html description: | Search API docs offline, in your terminal or browser. - name: arch-wiki url: https://github.com/deadhead420/arch-wiki description: | Search the Arch Wiki anywhere from the command line. articles: - title: "How To Search The Arch Wiki Website Right From Terminal" url: http://www.2daygeek.com/search-arch-wiki-website-command-line-terminal/# date: 2017-08-09 description: Whenever you search anything about Arch Linux in web browser, I damn sure the first link would be Arch Wiki. Am i right? Yes, since Arch wiki is an ideal place to get solution for most of the arch Linux issues ... - name: pdd url: https://github.com/jarun/pdd description: | Tiny date, time diff calculator. articles: - title: "pdd - Tool to find Date and Time Difference in Linux Command Line" url: https://linoxide.com/linux-how-to/pdd-tool-date-time-difference-linux-command-line/ date: 2017-08-09 description: In some occasions where you want to check by how many years someone older than you, how old you are (in days, years or months), the countdown to an event or the next flash sale. There is a python-based command line application ... - name: termsaver url: http://termsaver.brunobraga.net/ description: | termsaver to enjoy fancy ASCII screensavers like matrix, clock, starwars, and a couple of not-safe-for-work screens. - name: dateutils url: http://www.fresse.org/dateutils/ description: | Dateutils are a bunch of tools that revolve around fiddling with dates and times in the command line with a strong focus on use cases that arise when dealing with large amounts of financial data. articles: - ref: file-conversion title: "Command-line document conversion tools for writers" url: https://opensource.com/article/17/3/document-conversion-tools-writers decription: Find out how Markdown with Pandoc and Org-mode make writing documents a lot easier. rating: poor-information - ref: battery-tools title: "Linux Laptop: Display Battery Status And Thermal Temperature From Command Line" url: https://www.cyberciti.biz/faq/linux-laptop-battery-status-temperature/ description: How do I find out details about my Linux Laptops temperature, battery status and other information from the command prompt? How can I check battery status using the terminal on Linux? tools: - Deluge - rsync - sitecopy - borg - screen - zathura - vim - safe.sh - nanoc - git - Bash - Alsamixer - MOC recommended: - Typespeed - rename - tree - htop - mps-youtube - lfm