ExpRe[25] bash外的其它shell:zsh和fish
文章目录
- zsh
- 基础配置
- 实用特性
- 插件`autojump`
- 语法高亮
- 自动补全
- fish
- 优点
- 缺点
时效性
本篇撰写时间为2021.12.15,由于计算机技术日新月异,博客中所有内容都有时效和版本限制,具体做法不一定总行得通,链接可能改动失效,各种软件的用法可能有修改。但是其中透露的思想往往是值得学习的。
本篇前置:
- ExpRe[10] Ubuntu[2] 准备神秘软件、备份恢复软件
https://www.cnblogs.com/minor-second/p/15578767.html
zsh
我们安装除了bash
之外的shell,便于使用自动补全,语法高亮等一系列功能,提升工作效率
apt install zsh
时效性:版本zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
用zsh
或bash
可以在两者之间切换
(当然Ctrl + D
也可以退出一层)
安装路径在/bin/zsh
基础配置
- 安装
oh-my-zsh
Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.
需要先确认能正常连接raw.githubusercontent.com
截至2021.12.15需要神秘
curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
看脚本是否能正常下载。并检查脚本是否正常。然后
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- 设置默认shell为
zsh
chsh -s /bin/zsh
注:这里chsh
是不是让你想到chmod
? vim ~/.bashrc
,再vim ~/.zshrc
,检查一些需要的configure是否需要复制过去
比如环境变量,conda
相关,alias
,等等。
例如conda initialize
那些代码如果不在~/.zshrc
里,就无法在zsh
使用conda
命令。- 复制该复制的,然后进入
zsh
(不能留在bash
),并. ~/.zshrc
进行更新
实用特性
- 忽略大小写。比如路径下有
a
文件夹,输入A
,再按Tab
可以自动更正 - 执行了错误的命令(或
Ctrl + C
终止了),左侧箭头会变色
cd
,空格,敲两下Tab
,然后方向键,有惊喜
(按回车选中)- 当然直接
cd
后不加空格,敲两下Tab
,然后方向键,也能做选择。
- 当然直接
- 输入
kill <进程名>
,Tab
,自动找到PID
d
,回车,数字,回车,跳转到历史访问过的目录
插件autojump
apt install autojump
当前版本v22.5.0
然后在这里插件列表加上autojump
保存退出更新. ~/.zshrc
尝试其用法(注意:要访问过,让它记住一遍,之后才能快捷跳转到)
比如这里,j 86
回车,就跳转到
总之就是输入关键词即可j <关键词1> <关键词2>
等等,可以输入多个关键词
- 比如
j mi
再按Tab
,则其会做一个排序,列举出所有匹配的
j --stat
查看统计。j -h
查看帮助jc
限定在子目录
语法高亮
https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
(本次用的是作为oh-my-zsh
插件的安装方式)
时效性:当前版本0.6.0-1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- 去
~/.zshrc
,然后把zsh-syntax-highlighting
加到插件列表最后(这个必须在最后,具体原因参见官网)
- 重启
zsh
(官网指示如此,其实按道理应该是更新~/.zshrc
即可)
语法高亮已经可以使用
自动补全
时效性:当前版本v0.7.0
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
然后去~/.zshrc
加上插件名zsh-autosuggestions
(但注意不能在zsh-syntax-highlighting
的后面),保存退出更新
(跟刚刚完全是类似的,只是要特别注意顺序)
自动补全已经可以使用,比如输入ex
,自动出现
此时按Ctrl + F
或者方向键右键都可以直接输入该命令
fish
Extensive UI: Syntax highlighting, Autosuggestions, tab completion and selection lists that can be navigated and filtered.
No configuration needed: fish is designed to be ready to use immediately, without requiring extensive configuration.
Easy scripting: New functions can be added on the fly. The syntax is easy to learn and use.
自动补全,代码高亮,提升工作效率,还无需像zsh
一样配置!
时效性:版本3.3.1
apt install fish
直接fish
即可开始使用
很多操作和zsh
有共同点(比如如何设置为默认,自动补全……等),不再赘述
优点
自动补全,语法高亮,Tab等功能都有,且不用配置。
缺点
截至2021.12.15
不支持POSIX标准。有些东西和bash
有差别
比如复制别人命令不一定能运行
中文可能会乱码
ExpRe[25] bash外的其它shell:zsh和fish相关推荐
- Zsh vs. Bash不完全对比解析,zsh是一种更强大的被成为“终极”的Shell
https://www.zhihu.com/question/21418449 Mort | Zsh vs. Bash:不完全对比解析(1) 2014-10-07 bdpqlxz Zsh和Bash, ...
- linux shell zsh,Linux终极shell Z Shell 用强大的zsh oh-my-zsh把Bash换掉
Bash确实是不错的Shell,但仍有用不少不尽人意的地方,如自动补全的功能不够强大,定位较长路径不够方便,命令历史管理不够完善等.javascript 介绍使用zsh,功能十分强大-推荐给你们!ja ...
- MACOS Terminal终端:更改zsh模式到bash模式(切换shell)
MACOS Terminal终端:更改zsh模式到bash模式(切换shell) 一.GUI界面切换: preferences- -> shell open with: -> Comman ...
- bash上的mysql在zsh用不了_Zsh和Bash的兼容性问题
兼容 Zsh在大部分时候是兼容Bash, 是的"大部分时候" 如果你要强求的话,可以在Zsh里执行下面命令 emulate bash 数组 如果在loop里使用了数组,那么脚本在B ...
- Shell: sh,bash,csh,tcsh等shell的区别
转载自:http://zhidao.baidu.com/question/493376840.html, http://blog.sina.com.cn/s/blog_71261a2d0100wmbj ...
- linux重定向stderr,在Bash和其他Linux Shell中将stderr重定向到stdout的方法
本文介绍重定向输出及在Bash和其他Linux Shell中将stderr重定向到stdout的方法. 前言 将命令的输出重定向到文件或将其通过管道传递到另一个命令时,您可能会注意到错误消息被打印在屏 ...
- zsh 和 fish 安装与使用
Ubuntu Oh My Zsh and fish 俗话说 工欲善其事,必先利其器. 在Ubuntu下面用的最多的就是Terminal 和 Vim了. Ubuntu 默认的Shell 为bash,效率 ...
- shell zsh bash ash tcsh的差别和关系
shell是一个抽象概念,shell的一切操作都在计算机内部,负责处理人机交互,执行脚本等,是操作系统能正常运行的重要组成部分 bash,ash,zsh,tcsh等是shell这个抽象概念的一种具体的 ...
- 终极 Shell——ZSH
Shell是Linux/Unix的一个外壳,你理解成衣服也行.它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后 ...
最新文章
- 计算机专业口号16字,计算机专业16口号
- Linux的命令行界面简介
- python 时间格式 工作日_python使用time、datetime返回工作日列表实例代码
- oracle中字符串的脚本表示什么意思,sql脚本中rem与prompt,define等的含义
- 如何在 ASP.Net Core 中使用 SignalR
- 涂鸦智能dubbo-go亿级流量的实践与探索
- android 信号检测,卫星、手机信号都能测!安卓神器你值得拥有
- 遥感资源大放送(下)| 11 个经典遥感数据集
- 最小二乘法求回归直线方程的详细推导过程
- docker容器满了,如何清理内存
- 【面试】--【集合容器】
- 为河南小伙恩辉舍己救人点赞<原创>
- Java学习之定义一个Circle类并测试所有方法
- 【北邮国院大三上】大三上高编/互联网协议/电信系统笔记
- IDEA 配置 JDK 源码
- 总结证书CT:证书透明度
- 关闭iphone来电mac_如何在Mac和iPhone上关闭通用剪贴板切换(以及为什么要禁用此功能)
- 国外小项目,简单小项目赚美金,1个任务10秒,让你轻松赚美金,2022副业轻松赚钱
- ImageMagick将多张图片拼接成一张图片_长图拼接app下载-长图拼接最新版下载v2.8.6...
- 游戏里的打折促销和低廉价格