是否可以操纵 shell 输入来包装命令?
我想在输入命令时调用一个函数并对其进行修改, 例如当用户输入此命令时 touch foo.txt 我想操纵它运行 sudo -u user touch foo.txt 原因是我作为 root 拥有许多属于不同用户的目录,这些用户没有 shell 访问权限(所以我不能只使用 sudo 用户),并且很多时候我想以该用户的身份运行命令,我想编写脚本来检查当前目录所有者并以该用户的身份运行该命令。 谢谢。 ...
我想在输入命令时调用一个函数并对其进行修改, 例如当用户输入此命令时 touch foo.txt 我想操纵它运行 sudo -u user touch foo.txt 原因是我作为 root 拥有许多属于不同用户的目录,这些用户没有 shell 访问权限(所以我不能只使用 sudo 用户),并且很多时候我想以该用户的身份运行命令,我想编写脚本来检查当前目录所有者并以该用户的身份运行该命令。 谢谢。 ...
我正在使用 wt.exe CLI 在新选项卡中运行一些 WSL 命令。但是,在使用 Fish shell 时我似乎遇到了一些奇怪的错误。 命令: wt.exe --window 0 new-tab -p Ubuntu /usr/bin/fish -C "cd /" 这将启动一个新选项卡,但出现以下错误: [error 2147942402 (0x80070002) when launching `"cd /"'] 我知道我可以使用该-d标志来设置起始目录,但是这cd /只是示例的占位符命令,实际命令会有所不同。 ...
鱼经常发出警告 error: Unable to open universal variable file '/': Permission denied 是什么原因造成了这种情况?如何解决? ...
我一直在努力清理我的根目录,使其不与随机点文件. 尽管如此,在建立ssh 密钥我走进了死胡同,找不到移民的路已知主机文件到另一个方向($XDG_CONFIG_HOME/ssh/)。 我使用这个命令来生成我的 ssh-key: mkdir -p $XDG_CONFIG_HOME/ssh ssh-keygen -t ed25519 -C "[email protected]" -f $XDG_CONFIG_HOME/ssh/id_ed25519 但是我需要创建一个~/.ssh/config文件来指向我的$XDG_CONFIG_HOME/ssh/con...
我想拆分"-r --run"成"-r""--run" 为了 string split " " "-r --run" 我明白了 字符串拆分:-r --run:未知选项`作为错误 它误将字符串当成了标志。我该如何让它将其视为要拆分的字符串? ...
运行abbr --add ro rpm-ostree将设置缩写,并且它会按预期工作。但是,一旦我退出 shell,exit然后通过再次键入重新进入 shell fish,所有缩写都会丢失。这是典型行为吗?如何永久保存缩写? ...
我在 Windows 终端上使用 wsl 运行带有 fish 的 Ubuntu。我已正确配置配色方案,似乎除提示颜色外,所有颜色都发生了变化。输入时它保持红色,识别命令时保持蓝色,就像应用该方案之前一样。 采用配色方案: 我该如何改变它? ...
在 fish shell 中使用 vi 键绑定时,是否可以映射 jk 以进入普通模式?目前使用 Escape 来执行此操作,但我想更改(或添加新方法)来执行此操作。 ...
我正在开发一个简单的 cli 应用程序用于时间跟踪。想法是让 fish-aliases 源 r 脚本在时间表中创建时间戳。像这样: alias checkin='rscript (echo $PWD/checkin.R)' 但是,这样写的话,只有当我在正确的目录中时,我才能调用别名。有没有办法让我硬编码当前路径,这样我就可以从任何目录调用它? ...
如何禁用 fish shell 中的特定功能?例如,我想禁用 Subversion 集成。 当我使用 Subversion 进入cd任何中大型存储库的目录 ( ) 时,终端会挂起 30 多分钟。它也不会响应^C终止信号,所以我只能卡住。我发现此功能在“未来”可能会被禁用: https://github.com/fish-shell/fish-shell/issues/6625 无论如何,我不清楚如何告诉 fish 应禁用此功能。加分点:仅限特定用户。 我使用的是基于 Debian 的 GNU/Linux 发行版,使用的是 fish 版本 3.1.0。因此此功...
我注意到,存储命令历史记录的默认行为是仅存储最新条目。输入ls然后ls -al输入history将显示: ls -al ls ls再次输入将显示: ls ls -al 命令历史记录中这些命令的所有其他出现现在都消失了。这使得我很难重新学习几天前可能做过的过程。 有没有办法让 fish 按照输入的顺序保存每个命令条目? ...
我注意到 set -xg PYTHONPATH "/path/to/dir1" set -xg PYTHONPATH $PYTHONPATH "/path/to/dir2" 有效,而 set -xg PYTHONPATH "/path/to/dir1 /path/to/dir2" 不起作用,尽管两种方法似乎都产生相同的 PYTHONPATH 值: >>> echo $PYTHONPATH /path/to/dir1 /path/to/dir2 >>> 因此,如果 PYTHONPATH 的“可见”值相同,那么底层存在的...
我是鱼。我使用 vi 命令行绑定。我从各种地方了解到(例如这里以及问题评论这里,例如),历史搜索和调用可能缺少某些绑定和功能,而像我这样的人可能已经习惯了在 bash 或其他 shell 中使用这些绑定和功能。 既然如此,我想了解如何在 fish 中以 vi 模式进行最佳搜索。从该项目主要贡献者的以下帖子来看: https://github.com/fish-shell/fish-shell/issues/2271#issuecomment-127585955 这些绑定应该做一些事情: bind u history-search-backward bind ...
我正在运行eval `ssh-agent -s\` 我收到此错误 fish: Unknown command: `ssh-agent ...
在 Ubuntu WSL 中将其设置为默认 shell 会导致 PATH 无法正常工作,如文档。所以我想通过终端启动它来避免这个问题。 ...