<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cols on 静静的安全笔记</title><link>https://ruajingjing.top/tags/cols/</link><description>Recent content in Cols on 静静的安全笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Fri, 06 Nov 2026 22:44:33 +0800</lastBuildDate><atom:link href="https://ruajingjing.top/tags/cols/index.xml" rel="self" type="application/rss+xml"/><item><title>stty用法速查-ctrlC想按按不了的时候来看看</title><link>https://ruajingjing.top/post/stty%E7%94%A8%E6%B3%95%E9%80%9F%E6%9F%A5-ctrlc%E6%83%B3%E6%8C%89%E6%8C%89%E4%B8%8D%E4%BA%86%E7%9A%84%E6%97%B6%E5%80%99%E6%9D%A5%E7%9C%8B%E7%9C%8B/</link><pubDate>Fri, 06 Nov 2026 22:44:33 +0800</pubDate><guid>https://ruajingjing.top/post/stty%E7%94%A8%E6%B3%95%E9%80%9F%E6%9F%A5-ctrlc%E6%83%B3%E6%8C%89%E6%8C%89%E4%B8%8D%E4%BA%86%E7%9A%84%E6%97%B6%E5%80%99%E6%9D%A5%E7%9C%8B%E7%9C%8B/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post stty用法速查-ctrlC想按按不了的时候来看看" /&gt;&lt;h2 id="1-基础用法"&gt;1. 基础用法
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看当前所有 tty 设置（-a = all）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;stty -a
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# speed 38400 baud; rows 50; columns 200; line = 0;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;lt;undef&amp;gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# eol2 = &amp;lt;undef&amp;gt;; swtch = &amp;lt;undef&amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon -ixoff&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# -iuclc -ixany -imaxbel -iutf8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# echoke -flusho -extproc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 恢复&amp;#34;理智默认&amp;#34;（出问题时救命命令）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;stty sane
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2026/20261106222646875.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-渗透测试核心用法"&gt;2. 渗透测试核心用法
&lt;/h2&gt;&lt;h3 id="21-升级-nc-反弹-shell最核心"&gt;2.1 升级 nc 反弹 shell（&lt;strong&gt;最核心&lt;/strong&gt;）
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# === 攻击机上：监听 + 升级（可选）===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;rlwrap nc -lvnp &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 拿到 shell 后（远端）：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===升级 shell 到完整 TTY ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;python3 -c &lt;span class="s1"&gt;&amp;#39;import pty; pty.spawn(&amp;#34;/bin/bash&amp;#34;)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 攻击机上：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Ctrl-Z（挂起到 nc 里）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;stty -echo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;fg&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 回车 → 回到 shell&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TERM&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;xterm-256color
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;stty rows &lt;span class="m"&gt;50&lt;/span&gt; cols &lt;span class="m"&gt;200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; /etc/skel/.bashrc &lt;span class="c1"&gt;# 让 .bashrc 加载（PATH / alias / PS1）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2026/20261106225616056.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;每一步干了啥&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;步骤&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;启动一个伪终端（PTY），bash 跑在里头&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Ctrl-Z&lt;/td&gt;
 &lt;td&gt;把当前前台任务挂起（bash → 进程组）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;stty -echo&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;关掉本地回显，否则 nc 收到的回车会被本地 tty 再回显一遍&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;fg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;把挂起的 nc 恢复到前台&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;为什么这套管用&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python pty&lt;/code&gt; 给远端 bash 一个真 PTY，bash 以为自己在跑在真终端上&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stty -echo&lt;/code&gt; 防止回车被本地二次回显&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rlwrap&lt;/code&gt; 给本地 nc 加 readline，方向键能翻历史&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;升级后可用：&lt;code&gt;↑↓&lt;/code&gt; 翻历史、&lt;code&gt;Ctrl-L&lt;/code&gt; 清屏、&lt;code&gt;Ctrl-R&lt;/code&gt; 反向搜索、&lt;code&gt;clear&lt;/code&gt; / &lt;code&gt;top&lt;/code&gt; / &lt;code&gt;htop&lt;/code&gt; / &lt;code&gt;vim&lt;/code&gt; 正常工作、&lt;code&gt;sudo&lt;/code&gt; 能用（部分 sudo 需要 tty 才能输密码）。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;⚠️ &lt;strong&gt;不要用 &lt;code&gt;stty raw -echo&lt;/code&gt;&lt;/strong&gt;。&lt;code&gt;raw&lt;/code&gt; 会关掉 &lt;code&gt;isig&lt;/code&gt;，本地 tty 不再把 &lt;code&gt;Ctrl-C&lt;/code&gt; 转成 SIGINT，而是把 &lt;code&gt;0x03&lt;/code&gt; 原样透传给远端；但远端 bash 同样在 raw PTY 上，也不认这个字节，结果 &lt;strong&gt;Ctrl-C 完全失效&lt;/strong&gt;。&lt;code&gt;raw&lt;/code&gt; 还会关掉 &lt;code&gt;icanon&lt;/code&gt;，readline 的行编辑无法正常工作，&lt;strong&gt;Tab 补全也没了&lt;/strong&gt;。实测确认：用 &lt;code&gt;raw&lt;/code&gt; 能拿到历史和 Ctrl-L，但 Ctrl-C 和补全都不可用。只用 &lt;code&gt;stty -echo&lt;/code&gt; 就够了。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="22-改窗口大小"&gt;2.2 改窗口大小
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置终端宽高&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;stty rows &lt;span class="m"&gt;50&lt;/span&gt; cols &lt;span class="m"&gt;200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 不然 top / vim / htop / less / man 都按 24x80 显示，看着别扭&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 装一个自动调整的小脚本（很多 OSCP 教程有）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 或者用 python pty 时直接带尺寸&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;python3 -c &lt;span class="s1"&gt;&amp;#39;import pty,os; os.environ[&amp;#34;TERM&amp;#34;]=&amp;#34;xterm-256color&amp;#34;; pty.spawn(&amp;#34;/bin/bash&amp;#34;)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 然后在攻击机上：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;stty rows &lt;span class="m"&gt;50&lt;/span&gt; cols &lt;span class="m"&gt;200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;怎么知道当前真实窗口大小&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 在攻击机本地执行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;stty size &lt;span class="c1"&gt;# 输出 &amp;#34;50 200&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 用这个值在反弹 shell 里设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2026/20261106225704132.png"&gt;&lt;/p&gt;
&lt;h3 id="23-恢复-echo输入不显示时用"&gt;2.3 恢复 echo（输入不显示时用）
&lt;/h3&gt;&lt;p&gt;有时候反弹 shell 拿到的 tty 处于 &lt;code&gt;-echo&lt;/code&gt; 状态，你输入什么屏幕都不回显——盲打：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 恢复回显&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;stty &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 关掉回显&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;stty -echo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="24-改流控"&gt;2.4 改流控
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启用 XON/XOFF 软件流控（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;stty ixon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 禁用（用于串口 / 工业设备 / 某些 CTF 模拟）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;stty -ixon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启用硬件流控（RTS/CTS，串口用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;stty crtscts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;stty -crtscts &lt;span class="c1"&gt;# 关&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;实战坑&lt;/strong&gt;：某些反弹 shell &lt;code&gt;Ctrl-S&lt;/code&gt; 按下去会&amp;quot;卡住&amp;quot;——其实是触发了 XOFF 暂停输出。&lt;code&gt;Ctrl-Q&lt;/code&gt; 恢复。&lt;code&gt;stty -ixon&lt;/code&gt; 永久禁用。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="25-改特殊字符映射"&gt;2.5 改特殊字符映射
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 改&amp;#34;中断&amp;#34;字符为别的（默认 ^C）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;stty intr ^X &lt;span class="c1"&gt;# ^X 才是中断，^C 不再中断（避免在某些 shell 卡住）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;stty intr ^C &lt;span class="c1"&gt;# 恢复默认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 改&amp;#34;删除&amp;#34;字符（默认 ^? 或 ^H）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;stty erase ^H &lt;span class="c1"&gt;# 某些终端用 ^H 才是删除&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 改&amp;#34;行尾&amp;#34;字符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;stty eof ^D &lt;span class="c1"&gt;# ^D 是 EOF（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;stty &lt;span class="nb"&gt;kill&lt;/span&gt; ^U &lt;span class="c1"&gt;# ^U 是删整行（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 改&amp;#34;挂起&amp;#34;字符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;stty susp ^Z &lt;span class="c1"&gt;# ^Z 是挂起（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 一次性看所有特殊字符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;stty -a &lt;span class="p"&gt;|&lt;/span&gt; grep -E &lt;span class="s1"&gt;&amp;#39;intr|erase|kill|eof|susp&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-完整-tty-升级的豪华版实战拷贝即用"&gt;3. 完整 TTY 升级的&amp;quot;豪华版&amp;quot;（实战拷贝即用）
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# === 攻击机本地 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 开监听&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;stty rows &lt;span class="m"&gt;50&lt;/span&gt; cols &lt;span class="m"&gt;200&lt;/span&gt; &lt;span class="c1"&gt;# 先把本地终端设大&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;rlwrap nc -lvnp &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# === 拿到 shell 后，靶机上 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 升级到 TTY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;python3 -c &lt;span class="s1"&gt;&amp;#39;import pty; pty.spawn(&amp;#34;/bin/bash&amp;#34;)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. Ctrl-Z&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# === 攻击机上 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 4. 关掉本地回显（不要用 raw，会毁掉 Ctrl-C 和补全）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;stty -echo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;fg&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# === 现在回车进入完整 bash ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TERM&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;xterm-256color
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;stty rows &lt;span class="m"&gt;50&lt;/span&gt; cols &lt;span class="m"&gt;200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; /etc/skel/.bashrc &lt;span class="c1"&gt;# 让 .bashrc 加载（PATH / alias / PS1）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;升级后能用的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ &lt;code&gt;↑↓&lt;/code&gt; 翻历史&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;Ctrl-L&lt;/code&gt; 清屏&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;Ctrl-R&lt;/code&gt; 反向搜索历史&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;clear&lt;/code&gt; / &lt;code&gt;top&lt;/code&gt; / &lt;code&gt;htop&lt;/code&gt; / &lt;code&gt;vim&lt;/code&gt; 正常工作&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;sudo&lt;/code&gt; 能用（部分 sudo 需要 tty 才能输密码）&lt;/li&gt;
&lt;li&gt;❌ &lt;code&gt;Ctrl-C&lt;/code&gt; 中断当前命令 —— 这套组合下做不到，见 2.1 节的说明&lt;/li&gt;
&lt;li&gt;❌ &lt;code&gt;Tab&lt;/code&gt; 补全 —— 用 &lt;code&gt;raw&lt;/code&gt; 会被破坏；&lt;code&gt;stty -echo&lt;/code&gt; 也不提供补全（补全靠远端 bash 的 readline，裸 &lt;code&gt;sh&lt;/code&gt; 没有）&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;想要 Ctrl-C 中断：改用 &lt;code&gt;nc -e /bin/bash&lt;/code&gt; 或让远端 bash 自己 &lt;code&gt;stty sane&lt;/code&gt;。但注意本地 tty 仍会吃掉 &lt;code&gt;Ctrl-C&lt;/code&gt; 并杀掉 nc，所以&lt;strong&gt;中断远端命令这件事在 nc 反弹 shell 里本来就不可兼得&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="4-调试场景"&gt;4. 调试场景
&lt;/h2&gt;&lt;h3 id="41-我按-ctrl-c-怎么-nc-直接挂了"&gt;4.1 &amp;ldquo;我按 Ctrl-C 怎么 nc 直接挂了&amp;rdquo;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原因：本地 tty 的 isig 生效，Ctrl-C 被转成 SIGINT 发给 nc 进程组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这是 nc 反弹 shell 的&lt;strong&gt;结构性矛盾&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;需求&lt;/th&gt;
 &lt;th&gt;后果&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;让 Ctrl-C 传给远端（不杀 nc）&lt;/td&gt;
 &lt;td&gt;本地必须 &lt;code&gt;isig&lt;/code&gt; 关闭 → 但 &lt;code&gt;raw&lt;/code&gt; 模式远端也不认 → Ctrl-C 彻底失效&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;让 Ctrl-C 能中断远端命令&lt;/td&gt;
 &lt;td&gt;本地 &lt;code&gt;isig&lt;/code&gt; 必须开启 → Ctrl-C 会被本地吃掉 → nc 挂掉&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;nc 反弹 shell 里这两件事不可兼得。&lt;/strong&gt; 实际可行的做法：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 升级 shell 之前别按 Ctrl-C，用 Ctrl-D EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 远端已经跑起来的命令，用 kill %1 或另开一条 nc 通道处理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. 用 nc -e /bin/bash 直接给一个带 TTY 的 shell（少一层 nc 转发）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="42-我的输入看不见"&gt;4.2 &amp;ldquo;我的输入看不见&amp;rdquo;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原因：tty 处于 -echo 状态&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决：stty echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="43-我按-ctrl-s-卡住了"&gt;4.3 &amp;ldquo;我按 Ctrl-S 卡住了&amp;rdquo;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原因：触发 XOFF，停止输出（^S = XOFF）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决：按 Ctrl-Q 恢复（XON）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 或者：stty -ixon 永久关掉&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="44-我按--出a-字符"&gt;4.4 &amp;ldquo;我按 ↑ 出&lt;code&gt;[A&lt;/code&gt; 字符&amp;rdquo;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原因：当前 shell 不接 readline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决 1：升级 TTY（2.1 三步）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决 2：用 rlwrap 包一下（`rlwrap sh` / `rlwrap bash` / `rlwrap nc`）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="45-我按-tab-出-tab-字符不补全"&gt;4.5 &amp;ldquo;我按 Tab 出 tab 字符，不补全&amp;rdquo;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原因：sh 不带补全 + 当前 tty 不接 readline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决：升级到 bash + 完整 TTY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 或者临时：rlwrap 包一下当前 shell&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="46-top--vim-看着很丑"&gt;4.6 &amp;ldquo;top / vim 看着很丑&amp;rdquo;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原因：终端类型或尺寸不对&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TERM&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;xterm-256color
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;stty rows &lt;span class="m"&gt;50&lt;/span&gt; cols &lt;span class="m"&gt;200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="5-关键选项速查"&gt;5. 关键选项速查
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;选项&lt;/th&gt;
 &lt;th&gt;干啥&lt;/th&gt;
 &lt;th&gt;实战场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;raw&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;不解释任何字符，全透传&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;别用&lt;/strong&gt;，会毁掉 Ctrl-C 和补全&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-raw&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;恢复 cooked 模式（默认）&lt;/td&gt;
 &lt;td&gt;出问题用 &lt;code&gt;stty sane&lt;/code&gt; 恢复&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;echo&lt;/code&gt; / &lt;code&gt;-echo&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;是否回显输入&lt;/td&gt;
 &lt;td&gt;输入不显示 / 反复回显时用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;rows N cols M&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设终端宽高&lt;/td&gt;
 &lt;td&gt;升级 TTY 后必备&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sane&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;恢复理智默认&lt;/td&gt;
 &lt;td&gt;出问题就 stty sane&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;intr X&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;中断字符（默认 ^C）&lt;/td&gt;
 &lt;td&gt;改键位&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;erase X&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除字符（默认 ^?）&lt;/td&gt;
 &lt;td&gt;改键位&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kill X&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删整行（默认 ^U）&lt;/td&gt;
 &lt;td&gt;改键位&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;eof X&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;EOF（默认 ^D）&lt;/td&gt;
 &lt;td&gt;改键位&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ixon&lt;/code&gt; / &lt;code&gt;-ixon&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;软件流控&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Ctrl-S&lt;/code&gt; 卡住时关&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;crtscts&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;硬件流控&lt;/td&gt;
 &lt;td&gt;串口 / 工业设备&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-echoctl&lt;/code&gt; / &lt;code&gt;echoctl&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;是否回显控制字符（如 ^C 显成 &lt;code&gt;^C&lt;/code&gt;）&lt;/td&gt;
 &lt;td&gt;看着乱时关&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;isig&lt;/code&gt; / &lt;code&gt;-isig&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;是否识别特殊字符（^C / ^Z / ^\）&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;raw&lt;/code&gt; 模式默认 -isig&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;icanon&lt;/code&gt; / &lt;code&gt;-icanon&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;是否 canonical 模式（行缓冲）&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;raw&lt;/code&gt; 模式默认 -icanon&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="6-为什么-oscp--实战离不开它"&gt;6. 为什么 OSCP / 实战离不开它
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;拿 &lt;code&gt;sh&lt;/code&gt; 反弹没有历史/清屏 → &lt;code&gt;python pty&lt;/code&gt; 升级 + &lt;code&gt;stty -echo&lt;/code&gt; 组合拳&lt;/li&gt;
&lt;li&gt;按 Ctrl-C 直接杀整个 nc → nc 反弹 shell 的固有问题，见 4.1&lt;/li&gt;
&lt;li&gt;窗口尺寸不对，top/vim 都畸形 → &lt;code&gt;stty rows 50 cols 200&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;串口调试 CTF 题 → &lt;code&gt;stty&lt;/code&gt; 是必杀器（设波特率、奇偶校验、停止位）&lt;/li&gt;
&lt;li&gt;输密码看不见 / 输入双重回显 → &lt;code&gt;stty echo&lt;/code&gt; / &lt;code&gt;stty -echo&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;一句话总结&lt;/strong&gt;：nc 反弹 shell 拿到的不是真终端，是个&amp;quot;假货&amp;quot;。&lt;code&gt;stty&lt;/code&gt; + &lt;code&gt;python pty&lt;/code&gt; + &lt;code&gt;rlwrap&lt;/code&gt; 三个一起上，把它伪装成真终端。&lt;/p&gt;

 &lt;/blockquote&gt;</description></item></channel></rss>