如何在 Linux 中安装 Fish Shell(带 Starship)?

简介: 【2月更文挑战第1天】

什么是 Fish Shell

Fish Shell是一款现代的、用户友好的命令行 Shell,设计初衷是提供更好的用户体验和强大的功能。它采用友好的语法和强大的自动补全功能,使得命令行操作更加轻松愉快。

Fish Shell的特点

  • 语法高亮: Fish Shell具有语法高亮的特性,使得命令更加清晰易读。
  • 智能自动补全: Fish Shell自动补全功能非常强大,可以根据你的输入提供智能建议。
  • 易于定制: Fish Shell的配置文件简单易懂,用户可以轻松地自定义Shell的外观和行为。

Fish Shell的优势

  • 友好的语法: Fish Shell的语法更加直观,减少了用户的输入错误。
  • 丰富的内建命令: Fish Shell提供了丰富的内建命令,减少了对外部工具的依赖。
  • 活跃的社区: Fish Shell拥有一个活跃的社区,用户可以从中获取到丰富的插件和主题。

什么是 Starship

Starship是一款轻量级的、快速的命令行提示符,它为Shell提供了一个漂亮、高度可定制的提示符。Starship的设计理念是简洁、高效,同时允许用户自由定制外观和显示的信息。

Starship的特点

  • 快速启动: Starship的启动速度非常快,几乎没有感知延迟。
  • 模块化设计: Starship采用模块化设计,用户可以根据需要添加或删除不同的模块。
  • 支持各种Shell: Starship支持多种Shell,包括Fish Shell、Bash、Zsh等。

Starship的优势

  • 可定制性: Starship允许用户自定义提示符的外观和显示的信息,满足不同用户的需求。
  • 对各种Shell的支持: Starship不仅支持Fish Shell,还可以与其他主流Shell兼容,使得用户可以在不同的Shell中共享配置。

在 Linux 中安装 Fish Shell

在大多数Linux发行版中,使用包管理器是安装软件的推荐方法。

  • Debian/Ubuntu:
sudo apt-get update
sudo apt-get install fish
  • Red Hat/CentOS:
sudo yum install fish
  • Arch Linux:
sudo pacman -S fish

如果你想要最新版本或者在发行版的软件仓库中找不到Fish Shell,你可以选择从源代码编译安装:

# 克隆 Fish Shell 仓库
git clone https://github.com/fish-shell/fish-shell

# 进入源代码目录
cd fish-shell

# 编译和安装
cmake .
make
sudo make install

配置 Fish Shell

安装完成后,你可以通过简单的命令启动Fish Shell:

fish

如果你希望将Fish Shell设置为默认Shell,可以使用chsh命令:

chsh -s $(which fish)

Fish Shell的配置文件为 ~/.config/fish/config.fish。你可以使用文本编辑器打开并进行编辑:

nano ~/.config/fish/config.fish

在配置文件中,你可以添加别名、函数和自定义变量等。例如:

# 设置别名
alias ll 'ls -l'

# 自定义提示符
function fish_prompt
    echo "Welcome to Fish Shell!"
end

保存并关闭配置文件后,重新启动Fish Shell,你的配置将生效。

Fish Shell 的基本用法

Fish Shell的命令语法相对更加直观,例如:

# 列出当前目录内容
ls

# 切换到上级目录
cd ..

# 显示当前工作目录
pwd

Fish Shell支持简单的别名和函数定义:

# 创建别名
alias cls 'clear'

# 创建函数
function greet
    echo "Hello, Fish Shell!"
end

# 调用函数
greet

Fish Shell的自动补全功能非常强大,当你输入命令时,按下Tab键会自动补全命令或路径,并在可能的选项中提供智能建议。

在 Linux 中安装 Starship

Starship提供了方便的安装方法,可以使用包管理器轻松安装:

# 使用 curl 安装
sh -c "$(curl -fsSL https://starship.rs/install.sh)"

# 或者使用 wget 安装
sh -c "$(wget -O- https://starship.rs/install.sh)"

你还可以从GitHub Releases页面下载预编译的二进制文件:

# 替换 x.y.z 为版本号
wget https://github.com/starship/starship/releases/download/vx.y.z/starship-x86_64-unknown-linux-gnu.tar.gz

# 解压文件
tar xvf starship-x86_64-unknown-linux-gnu.tar.gz

# 将 starship 可执行文件复制到 /usr/local/bin 目录
sudo mv starship /usr/local/bin/

如果你喜欢从源代码编译,你可以克隆Starship仓库并进行编译:

# 克隆 Starship 仓库
git clone https://github.com/starship/starship.git

# 进入源代码目录
cd starship

# 编译和安装
cargo build --release
sudo mv target/release/starship /usr/local/bin/

配置 Starship

为了在每次启动Shell时自动加载Starship,你需要将以下内容添加到Fish Shell的配置文件 ~/.config/fish/config.fish

# 启动时加载 Starship
eval (starship init fish)

Starship的配置文件为 ~/.config/starship.toml,你可以使用文本编辑器打开并进行编辑:

nano ~/.config/starship.toml

在配置文件中,你可以自定义提示符的外观、添加或删除模块,调整颜色和图标等。例如:

# 修改主题
[appearance]
theme = "your_custom_theme"

# 添加自定义模块
[custom.example]
command = "echo 'Custom Module'"
when = "false"

Starship 的基本用法

Starship会自动显示当前目录和Git仓库的状态。如果你在Git仓库中,你将看到当前分支名称和未提交的更改等信息。

Starship还可以显示系统信息,包括操作系统名称、内核版本、Shell类型等。这些信息可以在Starship的配置文件中进行调整。

Starship支持许多插件,你可以在配置文件中启用或禁用它们。例如:

[cmd_duration]
show_notification = true

Fish Shell 与 Starship 的高级用法

Fish Shell 的插件和扩展

Fish Shell的社区提供了丰富的插件,可以通过oh-my-fish等插件管理工具进行安装。例如,安装 z 插件:

omf install z

自定义 Fish Shell 的提示符

Fish Shell允许你创建自定义提示符,包括颜色、图标、以及显示的信息。修改 ~/.config/fish/config.fish

# 自定义提示符
function fish_prompt
    set_color green
    echo -n (prompt_pwd)
    set_color normal
    echo -n " ❯ "
end

Fish Shell支持许多高级功能,如函数式编程、变量扩展等。了解和利用这些功能可以提高你的命令行效率。

定制 Starship 的主题

Starship的主题是通过配置文件中的 theme 选项进行设置的。你可以在Starship的主题库https://starship.rs/config中选择一个主题,或者创建自己的主题。

Starship的模块化设计使得用户可以轻松地创建自定义模块。你可以通过修改 ~/.config/starship.toml 来定义你自己的模块:

# 自定义模块
[custom.my_module]
command = "echo 'Custom Module'"
when = "false"

Starship允许你在提示符中显示各种信息,包括自定义的文本、环境变量、Git状态等。修改配置文件以适应你的需求。

示例:版本控制和 Git 操作

Fish Shell和Starship的强大功能使得在项目中进行版本控制和Git操作变得更加高效。例如:

# 快速查看Git状态
git status

# 切换分支
git checkout feature-branch

# 查看提交历史
git log

Fish Shell的智能自动补全功能和Starship的提示符带来了更便捷的目录导航和文件操作。例如:

# 使用 z 插件快速跳转到常用目录
z my_project

# 列出当前目录内容
ls

# 使用 Starship 提示符显示当前目录和 Git 状态

常见问题和解决方案

1、问题:Fish Shell 不是默认 Shell,无法启动

  • 解决方案: 使用 chsh 命令将Fish Shell设置为默认Shell:chsh -s $(which fish)

2、问题:Starship 的提示符不显示或显示异常

  • 解决方案: 检查Starship的配置文件 ~/.config/starship.toml 是否正确,尤其是颜色和模块的设置。

3、问题:Fish Shell 插件无法正常工作

  • 解决方案: 确保Fish Shell插件管理器(如oh-my-fish)已正确安装,并检查插件是否与当前Fish Shell版本兼容。

总结

通过本文,你已经学习了如何在Linux系统中安装Fish Shell和Starship,以及它们的基本用法和高级配置。你可以定制Fish Shell的提示符、添加插件,还可以通过Starship提供的主题和模块使提示符更加漂亮和实用。

在实际项目中,Fish Shell和Starship为你的命令行体验提供了许多便捷和高效的功能,使得版本控制、目录导航和文件操作变得更加流畅。通过整合其他工具和软件,如tmux和vim,你可以进一步提高生产力。

目录
相关文章
|
3天前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
54 32
|
9天前
|
Ubuntu Java Linux
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
40 10
|
11天前
|
Linux
Linux安装svn并启动
Linux安装svn并启动
48 10
|
1月前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
70 20
|
30天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
70 7
|
2月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
203 20
|
2月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
217 7
|
2月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
62 2
|
3月前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
80 0
Linux 如何更改默认 Shell