浅析如何解决终端输入长命令不换行覆盖(Docker容器内输入长命令折行覆盖)问题:如何设置docker容器tty终端窗口大小-Linux stty命令设置串口终端行列数
2023-09-11 14:19:54 时间
在进到容器内部执行命令的时候,如果命令比较长,会出现折行情况,如
可以调节里面的两个环境变量:$COLUMNS $LINES,默认是80 24。
一、问题描述及解决
1、问题情况一:我需求里遇到的情况
docker 容器在启动成功后是可以通过docker exec,kubectl exec命令登陆进去操作(当然前提是容器镜像提供了登录的环境),但是我们往往发现进去后貌似窗口大小不能自适应我们的屏幕大小,以致于复制长的命令时会自动帮我们换行,而且会与之前的命令重叠导致无法阅读的情况;如下:
虽然你继续输入命令只要保证命令没问题还是可以执行的,但是给我们视觉操作上带来了很大的不变,那能不能手动调整控制台窗口大小呢?
当然因为我们平时连接服务器是使用 SSH 连接工具,一般工具也给我们做了这种 行列数 的自适应,所以我们在平时使用 ssh 工具的时候感觉不到。但是我们在做那个 web-terminal 通过 ssh 直接连接容器的需求,所以就遇到了这个问题。起初以为是 xtermjs 的问题,后来发现原来是 docker 容器 tty 伪终端窗口默认设置的问题,默认设置就是 cols 80、rows 24,我们都可以通过命令去修改。
2、问题情况二:
之前在 linux 命令行输入命令过长时,总是碰到不能自动换行,并且还会覆盖当前行的情况。像下面这样:
root@TSync:~#
dddd@TSync:~# dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
上面的 dddd 并没有换行,而且把之前的内容覆盖了。
二、解决方案
后来终于通过 stty 命令解决了。查看行列数,并将列数从80改为160,搞定。
root@TSync:~# stty size 24 80 root@TSync:~# stty cols 160 root@TSync:~# ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddd
dddd如果溢出会自动换行,并且不会覆盖之前的内容。
我们通过算出 dom 元素的宽度,然后除以字体宽度,算出一行可以展示多少数 ,即 cols,然后就可以执行上面命令即可。这就就可以换行显示了。
相关文章
- Linux 动态库和静态库
- 20个Linux服务器安全强化建议(二)
- 淘东电商项目(06) - Linux固定IP设置以及安装Docker
- Linux&Tina&Melis内存布局分析以及linux reserved memory机制
- Linux基础:分析 Ubuntu 磁盘使用情况
- Solve Disk Space Occupancy Rate in Linux & Clear Docker logs
- linux多线程随机数,随机数SecureRandom在Linux下阻塞
- Linux下安装(卸载)KDE和GNOME
- Docker第二讲 在Linux系统安装配置docker
- 【linux/docker】解决ORA-28000: the account is locked
- Linux自学篇——linux命令英文全称及解释
- Linux分区设置
- Linux perf event 的使用(二)
- Docker 错误 docker: invalid reference format. 的解决
- Linux_查看linux并发连接数
- 【Linux】linux常用基本命令(转)
- linux查看本机IP、gateway、DNS
- Linux 如何将linux主机变为路由器&&iptables的基本用法
- Linux基础:文件基础属性及如何更改文件属性、文件与目录管理、linux软硬链接的理解、linux用户和用户组管理
- 浅析Docker Compose学习及docker-compose.yml配置文件参数介绍
- 在linux上安装docker
- flutter 在windows和linux上运行IOS UI模拟器
- Docker for Windows 代理设置(linux container)
- linux 安装开启SNMP协议,最下面是yum安装
- Linux下使用DNW工具下载镜像
- 【正点原子MP157连载】 第六章 TF-A 使用-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
- 【Linux】linux经常使用基本命令
- linux_mysql学习系列