[问题] console 换行问题

楼主: chiaohuang (chiao)   2021-02-10 16:52:53
大家好
小弟 最近从朋友那边接收一块板子
因为我习惯接上 TTY console
去看开机资讯
发现用TTY 时
当我输入长指令时 他不会换行
会直接从原本这行的头开始覆蓋
感觉没有\r\n 只有 \r
但我用ssh 进去 却可以正常换行
我用 set 和 env 打印所有环境变量
比较两边的环境变量
把怀疑的变量设成一样
还是无法解决这个问题
上网查 很多人都是因为设定PS1 的关系
但我并没有把PS1加入颜色的设定
也试着设成一样的
一样无效
请问 有人知道怎是那边的问题吗?
谢谢
————
刚刚发现
只要用 stty cols 和 stty rows
设定对的大小 就可以正常了
我纳闷的是 为什么用ssh 登入却不用
再ssh 下 echo $LINES和 echo $COLUMNS 会随着视窗大小自动更改
但我用TTL uart 的视窗
他却不会自己更新 囧
作者: kdjf (我抓得到什么呢?)   2021-02-10 23:15:00
因为openssh帮你把变量都设定好了啊
作者: bitlife (BIT一生)   2021-02-11 16:02:00
命令关键字stty, api关键字 termcapapi关键字还有curses,以你的case应该用stty设定可以解决icrnl 和 ocrnl 两个试着调整(记得先记录原值),推测比较是ocrnl的问题,输入满一列后负责输入的api应该通知tty换行,如果TERM变量正确设定(和你的tty的实际情况符合),那么一切就正常,但TERM没设定或设错,输出crnl时就会有混乱结果漏了 inlcr 和 onlcr, 调整这四个(如同前述,我觉得问题在ocrnl/onlcr这边,听你的描述你没有按ENTER,应该是output这边的问题推完才发现自行发现是col,row数目问题. 所以上述推文想错方向,回复最后面的疑问. telnet,ssh是协定在handshaking过程中,client会通知server端自己这方的终端机型号,而固接的console及tty是要由管理员事先在档案中描述,不是透过协定互换在GUI界面普及后,古早相关设定档案都走入历史,console和tty两类装置(console是电脑的主键盘萤幕,tty是通过serialport连上的装置)设定方式也不同,现在终端机设定方式是怎样,我也不清楚,得去google一下查到2013年的linux text terminal howto 是否适用于2021就有待实验

Links booklink

Contact Us: admin [ a t ] ucptt.com