Linux 发送信号, 修改键映射
2015-07-24 12:11
639 查看
遇到一个问题, 用SSH 工具登陆远程Linux 系统后, 使用 sqlplus 会出现问题, 比如输入 eixt, 发现输入错误, 然后Backspace 想删除这些字符, 发现没有删除字符, 却出现了 ^H 符号.
这个原因是我的计算机上发送的信号是 ^H, 但是在远程 Linux 上erase 信号映射到 ^? 信号.
可以用 stty -a 来查看 远程 Linux 上的键映射:
然后 Ctrl+V, 按 Backspace 看看发送的字符是什么: ^H
然后重新设定键映射: stty erase ^H
这样我发送的 ^H 就会被映射为 erase 信号, 删除字符就正常工作了;
造成这个问题的原因其实是我使用的终端模拟器和远程Linux 使用的终端其实不一致.
查看远程 Linux 的终端类型: echo $TERM = xterm
我现在使用的SSH 工具是 Xshell, 在设定里面可以选择终端模拟器,
要么修改远程Linux 上的键映射, 要么修改SSH 工具的发送信号.
总结一下:
1. echo $TERM 查看终端类型
2. 设定 SSH 工具的终端类型, 保持一致
3. stty -a 查看键映射
4. Ctrl+V 按键, 查看SSH 工具发送的字符
5. stty 信号 字符, 修改键映射, 或者修改SSH 工具按键发送的字符
Xshell Backspace 按键 -> 发送 ^H 字符 -> Linux 接收 ^H 字符 -> ^H 映射到 erase 信号
这个原因是我的计算机上发送的信号是 ^H, 但是在远程 Linux 上erase 信号映射到 ^? 信号.
可以用 stty -a 来查看 远程 Linux 上的键映射:
[oracle@erik-lnx admin_scripts_home]$ stty -a speed 38400 baud; rows 39; columns 173; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
然后 Ctrl+V, 按 Backspace 看看发送的字符是什么: ^H
然后重新设定键映射: stty erase ^H
这样我发送的 ^H 就会被映射为 erase 信号, 删除字符就正常工作了;
造成这个问题的原因其实是我使用的终端模拟器和远程Linux 使用的终端其实不一致.
查看远程 Linux 的终端类型: echo $TERM = xterm
我现在使用的SSH 工具是 Xshell, 在设定里面可以选择终端模拟器,
要么修改远程Linux 上的键映射, 要么修改SSH 工具的发送信号.
总结一下:
1. echo $TERM 查看终端类型
2. 设定 SSH 工具的终端类型, 保持一致
3. stty -a 查看键映射
4. Ctrl+V 按键, 查看SSH 工具发送的字符
5. stty 信号 字符, 修改键映射, 或者修改SSH 工具按键发送的字符
Xshell Backspace 按键 -> 发送 ^H 字符 -> Linux 接收 ^H 字符 -> ^H 映射到 erase 信号
相关文章推荐
- Linux上强大的编译器gcc
- linux smartmontools 工具
- Linux下允许或禁止root用户远程登录的方法
- Linux中一些最优秀的浏览器
- linux key
- linux 查看端口被占用情况详解
- Linux查看CPU和内存使用情况
- 如何在Linux服务器上开启安全的SNMP代理
- 如何在Linux服务器上开启安全的SNMP代理
- CentOS 6.5(64bit)编译安装GCC4.8.2
- CentOS6, CentOS7 线上服务器更新 ssh 安全配置
- 为linux系统添加虚拟内存swap分区
- RHEL六(监控和管理Linux进程)
- linux添加交换分区swap增加虚拟内存
- Linux 运维笔记
- linux系统时间设置导致系统起不来
- REHL LINUX 配置本地yum源的方法
- 基于SAP数据管理产品组合,红帽推出面向HANA的企业Linux
- CentOS6.5 设置文件夹打开方式:在同一窗口打开文件夹
- Linux小知识