[daily] 宇宙终极shell之zsh
序
很久以前,我就知道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的更多相关文章
- 如何安装zsh,终极shell
1,教程 教程 上知乎直接搜索终极shell也可以,话不多说,直接自己看教程吧 2,总之就是 sudo apt-get install zsh chsh ...修改设置 wget下载oh-my-zsh ...
- 终极 Shell——ZSH
Shell是Linux/Unix的一个外壳,你理解成衣服也行.它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后 ...
- MAC-Zsh安装与使用——终极Shell
前言:Zsh可配置性强,用户可以自定义配置,个性化强.Zsh tab补全更强大,该功能可以让我们节约很多时间.Zsh 还有代码高亮功能,使得代码更好看了,显得逼格更高.Zsh 还有很多强大的功能,这里 ...
- 终极 Shell——ZSH
https://zhuanlan.zhihu.com/p/19556676 在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于其他系统,Mac 的主要优势是什么?2.你们平时用哪种 Sh ...
- 【转】终极 Shell
Post navigation ← PreviousNext → 终极 Shell Posted on 2013 年 7 月 23 日 在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于 ...
- 终极 Shell
在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于其他系统,Mac 的主要优势是什么?2.你们平时用哪种 Shell?…… 第一个童靴可以坐下了,Mac 的最大优势是 GUI 和命令行的 ...
- 终极Shell - Oh My Zsh
介绍 zsh: 与 bash 同为 shell 软件,适用于 linux 和 mac,mac 与百度开发机已自带. oh-my-zsh:zsh 的一个开源配置方案,即下即用,免去复杂的配置过程.配置后 ...
- 终极shell zsh
在mac上安装zsh,推荐安装. 参见http://macshuo.com/?p=676. 安装成功提示,看着很帅的样子
- 终极 shell zsh
在mac上安装zsh,推荐安装. 参见http://macshuo.com/?p=676. 安装成功提示,看着很帅的样子
随机推荐
- 将MapReduce的结果输出至Mysql数据库
package com.sun.mysql;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException; ...
- oracle性能优化----处理大数据量数据
场景:对2千万个数据,修改他们的名字加上后缀“生日”. 普通sql: and not regexp_like(title, '生日'); 优化sql: declare type rid_Arra ...
- ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework
一.创建Model MVC中的Model是用来给View提供显示数据的对象. 这里我们首先创建一个Model对象. 在解决方案资源管理器中右键点击Models文件夹,选择添加->类.添加一个名为 ...
- Oracle中Cursor的用法
关键字 概念 类型 异常处理 一 概念 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在磁 盘的表中 ...
- [Noi2015]软件包管理器 题解
题目大意: 有n个软件安装包,除第一个以外,其他的要在另一个安装包的基础上安装,且无环,问在安装和卸载某个软件包时,这个操作实际上会改变多少个软件包的安装状态. 思路: 可构成树,用树链剖分,线段树. ...
- [Leetcode] Interleaving String
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...
- div模拟textarea
有些Weber可能没有用过contenteditable这个属性,如果想编辑一个DIV里面的内容,这个属性是一个非常不错的选择 <div contenteditable="true ...
- 不需要了解任何底层知识,就可以汉化!Let`s go!!!
汉化?莫要被这两个字吓到. 其实你也可以汉化,跟着我的步骤来,你也可以进行汉化,Let`s go!!!(大鸟飘过) 这里汉化的是微软企业类库的配置管理工具EntLibConfig.exe.当然,这里的 ...
- Implement strStr()
Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...
- Oracle函数解析
一:大小写控制函数 lower()函数:(此函数将全部的大写字母都可以变为小写字母) upper()函数:(将输入的字符串变为大写字母) initcap()函数:(将每个字符串的首字母大写) 二:字 ...