学习

01上篇-中国政治史

第一章 中国民族的由来 #

社会是整个的,作起文化史来,分门别类,不过是我们分从各方面观察,讲到最后的目的,原是要集合各方面,以说明一个社会的盛衰,即其循着曲线进化的状况的。但是这件事很不容易。史事亡失的多了,我们现在,对于各方面,所知道的多很模糊(不但古代史籍缺乏之时,即至后世,史籍号称完备,然我们所要知道的事,仍很缺乏而多伪误。用现代新史学的眼光看起来,现在人类对于过去的知识,实在是很贫乏的),贸贸然据不完不备的材料,来说明一时代的盛衰,往往易流于武断。而且从中学到大学,永远是以时为经、以事为纬的,将各时代的事情,复述一遍,虽然详略不同,而看法失之单纯,亦难于引起兴趣。所以我这部书,变换一个方法,下册依文化的项目,把历代的情形,加以叙述,这一册依据时代,略述历代的盛衰。读者在读这一册时,对于历代的社会状况,阅读下册就会略有所知,则涉及时措辞可以从略,不至有头绪纷繁之苦;而于历代盛衰的原因,亦更易于明了了。
叙述历代的盛衰,此即向来所谓政治史。中国从前的历史,所以被人讥诮为帝王的家谱,为相斫书,都由其偏重这一方面之故。然而矫枉过正,以为这一方面,可以视为无足重轻,也是不对的。现在的人民,正和生物在进化的中途需要外骨保护一样。这话怎样说呢?世界尚未臻于大同之境,人类不能免于彼此对立,就不免要靠着武力或者别种力量互相剥削。在一个团体之内,虽然有更高的权力,以评判其是非曲直,而制止其不正当的竞争,在各个团体之间,却至今还没有,到被外力侵犯之时,即不得不以强力自卫,此团体即所谓国家。一个国家之中,总包含着许多目的简单,有意用人力组成的团体,如实业团体、文化团体等都是。此等团体,和别一个国家内性质相同的团体,是用不着分界限的,能合作固好,能合并则更好。无如世界上现在还有用强力压迫人家,掠夺人家的事情,我们没有组织,就要受到人家的压迫、掠夺,而浸至无以自存了。这是现今时代国家所以重要的原因。世界上的人多着呢?为什么有些人能合组一个国家,有些人却要分做两国呢?这个原因,最重要的,就是民族的异同,而民族的根柢,则为文化。世界文化的发达,其无形的目的,总是向着大同之路走的,但非一蹴可几。未能至于大同之时,则文化相同的人民可以结为一体,通力合作,以共御外侮;文化不相同的则不能然,此即民族国家形成的原理。在现今世界上,非民族的国家固多,然总不甚稳固。其内部能平和相处,强大民族承认弱小民族自决权利的还好,其不然的,往往演成极激烈的争斗;而一民族强被分割的,亦必出死力以求其合,这是世界史上数见不鲜的事。所以民族国家,在现今,实在是一个最重要的组织。若干人民,其文化能互相融和而成为一个民族,一个民族而能建立一个强固的国家,都是很不容易的事。苟其能之,则这一个国家,就是这一个民族在今日世界上所以自卫,而对世界的进化尽更大的责任的良好工具了。

中国是世界上最大的一个民族国家,这是无待于言的。一个大民族,固然总是融合许多小民族而成,然其中亦必有一主体。为中国民族主体的,无疑是汉族了。汉族的由来,在从前是很少有人提及的。这是因为从前人地理知识的浅薄,不知道中国以外还有许多地方之故。至于记载邃古的时代,自然是没有的。后来虽然有了,然距邃古的时代业已很远,又为神话的外衣所蒙蔽。一个民族不能自知其最古的历史,正和一个人不能自知其极小时候的情形一样。如其开化较晚,而其邻近有先进的民族,这一个民族的古史,原可藉那一个民族而流传,中国却又无有。那么,中国民族最古的情形,自然无从知道了。直至最近,中国民族的由来,才有人加以考究,而其初还是西人,到后来,中国人才渐加注意。从前最占势力的是“西来说”,即说中国民族,自西方高地而来。其中尤被人相信的,为中国民族来自黄河上源昆仑山之说。此所谓黄河上源,乃指今新疆的于阗河;所谓昆仑山,即指于阗河上源之山。这是因为:一、中国的开化,起于黄河流域;二、汉武帝时,汉使穷河源,说河源出于于阗。《史记·大宛列传》说,天子案古图书,河源出于昆仑。后人因汉代去古未远,相信武帝所案,必非无据之故。其实黄河上源,明明不出于阗。若说于阗河伏流地下,南出而为黄河上源,则为地势所不容,明明是个曲说。而昆仑的地名,在古书里也是很神秘的,并不能实指其处,这只要看《楚辞》的《招魂》、《淮南子》的《地形训》和《山海经》便知。所以以汉族开化起于黄河流域,而疑其来自黄河上源,因此而信今新疆西南部的山为汉族发祥之地,根据实在很薄弱。这一说,在旧时诸说中,是最有故书雅记做根据的,而犹如此,其他更不必论了。


●北京猿人复原图

\[Peking Man。按此名为安特生所名,协和医学院解剖学教授步达生(Davidson Black)名之为Sinanthropus Pekinensis,叶为耽名之曰震旦人,见所著《震旦人与周口店文化》,商务印书馆本\]

。据考古学家的研究,其时约距今四十万年。其和中国人有无关系,殊不可知,不过因此而知东方亦是很古的人类起源之地罢了。其和历史时代可以连接的,则为民国十年辽宁锦西沙锅屯,河南渑池仰韶村,及十二三年甘肃临夏、宁定、民勤,青海贵德及青海沿岸所发现的彩色陶器,和俄属土耳其斯单所发现的酷相似。考古家安特生(J.G.Andersson)因谓中国民族,实自中亚经新疆、甘肃而来。但彩陶起自巴比仑,事在公元前3500年,传至小亚细亚,约在公元前2500年至前2000年,传至古希腊,则在前2000年至前1000年,俄属土耳其斯单早有铜器,河南、甘肃、青海之初期则无之,其时必在公元2500年之前,何以传播能如是之速?制铜之术,又何以不与制陶并传?斯坦因(Sir Aurel Stein)在新疆考古,所得汉、唐遗物极多,而先秦之物,则绝无所得,可见中国文化在先秦世实尚未行于西北,安特生之说,似不足信了(此说据金兆梓《中国人种及文化由来》,见《东方杂志》第二十六卷第二期)。民国十九年以后,山东历城的城子崖,滕县的安上村,都发现了黑色陶器。江苏武进的奄城,金山的戚家墩,吴县的磨盘山、黄壁山,浙江杭县的古荡、良渚,吴兴的钱山漾,嘉兴的双栖,平湖的乍浦,海盐的澉浦,亦得有新石器时代的石器、陶器,其中杭县的黑陶,颇与山东相类。又河域所得陶器,皆为条纹及席纹;南京、江、浙和山东邹县,福建武平,辽宁金县貔子窝及香港的陶器,则其文理为几何形。又山东、辽宁有有孔石斧,朝鲜、日本有有孔石厨刀,福建厦门、武平有有沟石锛,南洋群岛有有沟石斧,大洋洲木器所刻动物形,有的和中国铜器上的动物相像。北美阿拉斯加的土器,也有和中国相像的。然则中国沿海一带,实自有其文化。据民国十七年以后中央研究院在河南所发掘,安阳的侯家庄,濬县的大赉店,兼有彩色、黑色两种陶器,而安阳县北的小屯村,即1898、1899年发现甲骨文字之处,世人称为殷墟的,亦有几何纹的陶器。又江、浙石器中,有戈、矛及钺,河域惟殷墟有之。鬲为中国所独有,为鼎之前身,辽东最多,仰韶亦有之,甘肃、青海,则至后期才有。然则中国文化,在有史以前,似分东、西两系。东系以黑陶为代表,西系以彩陶为代表,而河南为其交会之地。彩陶为西方文化东渐的,代表中国固有的文化的,实为黑陶。试以古代文化现象证之:一、“国君无故不杀牛,大夫无故不杀羊,士无故不杀犬豕”,而鱼鳖则为常食。二、衣服材料,以麻、丝为主,裁制极其宽博。三、古代的人民,是巢居或湖居的。四、其货币多用贝。五、在宗教上又颇敬畏龙蛇。皆足证其文化起于东南沿海之处;彩陶文化之为外铄,似无疑义了。在古代,亚洲东方的民族,似可分为三系,而其处置头发的方法,恰可为其代表,这是一件极有趣味的事,即北族辫发、南族断发、中原冠带。《尔雅·释言》说:“齐,中也。”《释地》说:“自齐州以南戴日为丹穴,北戴斗极为空同,东至日所出为大平,西至日所入为大蒙。”“齐”即今之“脐”字,本有中央之义。古代的民族,总是以自己所居之地为中心的,齐州为汉族发祥之地,可无疑义了。然则齐州究在何处呢?我们固不敢断言其即后来的齐国,然亦必与之相近。又《尔雅·释地》说“中有岱岳”,而泰山为古代祭天之处,亦必和我民族起源之地有关。文化的发展,总是起于大河下流的,埃及和小亚细亚即其明证。与其说中国文化起于黄河上流,不如说其起于黄河下流的切于事情了。近来有些人,窥见此中消息,却又不知中国和南族之别,甚有以为中国人即是南族的,这个也不对。南族的特征是断发文身,断发即我国古代的髡刑,文身则是古代的黥刑。以南族的装饰为刑,可见其曾与南族相争斗,而以其俘虏为奴隶。近代的考古学,证明长城以北的古物,可分为三类:一、打制石器,其遗迹西起新疆,东至东三省,而限于西辽河、松花江以北,环绕着沙漠。二、细石器,限于兴安岭以西。与之相伴的遗物,有类似北欧及西伯利亚的,亦有类似中欧及西南亚的,两者均系狩猎或畜牧民族所为。三、磨制石器,北至黑龙江昂昂溪,东至朝鲜北境,则系黄河流域的农耕民族所为,其遗物多与有孔石斧及类鬲的土器并存,与山东龙口所得的土器极相似。可见我国民族,自古即介居南北两民族之间,而为东方文化的主干了(步达生言仰韶村、沙锅屯的遗骸,与今华北人同,日本清野谦次亦谓貔子窝遗骸,与仰韶村遗骸极相似)。

●彩陶盆 仰韶文化半坡类型,公元前5000年—公元前4000年,陕西西安半坡遗址出土,高16.4厘米、口径40厘米,内绘鱼、鱼和人面相结合的花纹,这是仰韶文化早期流行的纹饰。有观点认为,鱼便是仰韶文化半坡类型的图腾

第二章 中国史的年代 #

讲历史要知道年代,正和讲地理要知道经纬线一般。有了经纬线,才知道某一地方在地球面上的某一点,和其余的地方距离如何,关系如何。有了年代,才知道某一件事发生在悠远年代中的某一时,当时各方面的情形如何,和其前后诸事件的关系如何。不然,就毫无意义了。

正确的年代,原于(一)正确,(二)不断的记载。中国正确而又不断的记载,起于什么时候呢?那就是周朝厉、宣两王间的共和元年。下距民国纪元2752年,公历纪元841年,在世界各国中,要算是很早的了。但是比之于人类的历史,还如小巫之见大巫。世界之有人类,其正确的年代虽不可知,总得在四五十万年左右。历史确实的纪年,只有二千余年,正像人活了一百岁,只记得一年不到的事情,要做正确的年谱,就很难了。虽然历史无完整的记载,历史学家仍有推求之法。那便是据断片的记载,涉及天地现象的,用历法推算。中国用这方法的也很多。其中较为通行的,一为《汉书·律历志》所载刘歆之所推算,一为宋朝邵雍之所推算。刘歆所推算:周朝867年,殷朝629年,夏朝432年,虞舜在位五十年,唐尧在位七十年。周朝的灭亡,在民国纪元前2167年,公历纪元前256年,则唐尧的元年,在民国纪元前4215年,公历纪元前2305年。据邵雍所推算,则唐尧元年,在民国纪元前4268年,公历纪元前2357年。据历法推算,本是极可信据的,但前人的记载,未必尽确,后人的推算,也不能无误,所以也不可尽信。不过这所谓不可信,仅系不密合,论其大概,还是不误的。《孟子·公孙丑下篇》说:“由周而来,七百有余岁矣。”《尽心下篇》说:“由尧、舜至于汤,五百有余岁;由汤至于文王,五百有余岁;由文王至于孔子,五百有余岁。”乐毅报燕惠王书,称颂昭王破齐之功,说他“收八百岁之蓄积”。《韩非子·显学篇》说:“殷、周七百余岁,虞、夏二千余岁。”(此七百余岁但指周言)都和刘歆、邵雍所推算,相去不远。古人大略的记忆,十口相传,是不会大错的。然则我国历史上可知而不甚确实的年代,大约在四千年以上了。

自此以上,连断片的记录,也都没有,则只能据发掘所得,推测其大略,是为先史时期。人类学家把人类所用的工具,分别它进化的阶段,最早的为旧石器时期,次之为新石器时期,都在有史以前,更次之为青铜器时期,更次之为铁器时期,就在有史以后了。我国近代发掘所得,据考古学家的推测:周口店的遗迹,约在旧石器前期之末,距今二万五千年至七万年。甘、青、河南遗迹,早的在新石器时期,在公历纪元前2600至3500年之间;

晚的在青铜器时期,在公历纪元前1700至2600年之间。按古代南方铜器的发明,似较北方为早,则实际上,我国开化的年代,或许还在此以前。

●旧石器时代·刮削器和尖状器山西省阳高县许家窑遗址出土。最长的5.6厘米,最短的2.7厘米。是10万年前的石器

中国古书上,有的把古史的年代,说得极远而且极确实的,虽然不足为凭,然因其由来甚远,亦不可不一发其覆。按《续汉书律历志》载蔡邕议历法的话,说《元命苞》、《乾凿度》都以为自开辟至获麟(获麟是《春秋》的末一年,在公元前481年),二百七十六万岁。司马贞《补三皇本纪》,则说《春秋纬》称自开辟至获麟,凡三百二十七万六千岁,分为十纪。据《汉书·律历志》刘歆的三统历法,以十九年为一章,四章为一蔀,二十蔀为一纪,三纪为一元。二百七十五万九千二百八十年,乃是六百十三元之数。《汉书·王莽传》说:莽下三万六千岁历,三万六千被乘于九十一,就是三百二十七万六千年了。这都是乡壁虚造之谈,可谓毫无历史上的根据。

●新石器时代·白陶山东维坊姚官庄出土。温酒器,高29.7厘米。是山东龙山文化遗存

第三章 古代的开化 #

中国俗说,最早的帝王是盘古氏。古书有的说他和天地开辟并生,有的说他死后身体变化而成日月、山河、草木等。(徐整《三五历记》说:“天地混沌如鸡子,盘古生其中。万八千岁,天地开辟,阳清为天,阴浊为地,盘古在其中……天日高一丈,地日厚一丈,盘古日长一丈。如此万八千岁,天数极高,地数极深,盘古极长。”《五运历年记》说:“首生盘古,垂死化身:气成风云,声为雷霆,左眼为日,右眼为月,四肢、五体为四极、五岳,血液为江河,筋脉为地理,肌肉为田土,发髭为星辰,皮毛为草木,齿骨为金石,精髓为珠玉,汗流为雨,身之诸虫,因风所感,化为黎虻。”)这自然是附会之辞,不足为据。《后汉书·南蛮传》说:汉时长沙、武陵蛮(长沙、武陵,皆后汉郡名。长沙,治今湖南长沙县。武陵,治今湖南常德县)的祖宗,唤做盘瓠,乃是帝喾高辛氏的畜狗。当时有个犬戎国,为中国之患。高辛氏乃下令,说有能得犬戎吴将军的头的,赏他黄金万镒,还把自己的女儿嫁给他。令下之后,盘瓠衔了吴将军的头来。遂背了高辛氏的公主,走入南山,生了六男六女,自相夫妻,成为长沙、武陵蛮的祖宗。现在广西一带,还有祭祀盘古的。闽、浙的畲民,则奉盘瓠为始祖,其画像仍作狗形。有人说:盘古就是盘瓠,这话似乎很确。但是《后汉书》所记,只是长沙、武陵一支,而据古书所载,则盘古传说,分布之地极广,而且绝无为帝喾畜狗之说(据《路史》:会昌有盘古山,湘乡有盘古堡,雩都有盘古祠,成都、淮安、京兆亦皆有盘古庙。会昌,令江西会昌县。湘乡,今湖南湘乡县。雩都,今江西雩都县。成都,今四川成都县。淮安,今江苏淮安县。京兆,今西京),则盘古、盘瓠,究竟是一是二,还是一个疑问。如其是一,则盘古本非中国民族的始祖;如其是二,除荒渺的传说外,亦无事迹可考,只好置诸不论不议之列了。

在盘古之后,而习惯上认为很早的帝王的,就是三皇、五帝。三皇、五帝之名,见于《周官》外史氏,并没说他是谁。后来异说甚多(三皇异说:《白虎通》或说,无遂人而有祝融。《礼记·曲礼正义》说:郑玄注《中候敕省图》引《运斗枢》,无遂人而有女娲。按《淮南子·天文训》、《览冥训》,《论衡·谈天》、《顺鼓》两篇,都说共工氏触不周之山,天柱折,地维缺,女娲炼五色石以补天,断鳌足以立四极。而司马贞《补三皇本纪》说系共工氏与祝融战,则女娲、祝融一人。祝融为火神,燧人是发明钻木取火的,可见其仍系一个部族。五帝异说:则汉代的古学家,于黄帝、颛顼之间,增加了一个少昊,于是五帝变成六人。郑玄注《中候敕省图》,乃谓德合五帝坐星,即可称帝,故“实六人而为五”。然总未免牵强。东晋晚出的《伪古文尚书》的《伪孔安国传序》,乃将三皇中的燧人除去,而将黄帝上升为三皇,于是六人为五的不通,给他弥缝过去了。《伪古文尚书》今已判明其为伪,人皆不之信,东汉古学家之说,则尚未显被推翻。但古学家此说,不过欲改五德终始说之相胜为相生,而又顾全汉朝之为火德,其作伪实无以异,而手段且更拙。按五德终始之说,创自邹衍,本依五行相胜的次序。依他的说法,是虞土、夏木、殷金、周火,所以秦始皇自以为水德,而汉初自以为土德。到刘向父子出,改五德的次序为五行相生,又以汉为尧后。而黄帝的称号为黄,黄为土色,其为土德,无可移易。如此,依五帝的旧次,颛顼金德,帝喾水德,尧是木德,与汉不同德了。于其间增一少昊为金德,则颛顼水德,帝喾木德,尧为火德,与汉相同;尧以后则虞土,夏金,殷水,周木,而汉以火德承之,秦人则被视为闰位,不算入五德相承次序。这是从前汉末年发生,至后汉而完成的一套五德终始的新说,其说明见于《后汉书·贾逵传》,其不能据以言古代帝王的统系,是毫无疑义的了),其较古的,还是《风俗通》引《含文嘉》,以燧人、伏羲、神农为三皇,《史记·五帝本纪》以黄帝、颛顼、帝喾、尧、舜为五帝之说。燧人、伏羲、神农,不是“身相接”的,五帝则有世系可考。

据《史记·五帝本纪》及《大戴礼记·帝系篇》,其统系如下:

按五帝之说,源于五德终始,五德终始之说,创自邹衍,邹衍是齐人,《周官》所述的制度,多和《管子》相合,疑亦是齐学。古代本没有一个天子是世代相承的;即一国的世系较为连贯的,亦必自夏以后。夏、殷两代,后世的史家,都认为是当时的共主,亦是陷于时代错误的。据《史记·夏本纪》、《史记·殷本纪》所载,明明还是盛则诸侯来朝,衰则诸侯不至,何况唐、虞以上?所以三皇、五帝,只是后人造成的一个古史系统,实际上怕全不是这么一回事。但自夏以后,一国的世系,既略有可考;而自黄帝以后,诸帝王之间,亦略有不很正确的世系,总可藉以推测古史的大略了。

古代帝王的称号,有所谓德号及地号(服虔说,见《礼记·月令》、《疏》),德号是以其所做的事业为根据的,地号则以其所居之地为根据。按古代国名、地名,往往和部族之名相混,还可以随着部族而迁移,所以虽有地号,其部族究在何处,仍难断言。至于德号,更不过代表社会开化的某阶段;或者某一个部族,特长于某种事业;并其所在之地而不可知,其可考见的真相,就更少了。然既有这些传说,究可略据之以为推测之资。传说中的帝王,较早而可考见社会进化的迹象的,是有巢氏和燧人氏。有巢氏教民构木为巢,燧人氏教民钻木取火,见于《韩非子》的《五蠹篇》。稍后则为伏羲、神农。伏羲氏始画八卦,作结绳而为网罟,以佃以渔;神农氏斫木为耜,揉木为耒,日中为市,见于《易经》的《系辞传》。有巢、燧人、神农都是德号,显而易见。伏羲氏,《易传》作包牺氏,包伏一声之转。据《风俗通》引《含文嘉》,是“下伏而化之”之意,羲化亦是一声。他是始画八卦的,大约在宗教上很有权威,其为德号,亦无疑义。这些都不过代表社会进化的一个阶段,究有其人与否,殊不可知。但各部族的进化,不会同时,某一个部族,对于某一种文化,特别进步得早,是可能有的。如此,我们虽不能说在古代确有发明巢居、取火、佃渔、耕稼的帝王,却不能否认对于这些事业,有一个先进的部族。既然有这部族,其时、地就该设法推考了。伏羲古称为太昊氏,风姓,据《左传》僖公二十一年所载,任、宿、须句、颛臾四国,是其后裔。任在今山东的济宁县,宿和须句都在东平县,颛臾在费县。神农,《礼记·月令》《疏》引《春秋说》,称为大庭氏。《左传》昭公十八年,鲁有大庭氏之库。鲁国的都城,即今山东曲阜县(《帝王世纪》说伏羲都陈,乃因左氏有“陈太昊之墟”之语而附会,不足信,见下文。又说神农氏都陈徙鲁,则因其承伏羲之后而附会的)。然则伏羲、神农,都在今山东东南部,和第一章所推测的汉族古代的根据地,是颇为相合的了。

神农亦称炎帝,炎帝之后为黄帝,炎、黄之际,是有一次战事可以考见的,古史的情形,就更较明白了。《史记·五帝本纪》说:神农氏世衰,诸侯相侵伐,弗能征,而蚩尤氏最为暴。“黄帝乃征师诸侯,与蚩尤战于涿鹿之野,遂擒杀蚩尤。”又说:“炎帝欲侵陵诸侯,诸侯咸归轩辕。”(《史记·五帝本纪》说黄帝名轩辕,他书亦有称为轩辕氏的。按古书所谓名,兼包一切称谓,不限于名字之名。)轩辕“与炎帝战于阪泉之野,三战,然后得其志”。其说有些矛盾。《史记》的《五帝本纪》,和《大戴礼记》的《五帝德》,是大同小异的,《大戴礼记》此处,却只有和炎帝战于阪泉,而并没有和蚩尤战于涿鹿之事。神农、蚩尤,都是姜姓。《周书·史记篇》说“阪泉氏徙居独鹿”,独鹿之即涿鹿,亦显而易见。然则蚩尤、炎帝,即是一人,涿鹿、阪泉,亦系一地。《太平御览·州郡部》引《帝王世纪》转引《世本》,说涿鹿在彭城南,彭城是今江苏的铜山县(服虔谓涿鹿为汉之涿郡,即今河北涿县。皇甫谧、张晏谓在上谷,则因汉上谷郡有涿鹿县而云然,皆据后世的地名附会,不足信。汉涿鹿县即今察哈尔涿鹿县)。《世本》是古书,是较可信据的,然则汉族是时的发展,仍和鲁东南不远了。黄帝之后是颛顼,颛顼之后是帝喾,这是五帝说的旧次序。后人于其间增一少昊,这是要改五德终始之说相胜的次序为相生,又要顾全汉朝是火德而云然,无足深论。但是有传于后,而被后人认为共主的部族,在古代总是较强大的,其事迹仍旧值得考据,则无疑义。《史记·周本纪正义》引《帝王世纪》说:炎帝、黄帝、少昊,都是都于曲阜的,而黄帝自穷桑登帝位,少昊氏邑于穷桑,颛顼则始都穷桑,后徙帝丘。它说“穷桑在鲁北,或云穷桑即曲阜也”。《帝王世纪》,向来认为不足信之书,但只是病其牵合附会,其中的材料,还是出于古书的,只要不轻信其结论,其材料仍可采用。《左传》定公四年说伯禽封于少昊之墟,昭公二十年说:“少昊氏有四叔,世不失职,遂济穷桑”,则穷桑近鲁,少昊氏都于鲁之说,都非无据。帝丘地在今河北濮阳县,为后来卫国的都城。颛顼徙帝丘之说,乃因《左传》昭公十七年“卫颛顼之虚”而附会,然《左传》此说,与“陈太昊之墟”,“宋大辰之虚”,“郑祝融之虚”并举,大辰,无论如何,不能说为人名或国名(近人或谓即《后汉书》朝鲜半岛的辰国,证据未免太乏),则太昊、祝融、颛顼,亦系天神,颛顼徙都帝丘之说,根本不足信了。《史记·五帝本纪》说:黄帝正妃“嫘祖生二子,其后皆有天下。其一曰玄嚣,是为青阳,青阳降居江水”,此即后人指为少昊的。“其二曰昌意,降居若水,生高阳。”高阳即帝颛顼。后人以今之金沙江释此文的江水,鸦龙江释此文的若水,此乃大误。古代南方之水皆称江。《史记·殷本纪》引《汤诰》,说“东为江,北为济,西为河,南为淮,四渎己修,万民乃有居”,其所说的江,即明明不是长江(淮、泗、汝皆不入江,而《孟子·滕文公上篇》说禹“决汝、汉,排淮、泗,而注之江”,亦由于此)。《吕览·古乐篇》说:“帝颛顼生自若水,实处空桑,乃登为帝。”可见若水实与空桑相近。《山海经·海内经》说:“南海之内,黑水、青水之间,有木焉,名曰若木,若水出焉。”《说文》桑字作i-,若水之若,实当作i-,仍系桑字,特加i-以象根形,后人认为若字实误。《楚辞》的若木,亦当作桑木,即神话中的扶桑,在日出之地(此据王筠说,见《说文释例》)。然则颛顼、帝喾,踪迹仍在东方了。

继颛顼之后的是尧,继尧之后的是舜,继舜之后的是禹。尧、舜、禹的相继,据儒家的传说,是纯出于公心的,即所谓“禅让”,亦谓之“官天下”。但《庄子·盗跖篇》有尧杀长子之说,《吕览·去私》、《求人》两篇,都说尧有十子,而《孟子·万章上篇》和《淮南子·泰族训》,都说尧只有九子,很像尧的大子是被杀的(俞正燮即因此疑之,见所著《癸巳类稿·奡证》)。后来《竹书纪年》又有舜囚尧,并偃塞丹朱,使不与尧相见之说。刘知幾因之作《疑古篇》,把尧、舜、禹的相继,看作和后世的篡夺一样。其实都不是真相。古代君位与王位不同,在第三十九章中,业经说过。尧、舜、禹的相继,乃王位而非君位,这正和蒙古自成吉思汗以后的汗位一样。成吉思汗以后的大汗,也还是出于公举的(详见第二十七章)。前一个王老了,要指定一人替代,正可见得此时各部族之间,已有较密切的关系,所以共主之位,不容空缺。自夏以后,变为父子相传,古人谓之“家天下”,又可见得被举为王的一个部族,渐次强盛,可以久居王位了。

尧、舜、禹之间,似乎还有一件大事,那便是汉族的开始西迁。古书中屡次说颛顼、帝喾、尧、舜、禹和共工、三苗的争斗(《淮南子·天文训》、《兵略训》,都说共工与颛顼争,《原道训》说共工与帝喾争。《周书·史记篇》说:共工亡于唐氏。《书经·尧典》说:舜流共工于幽州。《荀子·议兵篇》说:禹伐共工。《书经·尧典》又说:舜迁三苗于三危。《甫刑》说:“皇帝遏绝苗民,无世在下。”皇帝,《疏》引郑注以为颛顼,与《国语》、《楚语》相合。而《战国·魏策》,《墨子》的《兼爱》、《非攻》,《韩非子》的《五蠹》,亦均载禹征三苗之事)。共工、三苗都是姜姓之国,似乎姬、姜之争,历世不绝,而结果是姬姓胜利的。我的看法,却不是如此。《国语·周语》说:“共工欲壅防百川,堕高堙卑,鲧称遂共工之过,禹乃高高下下,疏川导滞。”似乎共工和鲧,治水都是失败的,至禹乃一变其法。然《礼记·祭法德》说“共工氏之霸九州也,其子曰后土,能平九州”,则共工氏治水之功,实与禹不相上下。后人说禹治水的功绩,和唐、虞、夏间的疆域,大抵根据《书经》中的《禹贡》,其实此篇所载,必非禹时实事。《书经》的《皋陶谟》载禹自述治水之功道:“予决九川,距四海,濬畎浍距川。”九川特极言其多。四海的海字,乃晦暗之义。古代交通不便,又各部族之间,多互相敌视,本部族以外的情形,就茫昧不明,所以夷、蛮、戎、狄,谓之四海(见《尔雅·释地》,中国西北两面均无海,而古称四海者以此)。州洲本系一字,亦即今之岛字,说见第五十章。《说文》川部:“州,水中可居者。昔尧遭洪水,民居水中高土,故曰九州。”此系唐、虞、夏间九州的真相,决非如《禹贡》所述,跨今黄河、长江两流域。同一时代的人,知识大抵相类,禹的治水,能否一变共工及鲧之法,实在是一个疑问。堙塞和疏导之法,在一个小区域之内,大约共工、鲧、禹,都不免要并用的。但区域既小,无论堙塞,即疏导,亦决不能挽回水灾的大势,所以我疑心共工、鲧、禹,虽然相继施功,实未能把水患解决,到禹的时代,汉族的一支,便开始西迁了。尧的都城,《汉书·地理志》说在晋阳,即今山西的太原县。郑玄《诗谱》说他后迁平阳,在今山西的临汾县。《帝王世纪》说舜都蒲阪,在今山西的永济县。又说禹都平阳,或于安邑,或于晋阳,安邑是今山西的夏县。这都是因后来的都邑而附会。《太平御览·州郡部》引《世本》说:尧之都后迁涿鹿;《孟子·离娄下篇》说:“舜生于诸冯,迁于负夏,卒于鸣条”。这都是较古之说。涿鹿在彭城说已见前。诸冯、负夏、鸣条皆难确考。然鸣条为后来汤放桀之处,桀当时是自西向东走的,则鸣条亦必在东方。而《周书·度邑解》说:“自洛汭延于伊汭,居易无固,其有夏之居。”这虽不就是禹的都城,然自禹的儿子启以后,就不闻有和共工、三苗争斗之事,则夏朝自禹以后,逐渐西迁,似无可疑。然则自黄帝至禹,对姜姓部族争斗的胜利,怕也只是姬姓部族自己夸张之辞,不过只有姬姓部族的传说,留遗下来,后人就认为事实罢了。为什么只有姬姓部族的传说,留遗于后呢?其中仍有个关键。大约当时东方的水患,是很烈的,而水利亦颇饶。因其水利颇饶,所以成为汉族发祥之地。因其水患很烈,所以共工、鲧、禹,相继施功而无可如何。禹的西迁,大约是为避水患的。当时西边的地方,必较东边为瘠,所以非到水久治无功时,不肯迁徙。然既迁徙之后,因地瘠不能不多用人力,文明程度转而因此进步,而留居故土的部族,反落其后了。这就是自夏以后,西方的历史传者较详,而东方较为茫昧之故。然则夏代的西迁,确是古史上的一个转折,而夏朝亦确是古史上的一个界划了。

第四章 夏殷西周的事迹 #

夏代事迹,有传于后的,莫如太康失国少康中兴一事。这件事,据《左传》、《周书》、《墨子》、《楚辞》所载(《左传》襄公四年、哀公元年,《周书·尝麦解》,《墨子·非乐》,《楚辞·离骚》),大略是如此的。禹的儿子启,荒于音乐和饮食。死后,他的儿子太康兄弟五人,起而作乱,是为五观。太康因此失国,人民和政权,都入于有穷后羿之手。太康传弟仲康,仲康传子相(夏朝此时,失掉的是王位,并非君位,所以仍旧相传)。羿因荒于游畋,又为其巨寒浞所杀。寒浞占据了羿的妻妾,生了两个儿子:一个唤做浇,一个唤做豷。夏朝这时候,依靠他同姓之国斟灌和斟寻。寒浞使浇把他们都灭掉,又灭掉夏后相。使浇住在唤做过,豷住在唤做戈的地方。夏后相的皇后,是仍国的女儿,相被灭时,正有身孕,逃归母家,生了一个儿子,是为少康。做了仍国的牧正。寒浞听得他有才干,使浇去寻找他。少康逃到虞国。虞国的国君,把两个女儿嫁给他,又把唤做纶的地方封他。有一个唤做靡的,当羿死时,逃到有鬲氏,就从有鬲氏收合斟灌、斟寻的余众,把寒浞灭掉。少康灭掉了浇,少康的儿子杼又灭掉了豷。穷国就此灭亡。这件事,虽然带些神话和传说的性质,然其匡廓尚算明白,颇可据以推求夏代的情形。旧说的释地,是全不足据的。《左传》说“后羿自迁于穷石”,又说羿“因夏民以代夏政”,则穷石即非夏朝的都城,亦必和夏朝的都城相近。《路史》说安丰有穷谷、穷水,就是穷国所在,其地在今安徽霍邱县。《汉书·地理志》《注》引应劭说:有穷是偃姓之国,皋陶之后。据《史记·五帝本纪》,皋陶之后,都是封在安徽六安一带的。过不可考。戈,据《左传》,地在宋、郑之间(见《左传》哀公十二年)。《春秋》桓公五年,天王使仍叔之子来聘,仍,《榖梁》作任,地在今山东的济宁县。虞国当系虞舜之后,旧说在今河南的虞城县。《周书》称太康兄弟五人为“殷之五子”。又说:“皇天哀禹,赐以彭寿,思正夏略。”殷似即后来的亳殷,在今河南的偃师县(即下文所引《春秋繁露》说汤作官邑于下洛之阳的。官宫二字古通用,作官邑就是造房屋和城郭。商朝的都城所在,都称为亳,此地大约本名殷,商朝所以又称殷朝)。彭寿该是立国于彭城的。按《世本》说禹都阳城,地在今河南的登封县,西迁未必能如此之速。综观自太康至少康之事,似乎夏朝的根据地,本在安徽西部,而逐渐迁徙到河南去,入于上章所引《周书》所说的“自洛汭延于伊汭”这一个区城的。都阳城该是夏朝后代的事,而不是禹时的事。从六安到霍邱,地势比较高一些,从苏北鲁南避水患而迁于此,又因战争的激荡而西北走向河南,似乎于情事还合。

●夏·乳钉纹平底爵高22.5厘米,流至尾长31.5厘米,1975年河南偃师二里头出土

但在这时候,东方的势力,亦还不弱,所以后来夏朝卒亡于商。商朝的始祖名契,封于商。郑玄说地在大华之阳,即今陕西的商县,未免太远。《史记·殷本纪》说:“自契至于成汤八迁。”《世本》说契居蕃,契的儿子昭明居砥石,昭明的儿子相土居商丘,扬雄《兖州牧箴》说“成汤五徙,卒归于亳”,合之恰得八数。蕃当即汉朝的蕃县,为今山东的滕县。商丘,当即后来宋国的都城,为今河南的商丘县。五迁地难悉考。据《吕览·慎大》、《具备》两篇,则汤尝居郼,郼即韦,为今河南的滑县。《春秋繁露·三代改制质文篇》说“汤受命而王,作官邑于下洛之阳”,此当即亳殷之地。《诗·商颂》说:“韦,顾既伐,昆吾,夏桀。”顾在今山东的范县。昆吾,据《左传》昭公十二年《传》楚灵王说“昔我皇祖伯父昆吾,旧许是宅”,该在今河南的许昌县,而哀公十七年,又说卫国有昆吾之观,卫国这时候,在今河北的濮阳县,则昆吾似自河北迁于河南。《史记·殷本纪》说:“汤自把钺以伐昆吾,遂伐桀。”“桀败于有娀之虚,桀奔于鸣条。”《左传》昭公四年“夏桀为仍之会,有缗叛之”,《韩非子·十过篇》亦有这话,仍作娀,则有娀,即有仍。鸣条为舜卒处,已见上章。合观诸说,商朝似乎兴于今鲁、豫之间,汤先平定了河南的北境,然后向南攻桀,桀败后是反向东南逃走的。观桀之不向西走而向东逃,可见此时伊、洛以西之地,还未开辟。

据《史记》的《夏本纪》、《殷本纪》,夏朝传国共十七代,商朝则三十代。商朝的世数所以多于夏,大约是因其兼行兄终弟及之制而然。后来的鲁国,自庄公以前,都是一生一及,吴国亦有兄终弟及之法,请见第三十八章,这亦足以证明商朝的起于东方。商朝的事迹,较夏朝传者略多。据《史记》:成汤以后,第四代大甲,第九代大戊,第十三代祖乙,第十九代盘庚,第二十二代武丁,都是贤君,而武丁之时,尤其强盛。商朝的都城,是屡次迁徙的。第十代仲丁迁于隞地,在今河南荥泽县(隞,《书序》作嚣,《书序》不一定可信,所以今从《史记》。隞的所在,亦有异说。但古书皆东周至汉的人所述,尤其大多数是汉朝人写下来的,所以用的大抵多是当时的地名,所以古书的释地,和东周、秦、汉时地名相近的,必较可信。如隞即敖,今之荥泽县,为秦汉间敖仓所在,以此释仲丁所迁之隞,确实性就较大些。这是治古史的通例,不能一一具说,特于此发其凡)。第十二代河亶甲居相,在今河南内黄县。第十三代祖乙迁于邢,在今河北邢台县。到盘庚才迁回成汤的旧居亳殷。第二十七代武乙,复去亳居河北。今河南安阳县北的小屯村,即发现龟甲兽骨之处,据史学家所考证,其地即《史记·项羽本纪》所谓殷墟,不知是否武乙时所都。至共第三十代即最后一个君主纣,则居于朝歌,在今河南淇县。综观商朝历代的都邑,都在今河南省里的黄河两岸,还是汤居郼,营下洛之阳的旧观。周朝的势力,却更深入西北部了。

周朝的始祖名弃,是舜之时居稷官的,封于邰。历若干代,至不窋,失官,奔于戎狄之间。再传至公刘,居邠,仍从事于农业。又十传至古公亶父,复为狄所逼,徙岐山下。邰,旧说是今陕西的武功县。邠是今陕西的邠县,岐是今陕西的岐山县。近人钱穆说,《左传》昭公元年说金天氏之裔子台骀封于汾川,《周书·度邑篇》说武王升汾之阜以望商邑,汾即邠,邰则因台骀之封而得名,都在今山西境内。亶父逾梁山而至岐,梁山在今陕西韩城县,岐山亦当距梁山不远(见所著《周初地理考》)。据他这说法,则后来文王居丰,武王居镐,在今陕西鄠县界内的,不是东下,乃是西上了。河、汾下流和渭水流域,地味最为肥沃,周朝是农业部族,自此向西拓展,和事势是很合的。古公亶父亦称太王,周至其时始强盛。传幼子季历以及文王,《论语》说他“三分天下有其二”(见《泰伯下篇》)。文王之子武王,遂灭纣。文王时曾打破耆国,而殷人振恐,武王则渡孟津而与纣战,耆国,在今山西的黎城县,自此向朝歌,乃今出天井关南下的隘道,孟津在今河南孟县南,武王大约是出今潼关到此的,这又可以看出周初自西向东发展的方向。然武王虽胜纣,并未能把商朝灭掉,仍以纣地封其子武庚,而使其弟管叔、蔡叔监之。武王崩,子成王幼,武王弟周公摄政,管、蔡和武庚都叛。据《周书·作雒解》,是时叛者,又有徐、奄及熊、盈。徐即后来的徐国,地在泗水流域,奄即后来的鲁国,熊为楚国的氏族,盈即嬴,乃秦国的姓。可见东方诸侯,此时皆服商而不服周。然周朝此时,颇有新兴之气。周公自己东征,平定了武庚和管叔、蔡叔,灭掉奄国。又使其子伯禽平定了淮夷、徐戎。于是封周公于鲁,使伯禽就国,又封太公望于齐,又经营今洛阳之地为东都,东方的旧势力,就给西方的新势力压服了。周公平定东方之后,据说就制礼作乐,摄政共七年,而归政于成王。周公死后,据说又有所谓“雷风之变”。这件事情,见于《书经》的《金縢篇》。据旧说:武王病时,周公曾请以身代,把祝策藏在金縢之匮中。周公死,成王葬以人臣之礼。天大雷雨,又刮起大风,田禾都倒了,大木也拔了出来。成王大惧,开金縢之匮,才知道周公请代武王之事,乃改用王礼葬周公,这一场灾异,才告平息。据郑玄的说法,则武王死后三年,成王服满了,才称自己年纪小,求周公摄政。摄政之后,管叔、蔡叔散布谣言,说周公要不利于成王,周公乃避居东都。成王尽执周公的属党。遇见了雷风之变,才把周公请回来。周公乃重行摄政。此说颇不合情理,然亦不会全属子虚。《左传》昭公七年,昭公要到楚国去,梦见襄公和他送行。子服惠伯说:“先君未尝适楚,故周公祖以道之,襄公适楚矣,而祖以道君。”据此,周公曾到过楚国,而《史记·蒙恬列传》,亦有周公奔楚之说,我颇疑心周公奔楚及其属党被执,乃是归政后之事。后来不知如何,又回到周朝。周公是否是善终,亦颇有可疑,杀害了一个人,因迷信的关系,又去求媚于他,这是野蛮时代常有的事,不足为怪。如此,则两说可通为一。楚国封于丹阳,其地实在丹、淅两水的会口(宋翔凤说,见《过庭录·楚鬻熊居丹阳武王徙郢考》),正当自武关东南出之路,据周公奔楚一事,我们又可见得周初发展的一条路线了。

成王和他的儿子康王之时,称为西周的盛世。康王的儿子昭王,“南巡守不返,卒于江上”(《史记·周本纪》文)。这一个江字,也是南方之水的通称。其实昭王是伐楚而败,淹死在汉水里的,所以后来齐桓公伐楚,还把这件事情去诘问楚国(见《左传》僖公四年)。周朝对外的威力,开始受挫了。昭王子穆王,西征犬戎。其时徐偃王强,《后汉书·东夷传》谓其“率九夷以伐宗周,西至河上”。《后汉书》此语,未知何据(《博物志》亦载徐偃王之事,但《后汉书》所据,并不就是《博物志》,该是同据某一种古说的)。《礼记·檀弓下篇》载徐国容居的话,说“昔我先君驹王,西讨济于河”。驹王疑即偃王,则《后汉书》之说亦非全属子虚,被压服的东方,又想恢复其旧势了。然穆王使楚伐徐,偃王走死,则仍为西方所压服。穆王是周朝的雄主,在位颇久,当其时,周朝的声势,是颇振起的,穆王死后,就无此盛况了。穆王五传至厉王,因暴虐,为国人所逐,居外十四年。周朝的卿士周公、召公当国行政,谓之共和。厉王死于外,才立其子宣王。宣王号称中兴,然其在位之三十九年,与姜氏之戎战于千,为其所败。千在今山西的介休县,则周朝对于隔河的地方,业经控制不住,西方戎狄的势力,也渐次抬头了。至子幽王,遂为犬戎和南阳地方的申国所灭。幽王灭亡的事情,《史记》所载的,恢诡有类平话,决不是真相。《左传》昭公二十六年,载周朝的王子朝告诸侯的话,说这时候“携王干命,诸侯替之,而建王嗣,用迁郏鄏”(即东都之地,见《左传》宣公三年)。则幽王死后,西畿之地,还有一个携王。周朝当时,似乎是有内忧兼有外患的。携王为诸侯所废,周朝对于西畿之地,就不能控制了。而且介休败了;出武关向丹、淅的路,又已不通,只有对于东畿,还保存着相当的势力。平王于是迁居洛阳,号称东周,其事在公元前770年。

第五章 春秋战国的竞争和秦国的统一 #

文化是从一个中心点,逐渐向各方面发展的。西周以前所传的,只有后世认为共主之国一个国家的历史,其余各方面的情形,都很茫昧。固然,书阙有间,不能因我们之无所见而断言其无有,然果有文化十分发达的地方,其事实也决不会全然失传的,于此,就可见得当时的文明,还是限于一个小区域之内了。东周以后则不然,斯时所传者,以各强国和文化较发达的地方的事迹为多,所谓天子之国,转若在无足重轻之列。原来古代所谓中原之地,不过自泰岱以西,华岳以东,太行以南,淮、汉以北,为今河南、山东的大部分,河北、山西的小部分。渭水流域的开发,怕还是西周兴起以来数百年间之事。到春秋时代,情形就大不然了。当时号称大国的,有晋、楚、齐、秦,其兴起较晚的,则有吴、越,乃在今山西的西南境,山东的东北境,陕西的中部,甘肃的东部,及江苏、浙江、安徽之境。在向来所称为中原之地的鲁、卫、宋、郑、陈、蔡、曹、许等,反夷为二三等国了。这实在是一个惊人的文化扩张。其原因何在呢?居于边地之国,因为和异族接近,以竞争磨砺而强,而其疆域亦易于拓展,该是其中最主要的。

“周之东迁,晋、郑焉依。”(见《左传》隐公六年)即此便可见得当时王室的衰弱。古代大国的疆域,大约方百里,至春秋时则夷为三等国,其次等国大约方五百里,一等国则必方千里以上,请见第三十九章。当西周之世,合东西两畿之地,优足当春秋时的一个大国而有余,东迁以后,西畿既不能恢复,东畿地方,又颇受列国的剥削,周朝自然要夷于鲁、卫了。古语说“天无二日,民无二王”,这只是当时的一个希望。事实上,所谓王者,亦不过限于一区域之内,并不是普天之下,都服从他的。当春秋时,大约吴、楚等国称雄的区域,原不在周朝所管辖的范围内,所以各自称王。周天子所管辖的区域,因强国不止一个,没有一国能尽数慑服各国,所以不敢称王,只得以诸侯之长,即所谓霸主自居,这话在第三十九章中,亦已说过。所以春秋时代,大局的变迁,系于几个霸国手里。春秋之世,首起而称霸的是齐桓公。当时异民族杂居内地的颇多,也有相当强盛的,同族中的小国,颇受其压迫。(一)本来古代列国之间,多有同姓或婚姻的关系。(二)其不然的,则大国受了小国的朝贡,亦有加以保护的义务。(三)到这时候,文化相同之国,被文化不同之国所压迫,而互相救援,那更有些甫有萌芽的微茫的民族主义在内了。所以攘夷狄一举,颇为当时之人所称道。在这一点上,齐桓公的功绩是颇大的。他曾却狄以存邢、卫,又尝伐山戎以救燕(这个燕该是南燕,在今河南的封丘县。《史记》说它就是战国时的北燕,在今河北蓟县,怕是弄错了的,因为春秋时单称为燕的,都是南燕。即北燕的初封,我疑其亦距封丘不远,后来才迁徙到今蓟县,但其事无可考)。而他对于列国,征伐所至亦颇广。曾南伐楚,西向干涉晋国内乱,晚年又曾经略东夷。古人说“五霸桓公为盛”,信非虚语了。齐桓公的在位,系自前685至643年。桓公死后,齐国内乱,霸业遽衰。宋襄公欲继之称霸。然宋国较小,实力不足,前638年,为楚人所败,襄公受伤而死,北方遂无霸主。前632年,晋文公败楚于城濮(今山东濮县),楚国的声势才一挫。此时的秦国,亦已尽取西周旧地,东境至河,为西方一强国,然尚未能干涉中原之事。秦穆公初和晋国竞争不胜,前624年,打败了晋国的兵,亦仅称霸于西戎。中原之地,遂成为晋、楚争霸之局。前597年,楚庄王败晋于邲(今河南郑县),称霸。前591年卒。此时齐顷公亦图与晋争霸。前589年,为晋所败。前575年,晋厉公又败楚于鄢陵(今河南鄢县)。然楚仍与晋兵争不息。至前561年,楚国放弃争郑,晋悼公才称复霸。前546年,宋大夫向戌,善于晋、楚的执政,出而合二国之成,为弭兵之会,晋、楚的兵争,至此才告休息。自城濮之战至此,凡八十七年。弭兵盟后,楚灵王强盛,北方诸侯多奔走往与其朝会。然灵王奢侈而好兵争,不顾民力,旋因内乱被弑。此时吴国日渐强盛,而楚国政治腐败,前506年,楚国的都城,为吴阖闾所破,楚昭王藉秦援,仅得复国,楚国一时陷于不振,然越国亦渐强,起而乘吴之后。前496年,阖闾伐越,受伤而死。前494年,阖闾子夫差破越。夫差自此骄侈,北伐齐、鲁,与晋争长于黄池(今河南封丘县),前473年,越勾践灭吴,越遂徙都琅邪,与齐、晋会于徐州(今山东诸城县),称为霸王。然根基因此不固,至前333年而为楚所灭。

...

00封面-版权-读后-自序

版权信息 #

中国通史

作  者:吕思勉

责任编辑:周 宏

特约编辑:邱承辉

装帧设计:利 锐

本书由天津博集新媒科技有限公司授权亚马逊全球范围发行

logo

**目录 **

版权信息

吕思勉先生的史识与史德——《中国通史》读后

自序 绪论

上编 中国政治史 第一章 中国民族的由来

第二章 中国史的年代

第三章 古代的开化

第四章 夏殷西周的事迹

第五章 春秋战国的竞争和秦国的统一

第六章 古代对于异族的同化

第七章 古代社会的综述

第八章 秦朝治天下的政策

第九章 秦汉间封建政体的反动

第十章 汉武帝的内政外交

第十一章 前汉的衰亡

第十二章 新室的兴亡

第十三章 后汉的盛衰

第十四章 后汉的分裂和三国

第十五章 晋初的形势

第十六章 五胡之乱(上)

第十七章 五胡之乱(下)

第十八章 南北朝的始末

第十九章 南北朝隋唐间塞外的形势

第二十章 隋朝和唐朝的盛世

第二十一章 唐朝的中衰

第二十二章 唐朝的衰亡和沙陀的侵入

第二十三章 五代十国的兴亡和契丹的侵入

第二十四章 唐宋时代中国文化的转变

第二十五章 北宋的积弱

...

_TheLinuxCommandsHandbook_

《TheLinuxCommandsHandbook》结合视频 https://www.youtube.com/watch?v=ZtqBQ68cfJc 看的

Command意义 #

更快,自动化,在任何Linux上工作,有些工作的基本需求

系统-Unix和Windows #

绿色-开源
红色-闭源
黄色-混合

图片中的Linux只是类Unix,而不是真正的Unix

FreeSoftware,开源 #

GNU与Linux

Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序。
绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序
我们常说的Linux,准确地来讲,应该是叫“GNU/Linux”。虽然,我们没有为GNU和Linux的开发做出什么贡献,但是我们可以为GNU和Linux的宣传和应用做出微薄的努力,至少我们能够准确地去向其他人解释清楚GNU、Linux以及GNU/Linux之间的区别。让我们一起为GNU/Linux的推广贡献出自己的力量!

内核,用来连接硬件和软件的

TrueUNIX #

Unix一开始是收费的,后面出现Unix-like(类Unix),和Unix标准兼容。
Linux不是真正的Unix,而是类Unix。
Linux本身只是一个内核,连接硬件软件
LinuxDistributions,Linux发行版(1000多种)
Linux内核是一些GUN工具,文档,包管理器,桌面环境窗口管理,和系统一些其他东西组成的一个系统

有开源的和不开源的,Linux(LinuxGUN)完全开源

shell #

windows(powershell)
命令交给系统
terminal(最古老时是一个硬件)–屏幕+带键盘的物理设备,如今是一个软件
默认情况下,Ubuntu和大多数Linux发行版bashshell,还有zsh

setup and installing #

如果有Mac或者其他Linux发行版,则不需要额外操作。(作者在Mac里装了Ubuntu虚拟机)

WindowsSubsystem #

wsl --install
默认是Ubuntu

The Linux Handbook(电子书内容) #

Linux 手册

Preface #

前言

The Linux Handbook follows the 80/20 rule: learn in 20% of the time the 80% of a topic.
Linux 手册遵循 80/20 规则:用 20% 的时间学习某个主题的 80%。

...

基本知识

周朝君主世系图 #

资治通鉴中 #

周威烈王

完整世系图 #

《资治通鉴》从周威烈王(图里是32,这个第几任好像各家的算法不一致,不必深究)开始

001周纪一

資治通鑑卷第一

朝散大夫右諫議大夫權御史中丞充理檢使上護軍賜紫金魚袋臣

司马光 奉敕编集

胡三省 音  註

周紀一 起著雍攝提格(戊寅),盡玄黓困敦(壬子),凡三十五年。

爾雅:太歲在甲曰閼逢,在乙曰旃zhān蒙,在丙曰柔兆,在丁曰強圉,在戊曰著雍,在己曰屠維,在庚曰上章,在辛曰重光,在壬曰玄黓yì,在癸曰昭陽,是為歲陽。在寅曰攝提格,在卯曰單閼,在辰曰執徐,在巳曰大荒落,在午曰敦牂,在未曰協洽,在申曰涒tūn灘,在酉曰作噩,在戌曰掩茂,在亥曰大淵獻,在子曰困敦,在丑曰赤奮若,是為歲名。周紀分註「起著雍攝提格」,起戊寅也。「盡玄黓困敦」,盡壬子也。閼,讀如字;史記作「焉」,於乾翻。著,陳如翻。雍,于容翻。黓,逸職翻。單閼,上音丹,又特連翻;下烏葛翻,又于連翻。牂,作郎翻。涒,吐魂翻。灘,吐丹翻。困敦,音頓。杜預 世族譜曰:黃帝之苗裔,姓。后稷之後,封于;及衰,不窋zhú竄於西戎。至十二代孫太王,避;至孫文王受命,武王而有天下。自武王平王凡十三世,自平王威烈王又十八世,自威烈王赧王又五世。張守節曰:因太王周原,國號曰地理志云:右扶風美陽縣岐山西北中水鄉周太王所邑。括地志云:故周城一名美陽城,在雍州武功縣西北二十五里。紀,理也,統理眾事而系之年月。溫公系年用春秋之法,因本紀而謂之紀。邰,湯來翻。夏,戶雅翻。窋,竹律翻。在雍,於用翻。

威烈王 #

考王之子。諡法:猛以剛果曰威;有功安民曰烈。沈約曰:諸複諡,有諡人,無諡法。

二十三年(戊寅,前四零三) #

上距春秋獲麟七十八年,距左傳趙襄子惎jì智伯事七十一年。惎,毒也,音其冀翻。

1初命‹府新田,山西侯马›大夫 ‹府安邑,山西夏县›‹府晋阳,山西太原›‹府平阳,山西临汾›為諸侯。此溫公書法所由始也。之先,畢公高後,與同姓;其苗裔曰畢萬,始封于,至魏舒,始為正卿;三世至之先,造父後;至叔帶,始自;至趙夙,始封于。至趙盾,始為正卿,六世至之先,出於周武王,至韓武子,封于韓原。至韓厥,為正卿;六世至。三家者,世為大夫,於則陪臣也。室既衰,盟,以尊王室,故命之為伯。三卿竊之權,暴蔑其君,剖分其國,此王法所必誅也。威烈王不惟不能誅之,又命之為諸侯,是崇獎奸名犯分之臣也,通鑑始於此,其所以謹名分歟!

〖译文〗 [1]周威烈王姬午初次分封晋国大夫魏斯、赵籍、韩虔为诸侯国君。

曰:臣聞天子之職莫大於禮,禮莫大於分,分莫大於名。 分,扶問翻;下同。何謂禮?紀綱是也。何謂分?君、臣是也。何謂名?公、侯、卿、大夫是也。

〖译文〗 臣司马光曰:我知道天子的职责中最重要的是维护礼教,礼教中最重要的是区分地位,区分地位中最重要的是匡正名分。什么是礼教?就是法纪。什么是区分地位?就是君臣有别。什么是名分?就是公、侯、卿、大夫等官爵。

夫以四海之廣, 夫以,音扶。兆民之眾,受制於一人,雖有絕倫之力,高世之智,莫【章︰十二行本「莫」下有「敢」字;乙十一行本同;孔本同。】不奔走而服役者,豈非以禮為之紀綱【章︰十二行本,二字互乙;乙十一行本同;孔本同。】哉!是故天子統三公, 統,他綜翻。三公率諸侯,諸侯制卿大夫,卿大夫治士庶人。 治,直之翻。貴以臨賤,賤以承貴。上之使下猶心腹之運手足,根本之制支葉,下之事上猶手足之衛心腹,支葉之庇本根,然後能上下相保而國家治安。 治,直吏翻。故曰天子之職莫大於禮也。

〖译文〗 四海之广,亿民之众,都受制于天子一人。尽管是才能超群、智慧绝伦的人,也不能不在天子足下为他奔走服务,这难道不是以礼作为礼纪朝纲的作用吗!所以,天子统率三公,三公督率诸侯国君,诸侯国君节制卿、大夫官员,卿、大夫官员又统治士人百姓。权贵支配贱民,贱民服从权贵。上层指挥下层就好像人的心腹控制四肢行动,树木的根和干支配枝和叶;下层服侍上层就好像人的四肢卫护心腹,树木的枝和叶遮护根和干,这样才能上下层互相保护,从而使国家得到长治久安。所以说,天子的职责没有比维护礼制更重要的了。

文王序,以為首。孔子系之曰:「天尊地卑,乾坤定矣。 卑高以陳,貴賤位矣。」 系,戶計翻。言君臣之位猶天地之不可易也。春秋抑諸侯,尊王【章︰十二行本「王」作「周」;乙十一行本同;孔本同;退齋校同。】室,王人雖微,序於諸侯之上,以是見聖人於君臣之際未嘗不惓惓也。惓,逵員翻。漢劉向傳:忠臣畎quǎn畝,猶不忘君惓惓之義也。惓惓,猶言勤勤也。非有 ‹姒履癸›、‹子受辛›之暴‹子天乙›、‹姬发›之仁,人歸之,天命之,君臣之分當守節伏死而已矣。是故以微子 ‹子启›而代‹子受辛›成湯‹子天乙›配天矣,史記商帝乙生三子:長曰微子啟,次曰中衍,季曰之母為后。帝乙欲立為太子,太史據法爭之曰:「有妻之子,不可立妾之子。」乃立卒以暴虐亡殷國孔鄭玄義曰:物之大者莫若於天;推父比天,與之相配,行孝之大,莫大於此;所謂「嚴父莫大於配天」也。又孔氏曰:禮記稱萬物本乎天,人本乎祖。俱為其本,可以相配,故王者皆以祖配天。諡法:除殘去虐曰湯。然諡法起于;蓋人先有此號,人遂引以為諡法。分,扶問翻。長,知兩翻。卒,子恤翻。季札而君太伯血食矣, 吳王壽夢有子四人:長曰諸樊,次曰餘祭,次曰餘昩,次曰季札季札賢,壽夢欲立之,季札讓不可,於是立諸樊諸樊卒,以授餘祭,欲兄弟以次相傳,必致國于季札季札終讓而逃之。其後諸樊之子餘昩之子爭國,至於夫差遂以亡。宗廟之祭用牲,故曰血食。太伯立國之君。范寧曰:太者,善大之稱;伯者,長也。周太王之元子,故曰太伯陸德明曰:壽夢,莫公翻。餘祭,側介翻。餘昩,音末。然二子寧亡國而不為者,誠以禮之大節不可亂也。故曰禮莫大於分也。

〖译文〗 周文王演绎排列《易经》,以乾、坤为首位。孔子解释说:“天尊贵,地卑微,阳阴于是确定。由低至高排列有序,贵贱也就各得其位。”这是说君主和臣子之间的上下关系就像天和地一样不能互易。《春秋》一书贬低诸侯,尊崇周王室,尽管周王室的官吏地位不高,在书中排列顺序仍在诸侯国君之上,由此可见孔圣人对于君臣关系的关注。如果不是夏桀、商纣那样的暴虐昏君,对手又遇上商汤、周武王这样的仁德明主,使人民归心、上天赐命的话,君臣之间的名分只能是作臣子的恪守臣节,矢死不渝。所以如果商朝立贤明的微子为国君来取代纣王,成汤创立的商朝就可以永配上天;而吴国如果以仁德的季札做君主,开国之君太伯也可以永享祭祀。然而微子、季札二人宁肯国家灭亡也不愿做君主,实在是因为礼教的大节绝不可因此破坏。所以说,礼教中最重要的就是地位高下的区分。

夫禮,辨貴賤,序親疏,裁群物,制庶事,非名不著,非器不形;名以命之,器以別之, 夫,音扶。別,彼列翻。然後上下粲然有倫,此禮之大經也。名器既亡,則禮安得獨在哉!昔仲叔于奚有功于,辭邑而請繁纓,孔子以為不如多與之邑。惟名與器,不可以假人,君之所司也;政亡則國家從之。 左傳衛孫桓子帥師與師戰於新築‹河北大名南›,師敗績。新築仲叔于奚救孫桓子桓子是以免。既而人賞之邑,辭;請曲縣、繁纓以朝,許之。孔子聞之曰:「不如多與之邑,惟名與器不可以假人。」繁纓,馬飾也。繁,馬鬣上飾;纓,馬膺前飾。晉志註曰:纓在馬膺如索帬。繁,音蒲官翻。纓,伊盈翻。索,昔各翻。 君待孔子而為政,孔子欲先正名,以為名不正則民無所措手足。論語夫繁纓,小物也,而孔子惜之;正名,細務也,而孔子先之: 先,悉薦翻。誠以名器既亂則上下無以相保故也。夫事未有不生於微而成于著,聖人之慮遠,故能謹其微而治之。 治,直之翻;下同。眾人之識近,故必待其著而後救之;治其微則用力寡而功多,救其著則竭力而不能及也。曰:「履霜堅冰至,」初六爻辭。曰:「履霜堅冰,陰始凝也。馴致其道,至堅冰也。」曰:「一日二日萬幾,」皋陶謨之辭。孔安國曰:幾,微也。言當戒懼萬事之微。幾,居依翻。謂此類也。故曰分莫大於名也。 分,扶問翻。

〖译文〗 所谓礼教,在于分辨贵贱,排比亲疏,裁决万物,处理日常事物。没有一定的名位,就不能显扬;没有器物,就不能表现。只有用名位来分别称呼,用器物来分别标志,然后上下才能井然有序。这就是礼教的根本所在。如果名位、器物都没有了,那么礼教又怎么能单独存在呢!当年仲叔于奚为卫国建立了大功,他谢绝了赏赐的封地,却请求允许他享用贵族才应有的马饰。孔子认为不如多赏赐他一些封地,惟独名位和器物,绝不能假与他人,这是君王的职权象征;处理政事不坚持原则,国家也就会随着走向危亡。卫国国君期待孔子为他崐处理政事,孔子却先要确立名位,认为名位不正则百姓无所是从。马饰,是一种小器物,而孔子却珍惜它的价值;正名位,是一件小事情,而孔子却要先从它做起,就是因为名位、器物一紊乱,国家上下就无法相安互保。没有一件事情不是从微小之处产生而逐渐发展显著的,圣贤考虑久远,所以能够谨慎对待微小的变故及时予以处理;常人见识短浅,所以必等弊端闹大才来设法挽救。矫正初起的小错,用力小而收效大;挽救已明显的大害,往往是竭尽了全力 也不能成功。《易经》说:“行于霜上而知严寒冰冻将至。”《尚书》说:“先王每天都要兢兢业业地处理成千上万件事情。”就是指这类防微杜渐的例子。所以说,区分地位高下最重要的是匡正各个等级的名分。

嗚呼!‹姬宫湦shēng›、‹姬胡›失德,周道日衰,綱紀散壞,下陵上替,諸侯專征,齊桓公晉文公悼公以及楚莊王吳夫差之類。大夫擅政,謂晉六卿、魯三家、齊田氏之類。禮之大體什喪七八矣,喪,息浪翻。然文‹姬昌›、武‹姬发›之祀猶綿綿相屬者,屬,聯屬也,音之欲翻。凡聯屬之屬皆同音。蓋以周之子孫尚能守其名分故也。何以言之?昔晉文公‹姬重耳›有大功於王室,請隧於襄王‹姬郑›,襄王不許,曰:「王章也。未有代德而有二王,亦叔父之所惡也。不然,叔父有地而隧,又何請焉!」文公於是懼而不敢違。太叔帶之難,襄王出居於氾fàn‹河南襄城›。晉文公帥師納王,殺太叔帶。既定襄王於郟jiá,王勞之以地,辭;請隧焉,王弗許云云。杜預曰:闕地通路曰隧,此乃王者葬禮也。諸侯皆縣柩而下。王章者,章顯王者異於諸侯。古者天子謂同姓諸侯為伯父、叔父。隧,音遂。惡,烏路翻。難,乃旦翻。氾,音泛。勞,力到翻。闕,其月翻。縣,音玄。柩,其久翻。是故以周之地則不大於曹‹山東定陶›、滕‹山東滕州›,以周之民則不眾於邾‹山东邹县›、莒‹山東莒縣›,曹、滕、邾、莒,春秋時小國。莒,居許翻。然歷數百年,宗主天下,雖以晉、楚、齊、秦之強不敢加者,何哉?徒以名分尚存故也。至於季氏之於魯,田常之于齊,白公之于楚,智伯之于晉,魯大夫季氏,自季友以來,世執魯國之政。季平子逐昭公,季康子逐哀公,然終身北面,不敢篡國。田常,即陳恒。田氏本陳氏;溫公避國諱,改「恒」曰「常」。陳成子得齊國之政,殺闞止,弑簡公,而亦不敢自立。史記世家以陳敬仲完為田敬仲完,陳成子恒為田常,故通鑑因以為據。白公勝殺楚令尹子西、司馬子期,石乞曰:「焚庫弑王,不然不濟!」白公曰:「弑王不祥,焚庫無聚。」智伯當晉之衰,專其國政,侵伐鄰國,于晉大夫為最強;攻晉出公,出公道死。智伯欲并晉而不敢,乃奉哀公驕立之。其勢皆足以逐君而自為,然而卒不敢者,卒,子恤翻,終也。豈其力不足而心不忍哉,乃畏奸名犯分而天下共誅之也。奸,居寒翻,亦犯也。分,扶問翻。今晉大夫暴蔑其君,剖分晉國,史記六國年表:定王十六年,趙、魏、韓滅智伯,遂三分晉國。天子既不能討,又寵秩之,使列於諸侯,是區區之名分復不能守而并棄之也。陸德明經典釋文:凡復字,其義訓又者,并音扶又翻。先王之禮於斯盡矣!

〖译文〗 呜呼!周幽王、周厉王丧失君德,周朝的气数每况愈下。礼纪朝纲土崩瓦解;下欺凌、上衰败;诸侯国君恣意征讨他人;士大夫擅自干预朝政;礼教从总体上已经有十之七八沦丧了。然而周文王、周武王开创的政权还能绵绵不断地延续下来,就是因为周王朝的子孙后裔尚能守定名位。为什么这样说呢?当年晋文公为周朝建立了大功,于是向周襄王请求允许他死后享用王室的隧葬礼制,周襄王没有准许,说:“周王制度明显。没有改朝换代而有两个天子,这也是作为叔父辈的晋文公您所反对的。不然的话,叔父您有地,愿意隧葬,又何必请示我呢?”晋文公于是感到畏惧而没有敢违反礼制。因此,周王室的地盘并不比曹国、滕国大,管辖的臣民也不比邾国、莒国多,然而经过几百年,仍然是天下的宗主,即使是晋、楚、齐、秦那样的强国也还不敢凌驾于其上,这是为什么呢?只是由于周王还保有天子的名分。再看看鲁国的大夫季氏、齐国的田常、楚国的白公胜、晋国的智伯,他们的势力都大得足以驱逐国君而自立,然而他们到底不敢这样做,难道是他们力量不足或是于心不忍吗?只不过是害怕奸夺名位僭犯身分而招致天下的讨伐罢了。现在晋国的三家大夫欺凌蔑视国君,瓜分了晋国,作为天子的周王不能派兵征讨,反而对他们加封赐爵,让他们列位于诸侯国君之中,这样做就使周王朝仅有的一点名分不能再守定而全部放弃了。周朝先王的礼教到此丧失干净!

或者以為當是之時,周室微弱,三晉強盛,三家分晉國,時因謂之「三晉」,猶後之三秦、三齊也。雖欲勿許,其可得乎!是大不然。夫三晉雖強,苟不顧天下之誅而犯義侵禮,則不請於天子而自立矣。不請於天子而自立,則為悖逆之臣,夫,音扶。悖,蒲內翻,又蒲沒翻。天下苟有桓、文之君,必奉禮義而征之。今請於天子而天子許之,是受天子之命而為諸侯也,誰得而討之!故三晉之列于諸侯,非三晉之壞禮,乃天子自壞之也。壞,音怪,人毀之也。

〖译文〗 有人认为当时周王室已经衰微,而晋国三家力量强盛,就算周王不想承认他们,又怎么能做得到呢!这种说法是完全错误的。晋国三家虽然强悍,但他们如果打算不顾天下的指责而公然侵犯礼义的话,就不会来请求周天子的批准,而是去自立为君了。不向天子请封而自立为国君,那就是叛逆之臣,天下如果有像齐桓公、晋文公那样的贤德诸侯,一定会尊奉礼义对他们进行征讨。现在晋国三家向天子请封,天子又批准了。他们就是奉天子命令而成为诸侯的,谁又能对他们加以讨伐呢!所以晋国三家大夫成为诸侯,并不是晋国三家破坏了礼教,正是周天子自已破坏了周朝的礼教啊!

烏呼!君臣之禮既壞矣,此壞,其義為成壞之壞,讀如字。則天下以智力相雄長,長,知兩翻。遂使聖賢之後為諸侯者,社稷無不泯絕,謂齊、宋亡于田氏,魯、陳、越亡于楚,鄭亡于韓也。泯,彌忍翻,盡也,又彌鄰翻。毛晃曰:沒也,滅也。生民之類糜滅幾盡,說文曰:糜,糝sǎn也;取糜爛之義,音忙皮翻。幾,居依翻,又渠希翻,近也。豈不哀哉!

〖译文〗 呜呼!君臣之间的礼纪既然崩坏,于是天下便开始以智慧、武力互相争雄,使当年受周先王分封而成为诸侯国君的圣贤后裔,江山相继沦亡,周朝先民的子孙灭亡殆尽,岂不哀伤!

...

16-18

向bash脚本添加参数 #

basic #

─ ~/shellTest                   ly@vmmin 10:37:24
╰─❯ cat ./16myscript_cls.sh 
#!/bin/bash

echo "You entered the argument: $1,$2,$3, and $4."

结果

╭─ ~/shellTest               16s ly@vmmin 10:37:18
╰─❯ ./16myscript_cls.sh Linux1 Linux2
You entered the argument: Linux1,Linux2,, and .

示例1 #

╭─ ~/shellTest                      ly@vmmin 10:41:45
╰─❯ cat ./16myscript_cls.sh 
#!/bin/bash

ls -lh $1

#echo "You entered the argument: $1,$2,$3, and $4."
╭─ ~/shellTest                        ly@vmmin 10:41:28
╰─❯ ./16myscript_cls.sh /etc
total 792K
-rw-r--r-- 1 root root   3.0K May 25  2023 adduser.conf
-rw-r--r-- 1 root root     44 Dec 17 15:26 adjtime
-rw-r--r-- 1 root root    194 Dec 23 22:38 aliases
drwxr-xr-x 2 root root   4.0K Dec 23 22:38 alternatives
drwxr-xr-x 2 root root   4.0K Dec 17 15:24 apparmor
drwxr-xr-x 8 root root   4.0K Dec 17 15:25 apparmor.d
drwxr-xr-x 9 root root   4.0K Dec 17 15:30 apt
-rw-r----- 1 root daemon  144 Oct 16  2022 at.deny
-rw-r--r-- 1 root root   2.0K Mar 30  2024 bash.bashrc

示例2 #

#!/bin/bash

lines=$(ls -lh $1 | wc -l) #行计数

echo "You hava $(($lines-1)) objects in the $1 directory."
#$(($lines-1))这里用到了子shell

#echo "You entered the argument: $1,$2,$3, and $4."
╭─ ~/shellTest                                 ly@vmmin 10:48:06
╰─❯ ls -lh logfiles 
total 12K
-rw-r--r-- 1 ly ly   0 Dec 22 23:07 a.log
-rw-r--r-- 1 ly ly 120 Dec 22 23:17 a.log.tar.gz
-rw-r--r-- 1 ly ly   0 Dec 22 23:07 b.log
-rw-r--r-- 1 ly ly 121 Dec 22 23:17 b.log.tar.gz
-rw-r--r-- 1 ly ly   0 Dec 22 23:07 c.log
-rw-r--r-- 1 ly ly 121 Dec 22 23:17 c.log.tar.gz
-rw-r--r-- 1 ly ly   0 Dec 22 23:15 xx.txt
-rw-r--r-- 1 ly ly   0 Dec 22 23:15 y.txt
╭─ ~/shellTest                                  ly@vmmin 10:48:10
╰─❯ ./16myscript_cls.sh logfiles
You hava 8 objects in the logfiles directory.

head,表示前十行,可以看出total这些被算作一行了,所以上面的shell中-1

...

12-15

functions 函数 #

update这个脚本为基础编改
作用

  • 减少重复代码
#!/bin/bash

release_file=/etc/os-release
logfile=/var/log/updater.log
errorlog=/var/log/updater_errors.log

check_exit_status(){
    if [ $? -ne 0 ]
    then
        echo "An error occured,please check the $errorlog file."
    fi
}

if  grep -q "Arch" $release_file 
then
    sudo pacman -Syu 1>>$logfile 2>>$errorlog
    check_exit_status
fi

if grep -q "Ubuntu" $release_file ||  grep -q "Debian" $release_file 
then
    sudo apt update 1>>$logfile 2>>$errorlog
    check_exit_status
    #默认yes
    sudo apt dist-upgrade -y 1>>$logfile 2>>$errorlog
    check_exit_status
fi

CaseStatements #

脚本 #

╭─ ~/shellTest                                                              ly@vmmin 22:32:52
╰─❯ cat ./13myscript_cls.sh 
#!/bin/bash

finished=0

while [ $finished -ne 1 ]
do
    echo "What is your favorite Linux distribution?"
    
    echo "1 - Arch"
    echo "2 - CentOS"
    echo "3 - Debian"
    echo "4 - Mint"
    echo "5 - Something else.."
    echo "6 - exit"
    
    read distro;
    case $distro in 
      1) echo "Arch is xxx";;
      2) echo "CentOS is xbxxx";;
      3) echo "Debian is bbbxx";;
      4) echo "Mint is xxxxsss";;
      5) echo "Something els.xxxxx";;
      6) finished=1
         echo "now will exit"
         ;;
      *) echo "you didn't enter an xxxx choice."
    esac
done

echo "Thanks for using this script."

脚本执行 #

╭─ ~/shellTest                                                              ly@vmmin 22:32:11
╰─❯ ./13myscript_cls.sh   
What is your favorite Linux distribution?
1 - Arch
2 - CentOS
3 - Debian
4 - Mint
5 - Something else..
6 - exit
3
Debian is bbbxx
What is your favorite Linux distribution?
1 - Arch
2 - CentOS
3 - Debian
4 - Mint
5 - Something else..
6 - exit
u
you didn't enter an xxxx choice.
What is your favorite Linux distribution?
1 - Arch
2 - CentOS
3 - Debian
4 - Mint
5 - Something else..
6 - exit
6
now will exit
Thanks for using this script. 

ScheduleJobs #

作用 #

脚本在特定时间运行

...

07-10

WhileLoops #

范例 #

#!/bin/bash

myvar=1
#小于或者等于10
while [ $myvar -le 10 ]
do
    echo $myvar
    myvar=$(( $myvar + 1  ))
    sleep 0.5
done

运行

╭─ ~/shellTest                              ≡ ly@vmmin 12:10:33
╰─❯ ./71myscript_cls.sh 
1
2
3
4
5
6
7
8
9
10

数字会每隔0.5s就输出一次
对于myvar=$(( $myvar + 1 ))$((expression))形式表示算数运算,而且其中的空格是可以省略的

范例2 #

#!/bin/bash

while [ -f ~/testfile ]
do
    echo "As of $(date),the test file exists."
    sleep 5
done

echo "As of $(date), the test ....has gone missing."

用来测试文件是否存在,运行前先新建一下文件touch ~/testfile 运行一会后把文件删除,如图

...

06ExitCode

意义 #

用来确定代码是否执行成功

例子 #

ls -l /misc
echo $? #输出2
ls -l ~
echo $? #输出0

$?用来显示最近一个命令的状态,零表示成功,非零表示失败

#!/bin/bash
#这个例子之前,作者用 sudo apt remove htop 命令把htop删除了
package=htop
sudo apt install $package

echo "The exit code for ....is $?"

安装完毕后显示返回0

另一个示例

#!/bin/bash

package=notexist
sudo apt install $package

echo "The exit code for ....is $?"
#执行后显示
#Reading package lists... Done
#Building dependency tree... Done
#Reading state information... Done
#E: Unable to locate package notexist
#The exit code for ....is 100

配合if语句 #

基本功能 #

#!/bin/bash

package=htop
sudo apt install $package

if [ $? -eq 0 ]
then
    echo "The installation of $package success..."
    echo "new comman here:"
    which $package
else
    echo "$package failed ..."
fi 

之前前作者用sudo apt remove htop又把htop删除了,不过其实不删除也是走的 echo "The installation of ....."这个分支
结果:

...