遇到一个有点奇怪的情况。基本上由于我无法控制的原因,我使用别人设置的服务器。我有 sudo 访问权限,但我就是搞不清楚发生了什么,也找不到任何文档。
当我打开.bashrc
( sudo nano ~/.bashrc
) 时,我得到的是静态视图,它只会覆盖顶行。我只能通过enter
一次又一次地点击 才能退出Ctrl+X
。下面的屏幕截图。
同样的事情也发生在 上vi
,显然这使得无法在服务器上编辑任何内容。有人知道这里可能发生了什么吗?我在谷歌上搜索了很多,但很难锁定它。
回应lsb_release -a
粘贴如下。
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
在寻找任何奇怪的代码时,我发现了以下内容.bashrc
:
case $- in
*i*) ;;
*) return;;
esac
说实话,我不确定这里发生了什么,但这是我唯一没意识到的事情,所以它可能有关联?
答案1
听起来好像有人弄乱了(虚拟)tty 设置,而这些设置在 21 世纪最好不要动,除非你实际上使用的是来自计算机博物馆的古董物理终端……
您应该能够使用以下命令(登录后立即在远程服务器上运行)使远程服务器上的 tty 处于可用状态:
stty sane
终端工作起来后,在 shell 启动脚本中查找类似stty
或的命令tput
,这些命令可能会对 tty 产生奇怪的影响。
答案2
在文件底部添加下一行:
export EDITOR=/path/vi
path= vi 编辑器的位置。
您可以在编辑.bashrc 之前在当前终端中执行该命令。
答案3
您的意思是,这会发生在您尝试编辑的任何文件中。
我认为 bashrc 看起来不错,我曾经在https://gist.github.com/aakbar5/2969095d8dd11e95a282157c2ca29b39,并解释了为什么该 case 语句存在。
如果您认为替换 bashrc 有帮助,您可以在没有编辑器的情况下编辑文件。请先备份。这使用 Here Doc。
cat > ~/.bashrc <‘HT’
# replacement goes here
HT
至于文本编辑器,每个路径是什么?即输出是什么which vi
?
答案4
尝试在会话中运行您喜欢的编辑器screen
。这在 99% 的时间里都能帮助我解决此类问题。我还认为这是 TTY 设置/某些 Xterm 变量的问题,您可以尝试env
从另一台机器导出输出并在这台机器上获取此类文件,检查是否能以正确的方式解决问题,但我会screen
首先使用