<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>FileZilla on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/filezilla/</link><description>Recent content in FileZilla on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 15 Dec 2013 00:00:00 +0800</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/filezilla/index.xml" rel="self" type="application/rss+xml"/><item><title>Windows 远程与浏览器工具链：Xshell / FileZilla / Chrome / 文件处理</title><link>https://liangweidonggood.github.io/p/windows-yuan-cheng-chuan-shu-liu-lan-qi/</link><pubDate>Sun, 15 Dec 2013 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/windows-yuan-cheng-chuan-shu-liu-lan-qi/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/windows-yuan-cheng-chuan-shu-liu-lan-qi/image/cover.jpg" alt="Featured image of post Windows 远程与浏览器工具链：Xshell / FileZilla / Chrome / 文件处理" /&gt;&lt;h2 id="一windows-远程办公三件套"&gt;一、Windows 远程办公三件套
&lt;/h2&gt;&lt;p&gt;2013 年的远程办公还远没有 2020 年后那么&amp;quot;云原生&amp;quot;——&lt;strong&gt;Windows 上远程服务器、传文件、查文档的常规动作&lt;/strong&gt;还是靠&lt;strong&gt;Xshell + FileZilla + Chrome&lt;/strong&gt;这三条腿。本文整理这三条腿的实战细节，外加 &lt;strong&gt;Graphviz 绘图&lt;/strong&gt;、&lt;strong&gt;Tesseract OCR 文字识别&lt;/strong&gt;、&lt;strong&gt;Zhexi 文本处理&lt;/strong&gt;等&amp;quot;工具&amp;quot;。&lt;/p&gt;
&lt;h2 id="二xshellwindows-最好的-ssh-客户端"&gt;二、Xshell：Windows 最好的 SSH 客户端
&lt;/h2&gt;&lt;h3 id="21-安装"&gt;2.1 安装
&lt;/h3&gt;&lt;p&gt;Xshell 是 NetSarang 出品的商业 SSH 客户端。&lt;strong&gt;个人/学校免费版&lt;/strong&gt;到官网 &lt;code&gt;https://www.xshell.com/&lt;/code&gt; 下载，5.x 起&lt;strong&gt;对个人/非商业用户免费&lt;/strong&gt;。安装时&lt;strong&gt;取消勾选&amp;quot;Xftp&amp;quot;等捆绑&lt;/strong&gt;（按需选装）。&lt;/p&gt;
&lt;h3 id="22-新建-ssh-会话"&gt;2.2 新建 SSH 会话
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;文件 → 新建&lt;/code&gt; → 名称 + 主机 + 端口（默认 22）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;用户身份验证&lt;/code&gt; → 填用户名 + 密码&lt;/li&gt;
&lt;li&gt;&lt;code&gt;保持活动状态&lt;/code&gt; → 勾选&amp;quot;发送保持活动消息&amp;quot;（避免 NAT 断开）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;外观 → 字体&lt;/code&gt; → Consolas 10pt（&lt;strong&gt;中英文都好看&lt;/strong&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;企业实战技巧&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;保存密码&lt;/strong&gt;：Xshell 7+ 取消&amp;quot;明文保存&amp;quot;，用 &lt;strong&gt;Master Password&lt;/strong&gt; 加密&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;登录脚本&lt;/strong&gt;：&lt;code&gt;登录脚本&lt;/code&gt; 标签 → 添加 &lt;code&gt;expect&lt;/code&gt; 脚本处理二次验证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代理跳板&lt;/strong&gt;：&lt;code&gt;隧道 → TCP 转发&lt;/code&gt;，配合 Xshell 的&amp;quot;跳板&amp;quot;功能穿透堡垒机&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="23-ssh-密钥登录比密码更安全"&gt;2.3 SSH 密钥登录（比密码更安全）
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;工具 → 用户密钥管理者 → 生成 → RSA 2048 / Ed25519&lt;/li&gt;
&lt;li&gt;导出公钥 → 复制到服务器的 &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;终端 → 用户身份验证 → 选 Public Key&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&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="cl"&gt;&lt;span class="c1"&gt;# 服务器端一键添加&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p ~/.ssh &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; chmod &lt;span class="m"&gt;700&lt;/span&gt; ~/.ssh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ssh-rsa AAAA...公钥内容...== user@host&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; ~/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;600&lt;/span&gt; ~/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="24-常用快捷键"&gt;2.4 常用快捷键
&lt;/h3&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;Alt + Enter&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;全屏&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Ctrl + Shift + T&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;新建标签页&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Alt + 数字&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;切换到第 N 个标签&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Ctrl + Insert&lt;/code&gt; / &lt;code&gt;Shift + Insert&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;复制 / 粘贴（Xshell 默认）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Ctrl + L&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;清屏&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="25-性能调优"&gt;2.5 性能调优
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;连接 → SSH&lt;/code&gt; 勾选 &lt;code&gt;Compression&lt;/code&gt;（慢网加速）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;高级 → 终端&lt;/code&gt; 选 &lt;code&gt;xterm-256color&lt;/code&gt;（颜色更丰富）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;高级 → 键盘&lt;/code&gt; 设 &lt;code&gt;Backspace = ASCII 127&lt;/code&gt;（兼容 vim）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="三filezillaftp--sftp-文件传输"&gt;三、FileZilla：FTP / SFTP 文件传输
&lt;/h2&gt;&lt;h3 id="31-安装"&gt;3.1 安装
&lt;/h3&gt;&lt;p&gt;FileZilla 分两个版本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;FileZilla Client&lt;/strong&gt;：免费开源，&lt;strong&gt;推荐&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FileZilla Server&lt;/strong&gt;：开源但商业部署要付费&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;官方 &lt;code&gt;https://filezilla-project.org/&lt;/code&gt; 下载 Client，安装时&lt;strong&gt;取消勾选&amp;quot;金山毒霸&amp;quot;等捆绑&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="32-sftp-连接"&gt;3.2 SFTP 连接
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;文件 → 站点管理器 → 新站点&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;协议：&lt;strong&gt;SFTP&lt;/strong&gt;（不是 FTP）&lt;/li&gt;
&lt;li&gt;主机 + 端口（22）&lt;/li&gt;
&lt;li&gt;登录类型：正常 / 密钥文件&lt;/li&gt;
&lt;li&gt;字符集：&lt;strong&gt;UTF-8&lt;/strong&gt;（避免中文乱码）&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：&lt;strong&gt;SFTP 和 FTPS 是两个完全不同的协议&lt;/strong&gt;。SFTP 走 SSH（端口 22），FTPS 走 SSL/TLS（端口 990）。&lt;strong&gt;现代实践全部用 SFTP&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="33-传输优化"&gt;3.3 传输优化
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;编辑 → 设置 → 传输&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;最大并发传输数&lt;/strong&gt;：10&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最大并发连接数&lt;/strong&gt;：10&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分块大小&lt;/strong&gt;：加大到 1 MB（大文件更快）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;失败重试&lt;/strong&gt;：5 次&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="34-排错连接超时"&gt;3.4 排错：连接超时
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;被动模式（PASV）/ 主动模式（PORT）&lt;/strong&gt;：服务器在 NAT 后，&lt;strong&gt;客户端必须用主动模式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSL 警告&lt;/strong&gt;：自签名证书第一次会弹&amp;quot;未受信任&amp;quot;，勾选&amp;quot;始终信任&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件名乱码&lt;/strong&gt;：服务器用 GBK，客户端用 UTF-8 就会乱码——切换字符集&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="四google-chrome开发者浏览器"&gt;四、Google Chrome：开发者浏览器
&lt;/h2&gt;&lt;h3 id="41-安装与去广告"&gt;4.1 安装与去广告
&lt;/h3&gt;&lt;p&gt;官方 &lt;code&gt;https://www.google.com/chrome/&lt;/code&gt; 下载，安装时&lt;strong&gt;取消勾选&amp;quot;将 Chrome 设为默认浏览器&amp;quot;&lt;strong&gt;如果不想换默认。Chrome 自身&lt;/strong&gt;无内置广告&lt;/strong&gt;（主要担心的是 360 安全浏览器那种&amp;quot;推荐&amp;quot;）。&lt;/p&gt;
&lt;h3 id="42-开发者必备扩展"&gt;4.2 开发者必备扩展
&lt;/h3&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;JSON Viewer&lt;/code&gt; / &lt;code&gt;JSONVue&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;美化 JSON 响应&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Vue Devtools&lt;/code&gt; / &lt;code&gt;React Devtools&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;前端框架调试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Postman Interceptor&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;配合 Postman 拦截请求&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;SwitchyOmega&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;代理切换（开发环境必备）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;EditThisCookie&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;快速编辑 Cookie&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;User-Agent Switcher&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;切换 UA 模拟移动端&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="43-代理与-socks5"&gt;4.3 代理与 SOCKS5
&lt;/h3&gt;&lt;p&gt;Chrome 系统代理走 IE 设置。如果需要按站点分流：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&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="cl"&gt;&lt;span class="c1"&gt;# 用 SwitchyOmega 配置：直连 / 代理 / 自动切换&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 代理规则：file:///C:/path/to/auto_switch.pac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;auto_switch.pac&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;FindProxyForURL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;host&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dnsDomainIs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;host&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;internal.example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SOCKS5 127.0.0.1:1080&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;DIRECT&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="44-调试模式"&gt;4.4 调试模式
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;chrome://flags&lt;/code&gt; 是隐藏实验室开关，&lt;strong&gt;对终端用户慎用&lt;/strong&gt;。常用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;chrome://flags/#smooth-scrolling&lt;/code&gt; 平滑滚动&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chrome://flags/#enable-parallel-downloading&lt;/code&gt; 并行下载（&lt;strong&gt;对慢网很有效&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chrome://discards&lt;/code&gt; 查看标签页休眠状态&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="45-抓包工具联动"&gt;4.5 抓包工具联动
&lt;/h3&gt;&lt;p&gt;Chrome DevTools 的 &lt;code&gt;Network&lt;/code&gt; 标签&lt;strong&gt;抓 HTTPS 请求需要导出&lt;/strong&gt;。配合外部抓包工具（&lt;strong&gt;[2016-11-15 数据库客户端] 中提到的 Fiddler&lt;/strong&gt;）才能抓到 native 应用流量。&lt;/p&gt;
&lt;h2 id="五graphviz代码画流程图"&gt;五、Graphviz：代码画流程图
&lt;/h2&gt;&lt;h3 id="51-定位"&gt;5.1 定位
&lt;/h3&gt;&lt;p&gt;Graphviz 1991 年起源 AT&amp;amp;T 贝尔实验室，&lt;strong&gt;用 DOT 语言描述图，自动布局&lt;/strong&gt;。&lt;code&gt;dot / neato / fdp / circo&lt;/code&gt; 四个布局引擎适应不同场景。&lt;/p&gt;
&lt;h3 id="52-安装"&gt;5.2 安装
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;官方 &lt;code&gt;https://www.graphviz.org/download/&lt;/code&gt; 下载 Windows msi&lt;/li&gt;
&lt;li&gt;装好后&lt;strong&gt;把 &lt;code&gt;C:\Program Files\Graphviz\bin&lt;/code&gt; 加到 PATH&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="53-dot-语言基础"&gt;5.3 DOT 语言基础
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;digraph hello {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rankdir=LR; // 从左到右布局
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; node [shape=box style=&amp;#34;rounded,filled&amp;#34; fillcolor=lightblue];
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Start [shape=ellipse fillcolor=lightgreen];
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; End [shape=ellipse fillcolor=lightcoral];
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Start -&amp;gt; &amp;#34;读取配置&amp;#34; -&amp;gt; &amp;#34;解析参数&amp;#34; -&amp;gt; &amp;#34;执行业务&amp;#34; -&amp;gt; End;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;解析参数&amp;#34; -&amp;gt; &amp;#34;参数错误&amp;#34; [label=&amp;#34;失败&amp;#34; color=red];
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;参数错误&amp;#34; -&amp;gt; End;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="54-plantuml-集成"&gt;5.4 PlantUML 集成
&lt;/h3&gt;&lt;p&gt;PlantUML 内部用 Graphviz 渲染 .puml 文件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PlantUML 渲染器路径：C:\soft\Graphviz\bin\dot.exe
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;VSCode 装 &lt;code&gt;PlantUML&lt;/code&gt; 扩展 → 设置 &lt;code&gt;plantuml.render&lt;/code&gt; 为 &lt;code&gt;PlantUMLServer&lt;/code&gt; 或 &lt;code&gt;Local&lt;/code&gt;，&lt;strong&gt;Local 模式必须装 Graphviz&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="六tesseract-ocr免费文字识别"&gt;六、Tesseract OCR：免费文字识别
&lt;/h2&gt;&lt;h3 id="61-定位"&gt;6.1 定位
&lt;/h3&gt;&lt;p&gt;Tesseract 是 HP 实验室 1985-1995 年开发、2005 年开源的 OCR 引擎。Google 维护至今，&lt;strong&gt;支持 100+ 语言&lt;/strong&gt;。对印刷体识别率 95%+，对手写体效果一般。&lt;/p&gt;
&lt;h3 id="62-windows-安装"&gt;6.2 Windows 安装
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;官方 &lt;code&gt;https://github.com/UB-Mannheim/tesseract/wiki&lt;/code&gt; 提供 Windows 安装包&lt;/li&gt;
&lt;li&gt;安装时&lt;strong&gt;勾选中文语言包&lt;/strong&gt;：&lt;code&gt;chi_sim&lt;/code&gt;（简体）、&lt;code&gt;chi_tra&lt;/code&gt;（繁体）&lt;/li&gt;
&lt;li&gt;装好后 &lt;code&gt;tesseract --list-langs&lt;/code&gt; 验证&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="63-命令行用法"&gt;6.3 命令行用法
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&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="cl"&gt;&lt;span class="c1"&gt;# 识别单张图（中英文）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tesseract input.png output -l chi_sim+eng
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 识别 PDF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tesseract input.pdf output -l chi_sim+eng
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出为 hOCR（带坐标的 HTML）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tesseract input.png output hocr
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出为 TSV（表格友好）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tesseract input.png output tsv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="64-python-绑定"&gt;6.4 Python 绑定
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pytesseract&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;screenshot.png&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pytesseract&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;image_to_string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;chi_sim+eng&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="65-提升识别率"&gt;6.5 提升识别率
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;预处理&lt;/strong&gt;：二值化（&lt;code&gt;cv2.threshold&lt;/code&gt;）、降噪（&lt;code&gt;cv2.medianBlur&lt;/code&gt;）、倾斜矫正&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DPI 至少 300&lt;/strong&gt;：扫描 PDF 转图&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分语言模型&lt;/strong&gt;：中文 + 英文组合，&lt;strong&gt;比单一语言更准&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="七zhexi文本处理小工具"&gt;七、Zhexi：文本处理小工具
&lt;/h2&gt;&lt;h3 id="71-定位"&gt;7.1 定位
&lt;/h3&gt;&lt;p&gt;Zhexi 是 2018 年由个人开发者 &lt;code&gt;https://gitee.com/longwen-zhexi/zhexi&lt;/code&gt; 维护的&lt;strong&gt;轻量文本批量处理工具&lt;/strong&gt;。&lt;strong&gt;常用于&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;批量重命名文件&lt;/li&gt;
&lt;li&gt;批量替换文本&lt;/li&gt;
&lt;li&gt;提取日志关键字段&lt;/li&gt;
&lt;li&gt;大文件按行分割&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="72-典型用法"&gt;7.2 典型用法
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&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="cl"&gt;&lt;span class="c1"&gt;# 批量重命名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zhexi rename --pattern &lt;span class="s2"&gt;&amp;#34;IMG_(\d+).jpg&amp;#34;&lt;/span&gt; --replace &lt;span class="s2"&gt;&amp;#34;photo-&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;.jpg&amp;#34;&lt;/span&gt; --dir ./photos
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&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="cl"&gt;zhexi split --input big.log --lines &lt;span class="m"&gt;10000&lt;/span&gt; --prefix chunk-
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 提取 IPv4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zhexi extract --pattern &lt;span class="s2"&gt;&amp;#34;\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b&amp;#34;&lt;/span&gt; --input access.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="八组合实战"&gt;八、组合实战
&lt;/h2&gt;&lt;h3 id="81-远程调试-java-应用"&gt;8.1 远程调试 Java 应用
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Xshell SSH&lt;/strong&gt; 到测试服务器&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tail -f catalina.out&lt;/code&gt; 看实时日志&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tesseract&lt;/strong&gt; 截图识别 → 提取关键错误&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chrome + Fiddler&lt;/strong&gt; 复现问题&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="82-批量运维脚本"&gt;8.2 批量运维脚本
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;FileZilla&lt;/strong&gt; 传脚本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xshell 标签页&lt;/strong&gt;多机器并发执行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zhexi&lt;/strong&gt; 处理输出日志&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graphviz&lt;/strong&gt; 把&amp;quot;服务器状态图&amp;quot;画出来&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="九常见问题"&gt;九、常见问题
&lt;/h2&gt;&lt;h3 id="91-xshell-突然不能复制粘贴"&gt;9.1 Xshell 突然不能复制粘贴
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;检查 &lt;code&gt;工具 → 选项 → 键盘和鼠标 → 中间键&lt;/code&gt; 设置&lt;/li&gt;
&lt;li&gt;重启 Xshell（最暴力但有效）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检查是否启用了&amp;quot;宏&amp;quot;&lt;/strong&gt;——&lt;code&gt;工具 → 宏 → 录制宏&lt;/code&gt; 可能误占用剪贴板&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="92-filezilla-无法连接到服务器"&gt;9.2 FileZilla &amp;ldquo;无法连接到服务器&amp;rdquo;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;防火墙是否放行 22 端口&lt;/li&gt;
&lt;li&gt;服务器端 &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; 中 &lt;code&gt;PasswordAuthentication yes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;客户端 &lt;code&gt;连接超时&lt;/code&gt; 调大到 60s&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="93-chrome-启动慢"&gt;9.3 Chrome 启动慢
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;chrome://flags/#enable-site-per-process&lt;/code&gt; 关闭能加速但&lt;strong&gt;牺牲安全&lt;/strong&gt;。
&lt;code&gt;chrome://settings/clearBrowserData&lt;/code&gt; 清掉过多缓存。&lt;/p&gt;
&lt;h3 id="94-graphviz-中文乱码"&gt;9.4 Graphviz 中文乱码
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;digraph G {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; node [fontname=&amp;#34;Microsoft YaHei&amp;#34;];
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;开始&amp;#34; -&amp;gt; &amp;#34;处理&amp;#34; -&amp;gt; &amp;#34;结束&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或者 &lt;code&gt;dot -Tpng:cairo:file&lt;/code&gt; 用 cairo 后端。&lt;/p&gt;
&lt;h3 id="95-tesseract-中文识别率低"&gt;9.5 Tesseract 中文识别率低
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;装 &lt;code&gt;chi_sim&lt;/code&gt; + &lt;code&gt;eng&lt;/code&gt; 混合模型&lt;/li&gt;
&lt;li&gt;图像预处理（OpenCV 二值化）&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;--psm 6&lt;/code&gt; 假设是单块文本&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="十下一步"&gt;十、下一步
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;想看数据库连接：&lt;strong&gt;[2013-09-15 Windows 终端与 Navicat 工具链]&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;想看抓包调试：&lt;strong&gt;[2016-11-15 数据库客户端实战：MySQL / Redis / ES / MQTT]&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;想看 Git 工作流：&lt;strong&gt;[2014-11-15 Git 与版本控制]&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;本文写于 2013 年，回看当时&lt;/strong&gt;：Xshell 至今仍是 Windows SSH 客户端的事实标准，FileZilla 仍是 FTP/SFTP 首选；&lt;strong&gt;Chrome 早就吃掉了 IE 份额，但 2013 年兼容 IE 6-8 仍是 Web 开发的必备技能&lt;/strong&gt;——这篇工具链 10 年后大部分仍然适用。&lt;/p&gt;

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