-*- mode: Org; org-download-image-dir: “./images/”; -*-
Oh-my-*nix
Introduction
Maybe you have to switch different OS fluently as I do, and you are exhausted about spending a whole day to configure *nix(Mac/Linux), even though you miss your crafted environment so much. I just try to make everything become easy, so we could focus on programming instead of tweak environment. Note: All tool could be installed by script: install_awesome_tool.sh
Install
git clone -b master [email protected]:samrayleung/Oh-my-unix.git ~/.oh-my-unix && cd ~/.oh-my-unix && sh bootstrap.sh
Linux Special
Even though Linux and Mac both are derived from Unix, but there are something special for linux.
i3wm
i3 is a nice tilling window manager, I think it change my though about X window system. With i3, I could control my Linux desktop without mouse. Mouseless – efficient, productive, isn’t it ? But something I thing it is unfriendly with i3, you have to configure i3wm from scratch. Some guys want a out-of-box window manager, so they dive into KDE, GNOME, XFCE, etc. However, if you have enough patience and aesthetic, you could own an gorgeous WM. You will be amazed by them.
Screenshot of my i3 desktop:
plugin for i3
i3 is just a plain window manager, so if you want a perfect WM, you may need some plugins:
i3lock
i3lock is a simple screen locker like slock. After starting it, you will see a white screen(you can configure the color/an image)
rofi
Rofi is a window switcher, run dialog and dmenu(i3 default application launcher) replacement:
- Window Switcher:
- Application launcher:
feh
Feh is an X11 image viewer aimed mostly at console userd. Unlike most other viewers, it does not have a fancy GUI, but simply displays images. So I use it to display wallpaper.
compton
Compton is a standalone composite manager, suitable for use with window managers that do not natively provide compositing functionality (such as i3wm).
dunst
Dunst is a lightweight and customizable notification daemon. I use it to send notification.
i3-sensible-terminal(xterm)
i3-sensible-terminal is invoked in the i3 default config to start a terminal. You could have several choices, such as urext, termit, rxvt, etc. I choose xterm
nm-applet
NetworkManager is a program for providing detection and configuration for systems to automatically connect to network.
zeal
Zeal is an offline documentation browser for software developers inspired by Mac Dash. Screenshot:
iotop
Iotop is top like utilty but for disk I/O rather than process. It could show you the real-time disk I/O situation. Screenshot:
*nix Special
These tools are all available in Mac/Linux.
emacs
Emacs – a life style, awesome.
vim
Vim is the most powerful editor in this planet(Emacs is not an editor). Screenshot:
htop
Htop is an iteractive process viewer for Unix systems which is simliar to top command, but much better and has more features. Screenshot:
ag(the_silver_searcher)
Ag is a code-searching tool similar to grep, but much faster. In 2016, it was the fastest searching tool in terminal, now it is the second fastest search tool. And its advantage is that it is available in all *nix platforms, even though Windows(cygwin). Screenshot:
ripgrep
Ripgrep combines the usablity of The Silver Searcher with the raw speed of grep. It is the fastest code-search tool now, it faster than ag, ack, git grep, grep, and etc. Screenshot:
httpie
Httpie is a modern command line HTTP client –user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions,etc. Screenshot:
tree
Tree could list contents of directory in a tree-like format Screenshot:
shellcheck
Shellcheck is a static analysis tool for shell scirpts, it so so so useful to help you check your shellscript. It also could be integrate with Vim/Emacs, so sweet. Screenshot:
axel
Axel is a so powerful download accelerator, in my opinion, it is the fastest command line dowloader(but I have no benchmark). It is lightweight and support many procotols such as HTTP, HTTPS, FTP and FTPS procotols. Axel is always my first choice to download something from Internet. Screenshot:
aria2c
Aria2 is a lightweight multi-protocol & multi-source command=line download utility which is similiar to axel, but has more features and a little bit slower than axel (just a little bit, in my opinion). It supports HTTP, HTTPS, FTP, SFTP, BitTorrent and Metalink. Moreover arai2 can also be manipulated via built-in JSON-RPC and XML-RPC interface. Because I care download speed so much, so my first choice is axel, but some urls could not be downloaded by axel, I will switch to aria2. Screenshot:
percol
Percol could add flavor of interactive filtering to the traditional pipe concept of Unix shell. If you are an Emacs user, you will find it so familiar, because percol is inspired by anything.el and Helm (the Emacs framework for incremental completions and narrowing selections) is fork from anything.el. I could die without percol
yapf
Yapf is a formatter for python files developed by Google. As for formatter, there are other choices —e.g. autopep8,and pep8ify – are made to remove lint errors from code. I think yapf is better, and I integrate it into Emacs.
jq
Jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text. Screenshot:
cloc
Cloc is similiar to wc command, but is special to code instead of text. Cloc means count lines of code, which could count blank lines, comments lines, and physical lines of source code in many programming languages. Screenshot:
pandoc
Pandoc is a so powerful universal document converter. It could convert so many document formats to other format, including markdowm, HTML, DocBook, Latex, Org-mode and so on. This is the format list it could convert to :
guile
Guile is a scheme implementation, it is useful when I learn code from LICP
mosh
Mosh is a replacement for SSH, It is more robust and responsive, especially over Wi-Fi, cellular, and long-distance. Although I am still using SSH, but when I am in a poor network, mosh is a better alternaive than SSH.
proxychains-ng
Proxychains-ng is a powerful, new-generation preloader in terminal. It could hide your command like curl, wget behind socks/http proxies. If you are a programmre from China, you could find it so useful.
ncdu
Ncdu is a disk usage analyzer with an ncurses interface.It is designed to find space hogs on a remote server where you don’t have an entire graphical setup available, but it is a useful tool even on regular desktop systems.In my opinion, It is the best command line disk usage analyzer I ever used. Screenshot:
tldr
Tldr is a simplified and community-driven man pages. The document of command in Unix is awesome, but perhaps you find it too verbose to read (just like me). Then, tldr will save your life. Tldr means “too long, don’t read”, it could simply the man pages Screenshot: