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

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

3天内不再提示

Linux/Unix提供了很多种Shell

Linux爱好者 来源:入门小站 作者:入门小站 2022-05-06 16:01 次阅读

先来一张美图

fc29552a-ccef-11ec-bce3-dac502259ad0.png

1 zsh 介绍

1.1 Linux shell

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

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


	

cat/etc/shells

显示如下:

fc35b91e-ccef-11ec-bce3-dac502259ad0.png

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 系统,配置好正确的源之后,就能直接键入以下命令安装:


	

sudoapt-getinstallzsh

2.2 配置 zsh

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

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

2.3 取代 bash,设为默认 shell


	

sudousermod-s/bin/zshusername

或者


	

chsh-s/bin/zsh


	

chsh-s`whichzsh`

如果要切换回去 bash:


	

chsh-s/bin/bash

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

fc454636-ccef-11ec-bce3-dac502259ad0.png

2.4 安装 oh-my-zsh

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

直接用 git 从 github 上面下载包


	

gitclonegit://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

直接使用脚本安装


	

cdoh-my-zsh/tools ./install.sh

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

curl


	

sh-c"$(curl-fsSLhttps://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

wget


	

sh-c"$(wgethttps://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"#(thisisoneofthefancyones)

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


	

ZSH_THEME="random"#(...pleaseletitbepie...pleasebesomepie..)

fc52d08a-ccef-11ec-bce3-dac502259ad0.png

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

配置插件

修改~/.zshrcplugins


	

plugins=(gitbundlerosxrakeruby)

详细的插件信息, 可以参见 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_zshzsh

审核编辑 :李倩

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

    关注

    87

    文章

    11030

    浏览量

    207259
  • Shell
    +关注

    关注

    1

    文章

    358

    浏览量

    22974

原文标题:Linux 超级漂亮的 Shell

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    二极管整流电路全集(非常经典,很多种)

    二极管整流电路全集(非常经典,很多种)
    发表于 11-03 11:10

    【图书分享】《UNIX.Shell编程24学时教程》

    UNIX.Shell编程24学时教程》目录:附件:
    发表于 03-21 15:17

    什么是 SSH(secure shell

    泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux
    发表于 09-21 18:49

    终极 Shell——ZSH

    的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。Linux/Unix提供
    发表于 08-06 16:43

    LinuxUnix有哪些不同之处?

    LinuxUnix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为UnixLinux操作系
    发表于 03-02 18:51

    Linux Shell系列教程之Shell简介和类型

    了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。可以说,shell使用的熟练程度反映用户对
    发表于 08-28 13:56

    linux shell命令/unix shell命令教程

    linux shell命令/unix shell命令教程:为了防止未授权用户访问你的文件,可以在文件和目录上设置权限位。还可以设定文件在创建时所具有的缺省权限:这些只是整个系统安全问题
    发表于 12-06 13:08 61次下载
    <b class='flag-5'>linux</b> <b class='flag-5'>shell</b>命令/<b class='flag-5'>unix</b> <b class='flag-5'>shell</b>命令教程

    UNIX[1].shell范例精解(第4版)_code

    电子发烧友网站提供UNIX[1].shell范例精解(第4版)_code.txt》资料免费下载
    发表于 04-23 20:57 0次下载

    unixshell命令是什么

    Unix shell,通常被称作“命令行”,为Unix和类Unix操作系统提供了传统的用户界面。用户通过输入
    发表于 11-14 14:43 4434次阅读
    <b class='flag-5'>unix</b>的<b class='flag-5'>shell</b>命令是什么

    shell编程基础知识入门

    Unix及所有的类Unix系统中,如Linux、FreeBSD等操作系统,都存在Shell Script。依照Unix
    发表于 12-12 14:55 1699次阅读

    10 个增加 UNIX/Linux Shell 脚本趣味的工具

    制作 GUI 应用不是一项困难的任务,但需要时间和耐心。幸运的是,UNIXLinux 都带有大量编写漂亮 GUI 脚本的工具。以下工具是基于 FreeBSD 和 Linux 操作系统做的测试,而且也适用于其他类
    的头像 发表于 04-11 16:21 4715次阅读

    linuxunix有什么区别

    UNIXLinux之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪
    发表于 06-08 09:12 1.3w次阅读

    超级漂亮的Shell介绍

    Linux/Unix 提供很多种 Shell,为毛要这么多 Shell? 难道用来炒着吃
    的头像 发表于 05-12 10:55 432次阅读
    超级漂亮的<b class='flag-5'>Shell</b>介绍

    UnixLinux的差异

    摘要:程序员都知道,Linux 不是 Unix,不过二者之间确实存在关系,即 Linux 系统是从 Unix 派生出来的,而 Linux
    发表于 09-04 12:42 357次阅读

    linux命令和shell编程有什么联系

    Linux命令和Shell编程之间存在密切的联系。 首先,ShellLinux命令行下的解释器,它提供了一个用户界面,使用户能够与
    的头像 发表于 11-08 10:53 536次阅读