司马迁又西南行至陈(今河南淮阳县),这是战国楚地,春申君黄歇的城池和宫室还完好地保存着。司马迁参观了这座古城、凭吊了古人之后,便由此往西北至大梁(今河南开封市),这是战国魏的都城。在这里,司马迁从当地人中了解到魏国灭亡的最后一幕:“秦之破梁,引河沟而灌大梁,三月城坏,王请降,遂灭魏。”(《魏世家》)由魏的灭亡,司马迁联想到对魏的存亡起过举足轻重作用的信陵君。于是便遍访关于信陵君的旧事轶闻。信陵君的故事中最为精彩的就是执辔迎夷门监者侯赢。司马迁在《魏公子列传》中记述了他的见闻:“吾过大梁之墟,求问其所谓夷门。夷门者,城之东门也。天下诸公子,亦有喜上者,然信陵君之接岩穴隐者,不耻下交,有以也;名冠诸侯,不虚耳;高祖每过之,而令民奉祠不绝也。”司马迁壮游便告一段落,然后回长安。
司马迁返回长安以后,被选到朝廷里当了郎中,郎中是汉朝宫廷内部官僚机构中一个很低的官职,据《汉书·百官公卿表》所载,“郎中有车、户、骑三将,秩皆比千石”。其职责是“掌守门户,出充车骑”,即皇帝在宫廷时,他们守卫宫门,出巡时,又侍从车驾。可见,郎中地位虽然不高,俸禄不多,却能接近皇帝,容易受到宠幸。在当时,这一职务还颇有吸引力,一度成为富贵子弟竞相追求的美差。在汉朝仕为郎中的途径很多,但主要渠道有三条:一是父亲官阶二千石,可以把儿子选送去;二是富可以家赀获得;三是可以先补博上弟子员,再经过考试,成绩优异者可为郎中。司马迁的父亲是太史令,官阶六百石,家境也不富裕,司马迁不可能通过前两条途径仕为郎中,司马迁是作为优秀青年,先经过博上弟子员,成绩又考得好,才得任郎中的。从一个地位“近乎卜祝”之间的史官儿子,通过自己的努力,成为皇帝的近侍,司马迁当初的确感到十分荣幸。
司马迁做郎中后,经常侍从汉武帝。元鼎五年(公元前112年),司马迁24岁,随武帝巡行,西至空峒(今甘肃平凉县西)。他借此时机,经过实地考察,访问老人,把从书本中得到的关于黄帝的传说重新核实了一遍。他在《史记·五帝本纪》的“太史公曰”中记录了此事:
“学者多称五帝,尚矣。然《尚书》独载尧以来;而百家言黄帝,其文不雅驯,荐绅先生难言之。孔子所传宰予问《五帝德》及《帝系姓》,儒者或不传。余尝西亚空峒,北过逐鹿,东渐于海,南浮江准矣,至长者皆各往往称黄帝、尧、舜之处,风教固殊焉,总之不离古文者近是。”
由此可见,这次空峒之行,司马迁虽为侍从,但他一刻也没忘记搜寻和印证史料,以完成他父亲的遗命。司马迁空峒之行的次年,即元鼎六年(公元前111年),又奉命出使巴、蜀和滇中,这年他才25岁。这次奉命西征,是代表汉王朝去视察和安抚西南地区各少数民族的,他在《自序》中提到了这次使命的始末:“奉使西征巴、蜀以南,南略邛、笮、昆明,还报命。”司马迁此行,是西汉王朝与西南夷关系史上的一件大事。早在元光五年(公元前130年),那时司马迁才6岁,汉武帝命唐蒙为将,率兵千人,从巴(今重庆一带)蜀(今成都一带)筰关(今四川西南汉源县)分道入夜郎国(其中心是今贵州北部桐梓),夜郎附近小邑因而归汉,汉遂建立了犍为郡,就是今天的四川宜宾。当时为了经营西南,汉朝曾动员了数万巴蜀之地的人民,修筑从宜宾到贵州北盘江(当时称牂柯)的道路,巴蜀人民不堪如此重负,纷纷逃亡,甚至有酿成民变的可能。汉武帝见仅靠武力镇压不能奏效后,便派司马相如前去安抚,推说此前的做法只是唐蒙等人的私意而已,朝廷本无心这样做,这才平息了众怒。司马迁的这次西南之行,比他的前辈走得更远了一些,不但到了巴蜀以南,邛笮(今西昌一带)之地,而且到了昆明。这次奉使是从元鼎六年启程,到元封元年(公元前110年)春回来的,时间不满一年。这次的西行路线,是南出汉中,经过巴郡,到了犍为郡,再到牂柯郡。由牂柯郡转到蜀郡,经零关道,到越巂郡(今西昌一带),最后抵沈犁郡(今四川汉源一带)。司马迁的这次奉使,不仅圆满地完成经略西南的任务,还充分利用这次机会,对西南地区的地理形势和物产状况以及各族人民的风俗习惯作了详细的观察和了解,这为他后来写《西南夷列传》和《货殖列传》提供了丰富的材料。
汉武帝元封元年(公元前110年),为了显示自己的功业,决定到泰山举行封禅大典。汉武帝此次封禅的规模空前宏伟,在封禅之前,他亲自统率12部将军共18万骑兵,从云阳(今陕西淳化县之甘泉)北上,一路上旗旗招展,经上郡(今陕西绥德县)、西河(今内蒙鄂尔多斯左翼前旗)、五原(今内蒙五原县)等郡,越过长城,登上单于台,把匈奴威胁了一番。遂后又回到了桥山(今陕西中部县西北),在那里祭祀了黄帝冢,然后回到云阳,这是元封元年冬十月的事。到了这年的春天正月(当时历法以十月为岁首),这支庞大的队伍才又东下,去泰山正式封禅。身为太史令的司马谈也随从东行,但在到了洛阳的时候,司马谈却病倒了。这时司马迁刚刚从西南出使归来,尚未见到武帝,便急忙赶到洛阳探视父亲。司马谈在弥留之际,嘱咐年时26岁的司马迁要继承祖业,着史立说,“扬名于后世,以显父母”。司马迁含泪接受了父亲的遗命后,因为职务的关系,便匆忙离开了洛阳,去追赶汉武帝的封禅队伍,扈从东行。汉武帝到了山东,先东巡海上。于这一年的四月才由海上到了泰山,开始正式封禅。因为封禅使司马迁有机会侍从武帝东巡海上,这便加深了他对齐地风土人情的了解,他说:
吾适齐,自泰山属之琅琊,北被于海,膏壤二千里,其民阔达多匿知,其天性也。以太公之圣建国本,桓公之盛修善政,以为诸侯,会盟称伯,不亦宜乎?洋洋哉,固大国之风也(《齐太公世家》)。
此外《史记》中关于齐人的许多记载,如驺衍、公孙弘和许多方土如少翁、栾大、公孙卿、丁公、公玉带,也大都是侍从东巡时调查所得而写就的。
汉武帝封禅大典结束后,于元封元年五月,乘兴率领这支人马又“东至海上”。之后,便由东海北到碣石(今河北昌黎县境),巡自辽西(郡治在今河北卢龙县东),历北边至九原(今内蒙五原县),返回甘泉。司马迁这次从巡,又等于游历了一遍北部边疆,他在后来的《蒙恬列传》里提到了他这次北边之行的观感:
“吾造北边,自直道归,行观蒙恬所为秦筑长城亭障,堑山堙谷,通直道,固轻百姓为矣!”
他沿途考察了蒙恬所筑长城的宏伟,又为其滥用民力而叹息!
司马迁游历了东南、中原和西北,奉使出征又游了西陲和川滇,又领略了海上景色与塞外风光。有了这样的阅历,如此开阔的眼界,以及丰富的感性材料,为写《史记》打下了基础。
元封二年(公元前109年),即封禅的第二年,27岁司马迁,又侍从武帝参加了负薪塞河的工程。早在元光三年(公元前132年)夏五月,黄河在濮阳(今河南濮阳县南)瓠子决口,洪水泛滥,东南注入钜野(今山东巨野县),流经淮、泗,使河之南16郡人民大受其灾。当时武帝派汲黯、郑当时动员10万人去堵塞,但堵得不牢固,以后又经常被水冲坏。此后20余年,黄河不断在瓠子决口,人民深受其苦。至这次封禅,武帝到处礼祭山川,又念及此事。元封二年春天,汉武帝又到了缑氏城(今河南偃师县南),更东行,到山东半岛胶东,四月的时候,又去祭了泰山。因为这一年天旱,收成不好,而黄河在瓠子又一次决口,人民的生活更苦了。于是汉武帝便亲率百官去塞河。塞河前,武帝率领百官先行祭礼,“沉白马玉壁于河”,然后“令群臣从官自将军已下皆负薪寘决河”。先在决口处用竹子打下一排排桩子,然后再填上百官背来的柴草和土石,加以防塞。除了堵塞决口之外,又为河水开了两条渠道,使其宣泄。又是宣,又是防,所以在这里盖了一座宫殿,称为宣房(取其与防同音)宫。这样做还担心难以成功,武帝于是作了两首《瓠子歌》,第一首是:
瓠子决兮将奈何?皓皓旰旰兮闾殚为河!殚为河兮地不得宁,功无已时兮吾山平。吾山平兮钜野溢,鱼沸郁兮柏冬日。延道驰兮离常流,蚊龙骋兮方远游。归旧川兮神哉沛,不封禅兮安知外!为我谓河伯兮何不仁,泛滥不止兮愁吾人?啮桑浮兮淮泗满,久不反兮水维缓!
第二首是:
河汤汤兮激潺湲,北渡污兮浚流难。搴长茭兮沈美玉,河伯许兮薪不属。薪不属兮卫人罪,烧萧条兮噫乎何以御水?颓林竹兮楗石菑,宣房塞兮万福来!
值得庆幸的是,在数万人的参加下,终于把瓠子决口塞住了,使河南、皖北、苏北一带的人民免受水灾。司马迁参加了这次活动,他通过实地考察的印象和有感而写下《瓠子》之诗而作《河渠书》。
年才28岁司马迁在司马谈死后3年,即元封三年(公元前108年),被任命为太史令,正式开始了他的史官生涯。太史令官阶六百石,在整个官僚机构中是低下的。司马迁对这一任命,还是十分高兴的。这一职务与他立志继承祖业,不辱父命,实现平生抱负的思想最相吻合了。为了当一名称职的史官,他“绝宾客之知,忘家室之业,日夜思竭其不肖之材力,务尽心营职,以求亲媚于主上”(《报任安书》)。这种极想有所作为的得意心情,流露在他给一位朋友的信中。他劝朋友挚峻不要离世隐居,而应该跟他一样,登上政治舞台,施展自己的才华,建功立业。据严可均《全汉文》载,他在信中说:
“迁闻君子所贵手道者三:太上立德,其次立言,其次立功。伏维的陵(挚峻的字)村能绝人,高尚其志,以善厥身,冰清玉洁,不以细行荷累其名,固已贵矣;然来尽太上之所由也!愿先生少致意焉。”
然而他的朋友挚峻却是一位老于世故的人,宁愿当一辈子隐士也不肯出来,他在给司马迁的回信中说:
“峻闻古之君子,料能而行,度德而出,故悔吝去于身。利不可以虚受,名不可以苟得。汉兴以来,帝王之道,于斯始显,能者见利,不肖者自辱,亦其时也。《周易》“大君有命,小人匆用”,徒欲偃仰从容,以游余齿耳。”
如此韬光养晦是事业心很强的司马迁所做不到的,朋友是朋友,但志向各异。
司马迁为太史令的这一年,正是他处于富有活力的时期。他每天“细史记石室金匮之书”,从浩瀚的断简残编里,“网罗天下放失旧闻”,为继承父亲的遗命做好准备工作。司马迁除了游刃于这些文化遗产之中以外,作为皇帝身边的官员,他还得经常陪同武帝到各地巡视。开阔眼界,了解各地的风土人情有利于他的撰史工作。研究方法,既是太史令的本职工作,也是撰史的一个重要方面的内容。汉兴以来,仍然沿用秦历,即《颛顼历》。《颛顼历》很不精确,以致“朔晦月见,弦望满亏多非是”。司马迁为太史令,很留心这件事,便于元封七年(公元前104年),和大中大夫公孙卿、壶遂等人上书,建议改历,汉武帝认为改历符合统治阶级受命改制的思想,接受了司马迁等人的改历建议,诏令司马迁等人制订汉历。当时参加的人有三四十位,其中公孙卿、儿宽、壶遂、唐都、邓平、洛下闳等,都是有名的专家。当然,主持改历工作的主要是司马迁。司马迁自己也曾说:“余与壶遂定律历”(《韩长孺列传》)。改订后的历法称“太初历”。这是一部“晦、朔、弦、望皆最密,日月如合璧,五星如连珠”(《汉书·律历志》)的精密新历。这个新历一改《颛顼历》以冬十月为岁首的旧例,而改或以春正月为岁首,以建寅之月为正月,即所谓“夏正”。司马迁本是要学孔子的,孔子有“行夏之时”(《论语·卫灵公》)的话,《史记·夏本纪》中也有“孔子正夏时,学者多传《夏小正》”的说法,司马迁主持的这次改历,实现了孔子的理想。“太初历”奠定了现在阴历的基础,支配了中国人的时间观念达两千年以上。太初历对后世的影响之大,在汉代的重要性,就更不必说了。这正是司马迁写《天官书》和《历书》的实际根据和二书的价值所在。伴随历法的改订,武帝下令改元,即改元封七年为太初元年,紧接着的改革是“色尚黄,数用五,定官名,协音律”(《汉书·武帝纪》)。由历法的改订,促进了国家政治制度的改革,使汉王朝的面貌焕然一新。
司马迁立志撰写《史记》十分关心当代史,尤其是对汉武帝的文治武功,他十分崇拜,他在《自序》中说:
“汉兴以来,至明天子,获符瑞,封禅。改正朔,易服色。受命于穆青,泽流罔极,海外殊俗,重译款塞,请来献见者,不可胜道。臣下百官力诵圣德,犹不能宣尽其意。且士贤能而不用,有国者之耻;主上明圣而德不布闻,有司之过也。且余尝掌其官,废明圣盛德不载,灭功臣世家贤大夫之业不述,堕先人之言,罪莫大焉。”
可见他的着述是以汉兴以来的历史为重点。
司马迁为汉的强盛所陶醉,对汉武帝的辉煌业绩也充满了幻想。尽管太史令的工作十分繁忙,他还是夜以继日地赶写《史记》。到天汉二年(公元前99年),已经埋头写《史记》6年的司马迁,惨遭李陵之祸,面临着一场遭难。
天汉二年的夏五月,汉武帝对匈奴再次用兵,他派贰师将军李广利率3万大军,从酒泉(今甘肃酒泉县)出兵,击匈奴右贤王于天山。李陵因立功心切要求参战。
李陵是李广的长子。李陵在年轻的时候当侍中,司马迁在《报任安书》中说:“仆与李陵,俱居门下。”李陵“善骑射”而且谦和、仁爱,人缘极好,所以武帝很赏识他,“以为有李广之风”。他曾带领800骑兵,出居延(今甘肃西北境),深入匈奴2000余里,去探察过地形。回来后,便拜他为骑都尉,命他在酒泉、张掖(今甘肃张掖县西北)一带教练5000名壮士以防西北胡人。这次当李广利出征匈奴,汉武帝便派他随同前往,专管辎重。有着乃祖之风的李陵,不愿屈居人下,便向武帝叩头请求,说他所练的兵,都是荆楚之地的奇才剑客,力能搏虎,射箭百发百中。他愿带领这些壮士独当一面,到单于山前,以分单于兵,这样就可以让匈奴不致专门对付李广利的大军了。武帝听后说:“将士难道还怕隶属什么人么?现在我发的兵多,分不出骑兵给你!”李陵说,他可以不用骑兵,愿以少击众,只带步兵5000人,就能去直捣单于的巢穴!武帝觉得李陵很有气魄,便答应了。武帝为万全计,又派驻居延的强弩都尉路博德率兵接应李陵。路博德从前曾是伏波将军,有过破南越(今天的两广)的大功,他也不肯屈做李陵的助手,便上奏武帝,说现在正是匈奴秋高马肥的时候,不可与之交战。不如待到来春,他和李陵各带5000人,到浚稽山(山名,在今蒙古人民共和国喀尔喀境内)去夹击匈奴,一定会大获全胜。谁知武帝看了奏书后勃然大怒,以为李陵自己后悔了,故意托路博德上书的。当时,匈奴兵已人西河(今内蒙古鄂尔多斯左翼前旗),武帝当即命令路博德将兵去西河,截断钩营之道,同时命令李陵在九月里出发,到达东浚稽山南龙勒河上,观察匈奴兵动向,如不见动静,即先回到受降城(今内蒙古乌拉特旗北),休养士卒。