Linux 的装机必备软件

使用Linux的一大乐趣在于尝试各种发行版本,所以我总是会不断的重装系统,伴随重载 系统而来的是系统的配置。在日常使用中,我积累了很多装机必备的工具,罗列在下面, 推荐给大家。

autojump

你可以做一个有趣的实验,使用下面这条命令找出你用的最多的 10 条命令:

1
2
3
history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[ a ]" "
CMD[ a ]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t |sort -nr |
nl | head -n10

在我最新安装的系统上,我得到的结果是:

1
2
3
4
5
6
7
8
9
10
 1  137  23.8261%   ls
2 117 20.3478% vim
3 94 16.3478% cd
4 43 7.47826% git
5 34 5.91304% sudo
6 27 4.69565% hexo
7 10 1.73913% clear
8 8 1.3913% tmux
9 8 1.3913% cp
10 6 1.04348% rm

cd 命令是我使用频率排名第三的命令。但是 cd 命令的使用并不是非常的方便,尤其 是在切换到层次相对较深的目录中的时候,你需要进行大量的输入工作。但是在大部分的 时候,你会发现自己常用的目录其实就那么几个。在 bash 中你可以使用 cd - 切换 到你最近使用那个目录,在 zsh 中你可以使用 cd - 补全出你最近使用过的目录,但 是这些目录在你关闭终端之后会清除。

autojump 这款神器的口号是 A cd command that learns,它会记录你最近去过的那 些目录,然后通过简单的输入就可以跳转到你的历史路径,极大的提高你的效率。

build-essential

大部分做开发的人会需要安装这个包,其中包含了做开发时编译所必须的软件包。使用下 面命令安装:

1
sudo apt-get install build-essential

clang-format

代码格式化的神器,支持各种各样的代码规范,个人使用它完成 Google C++ Coding Style 规范的代码格式化。在 Ubuntu 中你可以安装多个版本的 clang-format 我通 常使用最高版本。安装完成之后,推荐在 /usr/bin/ 下面建立一个名为 clang-format 的软连接。

1
2
cd /usr/bin
ln -s clang-format clang-format-3.6

你可以使用 -dump-config 选项结合 -style 选项得到一个符合某种规范的配置文件 。

1
clang-format -style=google -dump-config > .clang-format

你可根据得到的 .clang-formt 文件进行修改得到你自己喜欢的格式。此外,推荐在你 熟悉的编辑器中安装这个软件的额外插件(如果你使用的编辑器不支持插件,赶紧换!! !),我使用的 vim 插件是 google/vim-codefmt。

cmake

非常出色的代码自动构建工具,你可能不用,但是很多项目使用到了它,你通常总会在某 个时候用到它。

ctags

使用 vim 浏览代码,查找函数,生成 outline 的时候都会用到它。

fzf

如果你经常使用 find 这样的工具查找文件,我推荐你使用 fzf,这是一个文件查找 的模糊匹配工具,如果你使用过 vim-ctrlp 或者 sublime 中的相关功能,你一定会爱 上这个工具。你可以用它过滤文件,过滤历史记录,过滤目录文件等等,非常好用。

安装完成之后,你可以试试 Ctrl-T,Ctrl-R, Alt-C 这些快捷键来感受一下它的 强大。

此外 fzf 是一个可扩展的框架,你可以编写自己的想要的功能。

git

不解释

hexo

当你在为知笔记、evernot和有道云笔记之间纠结的时候,我推荐你使用 hexo + github pages 搭建自己的博客网站,把你的点点滴滴都记录下来,我的这篇博客这就是 这样记录下来的。

oh-my-zsh

安装完 zsh 之后做的第一件事情是安卓 oh-my-zsh,它是 zsh 配置的终结者。

silversearcher-ag

《人月神话》的作者告诉我们:没有银弹。嗯,虽然我不知道ag取名silversearcher 是否有充当银弹的自信,但是它确实很快。

tmux

常年和终端打交道的用户,最需要的功能之一就是分屏。tmux 这款软件一定会让你爱不 释手。

tmux 和 vim 的组合可以说是天下无双的。如果你把 zsh 也组合进来,它们还有另 一个名字叫做文本三剑客。

vim

我不想争论它是不是世界上最好的编辑器,至少对我来说,它是最好的,没有之一。

zealdoc

当你需要在不同的开发语言中切换,当你需要在不同的库见徘徊,当你生活在墙内的时候 ,你一定会需要这款软件 zealdoc,一个离线的文档查看器,你用到的大部分文档在其 中都有收录。这个软件是 Mac 中的 dash 的克隆版本。

zsh

从操作系统出现到现在,命令行解释器这个软件被一次又一次的重写,各种版本的shell 层出不穷。目前大部分发行版本默认安装的是 bash,但是它在只能补全方面确实做的不 够好。近些年出现了专注于高用户友好度的 fish,我也用过,确实非常不错,但是个人 认为在成熟度上还有待提高,估计再发展一段时间,它会成为 zsh 最强大的对手。

目前来说,在兼容性、成熟稳定性、易用性上面都达到很好的平衡的是 zsh,它的成功 估计主要归功于 oh-my-zsh 这个社区驱动的配置项目。zsh + oh-my-zsh 可以说是 短期内无法超越的高峰。