Awesome Shell
Awesome Shell
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php. This awesome collection is also available on Unix-Shell.ZEEF.com. - Awesome Bash - Command-Line Productivity - Customization - For Developers - System Utilities - Downloading and Serving - Multimedia and File Formats - Applications - Games - Shell Package Management - Shell Script Development - Guides - Awesome Zsh - Awesome Fish - Other Awesome Lists
Awesome Bash
Command-Line Productivity
Search, bookmarks, multiplexing, and other tools that make your terminal experience more productive.
- ag - Super fast string search through a directory hierarchy
- autoenv - Directory-based environments
- autojump - A cd command that learns - easily navigate directories from the command line
- bashmarks - Directory bookmarks for the shell
- bd - Quickly go back to a parent directory
- boilr - A blazingly fast CLI tool for creating projects from boilerplate templates.
- boom - Store links and snippets in the commandline
- byobu - Text-based window manager and terminal multiplexer
- commacd - A faster way to move around in Bash
- desk - A lightweight workspace manager for the shell
- direnv - An environment switcher for the shell, compare with autoenv
- enhancd - A next-generation cd command with an interactive filter
- fasd - Command-line productivity booster, offers quick access to files and directories
- fzf - A command-line fuzzy finder
- hhighlighter - Colorize words in a command output
-
hr -
<hr />
for your terminal - hstr - Bash History Suggest Box
- k - k is a Zsh script to make directory listings more readable, adding Git status, fileweight colors and rotting dates
- marker - Bookmark your shell commands
- parallel - Build and execute shell command lines from standard input in parallel
- pathpicker - Accepts inputs like grep, searches, git etc; allows selecting files from the result of the input, which you can then open or provide as argument to a command.
- percol - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell
- qfc - File-completion widget for Bash and Zsh
- SHML - Style framework for the terminal (Shell Markup Language)
- slugify - Command that converts filenames and directories to a web friendly format
- spark - ▁▂▃▅▂▇ in your shell
- spot - Tiny file search utility
- snips - Commandline tool to manage snippets of code.
- sshfs - A tool for mounting remote file systems over SSH
- sshrc - Bring your .bashrc, .vimrc, etc. with you when you SSH
- thefuck - Fix common shell mistakes by using an easy to remember command
- tmux - Amazing terminal multiplexer
- v - z for vim.
- wemux - Multi-User Tmux Made Easy
- z - z is the new j, yo
Customization
Custom prompts, color themes, etc.
- base16-shell - Base16 for Shells
- bash-git-prompt - An informative and fancy Bash prompt for Git users
- bash-powerline - Powerline-style Bash prompt in pure Bash script
- bashstrap - A quick way to spruce up OSX terminal
- bullet-train-oh-my-zsh-theme - An oh-my-zsh shell theme based on the Powerline Vim plugin
- emojify Emoji on the command line
- flatui-terminal-theme - Nicer colors for terminal
- git-prompt - Bash prompt with Git, SVN and HG modules
- gittify - A colorful Bash prompt + customized Git aliases
- Gogh - Color Scheme - Color Scheme for Gnome Terminal
- liquidprompt - A full-featured & carefully designed adaptive prompt for Bash & Zsh
- mysql-colorize - Colorization for mysql comand-line client
- oh-my-git - An opinionated git prompt for bash and zsh
- sexy-bash-prompt - Bash prompt with colors, Git statuses, and Git branches
For Developers
Command-line development, version control, and deployment.
- bocker - Docker implemented in 100 lines of bash
- cloc - Count Lines of Code
- dokku - Docker powered mini-Heroku. The smallest PaaS implementation you’ve ever seen.
- git-extra-commands - Many Git extra utilities. Churn, cut-branch, improved-merge and many more.
- git-extras - Git utilities – repo summary, repl, changelog population, author commit percentages and more
-
git-open - Type
git open
to open the GitHub page or website for a repository in your browser - git-semver - Git plugin for easing semantic versioning and changelog validation
- git-sh - A customized Bash environment suitable for Git work
- git-up - Automatically rebase incoming changes instead of merging. Be polite!
- hub - hub helps you win at git.
- mr - Multiple Repository management tool
- overcommit - A fully configurable and extendable Git hook manager
- pre-commit - A framework for managing and maintaining multi-language pre-commit hooks
- repren - Command-line search-and-replace and file-renaming swiss army knife
- slap - Sublime-like terminal-based text editor that runs on Node.js
- shipit - Minimalistic SSH deployment
System Utilities
OS-related tools, including system administration, system debugging, and file and process management.
- atop - ASCII full-screen performance monitor that is capable of reporting the activity of all processes
- cv - Linux tool to show progress for cp, rm, dd, …
- glances - Glances an Eye on your system
- goaccess - GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems.
-
htop - A ncurses based interactive process viewer which aims to be a better
top
- lnav - An advanced log file viewer for the small-scale
-
lsp - An improved
ls
, with file descriptions in plain language and intelligent file grouping - mtr - The functionality of the ‘traceroute’ and ‘ping’ programs in a single network diagnostic tool.
- ncdu - NCurses Disk Usage
- powertop - Battery/Power usage and device stats monitoring command-line tool, with tune-up options.
- procdog - Lightweight command-line control of long-lived processes like servers
- quick-secure - Quickly secure and harden UNIX/Linux systems
Downloading and Serving
Self-hosted, lightweight servers and networking tools written in shell scripts.
- aria2 - aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and Metalink
- balls - Bash on Balls
- bashttpd - A web server written in Bash
- bitpocket - “DIY Dropbox” or “2-way directory (r)sync with proper deletion”
- Dropbox-Uploader - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox
- httpie - HTTPie is a command line HTTP client, a user-friendly cURL replacement
- ngincat - Tiny Bash HTTP server using netcat
- resty - Little command line REST client that you can use in pipelines
- youtube-dl - Small command-line program to download videos from YouTube.com and other video sites
Multimedia and File Formats
Tools for handling video and audio files.
- adb-export - Export Android content providers to CSV format
- Android-Kitchen - A text-based kitchen for Android ROM customization. Uses shell scripts and works with Cygwin/OS X/Linux
- Beets - Music library manager and MusicBrainz tagger
- cmus - Cross-platform cli audio player.
- image-scraper - A cool command line image scraper with a lot of features.
- jq - Sed for json data. You can use it to slice and filter and map and transform structured data
- mplayer - Lets you play most audio and video formats (using ASCII characters) in the shell as well as in a GUI.
- PiCAST - PiCAST turns your $35 Raspberry Pi in to a Chromecast like Device
- sejda - Command line manipulation of PDF documents (split, merge, rotate, convert to jpg, extract text, etc)
- xmlstarlet - Old but powerful tool for command-line XML formatting, filtering, and manipulation.
Applications
Command line-based applications or command line access to existing services.
- ansiweather - Weather in your terminal, with ANSI colors and Unicode symbols
- bashblog - A Bash script that handles blog posting
- choosealicense-cli - Bring http://choosealicense.com to your terminal
- facy - Command line power tool for facebook
- fanyi - Translate English to Chinese in terminal
- geeknote - Command line evernote client
- iponmap - Draw point on world map using ip address
- isitup - Check whether a website is up or down
- jrnl - A simple command line journal application that stores your journal in a plain text file
- ledger - Command line accounting
- licen - Generate your license. Yet another lice, but implement with Jinja2 and docopt
- pushblast - Get PushBullet notifications when a shell program exits
- pushbullet-bash - Bash interface to the PushBullet API
- SAWS - A Supercharged AWS CLI
- transfer.sh — Quickly upload and share files from your shell
- wego - Weather app for the terminal
- whereami - Get your geolocation information from the CLI
Games
All work and no play is a cruddy way to spend your day.
- bash2048 - Bash implementation of 2048 game
- minesweeper - Bash implementation of minesweeper
- sedtris - Tetris in sed
- sed-scripts - Arkanoid and Sokoban written using sed
Shell Package Management
Tools for managing multiple shell configurations. For zsh-specific tools, see the Zsh section.
- bash-it - A community Bash framework
- basher - A package manager for shell scripts
- bpkg - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg
- dotfiler – Shell agnostic git based dotfiles package manager, written in Python.
- fresh - Keep your dotfiles fresh
- homeshick - Git dotfile synchronizer written in Bash
- vcsh - Config manager based on Git
Shell Script Development
Tools for writing, improving, or organizing Bash or other shell scripts
- ansi - ANSI escape codes in pure bash - change text color, position the cursor, much more
- assert.sh - Bash unit testing framework
- bashful - A collection of libraries to simplify writing Bash scripts
- bashmanager - mini bash framework for creating command line tools
- bats - Bash Automated Testing System
- composure - Compose, document, version and organize your shell functions
- dispatch - A command line argument parser in 50 lines of portable shell script.
- mo - Mustache templates in pure bash
- rerun - A modular shell automation framework to organize your keeper scripts
- semver_bash - Semantic Versioning in Bash
- shellcheck - Static analysis tool for shell scripts
- shpec - A shell testing framework
- sub - A delicious way to organize programs
- ts - A shell test script
- shunit2 - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
Guides
- Bash Hackers Wiki
- Greg Wooledge’s (aka “greycat”) wiki. Specifically Bash Guide, Bash FAQ and Bash Pitfalls
- Google’s Shell Style Guide
- The Linux Documentation Project: Bash Programming - Intro/How-to
- The Linux Documentation Project: Advanced Bash Scripting Guide
- WikiBooks: Bash Shell Scripting
- Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)
- The Art of Command Line
Other Awesome Lists
Other amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness.