弃 bash 转 zsh 只因补全,现在想转 fish 还是因补全!
那么,平时 shell python 脚本执行依然用 bash ,只是在 iterm2 中使用,会不会有些坑呢?
会不会有些命令会有不兼容的问题呢?
1
Feiox OP 据说, fish 是 90 后专用 fish 。。。。。。囧
|
2
windyboy 2015-11-16 14:22:05 +08:00
环境变量
|
3
weakish 2015-11-16 14:37:11 +08:00
> 平时 shell python 脚本执行依然用 bash
Python 的 subprocess 貌似是 /bin/sh ,一般也不会把 /bin/sh 软链到 fish > 会不会有些命令会有不兼容的问题呢? 会。 |
4
nekoyaki 2015-11-16 16:04:33 +08:00
bash 里预先写好的环境变量可能继承不过来,需要你自己想办法,比如在 fish 里写,或者先启动 bash 再调用 fish 。
再就是如果你 alias 了命令, fish 里是继承不了的,只能自己写 fish 的 function 。 另外有些命令的特定参数形式,在 fish 下不能用,比如 golang 的一些命令;但是大多数问题不大。 |
5
yujia 2015-11-16 16:18:55 +08:00
你需要自己实现一下 sudo !!
还有就是 $$ 不是进程显示 pid 了 再还有就是执行一条命令 bash 里面是``扩起来,在 fish 里是圆括号。 如 chomd `whoami` 你得改成 chmod (whoami) |
6
leopku 2015-11-16 17:31:06 +08:00
补全何须 fish
推荐 prezto |
7
harry890829 2015-11-16 17:33:19 +08:00
我用 zsh 主要原因还是因为……在 shell 下打文件名,终于不用区分大小写了
|
8
lightening 2015-11-16 17:38:01 +08:00
一些 hijack shell 命令的工具不能用了
|
9
wikinee 2015-11-16 17:42:27 +08:00
@leopku 你们说的我都没听过,我就 zsh 还有时候会有奇怪的问题( ubuntu )下,后来发现 ubuntu 也不都是 bash ,还有可能是 dash 。。。
|
10
fityme 2015-11-16 17:52:30 +08:00
只在 shell 里用,没坑。唯一可能会坑的是,某些偏门的脚本和命令。你需要同时看懂 bash 和 fish 然后做修改和迁移
|
11
dogsteve 2015-11-16 18:21:33 +08:00
fish 的报错信息(error)和 bash 的不一样,有时候可能导致解决某个问题的时候 google 无力,浪费大量时间。
|
12
littleqz 2015-11-16 23:54:00 +08:00
因为语法与 bash 的差异,有时候会出现奇怪的错误,比如如果服务器上用户的默认 shell 是 fish 时, ssh-copy-id 会报错,需要 chsh -s /bin/bash 才行。不过我用 fish 也有一年多了,除了前面这个毛病以外,其他倒是感觉挺好的(其实主要是补全啦, zsh 那个补全插件我也试过,感觉还是 fish 的补全比较得劲,可能是习惯了吧 :)
建议 LZ 直接用就是了,觉得坑多不习惯换回去就是了, zsh 也蛮好的嘛。 |
13
littleqz 2015-11-17 00:00:09 +08:00
另外提醒一下: 如果用 fish 的话不要在配置文件中使用太多的 alias ,速度很慢!见 [这里]( http://sudotry.com/speed-up-fish-shell-startup.html)
|
14
hei1000 2015-11-17 00:43:29 +08:00
1. config 里面很多语法和 bash 不一样不兼容
2. 编译涉及到环境变量特别是 /etc/下面的环境变量会失败,而且不会告诉你是 fish 的问题 |
16
DuckJK 2015-11-17 08:19:09 +08:00
原来用 fish 无法开机,后来换了个 SHELL 好了(也可能是别的原因)。
|
17
skl 2015-11-17 13:22:24 +08:00
使用 oh-my-fish 吧,解决一大堆兼容问题
|
18
xcodebuild 2015-11-17 18:21:47 +08:00
记得把 vim 和 emacs 里的 shell 都设置成 bash ,不然会有各种奇奇怪怪的兼容问题
|