macOS 下打造完美终端 iTerm2+Oh My Zsh

iTerm2 是 macOS 下公认的最佳默认终端替代品,当然只是安装上的话没有经过任何配置会和系统默认的终端使用无异,本文主要是来记录一下我的配置过程。

先来张效果图
iTerm2+Oh My Zsh

首先我们要安装 iTerm2 下载地址https://www.iterm2.com/

安装好以后我们要把 shell 切换成 zsh
(默认的shell是bash,关于bash和zsh之争网上有很多文章在讲,总结下来就是zsh比bash更优秀)

chsh -s /bin/zsh

使用上面的命令可以把默认的shell改成zsh

接着我们来安装 Oh My Zsh
首先来解释一下 Oh My Zsh 是什么,你可以理解成为是 zsh 辅助工具,因为 zsh 本身过于复杂,而安装 Oh My Zsh 后可以让你做到开箱即用。
Oh My Zsh GitHub https://github.com/robbyrussell/oh-my-zsh

GitHub里的文档给出两种安装方式
方法一 curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

方法二 wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

安装好以后我们要做的就是来配置 Oh My Zsh
配置主要分为两部分,主题和插件
Oh My Zsh 的配置文件名称为 .zshrc 存放在你的用户名文件夹下,是个隐藏文件,你可以用 command+shift+. 这个组合键查看隐藏文件。官方文档中写的编辑方式采用的是 vi 编辑器,需要全部在shell中完成,这里考虑到新手,我们用比较传统的方式,用编辑器直接打开 .zshrc 编辑。

主题配置在11行
Oh My Zsh 自带了多个主题,可以来这里查看
选择你中意的主题,然后修改配置文件的参数。例:我选择的是 agnoster 修改的内容如下

ZSH_THEME="agnoster"

插件配置在65行
Oh My Zsh 自带了很多个实用的插件,可以来这里查看
挑选你需要的插件,当然你也可以安装第三方插件,比如自动补全,我用的是 zsh-autosuggestions
安装方法也很简单,直接克隆到本地

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

不管是自带插件还是第三方插件,你都需要写入配置文件中,写法如下

plugins=(git extract z zsh-autosuggestions)

git这个东西就不用介绍了;extract是一个解压插件,可以让你不用记住各种繁琐的解压命令;z这个插件就比较有意思了,他可以帮你快速的跳转目录,比如你想去home目录,只需要z home 就可以瞬间移动过去;zsh-autosuggestions就是上面写到的自动补全插件。以上就是我启用的几个插件,当然你想启用其他的插件,只需要在配置文件中开启就行。

补充一点:有些主题字体可能不支持,比如我用的 agnoster 主题如果不安装额外的主题,会出现乱码。
Oh My Zsh的文档写了你需要安装 Powerline字体 才能让某些主题显示正常。
安装方法

# 克隆到本地
git clone https://github.com/powerline/fonts.git --depth=1
# 安装
cd fonts
./install.sh
# 清理安装文件
cd ..
rm -rf fonts

以上就是大致的安装过程,具体某些个性化的设置你可以直接打开 iTerm2 的设置自行调整,比如给终端加个背景做个透明化改下配色方案等等,这个靠你自己发挥了。


如何选择 Linux 发行版系统

本文适合 Linux 新手阅读

扫盲
今天突然想理一理 Linux 发行版的一些知识,简单记录一下。帮助大家来更好的选择 Linux 发行版。

首先要纠正很多人的一个错误观念,Linux 不是一个系统,Linux是一个系统内核,开发这个内核的就是著名暴脾气程序员「Linus Torvalds」,因为 Linux 内核是免费的,所以在短时间内得到了快速的发展,比如安卓系统就是基于 Linux 内核开发的。

内核官方网站 https://www.kernel.org/

本文主要整理关于 Linux 发行版的一些知识,Linux 发行版就是基于 Linux 内核开发出来的系统。按照目前的分类主要分为Debian系和Red Hat系,当然除了这两大系还有Arch、Slackware、Gentoo等,他们最大的区别就是软件包管理系统不同。如何理解,举个例子,Debian系安装软件使用的是 apt-get ,Red Hat系安装软件使用的是 yum。除了Debian系和Red Hat系之外的发行版,因为比较小众,再加上使用难度较高,我就不在提了,感兴趣可以去了解一下,这里主要还是教你在 Debian系和Red Hat系中选择一个合适你的。

Debian系
主要有 Debian、Ubuntu、Linux Mint等,说实话 Debian 是我最喜欢的发行版,我最常使用的 Kali Linux 就是基于Debian 的非常稳定,并且占用内存小,用来做服务器系统是相当完美。对于 Ubuntu 我觉得这货纯粹就是一个另类,优点就是桌面做的非常完美,应该是目前体验最佳的 Linux 桌面发行版了。

Red Hat 系
Red Hat 也就是红帽公司,中国大部分搞IT最早接触的 Linux 应该就是红帽Linux了,Red Hat也是最早把 Linux 拿来进行商业运营的公司,你可能会想Linux不是开源免费的吗,这里要说明的是 Red Hat 人家收的是服务费,简单点来说就是提供有偿服务,Red Hat 也发行了免费的 Linux 版本,比如 Fedora Linux 版,但是 Fedora 更新比较频繁,所以用于生产环境还是要慎重,对于生产环境企业还是求稳为主,这时就可以使用 Red Hat Enterprise Linux 简称(RHEL),红帽就是这样把钱赚走的。除了上面说的两个Linux发行版,红帽还有一个很出名的发行版(CentOS),这应该是服务器上最受欢迎的 Linux 发行版,CentOS 可以看成是 RHEL 免费版,师出同门专为服务器而生,所以很受中小企业的喜爱,甚至有些大厂也在用 CentOS。

个人如何选择
个人使用主要是在桌面环境下,如果你不想折腾的话强烈推荐你使用 Ubuntu,虽然我不喜欢这货,但是他的图形界面做的是没话说,当然还有一个更的优秀的Ubuntu衍生版 Linux Mint 。对于Ubuntu和Linux Mint我推荐你都装一下,然后使用一段时间后在决定自己选择哪个,因为系统都是基于Debian的,所以区别就在界面设计上了,他们三者的关系可以这样理解,如果按亲属关系来分Debian是爷爷,Ubuntu是爸爸,Linux Mint是儿子。

服务器如何选择
对于服务器来说最主要的就是稳定,这里主推 Debian 和 CentOS。当然最好的选择是 RHEL,因为是付费产品,这里不做推荐。如果说稳定性 Debian 肯定更胜一筹,但是这里不想做推荐,因为服务器用于生产环境要考虑生命周期,Debian是社区维护版,没有商业公司支持,通常三年左右。而 CentOS 就不同,背靠红帽这座大山,支持个10年没什么问题,这对服务器是很重要的,特别是用于生产环境,稳才是最重要的。如果只是自己折腾个VPS玩玩的话,用 Debian 就足够了,占内存小能充分压榨服务器的性能,用于企业部署生产环境,建议 CentOS,资金允许可以上 RHEL。

上面就是我对 Linux 发行版的一些理解,涉及的东西不是很多,很多牛逼的发行版也没有提及,只是选了几个比较常用的 Linux 发行版让你大致的了解一下他们的区别,因为这些版本用的人比较多,所以你学习起来也比较快,遇到问题一搜答案就出来了。

最后纠正一下 Linux 应该是 GNU/Linux
为什么这么叫,可以参考 https://www.gnu.org/gnu/linux-and-gnu.zh-cn.html


Linux/CentOS 7 部署开启 BBR 的方法

BBR 是 Google 开源的拥塞控制算法,目前在 Linux 4.9 以上内核已经可以使用。开启了 BBR 机器,可以明显感觉到网络吞吐量的提升和延迟的降低。

注意:很多人可能以为 BBR 是个软件,这里要解释一下,BBR 集成到了 Linux 内核中,所以你要想使用 BBR,就要把Linux的内核升级到4.9上才能开启。

部署 BBR 很简单,第一步我们首先升级系统的Linux内核到最新版,本文以 CentOS 7 举例。

首先检查一下你登陆的是不是root用户,不是也没关系,下面的命令我会加上sudo,如果你是root用户,在命令中把sudo去掉即可。

升级内核

检查当前内核版本

uname -r

你应该会得到如下结果

3.10.0-514.2.2.el7.x86_64

使用 ELRepo 进行内核升级

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y

查看结果

rpm -qa | grep kernel

你应该会得到如下结果

kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.2.2.el7.x86_64
kernel-tools-3.10.0-514.2.2.el7.x86_64
kernel-3.10.0-514.2.2.el7.x86_64

修改 grub2

sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

你应该会得到如下结果

CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64)
CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)

从结果可以看到内核在第二行,索引是从0开始的,所以我们应该设为1

sudo grub2-set-default `

重启系统

sudo shutdown -r now

检查内核版本

uname -r

得到如下结果就说明成功

4.9.0-1.el7.elrepo.x86_64

启用BBR
修改 sysctl 配置

echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

确认是否启用

sudo sysctl net.ipv4.tcp_available_congestion_control #输入
net.ipv4.tcp_available_congestion_control = bbr cubic reno #输出参考(无需输入)
sudo sysctl -n net.ipv4.tcp_congestion_control #输入
bbr #输出参考(无需输入)
lsmod | grep bbr #输入
tcp_bbr    16388  0 #输出参考(无需输入)

BBR一键更新开启脚本
如果你感觉上面的操作太麻烦,有人写出了一键更新脚本,你可以试试。
脚本支持系统:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 等

注意:使用脚本需用 root 用户,非root用户需手动添加 sudo

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

检查是否开启方法同上,注意脚本已经包含了升级内核和开启BBR的步骤。

参考:

  1. https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
  2. https://teddysun.com/489.html

那些另类奇怪的小众网站

互联网将全世界连接在了一起供人们进行交流,人类的创意是无限的,互联网给了每个人一个展示自己创意的平台,这里我就收集一些比较另类奇怪的小众网站供大家欣赏学习。

百万美元网站
http://www.milliondollarhomepage.com/
5个月赚到100万美元的奇迹网站,把网页分成100万个格子然后每个格子以1美元出售。

伪装黑客
http://geektyper.com/
伪装成黑客的电脑桌面,像黑客一样的去输入计算机命令。

视错觉
https://michaelbach.de/ot/
通过134个案例,让你感受到什么是视错觉。

网络威胁地图
https://cybermap.kaspersky.com/cn/
卡巴斯基推出的网站,可以实时看到全世界的网络威胁数据。

全球富豪榜
http://www.globalrichlist.com/
输入你的收入,可以测试出你的财富在全球排名(仅供娱乐)。

360度环游世界
http://www.airpano.com/
用360度的视角去看全世界。

全世界最高的网页
https://worlds-highest-website.com/

全世界最小的网站
http://www.guimp.com/

艺术创作
http://weavesilk.com/
用鼠标可以随便创作图案,挺炫的。

老版Windows模拟
http://www.windows93.net/
从开机到使用全程模拟老版Windows系统。