我真的不知道这种情况是从什么时候发生的。我想是从我更新到 Ubuntu 20.04 开始的。
我使用 Fish 已经很长时间了,早些时候通过 Linuxbrew 获取了更新的版本。
因此我认为这是一些配置或格式的混淆。
我该如何调试?我没有收到任何错误。当我在新 shell 中按向上箭头时,它会打印一些非常旧的条目(我不记得是什么时候,但我认为是几年前的了)。
奇怪的是,即使删除也~/.config/fish
无法解决这个问题。它甚至还保留着旧的历史。我其实不知道它从哪里得到这个历史...
答案1
好的,strace
帮我调试了这个问题。我已经获得了更多信息。strace 的唯一问题是它太冗长了。无论如何,通过strace -e file fish
,我看到了这个:
...
stat("/home/az/.local/share/fish/fish_history", 0x7ffd4f2e4160) = -1 EACCES (Permission denied)
openat(AT_FDCWD, "/home/az/.config/fish/fish_history", O_RDONLY|O_CLOEXEC) = 6
unlink("/home/az/.local/share/fish/fish_history") = -1 EACCES (Permission denied)
openat(AT_FDCWD, "/home/az/.local/share/fish/fish_history", O_WRONLY|O_CREAT|O_CLOEXEC, 0644) = -1 EACCES (Permission denied)
stat("/home/az/.local/share/fish/fish_history", 0x7ffd4f2e4160) = -1 EACCES (Permission denied)
openat(AT_FDCWD, "/home/az/.bash_history", O_RDONLY|O_CLOEXEC) = 6
...
所以,首先,.bash_history
我看到的那个古老确实是古老的历史。
另外,有趣的是有一个EACCES (Permission denied)
错误。
由于某种原因,在/home/az/.local/share/
:
drwx------ 3 root root 4096 Jan 16 2019 fish/
我真的不知道我怎么会变成这样。
无论如何,sudo chown az:users /home/az/.local/share/fish
问题已经解决了!