标签: fish

在 FISH shell 中使用 MacPorts

我已经玩了几天 FISH,我只是试图将它切换到我的主 shell。效果很好,但现在我的 MacPorts 软件都无法识别。

我安装并遵循从咨询http://ridiculousfish.com/shell/faq.html,这里使用安装程序包形式http://ridiculousfish.com/shell/

python 脚本将此条目从我的 .profile 生成到我的 config.fish 文件

set_default export PATH "/opt/local/bin:/opt/local/sbin:$PATH"
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

鱼:未知命令 'set_default'
/Users/ley/.config/fish/config.fish(第 1 行):set_default 导出路径“/opt/local/bin:/opt/local/sbin:$PATH” ^ in . (源)文件“/Users/ley/.config/fish/config.fish”的调用,在标准输入上调用,

我稍微摆弄了 set 命令,但这似乎没有多大帮助。

有什么建议吗?

macports terminal.app fish macos

4
推荐指数
1
解决办法
2620
查看次数

当默认 shell 与 bash 不兼容时,为什么 bash 脚本不能正常工作?

我的默认外壳是鱼,因为它更好。但通常当我运行脚本时,我收到的错误似乎是由 fish 处理的 bash 脚本引起的。我认为这是因为脚本编写者假设默认的 shell 是 bash,但我不明白其中的机制。

例如,CrashPlan install.sh 脚本以 bash shebang 开头:

~/CrashPlan-install> head install.sh
#!/bin/bash

#############################################################
# Linux Client Installer Script
#############################################################
Run Code Online (Sandbox Code Playgroud)

所以当我运行./install.sh它时,它应该由 bash 处理,对吗?默认终端外壳应该是无关紧要的。然而,当我的默认 shell 是 fish 时,运行这样的脚本会导致 fish 返回错误,就好像它正在处理脚本一样:

fish: Expected a command name, got token of type “Run job in background”. Did you mean
 “COMMAND; and COMMAND”? See the help section for the “and” builtin command by typing “help and”.
Standard input: sed -imod "s|Exec=.*|Exec=/usr/local/crashplan/bin/CrashPlanDesktop|" 
 /home/username/Desktop/CrashPlan.desktop && rm -rf /home/username/Desktop/CrashPlan.desktopmod 
Run Code Online (Sandbox Code Playgroud)

这是因为我的计算机配置错误还是因为脚本是以不可移植的方式编写的?

bash shell-script chsh fish

4
推荐指数
1
解决办法
3235
查看次数

如何在鱼壳中扩展别名?

在 bash 中,您可以扩展您键入的别名。例如,如果我有一个别名cmd="cd ~/user",打字cmd,然后打Ctrl+ Alt+e将改变它cd ~/user。有没有办法用鱼做到这一点?

linux fish

4
推荐指数
1
解决办法
1661
查看次数

如何将鱼壳提示设置为不同的颜色?

我见过 zsh 配置为具有不同颜色和背景的提示的屏幕截图,它看起来是一个非常有用的调整:

在此输入图像描述

fish

3
推荐指数
1
解决办法
2万
查看次数

如何在 macOS 的 Fish 中将特定版本的 Java 设置为 JAVA_HOME

我在 macOS 上使用 Bash 作为我的默认 shell,但我决定切换到 Fish。

我正在尝试在不同版本的 Java 之间切换。在 bash 中,它是使用~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Run Code Online (Sandbox Code Playgroud)

我在 Fish 上设置了等价物 ~/.config/fish/fish_variables

set -x JAVA_HOME `/usr/libexec/java_home -v 1.7`
Run Code Online (Sandbox Code Playgroud)

不幸的是,Java 版本并未更改。如何使用~/.config/fish/fish_variables?设置环境变量(特别是特定版本的 Java)?

更新:

根据常见问题解答~/.config/fish/fish_variables~/.config/fish/config.fish应该使用,而不是。我也创建了~/.config/fish/fish.config而不是~/.config/fish/config.fish.

java bash fish macos

3
推荐指数
1
解决办法
3509
查看次数

如何使用鱼壳设置 Terminal.app 的标题?

我想在鱼贝在Mac OS X,使用MacPorts的龙头安装。我想让我的终端窗口的标题成为我的当前目录。目前,标题只是说

Terminal - fish - 80x24
Run Code Online (Sandbox Code Playgroud)

根据fish文档,默认fish_title函数应该提供这种行为。它在 Terminal.app 中没有做正确的事情,尽管它确实可以与iTerm 一起使用。定义我自己的 fish_title 函数并不能解决问题。

有没有人能够让这个工作?

mac terminal.app fish macos

2
推荐指数
1
解决办法
4791
查看次数

如何在鱼壳中运行 make && make install

我已经安装了fish shell,我对它非常满意......但我无法运行以下命令:

make && make install
Run Code Online (Sandbox Code Playgroud)

这在 bash 中工作得很好......我如何在鱼壳中运行它?

bash fish

2
推荐指数
1
解决办法
1349
查看次数

在shell脚本中同时执行两个或多个命令

在 shell 脚本中并行运行命令通常非常有帮助,但我找不到这样做的方法。这可能吗?如果是这样,我将如何实现这一目标?我主要有兴趣为fish.

当我运行的命令需要很长时间才能完成但可以或需要同时运行以减少完成所有操作所需的时间时,它很有用。

shell shell-script fish parallel-processing

2
推荐指数
1
解决办法
158
查看次数

set -g 和 set -x 之间的区别

我目前正在从 bash 配置迁移到 Fish,并在翻译我的 bash 导出时陷入困境。Fish 似乎有三种方法可以完成工作,但我不知道应该使用哪一种,或者它们是否有我不知道的副作用

set -g VAR value
set -x VAR value
set -xg VAR value
Run Code Online (Sandbox Code Playgroud)

当然,他们并不都做同样的事情。有人可以解释一下这些差异是什么以及每种差异适用于哪些情况吗?

fish

1
推荐指数
1
解决办法
1442
查看次数