awesome-shell/README.md
2017-04-20 18:33:47 -04:00

25 KiB
Raw Blame History

 █████╗ ██╗    ██╗███████╗███████╗ ██████╗ ███╗   ███╗███████╗
██╔══██╗██║    ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗  ███████╗██║   ██║██╔████╔██║█████╗  
██╔══██║██║███╗██║██╔══╝  ╚════██║██║   ██║██║╚██╔╝██║██╔══╝  
██║  ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝  ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝     ╚═╝╚══════╝
███████╗██╗  ██╗███████╗██╗     ██╗                           
██╔════╝██║  ██║██╔════╝██║     ██║                           
███████╗███████║█████╗  ██║     ██║                           
╚════██║██╔══██║██╔══╝  ██║     ██║                           
███████║██║  ██║███████╗███████╗███████╗                      
╚══════╝╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝                      

Awesome Shell Awesome

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.

Shells

Choose your base shell.

  • bash - GNU Project's shell (Bourne Again SHell)
  • fish - Smart and user-friendly command line shell
  • xiki - Makes the shell console more friendly and powerful
  • xonsh - Python-ish, BASHwards-looking shell language and command prompt
  • zsh - Powerful shell with scripting language

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
  • aliases - Contextual, dynamic, organized aliases for bash
  • aliasme - alias helper to change directory quickly
  • autoenv - Directory-based environments
  • autojump - A cd command that learns - easily navigate directories from the command line
  • bashhub - ☁️ Bash history in the cloud. Indexed and searchable.
  • 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
  • borg - A terminal based search engine for bash commands
  • Buku - Powerful command-line bookmark manager
  • 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
  • foxy - Plain text bookmarks for firefox and surf browsers.
  • fzf - A command-line fuzzy finder
  • googler - Google Search, Google Site Search, Google News from the terminal
  • 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
  • k alias - get kool aliases (and more) working with a simple one-liner
  • marker - Bookmark your shell commands
  • nnn - File browser and disk usage analyzer with excellent desktop integration
  • 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
  • rg - ripgrep is a line oriented search tool that combines the usability of The Silver Searcher with the raw speed of GNU grep
  • SHML - Style framework for the terminal (Shell Markup Language)
  • slugify - Command that converts filenames and directories to a web friendly format
  • sman - 🐛 A command-line snippet manager
  • spark - ▁▂▃▅▂▇ in your shell
  • Shark - ▁▂▃▅ Sparkline Generator
  • sheet - Text snippets for the command line
  • 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
  • sudocabulary - Learn English Vocabulary from your terminal
  • surfraw - browse specific site and search the web from your terminal without browser.
  • thefuck - Fix common shell mistakes by using an easy to remember command
  • tldr - A fully-functional bash client for tldr, simplified and community-driven man pages
  • tmux - Amazing terminal multiplexer
  • up - Ascend directories by name or count, for bash and zsh.
  • v - z for vim.
  • wemux - Multi-User Tmux Made Easy
  • z - z is the new j, yo

Customization

Custom prompts, color themes, etc.

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.
  • getopts - CLI parser for fish
  • 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
  • starring - Automatically star the npm-packages that you are using on GitHub.

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
  • progress - 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.
  • histstat - History for netstat
  • htop - A ncurses based interactive process viewer which aims to be a better top
  • lnav - An advanced log file viewer for the small-scale
  • ls++ - Colorized ls on steroids
  • 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.
  • gifgen - Simple high quality GIF encoding
  • image-scraper - A cool command line image scraper with a lot of features.
  • imgp - Blazing fast batch image resizer and rotator
  • 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.
  • nehm - Console tool, which downloads, sets IDv3 tags and adds to your iTunes (if you use it) your SoundCloud likes in convenient way
  • 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)
  • xidel - Cli tool to filter, map and create HTML/XML/JSON data with (Turing-complete) XPath and XQuery.
  • 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 https://choosealicense.com/ to your terminal
  • facy - Command line power tool for facebook
  • fanyi - Translate English to Chinese in terminal
  • geeknote - Command line evernote client
  • haxor-news - Browse Hacker News like a haxor
  • hn-cli - Browse Hacker News from the comfort of your Terminal
  • 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
  • moviemon - Everything about your movies within the command line.
  • pockyt - Read, Manage, and Automate your Pocket collection.
  • pushblast - Get PushBullet notifications when a shell program exits
  • pushbullet-bash - Bash interface to the PushBullet API
  • Reddit Terminal Viewer - Browse Reddit from your terminal
  • SAWS - A Supercharged AWS CLI
  • taskwarrior - A command-line TODO list manager
  • terjira - Command line power tool for Jira
  • transfer.sh — Quickly upload and share files from your shell
  • vl - URL link checker on text documents
  • 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.

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
  • shundle - Plugin manager for shell scripts
  • vcsh - Config manager based on Git
  • yadm - Git-based dotfiles manager supporting encryption, alternates, and bootstrapping

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
  • bashwithnails - a Bash framework written just for fun with testing, dependency management & packaging
  • bats - Bash Automated Testing System
  • crash - Proper error handling, exceptions and try/catch for ZSH
  • Fishtape - TAP producer and test harness for fish
  • composure - Compose, document, version and organize your shell functions
  • dispatch - A command line argument parser in 50 lines of portable shell script.
  • is.sh - An alternative for builtin test command, it will make your "if" statements pretty
  • lumberjack - A logging interface for shell scripts
  • mo - Mustache templates in pure bash
  • optparse - A BASH wrapper for getopts, for simple command line arguments.
  • rerun - A modular shell automation framework to organize your keeper scripts
  • revolver - A reusable progress spinner for shell scripts
  • semver_bash - Semantic Versioning in Bash
  • [sh-semver] (https://github.com/qzb/sh-semver) - Semver tool for bash - finds versions matching to specified rules
  • shellcheck - Static analysis tool for shell scripts
  • shellfire - A repository of namespaced, composable shell (bash, sh and dash) function libraries
  • 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.
  • rebash - Scripting library/framework. Features: imports, exceptions, doc-tests ...
  • zunit - A powerful unit testing framework for ZSH

Guides

Other Awesome Lists

Other amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness.

See also