很久以前,我就知道zsh。后来在并不遥远的好几年前,第一次装arch的时候,默认shell就是zsh。虽然用起来不太习惯,但是仍然蛮好用的。

决定好好的学一下zsh,如果可以就切换过去,毕竟bash兼容。最近最大的感悟,就是时刻要跟上潮流,学习时髦的东西 :)不要被年轻人淘汰掉。。。

老实说,第一次用zsh的时候,我并没有觉得怎么样,反而觉得用着bash古朴一下,也没什么不好的。直到头两天体验了一下fish,一下子被惊艳到了。遂决定果断跨入新时代!

参考

圣教读物zsh-archwiki (接触任何新东西之前,第一件事就是先回圣教翻翻文档,已然成了习惯)

高级阅读http://zsh.sourceforge.net/Guide/

zsh号称宇宙终极shell;同时还要另一个宇宙终极shell fish。据说fish才是真正的终极shell。

区别在于,fish没有zsh那么多繁杂的配置,开箱即用。但是fish不完全兼容bash。zsh完全兼容bash。

我毕竟还是要工作的,工作里大部分还是用bash,所以还是首选zsh。

zsh最被人诟病的是配置,然而没关系,因为我们有了ohmyzsh 。

开始

安装:

pacman -S zsh

将默认shell切换为zsh:

[tong@T7 tss_sys]$ chsh -l
/bin/sh
/bin/bash
/bin/zsh
/usr/bin/zsh
[tong@T7 tss_sys]$ chsh -s /usr/bin/zsh tong

当然还可以使用另外两个方式:

  A. 编辑/etc/passwd, 找到用户的对应行,修改。

  B. 使用usermod命令。并不推荐。因为它并不检查-s的参数有效性,写错就完蛋鸟。

[tong@TStation ~]$ usermod -s /usr/bin/zsh tong

  总之,推荐使用chsh。

配置:

  当你第一次运行bash的时候,它会检查$HOME目录下是否存在配置文件.zsh,如果不存在,会进入配置引导程序,如下:

This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier. You can: (q) Quit and do nothing. The function will be run again next time. () Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again. () Continue to the main menu. --- Type one of the keys in parentheses ---

如果没有进入,可以使用以下命令进入:

$ zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f

配置完成后,可以把 .bashrc 中的配置项拷贝到 .zshrc 中。至此,就可以想之前的bash一样正常工作了。

不过有一点值得注意的,环境变了PATH需要设置在.zprofile文件中,如下:

Configuring $PATH
Normally, the path should be set in ~/.zshenv, but Arch Linux sources /etc/profile after sourcing ~/.zshenv.
To prevent your $PATH being overwritten, set it in ~/.zprofile.

为了兼容bash,arch在打包时,给/etc/zprofie文件中加了一行,详细内容,见圣教wiki。

截止目前,基本功能已经可以使用,其他高级功能都是需要配置的,所以暂时都用不了。可没关系,因为我们有ohmyzsh。

我是这样的,T7中我装了oh-my-zsh 为了快速体验。TStation我只配置到了截止到目前为止,我准备慢慢的读zsh的手册,慢慢的自己配起来。

懒惰的单身汉:

1. 安装 oh-my-zsh 一个zsh的配置框架,zsh存在了很多年了(不知道在哪里看到的80年代就有了?懒得去找了),直到ohmyzsh的出现,才使zsh在地下慢慢的流行起来。装了之后就不需要去啃手册了。真正的开箱即用。

[tong@TStation ~]$ yaourt -S aur/oh-my-zsh-git

安装完成后,设置zsh使用oh-my-zsh插件。

[tong@TStation ~]$ mv .zshrc .zshrc.bak
[tong@TStation ~]$ cp /usr/share/oh-my-zsh/zshrc .zshrc
[tong@TStation ~]$

选择一个喜欢的主题吧:

如果没有喜欢的,不要紧,more is here

➜  ~ ls /usr/share/oh-my-zsh/themes |head -n
3den.zsh-theme
adben.zsh-theme
af-magic.zsh-theme
➜ ~
➜ ~ sed "s/ZSH_THEME=\".*\"/ZSH_THEME=\"apple\"/" -i .zshrc

这还不够,我们需要,fish一下的命令颜色 zsh-syntax-highlighting 。我们将使用zsh以及新的主题,完成这个安装。

/home/tong [tong@TStation] [:]
> yaourt -S zsh-syntax-highlighting

这是一个zsh插件,在zshrc中启动之,在最后添加一行:

/home/tong [tong@TStation] [:]
> tail -n1 .zshrc
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh /home/tong [tong@TStation] [:]
>

至此,就有了丰富的颜色。

下一个,不知道干嘛的,大概是补全用的,也不是插件,zsh-completions 反正这样用的:

/home/tong [tong@TStation] [:]
> sudo pacman -S zsh-completions /home/tong [tong@TStation] [17:32]
> tail -n 3 .zshrc
autoload -U compinit && compinit /home/tong [tong@TStation] [17:33]
> source .zshrc

最后一个插件,zsh-autosuggestions 这个插件,其实我并不建议使用,因为提示出来的建议,你在颜色上并区分不出来,所以经常把自己搞迷糊。它并不像fish一样是浅色的。而且,据说还会有一下小问题,总之,目前还不太成熟。

/home/tong [tong@TStation] [:]
> proxychains yaourt -S zsh-autosuggestions
/home/tong [tong@TStation] [:]
> tail -n .zshrc
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh /home/tong [tong@TStation] [:]
> source .zshrc

好了,配好了,开心的coding吧 :)

勤劳的好少年:

勤劳的好少年,定然不屑于使用ohmyzsh的。那就自己去配好了,谁要管你!!!

Let‘s Begin here: http://zsh.sourceforge.net/Guide/

Good luck!

来个基础配置先: 之后的慢慢来~~~

TStation% cat .zshrc
# Created by newuser for 5.2 alias ls='ls --color=auto'
alias ll='ls -l --color=auto' source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh autoload -Uz compinit
compinit
TStation%

to be continue...

[daily] 宇宙终极shell之zsh的更多相关文章

  1. 如何安装zsh,终极shell

    1,教程 教程 上知乎直接搜索终极shell也可以,话不多说,直接自己看教程吧 2,总之就是 sudo apt-get install zsh chsh ...修改设置 wget下载oh-my-zsh ...

  2. 终极 Shell——ZSH

    Shell是Linux/Unix的一个外壳,你理解成衣服也行.它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后 ...

  3. MAC-Zsh安装与使用——终极Shell

    前言:Zsh可配置性强,用户可以自定义配置,个性化强.Zsh tab补全更强大,该功能可以让我们节约很多时间.Zsh 还有代码高亮功能,使得代码更好看了,显得逼格更高.Zsh 还有很多强大的功能,这里 ...

  4. 终极 Shell——ZSH

    https://zhuanlan.zhihu.com/p/19556676 在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于其他系统,Mac 的主要优势是什么?2.你们平时用哪种 Sh ...

  5. 【转】终极 Shell

    Post navigation ← PreviousNext → 终极 Shell Posted on 2013 年 7 月 23 日 在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于 ...

  6. 终极 Shell

    在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于其他系统,Mac 的主要优势是什么?2.你们平时用哪种 Shell?…… 第一个童靴可以坐下了,Mac 的最大优势是 GUI 和命令行的 ...

  7. 终极Shell - Oh My Zsh

    介绍 zsh: 与 bash 同为 shell 软件,适用于 linux 和 mac,mac 与百度开发机已自带. oh-my-zsh:zsh 的一个开源配置方案,即下即用,免去复杂的配置过程.配置后 ...

  8. 终极shell zsh

    在mac上安装zsh,推荐安装. 参见http://macshuo.com/?p=676. 安装成功提示,看着很帅的样子

  9. 终极 shell zsh

    在mac上安装zsh,推荐安装. 参见http://macshuo.com/?p=676. 安装成功提示,看着很帅的样子

随机推荐

  1. Java 语言细节

    1.  if(x = 1) 为什么java不会因为这样的笔误代码犯错?  // meant x == 1 因为在C++中,整数0代表布尔值false,非0值相当于布尔值true,在Java中int与布 ...

  2. ie不支持getElementsByName的解决办法

    在chrome下getElementsByName运行正常,可在IETester7~11下都不支持  w3c规范中getElementsByName是按着name属性进行检索的,而MS的IE却是按着i ...

  3. jquerymobile页面跳转和参数传递

    http://blog.csdn.net/chen052210123/article/details/7481578 页面跳转: 页面跳转时pagebeforechange事件会被触发两次,通过$(d ...

  4. BZOJ4428 : [Nwerc2015]Debugging调试

    设$f[i]$为最优策略下调试$i$行代码的时间,则: $f[1]=0$ $f[i]=\min((j-1)\times p+f[\lceil\frac{i}{j}\rceil])+r$ 意义为枚举pr ...

  5. BZOJ4531: [Bjoi2014]路径

    Description 在一个N个节点的无向图(没有自环.重边)上,每个点都有一个符号, 可能是数字,也可能是加号.减号.乘号.除号.小括号.你要在这个图上数 一数,有多少种走恰好K个节点的方法,使得 ...

  6. Install the Maven in your computer

    While, this blog will talk about installing the Maven in your computer. There are three steps as fol ...

  7. Java_JDK动态代理学习笔记

    昨天被问了个问题,问题的大意是这样的:为什么 Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, Invoc ...

  8. 六、雪花《苹果iOS实例编程入门教程》

    该app为应用的功能为制作一场雪景 现版本 SDK 8.4 Xcode 纲要:- UIImageView 的运用- onTimer 代码运用- onAnimation 代码运用 运行Xcode 选择 ...

  9. 五、点数器《苹果iOS实例编程入门教程》

    该app为应用的功能为一个简单的数数程序 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View Applic ...

  10. DBLink创建 ORA-12154: TNS: 无法解析指定的连接标识符

    因为对oracle不了解,这个问题可TM的搞了好久! 走的弯路: 1. 在客服端的PLSQL连接工具上折腾,而不是在服务器的PLSQL解决 2. 配置的tnsnames.org文件在环境变量path( ...