0%

—This is the first message from the sorting hat

Topic:kind

今天是返回交大的一天,而就在返校的车上,当时已是夜深,由高速上看到路上星星的蓝光,一隐一现的,不禁让我陷入了思考,是时候写下sorting hat的第一句话,发布自己的blog了。想来之前无法入笔全由没招个法子把自己的想法串在一起,而今晚竟想到了,便是《沙丘》这书

说在前面:如今的科技发展速度之快实在令人瞠目,十年后的生活情景咱就是可以准确预测,带来的惊讶想来也是巨大的。但是也仅仅如此,但以《沙丘》为例,它展现的并非对科技,未来的准确想象和预测,而是那些更为根本的,不会随时间改变的东西,或许我们可以把它们称为“规律”。文化的冲突,贸易的运作,计谋与权力,法律,统治。。。这些是在另一种层次上令人惊讶的东西。而我看《沙丘》感受到的更是亲切,而非惊讶,因为它的观点和我的是如此契合,而它的表述又是如此的准确丰富。 (不过这里我只是借《沙丘》中的场景串起我写的博客的一点点看法,而非真的谈及它)

不断的抽象

人们对未知的恐惧是无法避免的,而恐惧必带来反抗。帕迪沙皇帝用利益和博弈联系各家族,哈科南用恐惧统治厄拉科斯;保罗的帝国建立在信仰之上;但这些无法阻止未知,事实上,宇宙运动的规律必然导致位置的产生。保罗和雷托二世都看到发展的本质,不论如何调剂好希望与恐惧的比例,所谓的和平始终无法绵延到无限。

不断的抽象。这是计算机发展的一个重要理念,但咱们会发现,好多的问题,如果你不知道其后的工作原理,一旦出现的问题,就难以解决;而很多东西就算不知道原理,也可以做的很出色。那么计算机的抽象层理念的优势到底在哪?我认为,它其实含义并不只是抽象后,我们的使用会方便许多,可以将注意力放在更高的抽象层的工作上;反过来,它也意味着一种了解一件事物本质的层次,每一层都是一种截然不同的“风景”~而咱们的硬件单元,到内部的存储,计算等单元,直到逻辑门电路,在不同层次上才组成了计算机硬件,也就是说不可或缺,抽象化后它拥有的是不同的“风景”

在这里感谢Zephyr, 他带领我进入了Linux的大门,他是我的挚友

由此谈谈对Windows和Linux的看法,正如我所说,各个抽象层及其附加物:从内核,到指令,到各种API,应用才构成了一个操作系统的上上下下。而Windows,虽然它在最高抽象层做的如此体贴,漂亮,我们了解的终究只是这一抽象层,始终看到的是一张好复杂绚丽的“面具”。末了它带来的还是未知与陌生。对于Linux,我们是可以一路望到它的上上下下,它无私的把自己的一切都展现出来,并鼓励我们去了解,去丰富。这样的亲切,以及与之产生的文化认同感,是不论用怎样的手段都无法掩盖的!因为从本质上其他的一切都失去了竞争力,如帕迪沙皇帝的宇宙,只是个时间问题

本质的了解

感谢Ankaa,让我思考,他是我的挚友

对于一件客观事物,怎样才能对其进行“了解”?以数为例,这是我们的创造,整数自然的从现实中而来,又是出于实际我们创造了小数,负数,数轴,继而是无理数,实数…我们证得了实数系的连续性,但这样就了解了数的本质了吗?不是。我们接着找数与数之间的对应关系,创造了函数,扩展就是映射,深入分析,里面有好多朴素直观的想法,趋近,相同,无限…,由此我们定义了一套规则,语言来描述这样的概念。但如何知道我们制定的规则是“正确”的,和直观感受的概念相符?且每个人直观感受的概念必然有差别,这套规则又应以哪种直观感受的概念为准?

因此并没有什么标准的规则之说,对于我们制定的规则,我们评判正确的标准,先是看其是否自洽,再是若与其他规则概念(也自洽)有连结,看能否做到相互之间的他洽。如果都做到了,我们就可以认定这一规则还有和他相关的概念“正确”。若有冲突,我们就可能需要进行修正或是更改冲突部分或是他本身。

这样的想法很自然,那么我们创造,扩充数的概念,真的有帮助更了解数的本质吗?就像之前说的,各个抽象层共同才构成了计算机,在充分了解了这一层层的内涵后,我们再看向CPU里的那些指令集的时候,那种亲切与认同是无与伦比的,我们知道的更多它的拓展,用处,进而一点点增强的认同感,我看来是对本质的一步步的了解

我的理解总与“文化”有关,陌生,熟悉这两对关系在我 看来似乎总也存在于一切自主有意识的行为背后。
文明固然短暂,但我对文化确实越来越敬畏了

最后再说说《沙丘》里让我感到意外亲切的地方:(不是重点,所以不能细说)

  1. 香料:香料,它的作用和稀有性使它成为唯一的真正的硬通货,这里的一切:经济,战争,政治无不基于香料
  2. 禁止创造思维的现状,科技的发展现状
  3. 文化之间不可调和的矛盾,和法律的脆弱性,距离带来的效力的差距、
  4. 文化…

[TOC]

要想真正爱上vim的快捷与方便,最重要的一环就是构建好属于自己的vim配置。vim拥有庞大的社区和超多的插件,所以在这里我只是梳理了一下vim的一些基本配置建议,以方便各位同学入门

Learning Sites:

https://vimjc.com/

https://www.zhihu.com/column/learn-vim

参考 与 鸣谢:

https://www.ruanyifeng.com/blog/2018/09/vimrc.html

https://taoshu.in/vim/vimrc.html#google_vignette

配置文件夹

NeoVim和 vim 的配置几乎可以完全等效

首先在家目录下创建 ~/.vim文件夹,这是存放vim所有配置的地方

在 NeoVim 的 默认配置文件是 ~/.config/nvim/init.vim 相当于~/.vim/vimrc

  • autoload/ 插件公共代码,vim 在执行 viml 的时候自动载入。:h autoload
  • colors/ 配色主题定义文件。:h colorscheme
  • ftplugin/ 专用代码,以文件类型加下划线开头,遇到对应文件自动执行。:h write-filetype-plugin
  • plugin/ 通用代码,自动执行。:h write-plugin
  • syntax/ 语法高亮定义文件。:h mysyntaxfile

map 键盘映射

按键映射

查看所有的键盘映射

1
:map

在vimrc里使用 map 键1 键2 就可以用键1代替键2

不过不同模式下的映射不一样,可参考下表

加上noremap表示不能被重新映射

查看按键

查看可以映射哪些键,以及每个键的名称

1
:h map-which-keys

按键是否被使用

参考文件 “index” 可以知道哪些键没有被使用,从而使映射不会覆盖任何内建的功能。也可使用 :help {key}^D 来找出是否一个键已经用于某些命令。 ({key} 用于指定你要寻找的键,^D 是 CTRL-D)。

小tips:

  • Esc在vim里几乎最平常用到,但在键盘上它的位置确实极其的尴尬,所以把它换成大大的caps lock键完全没问题(caps lock键几乎没什么用,需要打出大写时我们直接按Shift代替即可)
1
noremap Capslock Esc
  • vim的前缀键leader也是极为常用的键,默认是\,位置也是比较的尴尬,用空格键或是,键代替都是不错的选择
1
2
3
let mapleader=" "
//
let mapleader=","

let 和 set

可以查看帮助手册:help set:help let 了解区别

refer to https://stackoverflow.com/questions/9990219/vim-whats-the-difference-between-let-and-set

let是用来给变量赋值,set是用来设置选项

选项其实就是变量,所以一般set设置的选项也可以用let设置(前面要加&)

vim里有大量的选项和”开关”,

可以通过:set all查看,希望大家自己去查阅探索~

插件管理(git)

查看所有的插件

1
:set runtimepath

插件一般放在 autoloadplugin 目录下

vim的插件管理可以使用vundle , vim-plug , dein ,它们的功能基本一致,就是从github上git clone 相关文件放到配置文件里 ,所以直接手动git clone也是完全可以的

vim-plug为例,在.vim文件夹下创建autoload文件夹,之后把官网里的plug.vim放到里面就好了


那么这里就介绍一下用git管理插件,而非第三方插件管理器的方法(这样可以自己选定镜像仓库地址,加快安装速度,which is indeed essential)

我们把.vim目录作为git仓库,之后实际上就是把第三方插件作为submodule库内嵌到我们的.vim项目里,这样既可以和第三方插件管理器一样把它们和我们其他配置分离,而且更加的简便,直接使用其他镜像源也更方便(我尝试更改vim-plug的镜像源但失败了)

如果插件需要在 vim 启动的时候加载,就放到 ~/.vim/pack/*/start/ 目录。这里的 * 可以是任意目录名,这里就以 vendor为例。

想在需要的时候加载插件,那就放到 ~/.vim/pack/*/opt/ 目录,在需要的时候运行 packadd name 就可以加载了。

在.vim目录里创建git仓库

1
2
cd ~/.vim
git init

接下来,把指定仓库git到目标文件夹下创建的同名目录下即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 添加插件 
git submodule add https://github.com/lvht/mru pack/vendor/start/mru

# 更新指定插件
git submodule update --init --remote pack/vendor/start/mru
# 更新所有插件
git submodule update --init --remote

# 删除插件
git rm pack/vendor/start/mru

# 恢复刚才删除的插件,此法可以用于临时禁用插件
git reset HEAD
git checkout .gitmodules
git submodule update --init pack/vendor/start/mru

[TOC]

In this part, I will mainly talk about vim plugs that I highly recommended, but know that they’re just my recommendation, It’s highly favored if you would like to try by your own

探索各种各样的vim插件和它们的用法是一件极其美妙的事~

这里粘一些可以参考的地方哦

vim.org

github vim topic 我推荐的也基本都是排头行的插件,是获得了大家的认可的

vim awesome

Features

如何让自己的vim显得美观,特别?

你肯定得需要一款自己喜欢的vim主题!可以参考

2017年排名前10的暗黑简约型vim配色方案

15个著名的Vim配色方案整理

我用的是 snazzy (致敬 星际玩家 TheCW)

还可以加一个状态栏的插件,让自己状态栏更多彩~~

我用的是airline 确实也不辍,自定义后更具特色

Tools

NERTree

NERDTree is a wonderful file system explorer!

Code Writing

为了流畅方便的使用vim书写代码,这里我把自己的经历跟大家分享一下

YouCompleteMe

拥有自动补全是效率写代码的第一步,其中YouCompleteMe是整合度度很高且无需太多配置的一款插件,可主要还是由于github的网速问题很难下,不过换源后可以方便一些

YCM 这个号称史上最难下的vim插件,为此我折腾了尽好几天,从刚开始的换网,到..再到直接totally manually install(referred to https://github.com/ycm-core/YouCompleteMe/wiki/Full-Installation-Guide)

在了解了它的组成部分后,这里给大家一个简便有效的安装方法:
先从gitee镜像里下插件部分

1
git submodule add https://gitee.com/HangbinZheng/YouCompleteMe.git  ~/.vim/pack/vendor/start/YouCompleteMe

git submodule add 后应该要执行 python3 install.py

1
2
3
~/.vim/pack/vendor/start/YouCompleteMe (master) # python3 install.py                     
File /root/.vim/pack/vendor/start/YouCompleteMe/third_party/ycmd/build.py does not exist; you probably forgot to run:
git submodule update --init --recursive

但会发现这个项目里面也有submodule没包含,这里要包含的库有很多,而且源都是在github上,不过都放在third_party目录下,为方便我把包含好submodule库的third_party目录放在gitee仓库下,有需要的朋友可以下下来,只要替换自己的third_party目录就可以

you may find them here https://gitee.com/g-dab/vim-plugs-mirror

接下来就可以顺利执行 python3 install.py

(如果用Ubuntu的朋友可能还需装一下python的headers: python3-dev)

oh-my-zsh 安装

权限问题

这是在WSL里给普通用户安装oh-my-zsh过程中发现的,因为我是从windows环境下直接复制到wsl中,而这种操作都默认为root的操作(这就是为什么你在windows中可以在自己的wsl文件夹下为所欲为。。。)

所以所有者和所属组都是root, 权限默认为644, 你要改权限为655,给普通用户执行的权限才可以

1
sudo chmod 665 file

README

WSL 是 Windows Subsystem for Linux (适用于 Linux 的 Windows 子系统),此处必须要说明的是Linux是与Windows既然不同的操作系统,它亲切又高深莫测,它开放又安全可靠

此处放上自己关于WSL的研究,是因为目前学生们主流还是用Windows的较多,加上课业也繁重,就算有心想要使用Linux上,无奈直接转行会带来很多的不便之处,而WSL继承了Linux一些发行版的绝大部分特性,可以说是过渡和学习的绝佳方式,帮助给WIndows系统提供很多的Linux特性。不过此处仍然必须得强调Linux应当作为爱好者们的最终归属,单单会使用WSL还是极其有限的,只有完全使用Linux才能说真正的融入到Linux中。

WSL官方文档 https://docs.microsoft.com/en-us/windows/wsl/ (把en-us改成zh-cn可看中文)

Windows Subsystem for Linux Documentation

X Window

​ 参考 https://www.kancloud.cn/ghostyz/linux/1872477

在WSL上运行Linux的GUI应用

​ 参考 https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/gui-apps

Linux 和 Windows 应用的无缝衔接~~~

官网上给出的是使用虚拟GPU驱动来实现,这里介绍一个不同的方法,即便是WSL1也可以达到效果


这里我们使用的是VcXsrv,是基于x开发的windows上的x server (所以应用图标就是xorg~)

可以在source forge 上下载 https://sourceforge.net/projects/vcxsrv/

打开 XLaunch后显示的是这样的配置界面

我们选择先启动 x server,之后通过wsl启动x client

注意要勾选 disableaccess control,这样就关闭了x server连接验证

否则报错 Authorization required, but no authorization protocol specified

DISPALY环境变量

DISPLAY用来设置将图形显示到何处,这里我们的所要用到的每一个gui应用其实就是一个x client,所以只要把DISPLAY路径设置到windows的x server上就可以运行应用了

DISPLAY环境变量格式为 host:NumA.NumB
host: Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上
如果Host为空, 则表示Xserver运行于本机

查看当前的DISPLAY环境变量

1
echo $DISPLAY

DISPLAY默认情况下应该为空

之前我们在启动X Server时它的display number为-1,表示默认值,也就是0.0

但在wsl里设置 export DISPLAY=:0.0 后运行应用时出现报错

1
Error: Can't open display: :0.0

wsl1的时候可以,而wsl2却不行,我推测是因为wsl2更加趋向于原生态的linux,所以把本地主机和wsl系统隔离开来了

那我们就不妨采用ip的方式设置,毕竟两者连的是一个局域网

可以在cmd用ipconfig查询主机ip

确实发现ip地址里多出了wsl的ip,说明是把这个虚拟系统和windows系统分开了,相当于它有了自己的虚拟网卡,这个才应该是x server相应的ip,而不是localhost

此时再输入

1
2
export DISPLAY=wsl的ip:0.0 
#或是 export DISPLAY=wsl的ip:0

就可以运行linux程序啦!!!(可以尝试尝试xeyes,xclock,…)

Q&W

  1. 想运行多个x client
    可以打开多个wsl终端,如果嫌占地方可以使用windows terminal

  2. 如何保存配置
    /.bashrc(或是/.zshrc)中添加

1
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0

传送到Zephyr的世界:blush:

再次感谢Zephyr带领我进入了神奇的Linux世界~~

这里补充一个危险的操作拓展~

说在前面

对于MBR&GPT BIOS&UEFI boot loader更详细的了解:

参考 https://www.kancloud.cn/ghostyz/linux/1872295


MBR 和 GPT 是两种磁盘的分区方法,在Linux分区中我们如果不创建gpt分区表,那么分区信息就只写在第一个扇区,也就是使用MBR的方式进行分区。gpt相比mbr有很多优势,虽然在个人电脑上可能体现不大,但GPT终将取代MBR,所以我们应该使用GPT分区方式

不过部分更更老些的磁盘不支持GPT的分区方式,但我们使用的是U盘,所以没这个问题

BIOS 和 UEFI 是两种写死在主板上的固件,也是电脑插电后启动的第一个程序,也叫开机检测程序,负责读取磁盘上的信息,找到启动引导程序boot loader,然后启动它。其实是为了改进BIOS所以先有UEFI,之后伴随着产生了GPT。所以经常会把它们绑定起来BIOS/MBR UEFI/GPT

BIOS原本应该只能读取MBR的分区方式,但GPT的LBA0区块是MBR兼容区块,意味着它也是可以兼容BIOS的

而UEFI模式是可以选择用BIOS方式启动

UEFI也叫UEFI BIOS, 原先的BIOS也称为legacy BIOS,很多场合可能会混用

综上,唯一的问题是现在仍有一些电脑只支持BIOS启动模式(俺的电脑。。。)

所以这里对Zephyr的教程加一点补充,使得U盘也能支持BIOS启动模式


参考Hybrid_UEFI_GPT_+_BIOS_GPT/MBR_boot

增加分区

除了efi分区和存放数据的分区,还需要增加一个存放BIOS启动引导程序的分区

  1. 1M大小即可
  2. 设置type为BIOS boot (重要)

启用Hybrid MBR

利用Hybrid UEFI GPT + BIOS GPT/MBR boot

Hybrid MBR: https://www.rodsbooks.com/gdisk/hybrid.html
warning: 使用混合MBR是一种危险,丑陋的操作,倘若没有需要完全不需要使用!!
虽然它仍保留了GPT分区对操作系统的好处,仍然很可能有情况下操作系统将其识别为MBR!

将你的GPT分区表转化为Hybrid MBR (使用gdisk)

假定U盘文件名为 /dev/sdx

1
gdisk /dev/sdX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
GPT fdisk (gdisk) version 1.0.4

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): r
Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

按r进入recovery & transformation菜单后可按p再次核对自己的分区情况

以三个分区为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

Type from one to three GPT partition numbers, separated by spaces, to be added to the hybrid MBR, in sequence: 1 2 3
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N

Creating entry for GPT partition #1 (MBR partition #1)
Enter an MBR hex code (default EF):
Set the bootable flag? (Y/N): N

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default EF):
Set the bootable flag? (Y/N): N

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default 83):
Set the bootable flag? (Y/N): Y

Recovery/transformation command (? for help): x
Expert command (? for help): h
Expert command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y

如果还有额外分区存放数据记得要加上bootable flag(The boot flag is from ancient times…)

继续安装。。。

注: (不要格式化装BIOS的grub的那1M分区,也不用挂载)

安装grub

UEFI/GPT

1
grub-install --target=x86_64-efi --efi-directory=esp  --removable --recheck

BIOS/MBR

1
2

grub-install --target=i386-pc --boot-directory /boot --removable /dev/sdX

MBR下安装grub里设备是 /dev/sdx 后面没有数字

生成grub配置即可

1
grub-mkconfig -o /boot/grub/grub.cfg

WSL—启用适用于 Linux 的 Windows 子系统选项

[TOC]

命令行操作

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

或者:控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统

重启

安装WSL1

  1. windows app store

  2. 命令行安装

    查看可选发行版

    1
    wsl --list --online
    1
    wsl --install -d <Distribution Name>
  3. 在官网上有安装包可以下载(推荐,这样你就可以把子系统安装在自己选定的目录下,what i am doing)

    将下载的linux包的后缀由.Appx改为.zip,将解压的文件移动到要安装的目录。

升级到WSL2

比较WSL2和WSL1

https://docs.microsoft.com/zh-cn/windows/wsl/compare-versions

注:WSL2更贴近linux内核,所以使用WSL2就不能把WSL文件系统放到windows指定文件夹里了

康康自己的wsl的version

1
wsl -l -v

如果是wsl1的话可以升级到wsl2

不确定:而且只有升级了以后才可以运行docker engine

安装步骤

详细步骤: https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

一些补充:

这样可以指定转换原先已安装的WSL1为WSL2

1
wsl --set-version <wsl发行版>  2

对于X Window System 鸟哥在他的私房菜里有很详细的的叙述

链接: https://www.kancloud.cn/ghostyz/linux/1872477

x server

x client

window manager

display manager


这里 有一些拓展

虚拟桌面 virtual desktop

桌面虚拟化是x client的一项功能,也就是一种将桌面抽象化的技术,这样用户连接服务器时相互间的交互就不再依赖于硬件。在本地设备上通过一个桌面来访问服务器,这样会方便很多

在虚拟机的架构中集中体现了这一点

VMWare的文档

桌面虚拟化显然有些冗杂,而且对执行VDI的桌面虚拟化服务器要求高,所以继而发展出现了应用虚拟化,基于此又衍生出我们喜欢的docker!

有了桌面虚拟化技术,桌面就仅仅是个应用,和硬件没有任何关系,举个栗子:

win10 推出了虚拟桌面功能,也就是按【Win+Tab】后可以创建/多个桌面,

切换虚拟桌面 【Ctrl+Win】+ →/←

新建虚拟桌面 【win + ctrl + D】

直接删除当前虚拟桌面 【Win+Ctrl+F4】


说在前面。。。

Shell

shell是一种用C写的程序,之所以称为shell(壳),是因为它就像罩在内核外的壳,用来处理用户通过键盘输入的命令,与内核操作系统进行交互。它又被称为终端,命令行

shell 的种类有很多,windows 有powershell,cmd, linux有 bash, zsh

查看当前系统有哪些shell

1
cat /etc/shells

查看当前使用的shell

1
echo $SHELL

zsh 和 oh-my-zsh

zsh

可以兼容 bash,并且提供了很多高效的改进。它是Linux里最庞大的一种shell,它有84个内部命令,也提供了更为强大的功能

oh my zsh

wiki https://github.com/ohmyzsh/ohmyzsh/wiki

主页 https://ohmyz.sh/

github https://github.com/ohmyzsh/ohmyzsh

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout…

“Oh My ZSH!”

安装和配置zsh + oh-my-zsh

官方文档 https://github.com/ohmyzsh/ohmyzsh/wiki

要安装oh my zsh 首先需要安装 zsh

1
apt install zsh

使用chsh命令 切换shell 为zsh (-s选项只修改当前用户的shell)

1
chsh -s /bin/zsh   

记住要重启(或者ctrl+d 退出bash登录,再重新登陆)

第一次启动会让你选择是否创建配置文件.zshrc

不用管,反正之后用on-my-zsh的配置

安装git

安装oh-my-zsh(选一种)

1
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
1
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
1
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

打开配置文件

1
vim ~/.zshrc

更改主题

官方Theme全介绍 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

1
ZSH_THEME="你想要的主题"

更新配置:(或再启动zsh)

1
$ source ~/.zshrc

家目录下的~/.oh-my-zsh/plugins存放oh-my-zsh的自带主题

theme设置为random后每次登录就会更新(也即重新启动配置.zshrc)

tips: 使用source ~/.zshrc来切换随机主题

oh-my-zsh更新

1
upgrade_oh_my_zsh

默认情况下,当oh-my-zsh有更新时,都会给你提示。如果希望让oh-my-zsh自动更新,在~/.zshrc 中添加下面这句

1
DISABLE_UPDATE_PROMPT=true

插件选择

浅尝几个小插件,光是它们就能完全颠覆你的命令输入方式

语法高亮插件

1、下载zsh-syntax-highlighting插件

用git ssh协议感觉下载的比https快(其实都很慢)

1
2
cd ~/.oh-my-zsh/custom/plugins
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git

2、在.zshrc中增加配置

1
2
3
4
plugins=(
git
zsh-syntax-highlighting
)

3、读取配置及时生效

1
source ~/.zshrc

自动补全插件

1、下载zsh-autosuggestions插件

1
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

2、在.zshrc中增加配置

1
2
3
4
5
plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
)

3、读取配置及时生效

1
source ~/.zshrc

快速输入sudo

如果使用Bash,在~/.bashrc中加入:

1
bind '"\e\e":"\C-asudo \C-e"'

如果使用Zsh,在~/.zshrc中加入:

1
bindkey -s '\e\e' '\C-asudo \C-e'

让配置文件生效

1
source ~/.zshrc

生效后,只需要连续按两下ESC键,即可快速将sudo添加到命令最前端。