参考链接:​​​​​​Linux终极shell-Z Shell--用强大的zsh & oh-my-zsh把Bash换掉_OSKernelLAB(gatieme)-CSDN博客_zshell
zsh终端配置指南_starslayerx的博客-CSDN博客_zsh 终端配置

Zsh 常用插件 - 简书

本文的主要目的是修改上述链接出现的错误问题。因为我也是试了好几次才成功的

大多数的Linux用户偏爱Bash,因为发行版通常默认的就是它。
Bash确实是不错的Shell,但仍有用很多不尽人意的地方,如自动补全的功能不够强大,定位较长路径不够方便,命令历史管理不够完善等。

介绍使用zsh,功能十分强大..推荐给大家!

zsh 介绍

Linux shell

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

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

cat /etc/shells

zsh简介

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

Zsh具有以下主要功能:

  • 开箱即用、可编程的命令行补全功能可以帮助用户输入各种参数以及选项
  • 在用户启动的所有shell中共享命令历史
  • 通过扩展的文件通配符,可以不利用外部命令达到find命令一般展开文件名
  • 改进的变量与数组处理
  • 在缓冲区中编辑多行命令
  • 多种兼容模式,例如使用/bin/sh运行时可以伪装成Bourne shell
  • 可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏
  • 可加载的模块,提供其他各种支持:完整的TCP与Unix域套接字控制,FTP客户端与扩充过的数学函数
  • 完全可定制化

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

评价:https://github.com/robbyrussell/oh-my-zsh/wiki/Testimonials

安装zsh

安装zsh

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

sudo apt-get install zsh

配置zsh

zsh的配置是一门大学问,这里不赘述,直接给出一个配置文件,大家可以下载后放入zsh配置文档直接使用。

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

预防针

测试看看效果,这个时候别慌,我当时在这个地方就傻了,因为我还不理解某个东西。

cat /etc/passwd

可以看到我的账户(lcf),所采用的的Shell是/bin/bash。(我前面提过,有好多种shell)

执行命令,再次查看这个文件:

执行:

chsh -s /bin/zsh

可以看到我的shell,变成了/bin/zsh

所以chsh,改变了我们的默认shell。我们也可以通过bash,或者zsh短暂的切换到相应的shell.

取代bash,设为默认shell

sudo usermod -s /bin/zsh username

或者

chsh -s /bin/zsh

如果要切换回去bash:

chsh -s /bin/bash

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

安装oh-my-zsh

直接用zsh会很蛋疼,因为zsh功能很强大但是太复杂,所以需要oh-my-zsh来将它简单化。这一步的前提是你已经安装了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

在线安装oh-my-zsh

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

离线安装oh-my-zsh

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

由于刚刚我们已经git下来了oh-my-zsh,并把他放在了~/oh-my-zsh的目录下,所以我们可以通过以下命令安装:

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

配置主题

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

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

ZSH_THEME="agnoster" 

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

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

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

配置插件

修改~/.zshrcplugins

plugins=(git bundler osx rake ruby)

Linux终极shell-Z Shell相关推荐

  1. linux shell zsh,Linux终极shell Z Shell 用强大的zsh oh-my-zsh把Bash换掉

    Bash确实是不错的Shell,但仍有用不少不尽人意的地方,如自动补全的功能不够强大,定位较长路径不够方便,命令历史管理不够完善等.javascript 介绍使用zsh,功能十分强大-推荐给你们!ja ...

  2. Linux安全基础:shell及一些基础命令

    1.什么是shell? Shell是用户和Linux操作系统之间的接口. Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类 (1)bash bash shell 是 Bo ...

  3. 【AI白身境】Linux干活三板斧,shell、vim和git

    文章首发于微信公众号<与有三学AI> [AI白身境]Linux干活三板斧,shell.vim和git 今天是专栏<AI白身境>的第二篇,所谓白身,就是什么都不会,还没有进入角色 ...

  4. linux中的bash shell的特性

    linux中的bash shell特性(基础) Shell也称命令行解释器,是我们对linux进行操作最直接的接触的脚本,所以说这对我们的今后的学习过程中非常重要. 当然,linux这种功能强大的操作 ...

  5. linux下超强命令(shell语句)组合

    记性很差劲,经常在系统,网络之间转,没有专搞系统.时间一长,所以难免有些命令或组合式语句忘记了,今天把它们集合到一起,以后跑博客上找就是了,陆续更新中... 服务器双网卡,双IP,第二个网卡路由设置格 ...

  6. 【Linux系统管理】10 Shell 基础概念篇

    一 Shell 概述 1.1 什么是 Shell Shell 只要可以实现功能(不考虑效率的情况)即可.Shell 需要对 Linux系统比较熟悉才能使用得当. Shell 编程主要为了帮助运维人员实 ...

  7. 《Linux命令行与shell脚本大全》笔记

    初识Linux Shell 什么是Linux Linux可划分为以下四部分: Linux内核 GNU工具 图形化桌面环境 应用软件 深入探究Linux内核 内核主要负责以下四种功能: 系统内存管理 软 ...

  8. Linux常用命令和shell命令

    Linux常用命令和shell命令 1. 文件目录 创建目录 mkdir 目录名1 目录名2 ... 创建多级目录 mkdir -p 目录名 查看当前所在目录 pwd 创建文件 touch 文件名 删 ...

  9. linux svn checkout代码shell脚本

    linux svn checkout代码shell脚本 #!/bin/bash echo "欢迎上使用svn账户配置脚本" echo "当前版本V1.0.0" ...

最新文章

  1. 数学之美——隐含马尔科夫模型
  2. dorado listener属性
  3. 网络推广外包——网络推广外包专员表示网站营销推广重点细节要抓住
  4. 受软银收购利好影响 ARM股价大涨近50%
  5. 肝!十大 Python 机器学习库
  6. XML文件中url路径中失效解决办法
  7. 做企业网站为什么要服务器呢,企业为什么要建站?
  8. 谷歌浏览器打开tif_谷歌打开后是搜狗浏览器??怎么办
  9. 正则表达式匹配减号_THOR断点教程0910 网球规则1112 后附常用正则表达式数据...
  10. java 微信证书文件,CertificateDownloader
  11. iphone个系列尺寸_iPhone“立体边框”壁纸来了,拥有3D效果
  12. kmp算法字符串匹配C语言实现
  13. 一个IT农民工分享互联网巨头公司面试流程
  14. win7加快开机速度
  15. python触屏模块_触摸屏滚动Tkinter Python
  16. 在被线上大量日志输出导致性能瓶颈毒打了很多次之后总结出的经验
  17. 懂的android基础如何面试月薪过万
  18. Microsoft Office无法验证此应用程序的许可证怎么解决
  19. Dockerfile构建Springboot镜像
  20. JAVA中BitSet使用

热门文章

  1. CSS样式中字体大小,建议font-size使用em
  2. 4.FTP服务配置与原理
  3. 根据qq号获取昵称和头像接口。
  4. 滨州智能dcs系统推荐_几种主流DCS系统对比分析
  5. U3D实现WebCamera显示
  6. 父相子绝导致父元素没有高度,坍塌问题
  7. Nginx 上传大文件超大超时解决办法
  8. 【LeetCode】453. 最小操作次数使数组元素相等
  9. 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理
  10. 数据访问接口功能及含义