0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

超级漂亮的Shell介绍

jf_78858299 来源:Linux中文社区 作者:Linux中文社区 2023-05-12 10:55 次阅读

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 主题介绍

配置插件

修改~/.zshrc中plugins

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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206742
  • UNIX
    +关注

    关注

    0

    文章

    295

    浏览量

    41061
  • Shell
    +关注

    关注

    1

    文章

    358

    浏览量

    22903
收藏 人收藏

    评论

    相关推荐

    shell是什么?shell实现原理分析基于MM32 MCU的shell脚本源码

    在前两节中,我们讲解了如何在MM32 MCU上使用shell来辅助开发,分别介绍的是通过串口方式和J-Link RTT方式的shell,本次课程我们分析源码来讲解shell实现原理。
    发表于 12-02 15:58 2253次阅读

    在Linux上使用的5个超级神奇的Shell别名

    如果你还没有充分利用Shell缩写,那么你正在浪费宝贵的时间。一遍又一遍地重复输入相同的内容是无聊、单调而且效率低下的。为什么要花时间记住冗长的命令,当你可以简化它们呢?
    发表于 06-06 17:03 170次阅读

    一个小而美的嵌入式shell - letter shell

    熟悉Linux的朋友的都知道,shell包裹在内核之外的人机交互界面,用于用户和内核之间打交道的功能,类似于windows CMD。 通过Shell将输入的命令与内核通讯,好让内核可以控制硬件开正确
    的头像 发表于 06-10 15:11 4465次阅读
    一个小而美的嵌入式<b class='flag-5'>shell</b> - letter <b class='flag-5'>shell</b>

    Linux shell函数简介和使用方法

    作为一个嵌入式 Linux 工程师,肯定需要编写 shell 脚本进行一些自动化工作。刚好,我最近就有类似需求——一键交叉编译 DDS。本着“编写漂亮代码的原则”,我用到了 shell 函数 。
    发表于 08-25 16:21 504次阅读
    Linux <b class='flag-5'>shell</b>函数简介和使用方法

    Linux Shell系列教程之Shell for循环

    示例  接下来通过示例的方式给大家介绍Shell for循环的用法。  for loop in one two tree four  do  echo "I am : $loop"
    发表于 09-04 15:16

    如何为IVSHMEM演示启动多个shell

    如何为IVSHMEM演示启动多个shell?“uio_read 和 uio_send 需要在不同的 shell 中启动。”我在 COM3 上有超级终端,我在其中启动 U-boot 并运行
    发表于 03-27 07:28

    米尔科技Linux Shell编程介绍

    Shell是用户与内核进行交互操作的一种接口,是Linux最重要的软件之一。
    的头像 发表于 11-25 08:58 1434次阅读
    米尔科技Linux <b class='flag-5'>Shell</b>编程<b class='flag-5'>介绍</b>

    shell脚本常用的调试方法介绍

    软件、配置编译环境,可以说使用起来非常的方便,但是它在调试方面常常令人头大,本文主要介绍shell脚本常用的调试方法 调试常用选项 调试shell脚本时,常常用到几个调试选项,让脚本在执行的过程中,会输出一些调试信息,根据调试信
    的头像 发表于 09-01 10:43 2990次阅读

    shell 执行命令_基于MM32 MCU的shell调试教程(二)

    在上一节中,我们讲解了如何在MM32 MCU上使用shell来辅助开发,介绍的是通过串口方式的shell,但是有时候我们硬件串口不多或者被占用,这样通过串口方式的shell就无法使用了
    发表于 10-29 09:20 8次下载
    <b class='flag-5'>shell</b> 执行命令_基于MM32 MCU的<b class='flag-5'>shell</b>调试教程(二)

    vxworks shell reboot命令不好用_基于MM32 MCU的shell调试教程(二)

    在上一节中,我们讲解了如何在MM32 MCU上使用shell来辅助开发,介绍的是通过串口方式的shell,但是有时候我们硬件串口不多或者被占用,这样通过串口方式的shell就无法使用了
    发表于 10-29 10:36 8次下载
    vxworks <b class='flag-5'>shell</b> reboot命令不好用_基于MM32 MCU的<b class='flag-5'>shell</b>调试教程(二)

    如何在shell单元建立washer_灵动微课堂 | 基于MM32 MCU的shell调试教程(二)

    在上一节中,我们讲解了如何在MM32 MCU上使用shell来辅助开发,介绍的是通过串口方式的shell,但是有时候我们硬件串口不多或者被占用,这样通过串口方式的shell就无法使用了
    发表于 10-29 10:51 2次下载
    如何在<b class='flag-5'>shell</b>单元建立washer_灵动微课堂 | 基于MM32 MCU的<b class='flag-5'>shell</b>调试教程(二)

    基于MM32 MCU的shell调试教程(二)

    在上一节中,我们讲解了如何在MM32 MCU上使用shell来辅助开发,介绍的是通过串口方式的shell,但是有时候我们硬件串口不多或者被占用,这样通过串口方式的shell就无法使用了
    发表于 02-09 11:59 2次下载
    基于MM32 MCU的<b class='flag-5'>shell</b>调试教程(二)

    Linux开发_Shell脚本编程语言

    介绍Linux下Shell编程,介绍shell里语句、变量、函数、运算符的使用。
    的头像 发表于 09-17 15:39 936次阅读

    剖析Linux shell 函数实现

    作为一个嵌入式 Linux 工程师,肯定需要编写 shell 脚本进行一些自动化工作。刚好,我最近就有类似需求——一键交叉编译 DDS。本着“编写漂亮代码的原则”,我用到了 **shell 函数** 。
    的头像 发表于 05-12 10:27 339次阅读
    剖析Linux <b class='flag-5'>shell</b> 函数实现

    python shell怎么用

    Python Shell是一种交互式解释器,可以通过命令行直接运行Python代码。在Shell中,可以输入一行代码并立即得到结果,非常适合于测试、尝试新代码或进行简单的任务。本文将详细介绍
    的头像 发表于 11-29 14:36 373次阅读