If you are a developer who likes to use Linux system, or often deal with Linux. Then, the terminal and the command line must be one of the most frequently contacted tools.
Unlike Windows, Linux does not have rich desktop applications, but there are many open source and free command-line tools, which also fits the Linux application scenarios.
Finding a good command-line tool is like finding a needle in a haystack, just like finding a powerful Windows desktop application, but it’s crucial.
Since I like to collect all kinds of gadgets frequently, development tools will naturally not escape my attention.
Today, I will introduce you to 5 Linux command line tools to improve work efficiency.
1. z.sh

z.sh is a command line tool that allows you to quickly jump to a directory that you frequently visited in the past.
It will distinguish the directory you want to jump to according to the frequency of your use. In addition, it can track when you enter the directory and how much time you spend in the directory.
Then, you only need to enter some fields of the path, and it can predict and complete the path you want to jump.
For example, z src can help you jump to ~/src/zsh.
- Install zsh .Concrete examples are as follows:
sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
- git automatically displays the current branch name and modification status. Concrete examples are as follows:
insurance-bargain git: (dev_add_v3)
- git shortcuts
ZSH helps us to configure some of the git command is often used abbreviations, I used a few commands. Concrete examples are as follows:
gst: git status
gca: git commit -v -a’
gco: git checkout
2. Tmux

Tmux is a terminal multi-window management tool.
Through tmux, you can tile multiple command line windows on the same page, which is very valuable for computer use. Therefore, both Linux and Windows will have some of these tools.
Under Linux, using tmux can reduce the trouble of switching terminal windows. In addition, tmux also allows you to separate the terminal session so that you can do other work without interrupting the session, which is very valuable for long-running tasks.
- Install tmux. Concrete examples are as follows:
sudo apt-get install tmux
- Common commands of tmux. Concrete examples are as follows:
tmux: start tmux
tmux ls: lists sessions
tmux new -s <session_name>: creates a tmux session
tmux attach -t <session_name>: enter a session
tmux -r: connect to the last disconnected session
- tmux configuration
If you need to customize tmux configuration, you can edit the ~/.tmux.conf file.
Regarding how to configure the .tmux.conf file, you can refer to the help file of tmux or check relevant information online.
3. how2

how2 is a command line tool that can search for questions and answers in natural language.
In our development process, we often encounter some problems, at this time we need to ask the browser for help.
At this time, you need to face the trouble of switching windows, especially for non-desktop Linux systems.
And how2 is like Stackoverflow, you can search for the answers to the questions you want on the command line.
how2 uses Stackoverflow and Google API, how2 will provide you with the most possible answer.
4. fzf

Fzf is an open source interactive shell command line fuzzy query tool, which can be used to list and apply files, history, processes, hostnames, bookmarks, git commit, etc. Fzf is a shell system tool developed in Golang language. The source code is hosted on Github. Up to now, the project has accumulated 25,500 stars and Fork thousands. With the help of Golang static compilation characteristics, Fzf has the advantages of portable:no dependency; high performance and fast speed with the most comprehensive feature set; flexible layout; additional powerful plug-in support: such as Vim/Neovim plug-in, Support key binding and fuzzy auto completion.
- Install fzf
Fzf supports installation via Homebrew, operating system package manager, and source code. The file project consists of four parts, including the following components:
fzf executable file.
fzf-tmux script, used to start fzf in the tmux pane.
Shell extension: support key binding (CTRL-T, CTRL-R and ALT-C), support bash, zsh, fish.
Fuzzy automatic completion, support bash, zsh.
Vim/Neovim plugin.
Among them, the fzf executable file is important, and other components depend on it. If you don’t need other components, you can download the fzf executable file and run it separately.
- Upgrade fzf
Fzf is continuously developing iteratively. In order to obtain the latest features, it is necessary to upgrade the version from time to time. The upgrade method of Fzf is as follows:
git installation: cd ~/.fzf && git pull && ./install
brew: brew update; brew reinstall fzf
chocolatey: choco upgrade fzf
vim-plug: PlugUpdate fzf
5. Tldr

Tldr is a simplified tool for command-line manual pages, designed to allow users to obtain help information for command-line tools more clearly and simply.
There are various commands involved under Linux, and it is inevitable that there will be many commands that cannot be remembered, so you need to check it every time you use it.
Of course, you can also use the man command to solve this problem, just use man <command> to display the document of this command.
However, this document has a lot of redundant and worthless information, which is very unfriendly to reading.
The tldr page is simple, easy to access, and prioritizes common use cases, and will highlight document information, which makes tldr ideal for quickly understanding any new commands.
- Install tldr
There are many ways to install:
Node: sudo npm install -g tldr
Python: pip install tldr.py preference
Go: go get github.com/pranavraja/tldr
Ruby: gem install told
- Use tldr
Assuming you successfully installed
Next you need to update the cache, tldr –update or tldr -u
Then try: tldr ssh, I like this little fresh feeling

The above 5 are all command-line tools, not for a certain application scenario or a certain programming language. As long as you often use the Linux system, the above tools can be useful, and can greatly improve your development efficiency under Linux.