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 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...