It's the 21st century, so why are we are settling for monochrome terminal prompt and command line tools for the 90s? Give your terminal the glowup it deserves with modern shells and command line software to supercharge your development productivity. Users of all operating systems and all levels of terminal experience welcome.
- upstream = developers
- downstream = distributors
Some stuff might be on GitHub, you need to read the source yourself, or trust the distributors to vet the software ahead of time. Even good software is potentially vulnerable.
Eg: the XZ attack, the noisetorch attack.
-
Package manager (recommended!)
-
Sometimes the software we want is not available there :(
-
Or maybe the version there is not the one we want
-
Solutions:
- Extend the repositories with PPA (personal package archive)
- Install software directly from upstream
- from .deb package or precompiled binary
- do it yourself, compile from source
- make sure you add this software to your path!
-
Recommendations:
- Windows: Scoop/WSL, Mac: Homebrew/Nix, Linux: your package manager, Guix
- Latency/Throughput (https://danluu.com/term-latency/)
- GPU-accelerated: high throughput
- CPU-optimized: low latency
- Windows: MinGetty from Git Bash
- Linux: anything but Gnome Terminal please
- No tabs? Screen / Tmux / Zellij
- Bash
- ol' reliable
- Keyboard shortcuts
- Readline, controlled by ~/.inputrc
- Getting help
man man
(reference manual)info info
(textbook)tldr tldr
(examples)
- Fish
- beautiful but not POSIX
- Follows the POSIX standard
- Typically installed by default
- cat
- concatenates files
- ls
- lists files
- grep
- searches files for text
- find -exec
- finds files and runs commands on them
- diff
- finds the difference between files
- rm
- remove files
- top
- task manager
- cp
- copies files
- bat
- like cat
- exa
- like ls
- ripgrep
- like grep
- fd
- like find -exec
- delta
- like diff
- trash
- put files in the Linux trash directory
- fzf
- interactive selector
- zoxide
- change directories by frecency
- add
zoxide init fish | source
to~/.config/init/config.fish
(should be in the config.fish file in this repo) - to go to a directory type
z {any part of directory}
!
- neofetch
- print a cool ascii logo
- rsync
- vifm
- lynx
- jq/yq/xq
- up
- zoxide
- fzf
- neofetch
- tig
- miller
- htop
- jqp
There's a ton more to explore!
- Zsh
- Xonsh
- Oil shell
- Json shells
- Sixel images
- Escape sequences for clicking inside shells
- Ruby shell https://github.com/0mWh/ruby-linux-initrd
This work is licensed under a Creative Commons Attribution 4.0 International License.