当前位置: 首页 > news >正文

linux stty命令学习

stty命令用来修改和显示终端行设置。

sh-# stty
speed 115200 baud; line = 0;
kill = ^X;
-brkint ixany -imaxbel
-iexten -echoe echoprt
sh-# stty -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^X; 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 = 1;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-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+S,用来stop当前的shell;
CTRL+Q,用来start当前的shell;
CTRL+Z,用来suspend当前的shell;
CTRL+C,用来interrupt当前执行的程序;
...

这样我们终于知道了为什么在shell下键入组合键CTRL+C,CTRL+D,CTRL+Z会有对应的处理了。
原来是shell在运行时,它已经接管了对这些按键的处理了。

sh-# ps
PID TTY TIME CMD
409 ? 00:00:00 init
943 ? 00:00:00 sh
1213 ? 00:00:00 sh
4918 ? 00:00:00 ps
sh-# kill -2 943

sh-#
这里我们测试了一下给当前shell发送SIGINT signal,由于当前shell下没有运行任何命令或程序,
所以看起来什么都没做。
你也可以在shell下按组合键CTRL+C来看看,没错,CTRL+C实际上就是给当前shell发送SIGINT,
它们俩是等效的。

待解决问题:当我的终端类型为/dev/console时,在shell下按CTRL+S/CTRL+Q等组合键没有作用;
sh-# tty
/dev/console
但是当我的终端类型为/dev/pts/6时在shell下按CTRL+S/CTRL+Q会产生作用;
sh-# tty
/dev/pts/6
这是什么原因造成的?跟终端类型有关系吗?如何去确认?

相关文章:

  • SICP习题 (1.12)解题总结
  • 黑马程序员_Set,TreeSet
  • ios开发之你真的了解了KVC吗?
  • 快速排序算法
  • C# 网络编程之webBrowser乱码问题及解决知识
  • Python 入门教程 8 ---- Python Lists and Dictionaries
  • linux上安装RAC时不使用asmlib的多路径配置
  • HDOJ, 杭电1219, ACme简单字符串题
  • Java RandomAccessFile
  • Sass的准备工作有哪些
  • oracle RAC 10g 升级到11g (out of place) 回退方案
  • 个人站长的生存空间是否越来越小?
  • 弥补两个不足来提升企业站流量
  • 中国象棋程序的设计与实现(高级版)(2012本科毕业论文等重要文档资料)
  • linux arping命令学习
  • [LeetCode] Wiggle Sort
  • DOM的那些事
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • ReactNative开发常用的三方模块
  • Vue 2.3、2.4 知识点小结
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Vue小说阅读器(仿追书神器)
  • 区块链共识机制优缺点对比都是什么
  • 网页视频流m3u8/ts视频下载
  • 在Mac OS X上安装 Ruby运行环境
  • ​你们这样子,耽误我的工作进度怎么办?
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #pragma once与条件编译
  • #Z2294. 打印树的直径
  • $.ajax中的eval及dataType
  • (1)常见O(n^2)排序算法解析
  • (4.10~4.16)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (第61天)多租户架构(CDB/PDB)
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (篇九)MySQL常用内置函数
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)UDP基本编程步骤
  • (转) Android中ViewStub组件使用
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core 2.1路线图
  • .NET上SQLite的连接
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [Android] Upload package to device fails #2720
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [C++]priority_queue的介绍及模拟实现
  • [CSS] 点击事件触发的动画
  • [C语言]编译和链接
  • [C语言]——分支和循环(4)
  • [Editor]Unity Editor类常用方法