Linux 下还有比这个 Shell 更漂亮的?

Posted Java技术驿站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 下还有比这个 Shell 更漂亮的?相关的知识,希望对你有一定的参考价值。

先来一张美图

1 zsh 介绍

1.1 Linux shell

Linux/Unix 提供了很多种 Shell,为毛要这么多 Shell?

难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往负责把复杂的事情搞简单,简单的事情搞复杂。牛程序员看到不爽的 Shell,就会自己重新写一套,慢慢形成了一些标准,常用的 Shell 有这么几种,sh、bash、csh 等,想知道你的系统有几种 shell,可以通过以下命令查看:

cat /etc/shells

显示如下:

1.2 zsh 简介

Zsh 是一个 Linux 下强大的 shell, 由于大多数 Linux 产品安装,以及默认使用bash shell, 但是丝毫不影响极客们对 zsh 的热衷, 几乎每一款 Linux 产品都包含有 zsh,通常可以用 apt-get、urpmi 或 yum 等包管理器进行安装

Zsh 具有以下主要功能

  • 开箱即用、可编程的命令行补全功能可以帮助用户输入各种参数以及选项

  • 在用户启动的所有 shell 中共享命令历史

  • 通过扩展的文件通配符,可以不利用外部命令达到 find 命令一般展开文件名

  • 改进的变量与数组处理

  • 在缓冲区中编辑多行命令

  • 多种兼容模式,例如使用 / bin/sh 运行时可以伪装成 Bourne shell

  • 可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏

  • 可加载的模块,提供其他各种支持:完整的 TCP 与 Unix 域套接字控制,FTP 客户端与扩充过的数学函数

  • 完全可定制化

  • 1.3 zsh 与 oh-my-zsh 终极配置

    之前是因为看到这篇文章:终极 Shell——Zsh 才选择使用 zsh,被它的自动完成、补全功能吸引了。官网:www.zsh.org

    选择 oh-my-zsh, oh-my-zsh 是基于 zsh 的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。

    在 Github 上找关于 zsh 的项目时发现的,试用了一下觉得很方便,不用像上面文章里面提到的那么复杂,配置一些插件的名称即可使用相应的功能。

    官网:https://github.com/robbyrussell/oh-my-zsh

    2 安装 zsh

    2.1 安装 zsh

    对于一般的 Ubuntu 系统,配置好正确的源之后,就能直接键入以下命令安装:

    sudo apt-get install zsh

    2.2 配置 zsh

    zsh 的配置是一门大学问,这里不赘述,直接给出一个配置文件,大家可以下载后放入 zsh 配置文档直接使用。(我的一个法国朋友手配的,相当顺手)

    把. zshrc 拷贝到相应用户的 home 目录即可
    (也可以把你的 bash 的配置文件 (~/.bash_prorile 或者~/.profile 等) 给拷贝到 zsh 的配置文件~/.zshrc 里,因为 zsh 兼容 bash)

    2.3 取代 bash,设为默认 shell

    sudo usermod -s /bin/zsh username

    或者

    chsh -s /bin/zsh

    chsh -s `which zsh`

    如果要切换回去 bash:

    chsh -s /bin/bash

    当然你实在不愿意把 zsh 当成默认的 shell, 而又想使用它, 那么你可以每次进入是都使用zsh进入, 而输入exit退出


    2.4 安装 oh-my-zsh

    直接用 zsh 会很蛋疼,因为 zsh 功能很强大但是太复杂,所以需要 oh-my-zsh 来将它简单化

    直接用 git 从 github 上面下载包

    git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

    备份已有的 zshrc, 替换 zshrc

    cp ~/.zshrc ~/.zshrc.orig
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

    直接使用脚本安装

    cd oh-my-zsh/tools
    ./install.sh

    你可以直接直接使用如下命令安装

    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 -)"

    其本质就是下载并执行了 github 上的 install.sh 脚本, 该脚本位于oh-my-zsh/tools/install.sh

    配置主题

    oh-my-zsh 集成了大量的主题, 位于 oh-my-zsh/theme

    配置主题, 可以通过修改~/.zshrc中的环境变量ZSH_THEME来完成

    ZSH_THEME="agnoster" # (this is one of the fancy ones)

    如果你觉得主题太多你可以选择使用随机模式, 来由系统随机选择

    ZSH_THEME="random" # (...please let it be pie... please be some pie..)

    详细的主题信息, 可以参见 zsh 主题介绍

    配置插件

    修改~/.zshrcplugins

    plugins=(git bundler osx rake ruby)

    详细的插件信息, 可以参见 zsh 插件 Plugins 介绍

    更新 oh-my-zsh

    默认情况下, 您将被提示检查每几周的升级. 如果你想我 ZSH 自动升级本身没有提示你, 修改 `~/.zshrc

    disable_update_prompt = true

    禁用自动升级, 修改~/.zshrc

    disable_auto_update = true

    当然你也可以选择手动更新

    如果你想在任何时间点升级(也许有人刚刚发布了一个新的插件,你不想等待一个星期?) 你只需要运行:

    upgrade_oh_my_zsh

    卸载 oh-my-zsh

    如果你想卸载oh-my-zsh, 只需要执行uninstall_oh_my_zsh zsh, 从命令行运行. 这将删除本身和恢复你以前的 bash 或者 zsh 配置.

    uninstall_oh_my_zsh zsh


    on-my-zsh漂亮的shell

    一、

    http://www.cnblogs.com/GarveyCalvin/p/4301235.html

    二、

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

     

    然后我来为大家说个笑话:

    Zsh全称为Z Shell,因为Z是最后一个字母,因此大家称之为——终极Shell。

    这是我在知乎上看到的某一位评论,他说得很有道理,我竟无言以对。

     

    很多人都在用bash,这是为什么呢?因为Zsh在初期,它的配置相当复杂,一般人只要看到配置就会掉头走人。但是,现在国外有位牛人,把Zsh的配置弄得相当简单,我们只需要几步即可完成,同时它把项目放在了GitHub上,那就是on-my-zsh

     

    基本安装

    基于Unix操作系统(Mac, Linux),需要预先安装zsh。

     

    如何检测是安装zsh:

    zsh --version;

     

    on-my-zsh 安装

     

    一、自动安装

    wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh

     

     

    二、手动安装

    1. 克隆仓库

    git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

     

    2. 如果你已存在~/.zshrc文件,则备份现有的~/.zshrc文件

    cp ~/.zshrc ~/.zshrc.orig

     

    3. 创建一个新的zsh配置文件

    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

     

    4. 改变默认的Shell

    chsh -s /bin/zsh

     

    5. 重新启动你的终端(Terminal)

    一些预览:

     

     

    一些遇过的坑

    不能把zsh设置为默认shell

    如果真的遇到了,那么我们可以手动进入zsh,只需这样:

    $ zsh
    ➜  ~ git:(master) ✗ 

     

    另外,相关的alias可以复制到~/.zshrc文件里,最后使用source更新一下文件即可:

    ✗ source ~/.zshrc

    以上是关于Linux 下还有比这个 Shell 更漂亮的?的主要内容,如果未能解决你的问题,请参考以下文章

    Tslint/eslint vs 更漂亮

    关于Linux shell,还有bash

    Android 比SwipeRefreshLayout更漂亮和强大的下拉刷新控件:Android-MaterialRefreshLayout

    不使用 JavaScript 和 CSS 更漂亮

    在更漂亮的情况下禁用 printWidth

    shell提示符是啥?