俯瞰·明统系列·落霞与孤鹜齐飞、南征与北伐并举
`尽江南百万兵,腰间宝剑血尤腥。
引言
元至正二十七年(1367年)四月,吴王朱元璋命中书右丞相徐达为征虏大将军、平章常遇春为副将军,率军25万由淮入河、北进中原(第一次北伐)。北伐中发布告北方官民的文告,文告中提出“驱逐胡虏,恢复中华,立纲陈纪,救济斯民”的纲领,以此来感召北方人民起来反元。从此开始长期的对北元的军事讨伐。
二十七年八月二日,徐达率军入齐化门进占大都、这一入注定在史册留下重重的一笔。
大部分人只知洪武北伐,却不知与此同时的南征同样并存且重要,而北伐之所以更为熟知是因为收回了丢失四百年的燕云之地。从历史意义上讲北伐确实意义重大,但南征的并行部署恰恰体现了洪武大帝杰出的用兵和军事才能。
南北两线同时发动两场大规模的统一战争
攻破平江城后不到两个月、十月二十一日,朱元璋就发布了惊人的军事命令,不是一道,而是三道:
十月甲子,上命徐达为征讨大将军,常遇春为副将军,率师二十五万,由淮入河北取中原。
...是日又命胡美为征南将军,何文辉为副将军,率师由江西取闽。
...同日复命杨璟、周德兴、张彬帅武昌、荆州、潭、岳等卫军取广西。
中国历史上,北伐历来是盘踞南方的政权心心念念的头等大事,想要北伐自然可以理解,但从不会有人想到同时在南北两线发动两场大规模的统一战争。
朱元璋不同,他要同时发动北伐与南征,这个计划看起来大胆又疯狂,可说是空前绝后。别说后人来看,就是当时,也有不少人提出异议,觉得老朱可能是头不小心被门夹了,发出这样不清醒的命令:
乃太祖不并力中原而分兵南徼,不急争粤府而先事蛮方,缓急之数,得无出于下策乎?
——应该先取岭南,夯实了南方基地再图北伐。再不济,你集中力量北伐也行啊,两面出击算怎么回事,作死也不是这么作的。
下策!不少人给出差评。
评归评,做归做,朱元璋是军政最高统帅,他决定的事,别人无法更改。效果如何,咱们分头来说,先看南征。
南征
当时南方的情况是,盘踞岭南的大大小小势力不少,却只有福建的陈友定稍具实力,其他军阀,要么实力弱小,要么横征暴敛不得民心,都对明军构不成主要威胁。
只要击败陈友定,平定岭南就没有了多大风险——所向无前,粤服先声,畏之如虎,更若一矢加遗,即可传檄而定。
比如广东,一省之地内豪强并起。广州被南海的邵宗愚所攻占,东莞割据着王成、陈仲玉;惠州则在王仲刚和元将黄常控制之下;连增城这个小县城,也盘踞着王可成、曹叔安。
随着形势发展,东莞人何真逐渐赶跑了许多小军阀,占据了广州、惠州、循州等地,成为广东最大的军阀。但何真的统治丝毫谈不上稳固,被击败的邵宗愚虎视眈眈,时时图谋反扑,又有由赣水入据南雄的熊天瑞威胁着广州。岭海间正是处处骚动,兵烽四起,百姓深受其害。
要他们在面临朱元璋大兵压境时同仇敌忾,联合抗明?西北的蒙古将领在元朝旗帜下可能会,对这些军阀是没可能的事。
攻取八闽的任务交给了征南将军胡美。此人是陈友谅降将,也就是之前提到过的陈友谅手下江西行省丞相胡廷瑞,此时他为了避讳(朱元璋字国瑞),改名胡美。胡美在平灭张士诚的作战中立功甚多,加之他曾攻打过福建,深知其地利险易。
胡美不负所托,渡杉关,下光泽,招降邵武守将李宗茂和建阳守将曹复畴,复强攻建宁得手。另一路,汤和也顺利攻取福州、延平、兴化。
洪武元年(1368年)正月,陈友定被执杀,八闽全平,两路人马会师。
这正与朱元璋战前的策略相同。
随后就是下一步了,出兵前也早已指明,按照既定计划,洪武元年二月,以廖永忠为征南将军,朱亮祖为副将军,率舟师走海路直取广东。
值得注意的是出师前朱元璋的一封诫谕,里面有几个要点:
王者之师,顺天应人,所以除暴乱,解倒悬,以慰民望。
这是指朱元璋已经称帝,明军是与盘踞广东的割据势力不一样的力量,是王者之师,主要任务是定乱安民,所以要师出以律,不能再像早期混战时动不动屠城了。
彼闻八闽不守,湖湘已平,中心震慑,无固守之志。
若先遣人宣布威德以招徕之,必有归款迎降者,可不劳师旅,慎勿杀掠,沮向化之心。
如其拒命,举兵临之,扼其险要,绝其声援,未有不下者。
这几句话,确定了用兵广东的方略,即以招抚为主,兵威为辅。能不打仗就尽量不打仗,战争难免造成破坏,两广已成囊中之物,再搞破坏就是砸自己的家当,得不偿失。
且广东要地,惟在广州,广州既下,则循海州郡可传檄而定,海南海北以次招徕,留兵镇守。
这是从战略角度指明广州对广东的重要意义,取下广州,全粤便不难传檄而定。
仍与杨璟合兵取广西,用兵方略,率用是道,肃靖南服,在此一举。
最后这几句,再一次强调进兵广东与进取广西,是统一岭南不可分割的整体,在军事部署上虽然是分兵作战,但不管杨璟、廖永忠两军进展的速度如何,最后会师合取则是固定不变的作战方略。
这可以说是平定广东的一封锦囊,从政治到军事都包括在里面了。
为确保万无一失,朱元璋又在二月末命令赣州卫指挥使陆仲亨、副使胡通帅本卫及南雄、韶州等卫军马,由粤北直捣粤西之德庆。
这个行动表明了一个令敌人恐怖的问题:即使已经派出多路兵马同时发动北伐与南征,朱元璋仍然有足够的实力再暴兵。对对手而言,这不啻是个晴天霹雳,两路已难挡,三路四路则是令人绝望。
廖永忠按照部署,以招抚为主。二月从福州出征,三月进抵潮州向何真招降,何真也是个聪明人,很快便奉表以降,广州、惠州、循州等州郡不战而取。
陆仲亨也进展顺利,四月,两军实现了广州会师,广州既下,全省便不难大定。
相比广东,广西战事稍有挫折,杨璟和周德兴分别在永州和全州受阻,拖延到洪武元年四月才告拿下永州。廖永忠此时已拿下广东,于是率军从粤西突进,梧州、藤州的元朝守将先后归降。朱亮祖率兵追击撤退的元朝吏部尚书普颜贴木儿,在郁林将他斩杀。
六月,明军在靖江会师,经过激战后攻下靖江城。与此同时,廖永忠也拿下南宁,七月拿下象州。
至此,两广悉数平定。
相关文章:
俯瞰·明统系列·落霞与孤鹜齐飞、南征与北伐并举
尽江南百万兵,腰间宝剑血尤腥。 引言 元至正二十七年(1367年)四月,吴王朱元璋命中书右丞相徐达为征虏大将军、平章常遇春为副将军,率军25万由淮入河、北进中原(第一次北伐)。北伐中发布告北方官…...
Nodejs环境搭建和配置
Nodejs环境的搭建和配置 1、下载 官网:http://nodejs.cn/download/,选择windows64位 msi文件 2、安装和配置环境 双击安装之后,配置环境变量: ①系统变量那边创建NODE_PATH变量,值为nodejs文件夹的node_modules文…...

MybatisPlus------条件构造器Wrapper以及QueryWrapper用法(七)
MybatisPlus------条件构造器Wapper(七) Wrapper:条件构造器抽象类,最顶端父类 AbstarctWrapper:用于查询条件封装,生成sql的where条件。 QueryWrapper:查询条件封装(可以用于查询、删除&#x…...

NetSuite Intercompany Framework 101
今朝,谈一谈Intercompany Framework,这是一个彰显NetSuite市场野心的基础功能框架。从20.2开始逐渐浮出水面,虽然经过过往的几个版本,不断推出组成功能,但目前仍然未见其全貌。 作为顾问,你必须关注它&…...

限时活动|凭徽章领披萨大奖,玩转Moonbeam治理论坛
动动手指,无需每天打卡,用刷手机的零碎时间领一份Web3惊喜! 本次挑战的目标是鼓励大家参与社区治理、熟悉论坛操作。有关参与方式和原因的信息在Twitter上共享:有兴趣可以和ThinkWildCrypto一起探索论坛以解锁其功能、了解最近和正…...
Golang中struct{}和struct{}{}的区别你知道吗?
首先说下Golang中的结构体,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,Golang中使用关键字struct来创建一个结构体,语法如下:typeStudentstruct { Name string }下面定义一个Student结构体,例如&am…...

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎
网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 …...

基础篇—一文掌握css的边框属性
CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色。 1、边框样式 边框样式属性指定要显示什么样的边界。 border-style属性用来定义边框的样式 2、边框宽度 您可以通过 border-width 属性为边框指定宽度。 为边框指定宽度有两种方法:可以指定长度值,比如 2px…...

05服务发现:引入etcd服务注册中心
在分布式微服务架构中,服务注册发现组件(通常称为服务注册中心)往往有着举足轻重的作用,它的性能与稳定可能会直接影响到整个服务的状态,比如Spring Cloud中的Eureka、Dubbo中的Zookeeper等等,接下来我们就gRPC微服务中最常见的服务注册中心etcd,来讲述下两者在具体是怎…...

Pdfium.Net SDK 4.78.2704 完美Crack/Ptach
不限制时,/不限PDF体积、、、、、// version: 4.78.2704 | file size: 52.7 Mb Pdfium .Net SDK C# PDF 库 从头开始或从一堆扫描图像创建 PDF 编辑、合并、拆分和操作 PDF,提取文本和图像 嵌入独立的 Winforms 或 WPF PDF 查看器 支持:.Net…...

再学C语言38:指针操作
C提供了6种基本的指针操作 示例代码: #include <stdio.h>int main(void) {int arr[5] {1, 2, 3, 4, 5};int * p1, *p2, *p3;p1 arr; // 把一个地址赋给指针p2 &arr[2]; // 把一个地址赋给指针printf("指针指向的地址,指针指向地址中…...

【论文Word排版】使用多级列表设置论文序号
在Word中对论文进行排版 1.设置章节前面的序号 1.1 需求 通常情况下要求如下 一级标题“第一章 XXX”,然后是“1.1 研究意义”, “1.2 研究现状” 之前的处理方式都是手打,并没有借助word的多级列表实现。这次趁着写毕业论文研究了一下。…...

分支管理方案
背景 在工作的过程中,git管理方式已经成为每一个项目开发的基础,每个项目的开发都离不开git管理方式。 但是在使用的过程中,由于对git分支管理方案的了解不深,导致会出现分支管理不明确的情况。 本文主要是做科普作用ÿ…...

Allegro走线时如何自动关闭其它网络飞线显示操作指导
Allegro走线时如何自动关闭其它网络飞线显示操作指导 在做PCB设计的时候,尤其是在评估布线的时候,走某一个网络的时候,希望其它网络的飞线会被自动关闭,方便评估。 Allegro支持这个功能,如下图 走线前 走线后 具体操作如下 点击Route...
Linux中常用命令汇总二
Linux中常用命令汇总一文章地址:https://blog.csdn.net/u011837804/article/details/1289952531、时间日期类基本语法date [OPTION]... [FORMAT]选项说明选项说明-d<时间字符串>显示指定的“时间字符串”表示的时间,而非当前时间-s<日期时间>…...

【数据结构】排序算法
目录 1.理解排序 1.1 排序的概念 1.2 排序的运用场景 1.3 常见的排序算法 2.插入排序算法 2.1 直接插入排序 2.2 希尔排序 3.选择排序算法 3.1 直接选择排序 3.2 堆排序 4.交换排序算法 4.1 冒泡排序 4.2 快速排序 4.2.1 hoare 法 4.2.2 挖坑法 4.2.3 前…...

[MySQL]初识数据库
哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库,也是新的知识,首先我们会初步认识什么是数据库,什么是Mysql 数据库,以及我们 mysql 主要学什么,SQL 语句简单使用&…...

XXL-JOB分布式任务调度框架(二)-路由策略
文章目录1.引言2.任务详解2.1.执行器2.2.基础配置3.路由策略(第一个)-案例4.路由策略(最后一个)-案例5.轮询策略-案例7.分片广播任务1.引言 本篇文章承接上文《XXL-JOB分布式任务调度框架(一)-基础入门》,上一次和大家简单介绍了下 xxl-job 的由来以及使用方法&…...

Java_Maven:5. 把第三方 jar 包放入本地仓库或私服
目录 1 导入本地库 2 导入私服 3 参数说明 1 导入本地库 随便找一个 jar 包测试,可以先 CMD进入到 jar 包所在位置,运行 mvn install:install-file -DgroupIdcom.alibaba -DartifactIdfastjson -Dversion1.1.37-Dfile fastjson-1.1.37.jar -Dpackaging…...
【剑指offer】03~05. 数组中的数字(C# 实现)
文章目录前言03. 数组中重复的数字04. 二维数组中的查找05. 替换空格结语前言 😃 大家好,我是writer桑,这是自己整理的 C# 做题记录,方便自己学习的同时分享出来,感谢支持。 03. 数组中重复的数字 题目描述࿱…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...

倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...