Ubunutu终端配置
最终成果


zshell
安装 zshell
sudo apt update && sudo apt install -y zsh git curl
zsh --version
which zsh
若命令输出如 /usr/bin/zsh,说明安装成功并且可执行路径已就绪。
设为默认终端
将 zsh 设为当前用户的默认登录 Shell,推荐用 chsh 并指向 zsh 的绝对路径。
chsh -s $(which zsh)
注销后重新登录,或新开一个终端,确认默认 Shell:
echo $SHELL
正常应看到 /usr/bin/zsh 或 /bin/zsh;若 chsh 报错或无效,检查 /etc/shells 是否包含 zsh 路径,必要时追加并重试。
安装 oh-my-zsh
Oh My Zsh 是 zsh 的配置框架,推荐使用官方安装脚本(可用 curl 或 wget),国内网络环境可用 install.ohmyz.sh 镜像地址
使用 GitHub Raw:
sh -c "$(curl -fsSL [https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"]
或使用镜像:
sh -c "$(curl -fsSL [https://install.ohmyz.sh/)"
安装过程中脚本会建议切换默认 Shell 为 zsh,若之前已切换可直接确认继续;安装后会生成新的 ~/.zshrc,并将旧文件备份为 ~/.zshrc.pre-oh-my-zsh。
Dracula 主题
# 下载主题包
git clone https://github.com/dracula/zsh.git
# 进入下载的文件夹
cd zsh
# 设置主题
mv dracula.zsh-theme ~/.oh-my-zsh/themes
mv lib ~/.oh-my-zsh/themes/
# 使配置生效
source ~/.zshrc
如果要完全统一,不仅要把 zshell 设置为 dracula 主题,最好也把终端模拟器(如 Windows Terminal,item 2,kitty 等)的主题也设置为 Dracula
安装 zsh 插件
autosuggestions
当我们输入命令过程中,可以预览历史命令,按 → 便可输出这些命令。
- 克隆项目到本地
$ZSH_CUSTOM/plugins路径下
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- 编辑
~/.zshrc配置文件,添加到plugins列表中
plugins=(zsh-autosuggestion)
autojump
用 j <目录名> 的方式快速跳转到以前访问过的目录。
- 克隆代码
git clone https://github.com/wting/autojump.git
- 安装
cd autojump
./install.py or ./uninstall.py
- 配置:编辑
~/.zshrc配置文件,添加到plugins列表中
plugins=(autojump)
zsh-syntax-highlighting
在 shell 中高亮语法。
- 克隆代码
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- 配置:编辑
~/.zshrc配置文件,添加到plugins列表中
plugins=(zsh-syntax-highlighting)
安装 NerdFront 字体
访问 Nerd Fonts 网站下载一个自己喜欢的字体。解压,然后点击安装每一个字形。

设置 Ubununtu 终端字体(其他终端软件同理):
- 点击右上角选项,打开Preference
- 选择刚刚下载的字体,注意需要是Mono 后缀的(保证等宽,代码才能对齐)


安装 lsd
lsd 可以为 ls 命令中的不同类型文件或文件夹添加不同颜色, 并且使用对应的图标进行标识, 简洁直观。

- 使用 apt 安装:如果找不到包,说明 ubuntu 版本不够,采用 cargo 安装。
sudo apt update && sudo apt install -y lsd
- Cargo 安装
# 安装Cargo
[https://sh.rustup.rs](https://sh.rustup.rs/) -sSf | sh
# 添加环境变量
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# 安装lsd
cargo install lsd
lsd 命令举例:
lsd: 最基础命令, 显示当前目录结构lsd -l: 以竖向列表显示当前目录结构lsd -la: 以竖向列表显示当前目录结构(含隐藏文件)lsd --tree: 以目录树格式显示当前目录结构
如果图标显示不出来,是因为没有安装 NerdFront 字体
可以在 .zshrc 中添加别名:
alias ls='lsd'
alias ll='lsd -al'
alias lt='lsd --tree'
安装 homebrew
很多时候用 apt 找不到的包,都可以用 homebrew 安装。
sudo apt-get update
sudo apt-get install build-essential curl file git
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
brew --version
安装 fzf
它是一个用于任何类型列表的交互式过滤程序;无论是文件、命令历史、进程、主机名、书签还是 Git 提交等。它实现了一种“模糊”匹配算法,因此您可以快速输入省略字符的模式,仍然获得想要的结果。
# 下载源码
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
# 安装
~/.fzf/install
然后重启 shell,就可以开始使用了,如果每次打开终端都要开启 fzf 的 shell 集成,还需要在 ~/.zshrc 中添加下面一行代码。
source <(fzf --zsh)
默认快捷键:
ctrl t:搜索当前目录ctrl r:搜索历史[搜索界面中]ctrl j:,下一个选项[搜索界面中]ctrl k:上一个选项[搜索界面中]tab:多选
Shell 集成: 连续输入**后按下 tab 即可触发搜索。
# 搜索文件或目录
cd **<TAB>
vim **<TAB>
# 搜索进程
kill -9 **<TAB>
# 搜索主机名
ssh **<TAB>
telnet **<TAB>
# 搜索环境变量,别名
unset **<TAB>
export **<TAB>
unalias **<TAB>
预览功能:fzf 提供了一些预览脚本,比如 fzf --preview 'fzf-preview.sh {} 可以实现预览当前目录的文件。

如果要预览图片,需要安装终端图片预览工具。
添加预览命令的别名:在 ~/.zshrc 中添加如下命令,之后执行 source ~/.zshrc 即可生效。
alias fsfp="fzf --style full --preview 'fzf-preview.sh {}' --bind 'focus:transform-header:file --brief {}'"
安装图片预览工具
你的 fzf-preview.sh 脚本需要调用这些工具来生成图片预览。你至少需要安装其中一个。
viu:一个比较通用的工具,兼容多种终端,但在不支持的终端上会用字符块(block characters)来近似显示。chafa:功能强大,支持多种协议,也可以用字符块显示,效果通常比viu好。icat:专门为 Kitty 终端设计,效果最好。imgcat:专门为 iTerm2 终端设计。
# 使用homebrew安装
brew install viu chafa
# 找一张图片测试
viu /path/to/your/image.jpg
# 或者
chafa /path/to/your/image.png

Ubunutu终端配置的更多相关文章
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- Shell终端配置
Shell终端配置 How to: Change / Setup bash custom prompt (PS1) 参考链接:https://www.cyberciti.biz/tips/howto- ...
- 在 Windows 10 上用超级终端配置 Cisco 3560 Series
在Cisco实验中,恢复路由器出厂配置是必须的内容,所以今天就由小编来为大家介绍Cisco软件怎么恢复路由器出厂配置. 1. 通过终端连接交换机1.1. 通过 Windows 的超级终端连接 Cisc ...
- MC3190终端配置冷启动自动恢复的方法
一. 网络配置的恢复 将当前文件夹下的注册表文件MC3190 Start Config.reg(见附件)复制到终端的Application文件夹内(可以通过数据线或ftp方式传送文件); 导出终端的网 ...
- Mac下终端配置(item2 + oh-my-zsh + solarized配色方案)
最近重装了系统,于是便重新配置了一下终端,使其更符合用户习惯. 效果如下: 拥有语法高亮,命令行tab补全,自动提示符,显示Git仓库状态等功能. 安装 首先我们下载的 iTem2 这个软件,比Mac ...
- Mac终端配置,DIY你的Terminal (iTerm 2 + Oh My Zsh)
使用mac osx一年以来,自带的Terminal终端一直都是白底黑字,食之无味,越来越缺乏新鲜感,怎么也得想个法子来刺激下眼球. 不然花那么多大洋买你回来是要哪般,难道真是为来学习工作??? 怎么可 ...
- mac终端配置Android ADB命令
不得不说mac是一款开发利器,不仅可以开发ios,而且对于Android开发也是不错的选择,下面我就对mac配置adb命令,进行简要的说明.下面我将一下mac环境下的配置步骤:1.在自己的目录(hom ...
- 为终端配置proxy
转自:https://my.oschina.net/u/818848/blog/677225?p=1 做开发的同学,应该都会经常接触终端,有些时候我们在终端会做一些网络操作,比如下载gradle包等, ...
- Android终端配置isatap隧道使用IPV6的方法
使用isatap隧道可以在手机有IPV4网络的情况下访问IPv6网络资源.关于isatap隧道的配置方法,清华.上交两所学校都给出了相应的在windows xp/2003,windows 2000,以 ...
- 转载_虚拟机下LInux(终端)配置网络的方法
出自: http://www.360doc.com/content/14/1027/11/17496895_420258403.shtml 对文章的重点进行剪贴,方便查看. 这几天在虚拟机vmware ...
随机推荐
- 通用jar包部署脚本
在<Linux下部署Spring Boot 项目 jar包>中,小编介绍了一步一步发布jar包的方法,这里提供一个通用Shell脚本,傻瓜式发布Spring Boot项目. 通过W ...
- SQL语句中exists和in有何区别
在SQL性能优化的时候,经常遇到是使用exists还是in提高效率的问题,这里结合之前写的两篇博客<MYSQL中in的用法>和<MYSQL中EXISTS的用法>,总结一下 ...
- springboot读取并映射额外的yml配置到bean
项目结构 userPermission.yml # 用户权限 user-permission: api: # 系统管理员 system_manager: - "*:*:*" # 应 ...
- CSharp中的文件操作
在C#中,可以使用System.IO命名空间中的类来进行Windows文件操作.这些类提供了丰富的方法来处理文件和目录,包括创建.复制.删除.移动文件和目录,以及读取和写入文件等功能. 常用文件操作方 ...
- Synchronized是怎么实现的?
回答重点 synchronized 实现原理依赖于JVM 的 Monitor(监视器锁)和对象头(Object Header) synchronized 修饰代码块:会在代码块的前后插入 monito ...
- Mysql高级操作(select嵌套,多表JOIN)
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- idea类和方法的注释模板设置
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 1.在idea中设置类模板 2.设置方法注释模板 软件:idea 版本:2019.3.1 1.在idea中设置类模板 /** * @Class ...
- 打工人必备!2025年最强任务管理软件Top5测评推荐
前言:谁偷走了我们的时间? 你是否也有这样的经历: 今天本来打算写一份PPT,结果临时被拉去开会,文档又拖到了明天: 任务堆成山,却总忘记哪个最重要: 同事催你对接.老板问你进度,你满脑子问号-- 这 ...
- 高效安全迁移:PG高可用集群实战方案深度解析
PostgreSQL是一个开源的数据库管理系统,相比于其他开源数据库系统,PostgreSQL有更加丰富的数据类型和可扩展性,并因此被广泛采用.在实际工作中,若企业业务需求变动,则有可能面临PG高可用 ...
- Java8中Map函数应用
computeIfAbsent函数 computeIfAbsent方法的逻辑是,如果map中没有(Absent)相应的key,则执行lambda表达式生成一个默认值并放入map中并返回,否则返回map ...