UG Machine TTY问题解决记录
今天研究了一下,解决了UG Machine上TTY字符识别的一个小问题。
症状
登录进入terminal以后,默认shell是csh,按<backspace>键以后整行的命令都消失了,直接提示下一个命令。
原因排查
键入`stty -a`,发现inter信号对应的键盘转义序列是^?,erase对应的是^H,而默认<backspace>的转义序列是^?和^H,这样你输入<backspace>的时候会发送中断信号。
解决方案
一句命令:
stty inter ^C
把发送中断信号设定回我们习惯的C-c命令即可。
事实上下面的命令也有效:
stty sane
其效果是设定所有的特殊字符值到默认。
小技巧
1. 想知道terminal下各不可见字符(例如<backspace>,<delete>,<page down>)的转义序列?
先按C-v,再按该键即可。
emacs下面则是先按C-q,再按该键。
2. 改变用户默认使用的SHELL:
chsh $USER $SHELL