浅析如何设置 docker 容器 tty 终端窗口大小:Linux stty设置串口终端行列数
时间:2021-08-21
本文章向大家介绍浅析如何设置 docker 容器 tty 终端窗口大小:Linux stty设置串口终端行列数,主要包括浅析如何设置 docker 容器 tty 终端窗口大小:Linux stty设置串口终端行列数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、问题描述及解决
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,然后就可以执行上面命令即可。这就就可以换行显示了。
原文地址:https://www.cnblogs.com/goloving/p/15170537.html
- hdu----(3118)Arbiter(构造二分图)
- hdu----(1528)Card Game Cheater(最大匹配/贪心)
- hdu-----(1507)Uncle Tom's Inherited Land*(二分匹配)
- hdu----149850 years, 50 colors(最小覆盖点)
- hdu------1281 棋盘游戏(最小覆盖点)
- hdu-----(1179)Ollivanders: Makers of Fine Wands since 382 BC.(二分匹配)
- hdu-----(1151)Air Raid(最小覆盖路径)
- hdu-----(1150)Machine Schedule(最小覆盖点)
- 【重磅】微软Facebook联手发布AI生态系统,CNTK+Caffe2+PyTorch挑战TensorFlow
- hduoj-----(1068)Girls and Boys(二分匹配)
- 使用Django suit或Bootstrap美化admin模板
- hdu---------(1026)Ignatius and the Princess I(bfs+dfs)
- hdu-----(1113)Word Amalgamation(字符串排序)
- HDUoj-------(1128)Self Numbers
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 猿蜕变18——一文掌控SSM玩耍方式
- 猿蜕变19——一文掌握代码自动生成
- 基于Java的俄罗斯方块游戏的设计与实现
- Docker中部署RabbitMQ并使用Python3.x操作全书(Python操作RabbitMQ看这一篇就够了)
- 【CPP】模板类线性表
- leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
- Matlab系列之程序优化
- 基于BS架构微博系统
- 10分钟学会pillow图像处理16式
- 编译原理课程设计词法分析
- 30分钟学会XGBoost
- Linux页框分配器之内存碎片化整理
- 手把手教你实现"短信轰炸"
- 最全总结!聊聊 Python 调用 JS 的几种方式
- 爬取小说网站章节和小说语音播放