Featured image of post Windows 终端与 Navicat 工具链:cmd / Git Bash / Markdown / Navicat

Windows 终端与 Navicat 工具链:cmd / Git Bash / Markdown / Navicat

Windows 下命令行与数据库建模工具的实战:cmd 时间显示、Git Bash 中文乱码、Markdown 数学公式与 Mermaid 类图、Navicat Premium 多数据库连接、PowerDesigner 数据库设计

一、为什么 Windows 仍需要"终端三件套"

2013 年的 Windows 8 时代,PowerShell 3.0 已经成熟,但日常开发还是 cmd + Git Bash + PowerShell 三选一。本文整理 cmd / Git Bash / PowerShell 的常用配置,外加 Markdown 编辑Mermaid 图表Navicat 数据库工具这三条"终端之外的工具链"。

阅读建议:本文不重复 “PowerShell 基础命令” 类的入门内容,重点在配置 + 排错

二、cmd:被低估的"老古董"

2.1 时间显示到秒

cmd 默认 time /t 只显示 HH:MM,要看到秒:

1
2
3
4
5
6
:: 系统变量法
echo %time%

:: 强制格式 HH:MM:SS
for /f "tokens=2 delims=." %%a in ('echo %time%') do set ms=%%a
echo %time:~0,8%.%ms%

更简单的办法:prompt

1
prompt $T $P$G

效果:12:34:56.78 C:\>

2.2 常用快捷键

快捷键作用
F7显示命令历史
F8搜索历史
Tab路径自动补全(Win 7+)
Ctrl+C中断当前命令
Ctrl+Insert / Shift+Insert复制 / 粘贴(Win 10+)

2.3 中文编码

cmd 默认 GBK。chcp 65001 切到 UTF-8,但部分老 exe 还会乱码——这是 cmd 一直存在的老问题。2013 时代推荐用 cmder / ConEmu 替代 cmd(Unicode + 多 Tab)。

2.4 提升到管理员

1
2
3
4
5
6
7
8
9
:: 单次管理员
runas /user:administrator cmd

:: 写脚本时
net session >nul 2>&1 || (
    echo 需要管理员权限!
    powershell start-process cmd -ArgumentList "/c %~f0" -Verb runas
    exit /b
)

三、Git Bash:Windows 上最像 Linux 的终端

3.1 安装

安装 Git for Windowshttps://git-scm.com/download/win)时默认带 Git Bash。关键选项

  • Use Git from the Windows Command Prompt:勾选(让 cmd 也能用 git)
  • Checkout Windows-style, commit Unix-style line endings推荐(文件保留 CRLF,提交时自动转 LF)
  • Use Windows' default console window:默认即可,追求美化用 Windows Terminal / cmder

3.2 中文乱码

Git Bash 早期(<= 2.10)ls 中文文件名乱码。两种解决:

1
2
3
4
5
6
7
8
9
# 方案 1:让 Git 输出 UTF-8
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8

# 方案 2:终端本身设 UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

git config --global core.quotepath false 这一条最关键——ls 看到的中文文件名会正常显示。

3.3 常用别名(~/.bashrc

1
2
3
4
5
6
7
8
alias ll='ls -la'
alias gst='git status'
alias gco='git checkout'
alias gbr='git branch'
alias glog='git log --oneline --graph --decorate --all -20'
alias gp='git push'
alias gpl='git pull'
alias vim='winpty mvim'  # Windows 下 vim 经常需要 winpty

3.4 winpty 与交互式程序

Git Bash 调用 Windows 原生 python.exemysql.exe交互式程序会丢失方向键/历史。解决:

1
2
3
winpty python  # 包装一层
# 或写别名
alias python='winpty python'

2025 时代:微软推出 Windows Terminal + WSL 才是真"现代终端"——但 2013 时代 Git Bash 已经是最佳选择。

四、Markdown 工具链

4.1 Markdown 语法速查

Markdown 在 2013 年已经开始从极客玩具走向主流。三个层次的语法

  • 基础(CommonMark):标题、列表、引用、链接、图片、代码块
  • GFM(GitHub Flavored):表格、删除线、任务列表、``` 代码围栏
  • 扩展:数学公式($...$)、Mermaid 图表、PlantUML、目录(TOC)

4.2 数学公式

VSCode / Typora / Obsidian 都支持 KaTeX 风格的数学公式:

1
2
3
4
5
6
行内公式:爱因斯坦 $E=mc^2$

行间公式:
$$
\int_0^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$

常用符号速查:

符号代码描述
$\sum$$\sum$求和
$\prod$$\prod$N 元乘积
$\int$$\int$积分
$\partial$$\partial$偏导
$\nabla$$\nabla$梯度
$\alpha$$\alpha$希腊字母 alpha
$\leq$ / $\geq$$\leq$ / $\geq$小于等于 / 大于等于
$\in$$\in$属于
$\emptyset$$\emptyset$空集
$\forall$$\forall$任意
$\exists$$\exists$存在

4.3 Mermaid 图表

Mermaid 2014 年由 Knut Sveidqvist 开源,用纯文本写流程图、时序图、类图、状态图、ER 图。在 GitHub README / VSCode / Typora 里都原生支持。

流程图

饼图

4.4 类图(UML)

6 种关系:

关系标记含义
泛化<|--子类继承父类
实现<|..实现接口
组合*--强拥有(生命周期一致)
聚合o--弱拥有(可独立)
关联-->知道对方
依赖..>使用关系

4.5 PlantUML

PlantUML 2009 年开源,写 UML 还能保留 .puml 文本文件——比 Visio 强在"可版本控制"。需要 Graphviz 支持:

1
plantuml 源文件目录:建议 D:\soft\Graphviz

VSCode 装 PlantUML 插件 + jebbs/plantuml 即可一键预览。

五、Navicat:多数据库管理瑞士军刀

5.1 定位

Navicat Premium 是 PremiumSoft 公司开发的多数据库 GUI 工具,一个客户端同时支持

  • MySQL、MariaDB
  • PostgreSQL、SQL Server、Oracle
  • SQLite、MongoDB
  • Redis(早期版本,2020+ 才完善)

5.2 连接配置

新建连接,关键选项

  • Host:MySQL 默认 3306,PostgreSQL 默认 5432
  • SSH 通道:先 SSH 到堡垒机再连数据库(生产环境必备)
  • SSL:MySQL 5.7+ 强制要求
  • Advanced → Connection timeout:默认 30s,建议 60s
  • Advanced → Keepalive interval:120s(防止隧道中断)

5.3 常用功能

  • 数据传输:跨库同步(MySQL → PostgreSQL 异构)
  • 数据同步:表级双向同步
  • 结构同步:表结构差异对比 → 自动生成 ALTER
  • 查询构建器:可视化 SELECT,自动生成 SQL
  • 数据建模画 ER 图(替代 PowerDesigner 的核心功能)
  • 计划任务:定时备份、转储

5.4 备份与还原

自动运行 → 新建批处理作业

  1. 数据库右键 → 转储 SQL 文件
  2. 调度 → 每日 02:00
  3. Windows 任务计划程序配合调用

5.5 与 PowerDesigner 协作

  • PowerDesigner概念模型 (CDM) → 物理模型 (PDM) → 建库 SQL
  • Navicat日常管理 + 数据同步 + 报表

详见 [2014-10-15 设计建模工具:Axure / PowerDesigner / VSCode]

六、PowerDesigner 16.x 速查

6.1 安装

PowerDesigner 16.5/16.6 是 SAP 时代的最后一版。安装路径默认 C:\Program Files\Sybase\PowerDesigner 16注意:16.7 是民间称呼,实际是 16.6 升级包。

6.2 名称转注释

PD 默认表名/字段名是**逻辑名(Name)+ 物理名(Code)**双轨。批量把 Name 复制到 Comment:

1
Tools → Execute Commands → Edit/Run Scripts
1
2
3
4
5
6
7
' 把所有实体的 Name 复制到 Comment
For Each obj In ActiveModel.Entities
    obj.Comment = obj.Name
    For Each col In obj.Columns
        col.Comment = col.Name
    Next
Next

6.3 全局通用字段

每个表都加 create_by / create_time / update_by / update_time / sys_org_code 字段。用 PD 的 Global Field 模板

Tools → Model Options → Naming Convention → Default Field,新增:

字段类型注释
create_byvarchar(50)创建人
create_timedatetime创建时间
update_byvarchar(50)更新人
update_timedatetime更新时间
sys_org_codevarchar(64)机构代码

6.4 MySQL 8.0 关键字

MySQL 8.0 大量新关键字(EMPTY、OFF、ZONE、PATH、OFFSET 等)——字段名撞关键字会报错。常用对策:

  1. 字段加反引号 `field`
  2. 改字段名(推荐)
  3. PD 导出时勾选 Quote identifiers

完整关键字表见 MySQL 8.0 官方文档 https://dev.mysql.com/doc/refman/8.0/en/keywords.html

七、常见问题

7.1 Git Bash 启动慢

~/.bashrc 加载太多东西会卡。time bash -c "echo hello" 测试,把慢的命令移到 if [ -n "$PS1" ] 之后。

7.2 cmd 中 UTF-8 编码显示错乱

chcp 65001部分 exe 仍乱码——是字体问题。cmd 标题右键 → 属性 → 字体 → ConsolasLucida Console

7.3 Navicat 连不上 MySQL 8.0

MySQL 8.0 默认 caching_sha2_password 鉴权插件,Navicat 11 之前不支持。两种解决:

1
2
-- 改成 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

或升级 Navicat 12+。

7.4 Mermaid 中文乱码

某些 Mermaid 版本类名有中文会报错,用引号包起来:

八、下一步

  • 想看 IDE 编码主战场:[2014-04-15 IntelliJ IDEA 全攻略]
  • 想看数据库建模:[2014-10-15 设计建模工具:Axure / PowerDesigner / VSCode]
  • 想看 Git 工作流:[2014-11-15 Git 与版本控制]

本文写于 2013 年,回看当时:cmd 至今没被 Windows Terminal 完全替代,大量运维老脚本还在用 bat 写;Navicat 至今仍是国产 DBA 的"事实第一选择"——这套工具的生命力超乎想象

使用 Hugo 构建
主题 StackJimmy 设计