Shell是在程序员与服务器间建立一个桥梁,它对外提供一系列命令,让我们得以控制服务器。常用的Bash就是Shell的一种,也是Linux下默认Shell程序。这里介绍一种更强大的、更人性化的Shell——oh-my-zsh。

Zsh是什么

Zsh属于Shell中的一种,但比Bash好用,而且完全兼容Bash,拥有及其丰富的插件、强大的自动补全能力、以及自定义功能,可以大大提供我们使用Linux的效率.

安装oh-my-zsh

Zsh虽然好用,但直接用起来比较麻烦,但是已经有大神配置好的框架:oh-my-zsh,专门为Zsh打造的。

sudo apt install git
sudo apt install zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
chsh -s /usr/bin/zsh

换回去

先查看有哪些shell

cat   /etc/shells

例如,换回Bash

chsh  -s  /bin/bash 

主题

oh-my-zsh自带100多个主题,主题的配置文件在 ~/.zshrc文件中,找到这一行:

ZSH_THEME="robbyrussell"

你可以将值改成任意主题,oh-my-zsh的主题可以在这里找到。保存好文件后,执行  source ~/.zshrc 使配置生效。如果你将值设为空,表示不使用任何主题;你也可以设置为"random",你每次打开都会随机选择一个主题。

推荐主题: agnoster

由于这个主题使用了一些特殊字符,需要安装字体:

sudo apt-get install fonts-powerline

命令补全

虽然Bash可以使用tab自动补全命令,但oh-my-zsh的补全功能更强。比如你想进入Nginx所在目录 /usr/local/nginx,输入 cd/u/l/n 按下tab系统就能自动将其补全为 cd /usr/local/nginx;比如,输入 git,按下tab,就给你返回关于git的命令;再比如,你要进入一个名字很长的文件夹,你只要输入前几个字符,再按tab就能补全。

你也可以使用 alias 命令查看,会发现oh-my-zsh默认已经把很多命令组合并取了别名。

在目录中穿越

我们通常会遇到这种情况:先进入一个很深的目录,又要换到另一个目录。通常我们会使用 cd - 回到最近的一次目录,或者使用 history 查看之前所有的目录。但是oh-my-zsh提供了更强大的 d 命令。

d 命令会列出最近进入的目录历史,并且会给这些目录加上序号,只要输入对应目录的序号,就能进入该目录。

使用前面提到的 alias 命令可以查看其它一些目录跳转的快捷方式:

 rogn@ubuntu  ~  alias
-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..

Git友好

使用Git做版本控制时,经常需要对仓库的代码进行 status、add、commit等操作,以及审视Git仓库的提交状态,oh-my-zsh对Git有很友好的支持。

如下图,我们 cd 到一个目录,发现命令行前多了一对括号,括号中的 master 表示当前目录是一个Git仓库,且在master分支下。如果当前分支有文件改动,master后面会增加一个*号,表示工作区有文件改动但没有执行 add。执行 git add后,*变成了 +,表示添加到了站暂存区。再执行git commit,master后面的符号消失,工作区又干净了。切换分支,括号里变成了dev,表示当前已经是dev分支。

参考链接:https://zhuanlan.zhihu.com/p/63585679

 

linux shell——zsh的安装与使用的更多相关文章

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

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

  2. 【原】用PHP搭建基于swoole扩展的socket服务(附PHP扩展的安装步骤及Linux/shell在线手册)

    最近公司的一项目中,需要用PHP搭建一个socket服务. 本来PHP是不适合做服务的,因为和第三方合作,需要采用高效而稳定的TCP协议进行数据通信.经过多次尝试,最终选择了开源的PHP扩展:swoo ...

  3. 树莓派进阶之路 (035) - 基于linux的zsh安装脚本

    基于linux的zsh安装脚本: Ubuntu版本: #!/bin/sh cd #安装zsh sudo apt-get install zsh #查看zsh cat /etc/shells #更改zs ...

  4. Shell脚本实现在Linux系统中自动安装JDK

    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ...

  5. Arch Linux 硬盘引导-联网安装

    Arch Linux 硬盘引导-联网安装 ============https://www.archlinux.org/https://wiki.archlinux.org/https://wiki.a ...

  6. 终极 Shell——ZSH

    Shell是Linux/Unix的一个外壳,你理解成衣服也行.它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后 ...

  7. Linux Shell自动交互/人机交互的三种方法

    如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下. 一.背景 shell脚本在处理自动循环或大的任 ...

  8. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  9. linux shell 入门

    本文是本人学习linux shell入门收集整理,不完全原创. 参考博文: http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html ...

随机推荐

  1. CSAPP阅读笔记-gcc常用参数初探-来自第三章3.2的笔记-P113

    gcc是一种C编译器,这次我们根据书上的代码尝试着使用它. 使用之前,先补充前置知识.编译器将源代码转换为可执行代码的流程:首先,预处理器对源代码进行处理,将#define指定的宏进行替换,将#inc ...

  2. android中的Touch研究

    android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解. 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN-& ...

  3. 负载均衡服务器中存在大量的TIME_WAIT怎么解决

    首先需要明白什么是TIME_WAIT.TIME_WAIT是在tcp断开连接时进行四次回收的时候,主动断开端在收到被动关闭端的FIN包并发送ACK包给被动关闭后进入的状态.这个状态默认情况下是2倍的MS ...

  4. 【mysql】mysql数据库安装

    今天一直在测功能,整理用例,所以没有去调项目,想到之前有小伙伴求助数据库安装,还远程了一番,所以,就整理一下,数据库在测试工作中还是挺重要的,不能本地测试改个数据都去找开发小哥哥吧,是不是不太好呢,妹 ...

  5. 中文输入法无法在 QtCreator(Linux) 中输入汉字

    中文输入法无法在 QtCreator(Linux) 中输入汉字 环境 system: Deepin 15.7 Qt Creator 4.7.0 (GCC 5.3.1) 解决方法 下载 fcitx-qt ...

  6. Object 公共方法详解

    在C#中,所有类型最终都从System.Object派生,所以每个类型的每个对象都保证了一组最基本的方法.具体地说,System.Object提供了一组公共实例方法. 一.Equals 如果两个对象具 ...

  7. 2017年10月22日 基础SQL语句&数据库创建主外键关系

    1.SQL语句的注释 双减号:-- 或者/**/2.创建数据库create database 数据库名称(不允许以数字开头,不允许以符号开头,不要起汉语名字) 3.如何选中这个数据库use 数据库名 ...

  8. gsap

    TweenMax借助于css,轻量级的js库 下面是简单的demo <!DOCTYPE html> <html lang="en"> <head> ...

  9. 如何取消IntelliJ IDEA打开默认项目配置

    一.前言            在前端中,个人比较喜欢使用IntelliJ IDEA开发工具!IntelliJ IDEA是非常强大的开发集成工具,打开IntelliJ IDEA软件默认会打开最近一次的 ...

  10. IS Decisions如何帮助企业提高安全标准

    PCI DSS标准有什么要求? 简单地说,PCI DSS要求最高级别的网络安全性.这一标准如今广泛应用于需要存储.管理.传输客户(或持卡人)个人数据的行业和领域. 施行严格的访问监控措施 为了保证关键 ...