Linux 超级漂亮的 Shell

news2024/9/25 13:17:24

先来一张美图

zsh 介绍

1 Linux shell

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

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

cat/etc/shells

显示如下:

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 客户端与扩充过的数学函数

  • 完全可定制化

3. zsh 与 oh-my-zsh 终极配置

之前是因为看到这篇文章:终极 Shell——Zsh 才选择使用 zsh,被它的自动完成、补全功能吸引了。官网:http://www.zsh.org

选择 oh-my-zsh, oh-my-zsh 是基于 zsh 的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。

在 Github 上找关于 zsh 的项目时发现的,试用了一下觉得很方便,不用像上面文章里面提到的那么复杂,配置一些插件的名称即可使用相应的功能。

官网:https://github.com/robbyrussell/oh-my-zsh

安装 zsh

1. 安装 zsh

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

sudoapt-getinstallzsh

2. 配置 zsh

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

 

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

3,取代 bash,设为默认 shell

sudousermod-s/bin/zshusername

或者

chsh-s/bin/zsh chsh-s`whichzsh`

如果要切换回去 bash:

chsh-s/bin/bash

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

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

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

配置插件

修改~/.zshrc中plugins

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


                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在vite+vue3中使用less

目录标题 一、首先,安装插件二、在 vite.config.js中配置三、最后在模版里声明css类型 一、首先,安装插件 npm install less npm install less-loader二、在 vite.config.js中配置 css: {preprocessorOptions: {less: {math: "always", // 括…

VS里拉取时候,变成变基中,变成分离分支状态,git 头指针分离于 baf67ff

分离头指针(detached HEAD) 通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例…

docker搭建达梦数据库

搭建达梦数据库 搭建达梦数据库 拉取镜像 # 拉取镜像 docker pull registry.cn-shanghai.aliyuncs.com/techerwang/dbhub:jem_dm8 或去官网下载 https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html我是选择了去官网下载 然后上传到linux服务器 do…

Selenium教程__按钮的点击、文本框的输入和清除操作(3)

from selenium import webdriverdriver webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com")# 定位元素 input_box driver.find_element_by_id("kw") search_btn driver.find_element_by_id("su")# sen_keys&a…

pycharm修改文件大小限制

场景: 方法: 打开pycharm 安装目录下的idea.properties 增加配置项:idea.max.intellisense.filesize99999

电脑word如何转化为pdf格式,其实非常简单!

作为一名在职场工作多年的资深达人,我们都知道工作中常常需要转换各种文件格式,其中最常见的就是Word文档和PDF文档。有时候根据领导、客户或甲方的要求,我们需要进行格式转换,尤其是将Word转换为PDF格式。PDF格式的文件不仅方便阅…

Spring基础知识(四)

目录 1.Spring包含的模块主要有什么 2.Core Container的作用 3.Data Access/Integration模块的作用 4.AOP模块的作用 5.Spring Web模块的作用 6.Test模块的作用 7.如何将一个类声明为Bean 8.Component和Bean的区别 9.能够注入Bean的注解有什么 10.Resource注解 1.Spr…

【Java】Java 中格式化字符串:String.format() 方法

本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html https://www.javatpoint.com/java-string-format https://www.geeksforgeeks.org/java-string-format-method-with-examples/ 前言 虽然System.out.println()适合调试和…

5 STM32复位和时钟控制

STM32的复位功能 系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的复位数值。(按键复位和软件复位属于系统复位) 电源复位: 电源复位将复位除了备份区域外的所有寄存器。…

【Flink】DataStream API使用之转换算子(Transformation)

转换算子(Transformation) 数据源读入数据之后,就是各种转换算子的操作,将一个或者多个DataSream转换为新的DataSteam,并且Flink可以针对一条流进行转换处理,也可以进行分流或者河流等多流转换操作&#xf…

sql with子语句的理解

在用sqlite时,用到了with子语句,记录下对其的理解 目的:在1个字段中找到真正包含的数据,一般用于like,但该字段可能是复杂的字符串数组。 例子数据,如: 【E2806894200050010B93C473,123456】…

软件分享:Cpu-Z电脑CPU检测工具介绍(附下载)

目录 一、软件介绍 二、功能介绍 三、使用方法 1、通过 CPU-Z 查看 CPU 信息 2、缓存信息 3、主板信息 4、内存信息 5、内存规格信息(SPD) CPU是计算机中负责读取指令,对指令译码,并执行指令的核心部件。CPU自产生以来&am…

chatgpt赋能python:用Python计算BIM:优点、应用和结论

用Python计算BIM:优点、应用和结论 Building Information Modeling(BIM)是一种数字化的建筑设计和施工方法,它包括从建筑物的设计、施工到维护和拆除的整个生命周期。BIM在大规模工程建设中越来越受到欢迎,Python编程…

单片机强排热水器方案

单片机强排热水器方案 MCU型号 MM32SPIN05TW、MM32SPIN080C 产品概述 MM32SPIN05TW本产品使用高性能的ArmCortex-M0为内核的32位MCU,最高工作频率可达72MHz,内置高速存储器,丰富的I/O端口和外设连接到外部总线。本产品包含1个12位ADC、1个比…

【群智能算法改进】基于二次插值策略的改进白鲸优化算法 改进后的EBWO[3]算法【Matlab代码#44】

文章目录 【获取资源请见文章第5节:资源获取】1. 原始BWO算法2. 基于二次插值策略的EBWO算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 原始BWO算法 白鲸优化算法 (BWO,beluga whale optimization)…

宝塔SSL续签以及申请报CURL(7)与CURL(28)错误解决方案

说一下具体背景以及遇到的问题: 主要是网站的SSL过期以后,点击宝塔里的续签功能,弹出一个黑框,等超时后报以下错误 其中也尝试过很多方法,都没什么用,当然,如果报错信息不是这类情况&#xff…

3D开发工具HOOPS可构建PLM程序,数据共享更便捷

产品生命周期管理 (PLM) 解决方案实际上都是将制造生产系统粘合在一起的粘合剂,提供从头到尾的数字主线并为最终用户优化流程。 Tech Soft 3D不是构建 PLM 应用程序的专家,但却对构建领先应用程序所基于的组件技术,以及 SDK 如何提供必要的核…

MiniGPT-4原理解读——大模型论文阅读笔记三

论文:https://arxiv.org/pdf/2304.10592v1.pdf 代码:https://github.com/vision-cair/minigpt-4 一. 作者动机 GPT-4展示了非凡的多模态能力,比如直接从手写文本生成网站,以及识别图像中的幽默元素。这些特性在以前的视觉语言模…

Scrum敏捷看板工具在项目管理中的作用

Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。 当开发团队在用 Scrum 这种开发方法开发项目时,可以利用敏捷看板,可视化透明且灵活的高效的完成工作。 使用敏捷看板可以使: …

ChatGPT批量生成文章软件:创意无限,助力高效创作

随着人工智能技术的不断发展,ChatGPT批量生成文章软件成为了一种强大的创作工具。这款软件以其无限创意和高效助力,极大地提升了文章创作的效率。在本文中,我们将从多个方面详细阐述ChatGPT软件的特点和优势。 一、智能创作能力 ChatGPT软件…