最终成果

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

当我们输入命令过程中,可以预览历史命令,按 → 便可输出这些命令。

  1. 克隆项目到本地 $ZSH_CUSTOM/plugins  路径下
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  1. 编辑 ~/.zshrc 配置文件,添加到plugins列表中
plugins=(zsh-autosuggestion)

autojump

j <目录名> 的方式快速跳转到以前访问过的目录。

  1. 克隆代码
git clone https://github.com/wting/autojump.git
  1. 安装
cd autojump
./install.py or ./uninstall.py
  1. 配置:编辑 ~/.zshrc 配置文件,添加到plugins列表中
plugins=(autojump)

zsh-syntax-highlighting

在 shell 中高亮语法。

  1. 克隆代码
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  1. 配置:编辑 ~/.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终端配置的更多相关文章

  1. 简单快捷好用的vim配置和终端配置推荐

    vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...

  2. Shell终端配置

    Shell终端配置 How to: Change / Setup bash custom prompt (PS1) 参考链接:https://www.cyberciti.biz/tips/howto- ...

  3. 在 Windows 10 上用超级终端配置 Cisco 3560 Series

    在Cisco实验中,恢复路由器出厂配置是必须的内容,所以今天就由小编来为大家介绍Cisco软件怎么恢复路由器出厂配置. 1. 通过终端连接交换机1.1. 通过 Windows 的超级终端连接 Cisc ...

  4. MC3190终端配置冷启动自动恢复的方法

    一. 网络配置的恢复 将当前文件夹下的注册表文件MC3190 Start Config.reg(见附件)复制到终端的Application文件夹内(可以通过数据线或ftp方式传送文件); 导出终端的网 ...

  5. Mac下终端配置(item2 + oh-my-zsh + solarized配色方案)

    最近重装了系统,于是便重新配置了一下终端,使其更符合用户习惯. 效果如下: 拥有语法高亮,命令行tab补全,自动提示符,显示Git仓库状态等功能. 安装 首先我们下载的 iTem2 这个软件,比Mac ...

  6. Mac终端配置,DIY你的Terminal (iTerm 2 + Oh My Zsh)

    使用mac osx一年以来,自带的Terminal终端一直都是白底黑字,食之无味,越来越缺乏新鲜感,怎么也得想个法子来刺激下眼球. 不然花那么多大洋买你回来是要哪般,难道真是为来学习工作??? 怎么可 ...

  7. mac终端配置Android ADB命令

    不得不说mac是一款开发利器,不仅可以开发ios,而且对于Android开发也是不错的选择,下面我就对mac配置adb命令,进行简要的说明.下面我将一下mac环境下的配置步骤:1.在自己的目录(hom ...

  8. 为终端配置proxy

    转自:https://my.oschina.net/u/818848/blog/677225?p=1 做开发的同学,应该都会经常接触终端,有些时候我们在终端会做一些网络操作,比如下载gradle包等, ...

  9. Android终端配置isatap隧道使用IPV6的方法

    使用isatap隧道可以在手机有IPV4网络的情况下访问IPv6网络资源.关于isatap隧道的配置方法,清华.上交两所学校都给出了相应的在windows xp/2003,windows 2000,以 ...

  10. 转载_虚拟机下LInux(终端)配置网络的方法

    出自: http://www.360doc.com/content/14/1027/11/17496895_420258403.shtml 对文章的重点进行剪贴,方便查看. 这几天在虚拟机vmware ...

随机推荐

  1. 通用jar包部署脚本

      在<Linux下部署Spring Boot 项目 jar包>中,小编介绍了一步一步发布jar包的方法,这里提供一个通用Shell脚本,傻瓜式发布Spring Boot项目.   通过W ...

  2. SQL语句中exists和in有何区别

       在SQL性能优化的时候,经常遇到是使用exists还是in提高效率的问题,这里结合之前写的两篇博客<MYSQL中in的用法>和<MYSQL中EXISTS的用法>,总结一下 ...

  3. springboot读取并映射额外的yml配置到bean

    项目结构 userPermission.yml # 用户权限 user-permission: api: # 系统管理员 system_manager: - "*:*:*" # 应 ...

  4. CSharp中的文件操作

    在C#中,可以使用System.IO命名空间中的类来进行Windows文件操作.这些类提供了丰富的方法来处理文件和目录,包括创建.复制.删除.移动文件和目录,以及读取和写入文件等功能. 常用文件操作方 ...

  5. Synchronized是怎么实现的?

    回答重点 synchronized 实现原理依赖于JVM 的 Monitor(监视器锁)和对象头(Object Header) synchronized 修饰代码块:会在代码块的前后插入 monito ...

  6. Mysql高级操作(select嵌套,多表JOIN)

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  7. idea类和方法的注释模板设置

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 1.在idea中设置类模板 2.设置方法注释模板 软件:idea 版本:2019.3.1 1.在idea中设置类模板 /** * @Class ...

  8. 打工人必备!2025年最强任务管理软件Top5测评推荐

    前言:谁偷走了我们的时间? 你是否也有这样的经历: 今天本来打算写一份PPT,结果临时被拉去开会,文档又拖到了明天: 任务堆成山,却总忘记哪个最重要: 同事催你对接.老板问你进度,你满脑子问号-- 这 ...

  9. 高效安全迁移:PG高可用集群实战方案深度解析

    PostgreSQL是一个开源的数据库管理系统,相比于其他开源数据库系统,PostgreSQL有更加丰富的数据类型和可扩展性,并因此被广泛采用.在实际工作中,若企业业务需求变动,则有可能面临PG高可用 ...

  10. Java8中Map函数应用

    computeIfAbsent函数 computeIfAbsent方法的逻辑是,如果map中没有(Absent)相应的key,则执行lambda表达式生成一个默认值并放入map中并返回,否则返回map ...