Fish:一个友好的交互式 Shell
创始人
2024-03-02 04:45:09
0

Fish — A Friendly Interactive Shell

你是否正在寻找 bash 的替代品?你是否在寻找更人性化的东西?不用再看了,因为你刚发现了 fish!

Fish(友好的交互式 shell)是一个智能且用户友好的命令行 shell,可在 Linux、MacOS 和其他操作系统上运行。可以将其用于终端的日常工作和脚本编写。用 fish 编写的脚本比相同的 bash 版本具有更少的神秘性。

Fish 的用户友好功能

  • 建议:Fish 会提示你之前写过的命令。当经常输入相同命令时,这样可以提高生产率。
  • 健全的脚本能力:Fish 避免使用那些隐秘字符。这提供了更清晰和更友好的语法。
  • 基于手册页的补全:Fish 会根据命令的手册页自动补全参数。
  • 语法高亮:Fish 会高亮显示命令语法以使其在视觉上友好。

安装

Fedora 工作站

使用 dnf 命令安装 fish:

$ sudo dnf install fish

安装 util-linux-user 包,然后使用适当的参数运行 chsh(更改 shell 程序)命令,将 fish 设置为默认 shell 程序:

$ sudo dnf install util-linux-user
$ chsh -s /usr/bin/fish

你需要注销然后重新登录,更改才能生效。

Fedora Silverblue

由于它不是 GUI 应用,因此你需要使用 rpm-ostree 将其加到层内。使用以下命令在 Fedora Silverblue 上安装 fish:

$ rpm-ostree install fish

在 Fedora Silverblue 上,你需要重启 PC 才能切换到新的 ostree 镜像。

如果你想在 Fedora Silverblue 用 fish 作为主要 shell,最简单的方法是更新 /etc/passwd 文件。找到你的用户,并将 /bin/bash 更改为 /usr/bin/fish

你需要 root 权限来编辑 /etc/passwd 文件。另外,你需要注销并重新登录才能使更改生效。

配置

fish 的用户配置文件在 ~/.config/fish/config.fish。要更改所有用户的配置,请编辑 /etc/fish/config.fish

用户配置文件必须手动创建。安装脚本不会创建 ~/.config/fish/config.fish

以下是两个个配置示例以及它们的 bash 等效项,以帮助你入门:

创建别名

  • ~/.bashrcalias ll='ls -lh'
  • ~/.config/fish/config.fish: alias ll='ls -lh'

设置环境变量

  • ~/.bashrcexport PATH=$PATH:~/bin
  • ~/.config/fish/config.fishset -gx PATH $PATH ~/bin

使用 fish 工作

将 fish 配置为默认 shell 程序后,命令提示符将类似于下图所示。如果尚未将 fish 配置为默认 shell,只需运行 fish 命令以在当前终端会话中启动。

在你开始输入命令时,你会注意到语法高亮显示:

很酷,不是吗??

你还将在输入时看到建议的命令。例如,再次开始输入上一个命令:

注意输入时出现的灰色文本。灰色文本显示建议之前编写的命令。要自动补全,只需按 CTRL+F

通过输入连接号()然后使用 TAB 键,它会根据前面命令的手册页获取参数建议:

如果你按一次 TAB,它将显示前几个建议(或所有建议,如果只有少量参数可用)。如果再次按 TAB,它将显示所有建议。如果连续三次按 TAB,它将切换到交互模式,你可以使用箭头键选择一个参数。

除此之外,fish 的工作与大多数其他 shell 相似。其他差异已经写在文档中。因此,找到你可能感兴趣的其他功能应该不难。

让 fish 变得更强大

使用 powerline 使 fish 变得更强大。Powerline 可以为 fish 的界面添加命令执行时间、彩色化 git 状态、当前 git 分支等。

在安装 powerline 之前,你必须先安装 Oh My Fish。Oh My Fish 扩展了 fish 的核心基础架构,以支持安装其他插件。安装 Oh My Fish 的最简单方法是使用 curl 命令:

> curl -L https://get.oh-my.fish | fish

如果你不想直接将安装命令管道传给 fish,请参见 Oh My Fish 的 README 的安装部分,以了解其他安装方法。

Fish 的 powerline 插件是 bobthefish。Bobthefish 需要 powerline-fonts 包。

在 Fedora 工作站上:

> sudo dnf install powerline-fonts

在 Fedora Silverblue 上:

> rpm-ostree install powerline-fonts

在 Fedora Silverblue 上,你必须重启以完成字体的安装。

安装 powerline-fonts 之后,安装 bobthefish

> omf install bobthefish

现在你可以通过 powerline 体验 fish 的全部奇妙之处:

更多资源

查看这些网页,了解更多 fish 内容:


via: https://fedoramagazine.org/fish-a-friendly-interactive-shell/

作者:Michal Konečný 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

上一篇:Linux 桌面史话

下一篇:什么是 GraphQL?

相关内容

编写CentOS系统下的B...
面对重复繁琐的服务器操作,手动输入命令效率低下且易出错。为了解决这...
2025-06-15 08:43:24
大数据开发中常用的shel...
内容目录一、date二、find三、awk四、cut五、if六、s...
2025-05-31 22:29:07
shell常见面试题二
(8)、shell中case语法 #!...
2025-05-30 22:47:54
Shell 的变量功能
什么是变量?? 应该很好理解吧&#x...
2025-05-30 15:50:47
shell常见面试题三
(16)、read读取终端输入 &#x...
2025-05-30 13:17:49
Web漏洞-XSS跨站之订...
一、XSS盲打可测试位置留言板、评论区、订单系统、反馈条件等位置。...
2025-05-29 08:31:04

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...