当前位置: 首页 > 科技观察

Fish:一个友好的交互式Shell

时间:2023-03-13 00:44:12 科技观察

您在寻找bash的替代品吗?你在寻找更人性化的东西吗?不要再观望,因为您刚刚发现了鱼!Fish(FriendlyInteractiveShell)是一个智能且用户友好的命令行shell,可在Linux、MacOS和其他操作系统上运行。在终端中使用它进行日常工作和脚本编写。用fish编写的脚本比等效的bash版本更隐秘。Fish的用户友好功能建议:Fish会提示您输入以前编写的命令。这会在频繁键入相同命令时提高工作效率。良好的脚本性:Fish避免使用那些神秘的字符。这提供了更清晰、更友好的语法。基于手册页的完成:Fish将根据命令的手册页自动完成参数。语法高亮:Fish会高亮显示命令语法以使其在视觉上更友好。安装FedoraWorkstations使用dnf命令安装fish:$sudodnfinstallfish安装util-linux-user软件包,然后使用适当的参数运行chsh(更改shell程序)命令以将fish设置为默认shell程序:$sudodnfinstallutil-linux-user$chsh-s/usr/bin/fish您需要注销并重新登录以使更改生效。FedoraSilverblue不是GUI应用程序,因此您需要使用rpm-ostree将其添加到层中。使用以下命令在FedoraSilverblue上安装fish:$rpm-ostreeinstallfish在FedoraSilverblue上,您需要重新启动PC以切换到新的ostree映像。如果您想在FedoraSilverblue上使用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等价物来帮助您入门:创建别名~/.bashrc:aliasll='ls-lh'~/.config/fish/config.fish:aliasll='ls-lh'set环境变量~/.bashrc:exportPATH=$PATH:~/bin~/.config/fish/config.fish:set-gxPATH$PATH~/binworkwithfishconfigurefishasdefaultshell安装程序后,命令提示符将类似于下图。如果您还没有将fish配置为默认shell,只需运行fish命令以在当前终端会话中启动它。当您开始键入命令时,您会注意到语法突出显示:很酷,不是吗?🙂您还将在键入时看到建议的命令。例如,再次开始输入上一个命令:请注意在您输入时出现的灰色文本。灰色文本显示对以前编写的命令的建议。要自动完成,只需按CTRL+F。通过键入一个连字符(–)然后使用TAB键,它将根据上一个命令的手册页获得参数建议:如果您按一次TAB,它将显示前几个建议(或所有建议,如果只有一个有少量参数可用)。如果您再次按TAB,它将显示所有建议。如果连续按三次TAB,它将切换到交互模式,您可以使用箭头键选择参数。除此之外,fish的工作方式与大多数其他shell一样。其他差异已经记录在案。因此,不难找到您可能感兴趣的其他功能。让鱼更强大使用电力线让鱼更强大。powerline可以在fish的界面添加命令执行时间、彩色git状态、当前git分支等。在安装powerline之前,您必须先安装OhMyFish。OhMyFish扩展了fish的核心基础设施以支持安装额外的插件。安装OhMyFish最简单的方法是使用curl命令:>curl-Lhttps://get.oh-my.fish|fish如果您不想将安装命令直接通过管道传递给fish,请参阅OhMyFish的README安装部分了解其他安装方法。Fish的电力线插件是bobthefish。Bobthefish需要powerline-fonts包。在Fedora工作站上:>sudodnfinstallpowerline-fonts在FedoraSilverblue上:>rpm-ostreeinstallpowerline-fonts在FedoraSilverblue上,您必须重新启动才能完成字体安装。安装powerline-fonts之后,安装bobthefish:>omfinstallbobthefish现在你可以通过powerline体验fish的全部奇妙之处了: