zsh 的简单介绍
什么是 zsh,要想解释好这个问题,那么得先说明什么是 shell。不负责任的解释说法就是 shell 就是一个壳。这个壳可不是蜗牛的壳,而是计算机的一个壳,当然也不是计算机的外壳啦,这个壳是相对于计算机内核的一个壳。是指“提供使用者使用界面”的软件,也可以说是一种命令解析器,它将人类输入的字符变成计算机可以识别的字符,或者是展现出计算机所计算出来的结果。
同时 shell 也是一种脚本语言,可以有很多有意思的用法。传统意义上的 shell 指的是命令行形式的 shell,在 Unix/Linux 系统下常用的 shell 有 bash/zsh/ksh/sh/csh 等等不一而同。
我们最常用的也是很多操作系统默认的 shell 就是 bash,它是一个为 GUN 计划编写的 shell,全称为 Bourne-Again SHell。而今天的主角显然不是这位默认集成的 bash,今天的主人翁是以拥有更加强大功能著称的 zsh。
zsh 是一款功能强大的 shell 软件,它可以兼容 bash,并且提供了很多高效的改进:
- 更好的自动补全
- 更好的文件名展开
- 强大的定制性
将 zsh 作为默认终端
首先先看看当前系统中有哪些可以使用的终端:
cat /etc/shells
我的电脑中显示如下:
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
在 Mac 下已经默认安装了,
一般的安装方法就是:
sudo yum install zsh
sudo apt-get install zsh
更多的安装方法可以查看这个网址:http://www.zsh.org/
安装完成后敲击以下内容到终端:
chsh -s /bin/zsh
如果一切顺利,那么再次打开终端的时候 zsh 就会是默认的终端。
安装 Oh-My-Zsh
单单是用 zsh 是一件非常苦恼的事情,对于非程序员光是 shell 就已经算是很难以使用了,不过我想应该不会有非程序员使用终端吧。
zsh 相对于 bash 来说增加了很多的功能,所以是使用难度也自然而然的就提升了很多。还好有一群爱折腾的年轻小伙子,开发了一款 zsh 的插件集合——
“Oh My ZSH”
Oh-My-Zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout...
这是 Oh My ZSH 的官方介绍,可以在 http://ohmyz.sh/ 中看到它的身影,它简明意概的说明了它是一个开源的管理 zsh 配置框架,它内置了非常多的插件、主题、functions等等。安装 oh my zsh 也是一件非常简单的事情,只要在终端中键入:(需要有 git 环境。安装同 zsh,只要把 zsh 替换成 git 即可)
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
当然我们也可以选择使用原码安装:
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
这些命令都不复杂,如果一切顺利的话,安装完成之后我们再次打开终端时,我们的终端就会变得和原来大不一样,终端会以多彩的形式呈现出来。oh my zsh 有很多强大的配置,这里就不展开说了,zsh 的配置主要集中在用户当前目录的 .zshrc 里了,我们可以根据官网的介绍来配置我们的 zsh。
主题
好马配好鞍,有了一个强大的终端之后怎么可以没有一个配套的主题和第三方终端工具呢?按照我的审美习惯我从众多的 zsh 的主题中选择了 agnoster 这个主题以及一款非常好用的终端工具 iTerm。具体怎么安装和配置我就不在这里展开了,百度一下就可以有非常多的答案越于眼前了。在 Mac 系统下一般遇到的错误都是没有安装苹果自家的 Command line 引起的,只要安装了已经基本就不会遇到什么错误了。跟着晚上的教程一步一步做准没错。
autojump
在我们使用终端的时候往往会为频繁的输入路径而烦恼,虽然 zsh 已经有非常强大的路径补全功能,但任然不能满足我们对于效率的追求。而这么强大的 zsh 这么可能会没有解决方案呢?答案是肯定有,是有的。在 zsh 的众多插件当中,一款名为 autojump 的插件满足了我们的需求。
autojump - a faster way to navigate your filesystem,这是一款非常好用的插件,它通过记录我们常用目录并通过一定的算法分析我们将要去的目录,以达到快速到达的目的。比如说我要启动 MySql 数据库,那么我就得这样:
cd /usr/local/mysql/support-files/
mysql.server start
而如果我们使用 autojump 的话,这一操作将变得极其简单,打开 MySQL 将会变成这样:
j mysql
mysql.server start
因为我经常访问这个目录,所以 aotojump 会记录下这个路径,这样在我键入 j mysql 的时候,它就会自动帮我跳转到这个目录下。可以说是非常的方便。我们也可以为某个目录设置权重,这样就可以方便的“初始化”想要快速到达的目录了。autojump 不仅仅支持 zsh,像 bash,fish都是支持的。
结束语
使用好终端可以方便我们的操作,可以让我们以一种不同角度去感受计算机,这里要感谢 Mac OS,如果不是它我也不会踏上 shell 这一条道路上来,让我感受到了 Unix/Linux 的魅力所在。以前也常常使用虚拟机折腾 Linux 系统,但往往都是一时热情,毕竟对于一个并不是很懂 Linux 的人来说,很多问题都会让自己很沮丧。而 Mac 这种开箱即用,并不需要折腾的系统或许是体验 Unix 哲学的最佳栖息地。
本文由个人 hexo 博客 co2fe.com 迁移
date: 2017-03-17 20:40:18
zsh 的简单介绍的更多相关文章
- zsh 简单介绍
什么是 zsh,要想解释好这个问题,那么得先说明什么是 shell.不负责任的解释说法就是 shell 就是一个壳.这个壳可不是蜗牛的壳,而是计算机的一个壳,当然也不是计算机的外壳啦,这个壳是相对于计 ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- angular1.x的简单介绍(二)
首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
随机推荐
- Codeforces 946 B.Weird Subtraction Process
B. Weird Subtraction Process time limit per test 1 second memory limit per test 256 megabytes inpu ...
- Xamarin.Forms的基本页面和基本视图
Xamarin.Forms的基本页面和基本视图 在Xamarin.Forms中,每个App的界面都是一个页面Page.页面的种类有很多种.其中,最常见的页面就是内容页面ContentPage.项目 ...
- jenkins集群节点构建maven(几乎是坑最多的)
业务量变大时,单台的jenkins进行自动化构建部署,就显得没那么灵活,jenkins的集群并非像web服务器.mysql集群那样,jenkins的集群无需在额外的主机安装jenkins,但是用于ja ...
- CDOJ_149 解救小Q
原题网址:http://acm.uestc.edu.cn/#/problem/show/149 小Q被邪恶的大魔王困在了迷宫里,love8909决定去解救她. 迷宫里面有一些陷阱,一旦走到陷阱里,就会 ...
- Linux下Shell的快捷键(转)
下述所有命令在Linux/Unix的shell下有效,这里以bash为主.如有出入,以你自己的服务器为准.本文所指的Linux主要指RHEL/CentOS,Unix指的是FreeBSD,这也是Unix ...
- SMART OS
http://blog.csdn.net/babyfacer/article/details/8577333
- 记录一下:关于mysql数据误删除恢复的问题
大概看来几篇博客: 1.delete的可以通过回滚(rollback)的方式恢复;但是前提是,你的数据表引擎是InnoDB而不是MyISAM,而且操作不是自动提交的 但是这种方式不可以恢复trunca ...
- JS里面的call, apply以及bind
参考了这篇文章:http://www.tuicool.com/articles/EVF3Eb 给几个例子 function add(a,b) { alert(a+b); } function sub( ...
- iOS开发之分段控制器(UISegmentedControl)
今天我们来说下iOS中的分段选择控制器UISegmentedControl,这一控件有什么作用呢 每个segment都能被点击,相当于集成了多个button 通常我们会点击不同的segment来切换不 ...
- 理解Neural Style
paperA Neural Algorithm of Artistic Style 在艺术领域,尤其是绘画,艺术家们通过创造不同的内容与风格,并相互交融影响来创立独立的视觉体验.如果给定两张图像,现在 ...