简单介绍:

相对于绝大多数linux发行版默认的shell--bash,zsh绝对是一个优秀的替代品.zsh是交互型shell,同一时候它也是一个强大的编程语言,很多bash,ksh,tcsh优秀的地方在zsh都被实现.同一时候zsh有很多原生的优秀特点.

诞生:

Paul Falstad 在1990年公布了zsh的第一版,当时他还是Princeton University的一名学生.

名字的来源:

这个名字来自耶鲁大学的Zhong Shao教授,那时他在Princeton University做助教.Paul Falstad觉得Shao的登录名"zsh"做为1个shell的名字挺合适的.于是zsh这个名字诞生了

安装:

本文以ubuntu10.10发行版为蓝本.

  1. sudo apt-get install zsh

第一次执行

第一次执行时你会得到下列输出

  1. This is the Z Shell configuration function for new users,zsh-newuser-install.
  2. 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 shouldmake your use of the shell easier.
  3. You can:
  4. (q) Quit and do nothing. The function will be run again next time.
  5. (0) Exit, creating the file ~/.zshrc containing just a comment.That will prevent this function being run again.
  6. (1) Continue to the main menu.
  7. (2) Populate your ~/.zshrc with the configuration recommended by the system administrator and exit (you will need to edit the file by hand, if so desired).

由于是第一次执行,所以会出现配置界面.我们在这里临时先选择0,以便实现随后的定制.

特色

Tab补全

zsh实现了全面可编程化的补全方式,同意用户让shell自己主动补全各种命令的參数(即使那些与shell本身无关的命令), 自己主动填充shell的很多转换的定义以及很多恰当的參数类型.比方:输入tar xvf ,然后Tab键,系统会自己主动选择tar.gz文件,略过那些不符合的.如今zsh默认有500多个补全定义

实现方法:

  1. %autoload -U compinit
  2. %compinit

更高级的补全:

  1. % zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
  2. % zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'

它能够自己主动补全命令、參数、文件名称、进程、username、变量、权限符等。

选择提示符

zsh有很多默认的提示符主题.首先你要初始化高级提示符支持

  1. %autoload -U promptinit
  2. %promptinit

查看可用的提示符主题: prompt -p

这里我选择 promot elite2 red

定制历史信息:

这里我们设置记录命令历史文件位~/.histfile,在当前shell中记录1000个命令,在shell关闭后保存使用过的最后1000个命令

  1. HISTFILE=~/.histfile
  2. HISTSIZE=1000
  3. SAVEHIST=1000

假设你不想保存反复的历史

  1. setopt hist_ignore_all_dups hist_ignore_space

自己主动化的CD命令

zsh同意你只敲入你要进入的目录的路径,而不用输入cd.比方你要进入/etc/init.d

首先打开autocd选项 setopt autocd

然后输入 /etc/init.d 回车就可以进入目录中

扩展的文件名称替换通配符

文件名称替换实现了在展开文件通配符,来出一些特定的文件.广大的shells一直都在使用文件名称替换.比方:

  1. %ls foo*
  2. foo1 foo2

强大的重定向功能:

同一时候重定向stdout和stderr到file: command |& >file 同一时候重定向到多个文件: command >file.1 >file.2

zsh的确是个强大的shell,它支持很多有趣的通配符扩展.你能够使用通配符号,他们是一些有特殊意义的字符.比如:列出当前目录下全部的符号链接文件:

  1. %ls *(@)

zsh的通配符包含了"/"来表示文件夹,"."代表普通文件.很多其它的man zshexpn查看.假设没有匹配,zsh返回错误.

还有其它的类型,比方"/",表示让zsh匹配当前文件夹及当前文件夹的全部子文件夹.比如,找到当前文件夹下以及子文件夹下的不论什么".sh"或者".py"文件,

  1. %ls -l **/*.(sh|py)

让配置保持生效

为了一直使用扩展的文件名称替换,将下边命令加入到~/.zshrc

  1. autoload -Uz compinit
  2. compinit
  3. zstyle :compinstall filename '/home/capecchi/.zshrc'
  4. zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
  5. zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'

Prompt setup

  1. autoload -U promptinit
  2. promptinit
  3. prompt elite2 yellow

History

  1. HISTFILE=~/.histfile
  2. HISTSIZE=1000
  3. SAVEHIST=1000

We set some options here

  1. setopt appendhistory autocd hist_ignore_all_dups hist_ignore

注: ~/.zshrc文件能够来自交互和登录shell。假设你希望为非交互执行的zsh(即,通过cronjob)设定选项,那么你须要把那些命令加入在~/.zshenv后面

更改用户默认的登录shell:

  1. chsh -s /bin/zsh username 普通用户能够更改自己的,root用户则可更改全部用户的

參考:http://www.linuxaria.com/howto/introduzione-a-zsh?lang=it

http://www.builder.com.cn/2007/0328/383678.shtml

http://linuxtoy.org/archives/zsh.html

在Linux上安装zsh的更多相关文章

  1. 在 Linux Mint 19 上安装 zsh 和设置小键盘一步到位

    在 Linux Mint 19 上安装 zsh 和设置小键盘 安装 zsh 并设置 zsh 为默认 shell 安装 sudo apt install zsh 设置 zsh 为默认 shell,注意没 ...

  2. 在Windows和Linux上安装paramiko模块以及easy_install的安装方法

    一.paramiko模块有什么用? paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.由于使用的是python这样的能够跨平台运行的语言 ...

  3. 在Linux上安装Oracle RAC 12 c(12.1) 虚拟机,一步一步向导

    Oracle RAC 12 c(12.1)在Linux上安装虚拟机,一步一步向导 今天我们将看到如何安装 12 c版本1 RAC(真正的应用程序集群)数据库2 Linux 64位的虚拟机 使用VMWa ...

  4. WINDOWS和Linux上安装php7 alpha 并安装 yaf

    WINDOWS和Linux上安装php7 alpha 并安装 yaf PHP技术  widuu  2个月前 (06-15)  126浏览  0评论 windows 1.windows上安装 php7 ...

  5. 在Windows和Linux上安装paramiko模块

    一.paramiko模块有什么用? paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.由于使用的是python这样的能够跨平台运行的语言 ...

  6. Linux上安装使用boost入门指导

    Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...

  7. 如何在Linux上安装Storm

    Storm是开源的分布式实时计算系统,能够让数据流处理变得简单.可靠,也因此在大数据领域有广泛的实际 应用.下面介绍一下如何在Linux系统上安装Storm.根据Storm官网介绍,安装Storm软件 ...

  8. linux上安装Drupal

    linux上安装Drupal 前言:国内用drupal的并不太多,网上资料也很少.要注意的是drupal尽量别使用apt来安装,特别是ubuntu平台的drupal做出了一定的更改,会妨碍后期的学习和 ...

  9. 在Linux上安装Hadoop

    先决条件: Hadoop是用JAVA写的,所以首先要安装Java.在Ubuntu上安装JDK见:http://blog.csdn.net/microfhu/article/details/766739 ...

随机推荐

  1. slover层解读

    void Solver<Dtype>::UpdateSmoothedLoss(Dtype loss, int start_iter, int average_loss) { if (los ...

  2. 实训day01 python基础

    一.编程语言 编程语言:可以被计算机所识别的表达方式. 编程:程序员通过编程语言将自己的想法编写出来,产生的结果就是包含字符的文件. 其中,只有程序在运行时,其中的字符才有特定的语法意义. 二.计算机 ...

  3. python 获取路径

    获取目录路径和文件路径 import osfor root, dirs, files in os.walk(".", topdown=False): # ‘.’为获取脚本所在路径下 ...

  4. java 解析json格式数据

    有时候可能会用到json格式进行数据的传输,那么怎么把接收到的数据解析出来呢? 下面介绍两种解析json数据的方法: 1.通过谷歌的Gson来进行解析: json数据:sTotalString = { ...

  5. HDU - 2058 The sum problem(思路题)

    题目: Given a sequence 1,2,3,......N, your job is to calculate all the possible sub-sequences that the ...

  6. 笔试算法题(14):整数二进制表示中的1 & 判定栈的push和pop序列是否对应

    出题:输入一个整数,要求计算此整数的二进制表示中1的个数 分析: 如果整数表示为k,当其是负数的时候,使用1<<i分别检测k的每一位:当其位整数的时候,则k/2表示将其二进制表示右移一位, ...

  7. Layui表格之多列合并展示

    前言: 当我们在使用Layui的时候,有时表格中的列比较多,展示出来肯定是有问题的,这样就不得不舍弃一些列不展示,不展示是一种解决方案,但是更好的解决方案应该是合并展示. 这里的展示不是合并单元格,合 ...

  8. Python列表、元组、字典、集合的内置使用方法

    列表: 是一种可以存储多个值得数据容器 内容是有序的 可以存储任何数据类型 可以存储重复的元素 是可变类型(当内容发生变化时id不变) 元组: 也是一种可以存储多个值得数据容器 元组中的元素不可以被修 ...

  9. impdp导入

    //导入命令impdp 用户/密码@数据库链接 directory=数据库中映射路径 schemas=原用户 remap_schema=原用户:现用户 remap_tablespace=原表空间:现表 ...

  10. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...