无来

不管你来还是不来
我都在这里,夜夜点亮
不是为了守候
只是为了做好我自己

0%

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div class="pic"><img src="ttt.jpg"></div>

.pic {

width:182px;
height:277px;
display: flex;
justify-content: center;
align-items: center;

img {
//width: 100%;
//height: 4.61333rem;

width: 100%;
height: 100%;
object-fit:cover;
/*object-fit:none;*/ //none则不改变图片原始尺寸
}
}

RSYNC TO EXFAT DRIVE
These options are friendly to sync to/from an ExFAT drive:

1
rsync -vrltD --progress --stats /source/a/ /dest/a

-vrltD
options from -a friendly with EXFAT.

non-ExFAT rsync:
If one uses the standard rsync options like:

1
rsync -a

they don’t work with an EXFAT drive. You’ll get errors like:

1
RSYNC: MKSTEMP … FAILED: FUNCTION NOT IMPLEMENTED (38)

because EXFAT doesn’t understand permissions, owners, or groups.

RSYNC PROGRESS INDICATOR
In general, rsync progress can be observed on a per-file basis using commands starting with:

1
rsync -av --progress

Overall rsync progress can be observed by:

1
rsync -a --info=progress2

1、《阿尔汉布拉宫的回忆》——塔雷加
  这是被尊称为“近代吉他音乐之父”的西班牙著名吉他作曲家兼演奏家塔雷加的一首最有名的代表作品。
  乐曲描绘了作曲家对西班牙格拉纳达城的一座宫殿的印象。
  全曲的旋律从头至尾都用轮指来演奏,同进配有分解和弦的伴奏,颤的效果发挥得淋漓尽致,无论从演奏技巧或是表现意境方面都有相当的深度。既精妙地描画出阿尔汉布拉宫宫殿的辉煌华丽的景致,又给人以深的感受和回想。
不了解吉他的人很难想像是由一把吉他的独奏来完成的。
2、《阿兰胡埃斯协奏曲》——华金”罗德里格
马德里东南30英里有一座小城名叫阿兰胡埃斯,这里原是波旁王朝的夏宫,西班牙作曲家华金"罗德里格60年前创作的一首吉他曲让它名扬天下,名字就是阿兰胡埃斯协奏曲。
整个乐曲充满一种西班牙式的忧伤,绝不同于欧洲其他地方的那些伤感音乐,具有无比伦比的震撼力,被誉为三大吉他协奏曲之一。
3、《大教堂》——巴里奥斯
说到大教堂就不能不提到它的作者巴里奥斯。由于历史的渊源,南美给人的印象首先要跟西班牙挂上钩:激烈热情的西班牙吉他,粗犷奔放的性格和热辣的Tango。虽然其中具有南美的音乐元素,然而从这收标题音乐的题目就可以看出来,不同于南美的传统风格,这是一首具有理性的、对于最高原则的思索和探求的曲目。也许这就是古典吉他的魅力,它可以在不同时空、不同民族、不同文化的人当中引起共鸣。《大教堂》被算做巴里奥斯4类作品中巴洛克风格的作品之一,然而曲子本身展现的对于人性的关怀和强烈的画面通感又使其极具浪漫时期的人文色彩。
全曲共分三部分:
第一部分:D大调本属于节奏明快的调性,却展现出了略带忧郁的感觉。仿佛祈祷的人站在空旷的教堂中央,缓慢的度步,阳光从巨大彩色的玻璃中透过来,使宁静的教堂带上了斑斓而温暖的色调。
第二部分:这是属于天国的声音。庄重的和弦表现出最崇高的、不可违抗的上帝的律令。似乎在描写天堂的同时勾勒出了人间的疾苦。人世的苦难众多,但是低沉、稳健的低音区奏出了坚强甚至有些悲壮的音符:顶着风雨前进:这是我们唯一的选择。这部分是最能够引起人内心的伤感同时又最能给予人力量的一部分。福田好啊。好啊。好的不能用语言形容啊。
第三部分:进入教堂祈祷的人们,男男女女,老老少少。各人都有各人的不幸,但是得到的答复都是相似的:因为上帝的安慰不会因人而异。
4、《华尔兹》——索尔
华尔兹是一种轻快的三拍子舞曲。这一首华尔兹在世界现代的吉他教材中很常见,指法并不难,但是很好听。它可以帮助初学者找到旋律声部和伴奏声部的层次感。
5、《幻想曲》——穆达雷
幻想曲史上最令人激动人心的吉它曲子,穆达雷的幻想曲没有扫弦,没有轮指,只是拨弦,只能靠曲子本身打动人心,但是他做到了,老练的拨弦手法,优美起伏的曲子令人神往。
6、《吉诺诺它》第一号
十分舒缓悠扬的一首曲子,觉得更像是小品,不长,也没有急迫的那种气势,适合人心情平和是来听。
7、《卡门组曲》——比才
法国作曲家比才于1874年创作的歌剧《卡门》,其中前奏曲是该歌剧中最著名的器乐段落,常单独演奏。一般的歌剧序曲都是用交响方式缩写或提示歌剧内容,这首序曲结构简单,仅仅描写了欢乐气氛和剧中次要人物斗牛士的英勇形象。
开始呈示的快板主题选自歌剧第四幕斗牛士上场时的音乐,生气勃勃、充满活力,表现了斗牛士英武潇洒的形象和斗牛场内兴奋活跃的气氛。由于它带有进行曲特点,故又称《斗牛士进行曲》。
接下来乐曲从A大调转为F大调,出现第二幕中《斗牛士之歌》的副歌音调,具有凯旋进行曲特点,坚定有力的节奏和威武雄壮的曲调表现了斗牛士的飒爽英姿。反复时提高八度,使情绪显得更为高昂。之后再现第一部分主题。
结束部分出现卡门的音乐动机,带有不祥的气氛,在弦乐有力的震音背景下,以大提琴为主的乐器奏曲悲剧性主题,暗示悲剧性的结局,最后在强烈的不和协音响中结束。
8、《骷髅之曲》——圣”桑
很鬼魅的一首曲子,一定得配合着大小提琴一起演奏才会有效果。曲子听起来异样的欢快,令人神往,高潮迭起,小提琴部分是高潮,吉它部分作为铺垫。
9、《魔笛变奏》——索尔
  西班牙著名的作曲家和吉他演奏家索尔被后世尊称为“吉他史上的贝多芬”。《莫扎特“魔笛”主题变奏曲》是索尔根据莫扎特的歌剧《魔笛》第一幕第三场的主题所作的变奏曲。
全曲分序曲、主题、五种变奏、尾声等八个部分。各个部分均有不同的细腻技巧及丰富的音乐性格,只有本人是出色的演奏家才能创作出如此发挥乐器特性的器乐曲,此曲是吉他音乐会上的保留曲目,亦常常作为吉他比赛中的规定曲目之一,以此来说明演奏者的技巧水平和音乐素养。可见此曲在吉他曲中的地位之一斑。
10、《拉斯图利亚斯传奇》—–阿尔贝尼斯
  原曲由西班牙作曲家阿尔贝尼斯作于1896-1897年。原系钢琴组曲《西班牙之歌》(Op.232)的第一曲《前奏曲》,但其写法本身就受到吉它演奏法的影响。主要以吉它独奏曲广为流传。
阿斯图利亚斯地区位于西班牙北部坎塔布连山脉北侧,这一地区历史上经历过多次战争,留下许多传说。中轮扫奏法的运用,增强了乐曲前后段落强烈的节奏性和戏剧性。中间部主题的性格与前后部分形成鲜明对比。在徐缓速度上吟唱的中间部主旋律充满内在的激情。《阿斯图利亚斯传奇》也是著名的古典吉他经典保留曲目。
11、《玛祖卡》—–塔雷加
  塔雷加在演奏技法上,尤其在弹弦上塔雷加别开生面。他还使泛音奏法尤其是八度的泛音奏法成为吉他常用的一种演奏技法而丰富了吉他在音色方面的表现性能。
塔雷加创作的吉他曲约八十首,其中《阿尔罕布拉宫的回忆》,《阿拉伯风格随想曲》,《前奏曲集》已成为吉他音乐的古典名作。
此外抒情而高度发挥了吉他乐器独特的表现性能的《晨歌》,《泪》,《阿德丽塔(玛祖卡)》等吉他音乐小品也成为经常演奏大保留曲目。
12、《梦中森林》—-巴里奥斯
巴里奥斯的《森林之梦》是一首对吉他演奏者不论是技巧(尤其是轮指的技巧)上,还是音乐上进行全面考验的曲子。   
13、《莫扎特小夜曲》—-莫扎特
莫扎特的音乐清明高远,乐天愉快,淳朴优美,其挚温暖,有如天籁一般。常常被誉为“永恒的阳光”。SPring Spring (春泉)。莫扎特在严酷命运的摧残之下默默地承受着、孕育着、奉献着……象殉道的使徒般唱着温馨甘美的音乐安慰着自己,安慰着整个世界。
14、《平安夜》—-弗朗兹”格鲁贝尔
格鲁贝尔的这首平安夜,也是异常出名的古典吉他名曲。平安夜降临前听着如此婉转,神往的吉它曲子,不禁期盼来年的美好,也让你思绪万千,魂牵梦绕。其中的轮指虽然不多却也异常好听,特别喜欢结尾。
15、《西班牙舞曲》—-格拉纳多斯
在那部举世闻名的芭蕾剧《天鹅湖》里面,柴可夫斯基引用了大量的各个国家的民族旋律,其中有西班牙、意大利、波兰甚至中国旋律。而这首西班牙舞曲是里面非常热辣的一段,节奏飞快。
16、《西西里舞曲》—-雷史毕基
西西里舞曲也是相当动听,似乎能将我们带到中古世纪里的意境中,非常地优雅安逸。
17、《月光狂想曲》
改编的月光狂想曲,由吉他和着钢琴的声音,表现出寂静的夜晚明媚的音乐光下作者澎湃的思绪,倾吐着内心的感受,确实适合晚上独奏。
18、《忧伤圆舞曲》—-西贝柳斯
芬兰作曲家西贝流士(J. Sibelius)宛如小型交响试的「忧伤圆舞曲」(Valse Triste, Op.44-1, 1904)原本是他为妻舅Armas Jarnefelt的剧作【死神】(Kuolema)谱写的一段配乐,以伴隨死神趁著垂死老妇隨伺的儿子睡著之际,化身做其亡夫邀舞的情节;主題动机以相當隐喻的旋律展开預示死亡,中段的相当甜美的旋律延伸出高昂的情绪,象徵与亡夫相逢的喜悅,最初的阴沉旋律最后仍接管了一切,末尾三個不安的和弦意味死神在儿子醒來的那一刻,帶走了他的母亲。这种摻杂哀伤与欢乐的情绪正是人生的最佳写照,加上此曲沙龙味十足,出版后成了当时欧洲咖啡屋的热门曲目。
19、《月光》—-索尔
作者是19世纪杰出的吉他艺术家费尔南度";索尔,该曲指法变化不多,演奏速度较慢,技术难度不高,是首容易弹奏的曲子。
但该曲展现了一幅田野、河流、村庄在朦胧的月光下,万籁俱寂、大地一片银光的美丽画面,它与贝多芬的钢琴曲《月光》有着异工同曲之妙,展现给人们一幅梦幻般迷人的景色。索尔被誉为“吉他史上的贝多芬”是受之无愧。《月光》也成为了古典吉他曲中的不朽名曲。
20、《爱的罗曼史》—-叶佩斯
  《爱的罗曼史》这首乐曲,主旋律取材于西班牙传统民谣。1952年,法国影片《被禁止的游戏》的导演,邀请西班牙著名吉他演奏家叶佩斯,为这部影片配乐。
耶佩斯别出心裁,只采用一把吉他为整部影片配曲,并且由他一人独奏。该影片的主题音乐就是这首《爱的罗曼史》。影片《被禁止的游戏》上映以后,《爱的罗曼史》广为流传,并成为所有知名吉他演奏家的保留曲目。
乐曲优美纯朴的旋律与清澈的分解和弦完全溶为一体,充满温柔和浪漫的气息,《爱的罗曼史》甚至成为吉他的同义词,是吉他曲中的一首不朽名作。
21、《悲伤西班牙》—-尼古拉﹒德﹒安捷罗斯
一首同样忧伤但动听的西班牙吉他曲
22、《镜中的安娜》—-尼吉拉.德.安捷罗斯
浪漫柔美得吉他曲《镜中的安娜》,这首名曲是法国吉他大师尼吉拉.德.安捷罗斯演奏的。尼古拉以此曲一举成名,独特的弹奏将吉他滑音的魅力表现得淋漓尽致,分解和弦伴奏富有动感,與旋律有機的结合,给人以心旷神怡的感受,使人们越聽越能更深刻地理解它,是一首極其美丽的吉他曲。
23、《卡尔卡西练习曲》—–卡尔卡西
在古典吉他的练习曲中,卡尔卡西的练习曲占有相当的地位。而卡尔卡西的25首练习曲,作品第60号,则是卡尔卡西的代表作,也是学习古典吉他的学生从初级向中级迈进的重要练习曲目。这首乐曲就选自其中的第3号A大调《小行板》。由带再现的单二部曲式构成这首乐曲,用分散和弦的三连音贯穿全曲,力度的强弱变化突出。
24、《绿袖子》―――英国民谣
绿袖子,是一首英国民谣,在依丽莎白女王时代就已经已广为流传,相传是英皇亨利八世所作(他是位长笛 家),根据19世纪英国学者威廉";查培尔(William Chappell)所做的研究资料指出,《绿袖子》的旋律最早是记录在16世纪末英国著名的鲁特琴曲集《WilliamBallet\’s Lute Book》,歌词部份则出现在1584年。然而这首歌曲真正广为流传开来,则是在英国作曲家约翰";盖伊(John Gay)将它编入为了对抗意大利歌剧所创作的 《乞丐歌剧》(The Beggar\’s Opera,1728)中。
这首民谣的旋律非常古典而优雅,是一首描写对爱情感到忧伤的歌曲,但它受到世人喜爱的层面却不仅仅局限在爱情的领域,有人将它换了歌词演唱、也有人将它作为圣诞歌曲,而它被改编为器乐演奏的版本也是多不胜数,有小品、有室内乐、有管弦乐…,而这其中又以上述的《乞丐歌剧》和英国作曲家佛汉威廉斯(Vaughan illiams)所写的《绿袖子幻想曲》(“Fantasia on Greensleeves”)最具代表性。
在《绿袖子》的诸多乐器版本中,最能表现此曲略为凄美的情境,除了最早的鲁特琴版本、吉他版本一直以其独特的音色占有独特的表现地位。
25、《雨滴》—-林塞
《雨滴》是一首著名的典型吉他曲,它描写了雨过天睛这后,漫步于林中小径,聆听枝尖叶梢滴水的情景.全曲没有特别艰深的技巧,然而它所能表达的情绪与装饰音的效果,除了吉他这外,没有任何一种其它乐器代替得了.演奏时速度自由流畅,慢而不拖,快而不乱,形成自然地流动。
26、《悲伤礼拜堂》—-Vicente Gomez
作者此曲是为了献给自己的父亲,所以比较庄重,但也藏着深情,乐曲缺少了以往那种欢快的气氛,转而像是一种陈述,一种表达,一种怀念,不多说了,自己听听吧。
27、《泪》—-塔雷加
这是塔雷加的十分脍炙人口的小品之一。全曲仅有十六小节,但仍然发挥了吉他音色的多彩性。通过对吉他六条弦的交替弹奏,典型地表露在小品中追求吉他音调色彩的塔雷加的风格。优美的旋律并非是深沉的哀泣,更像是天真的孩子流出快乐而兴奋的眼泪。
28、《小罗曼史》—-路易斯 华歌
露伊丝"娃可(Luise Walker, 1910-1998),1910年出生于奥地利维也纳,为20世纪吉他乐史上最具代表性的女性演奏家之一。她在八岁时开始学习吉他,不久后就展现出惊人的天赋。14岁举行生平第一次的独奏会,观众为之疯狂,随即很快在欧洲名声大振,并开始以职业演奏家的身份应邀到欧美各国演出。
《小罗曼史》是露伊丝的作品之一,也是深受许多学生喜爱的吉他小品。以往曾经有文章介绍说此曲是讲述一个失恋少女的故事,其故事虽然缠绵悱恻,其真实性却有待推敲。
全曲分为A,B,C三个段落,每一段落均有反复,后面有一段再现(A )段的尾奏(coda),所以可以称为是单纯的三段体曲式。
乐曲一开始的A段(6/8拍子),这是一段酷似维拉罗伯士(H.Villa Lobos)<<第一号前奏曲>>的主题,过去就曾见到有学生在音乐会上将这两首作品“混为一弹”,确实令人有些啼笑皆非。在这一段中,主题以“模仿大提琴”的效果在5、6弦上缓缓的唱出略微感伤的旋律,谱上德文写 Getragen Mitviel Ausdrucksvoll,其意就是“非常有感情地 ”。
乐曲进入B段后,节奏转为4/4拍子,乐谱上提示出Lebhaft(活泼生动)的演奏要求,所以这一段的情绪明显地要比A段来得轻松、活泼许多,使人感受到盎然的蓬勃朝气。
而在接下来的C段,节奏仍然维持在4/4拍子,这是一段全部为三连音分解和弦作成的主题,其中所运用的和声及旋律,又与《爱的罗曼史》一曲有着几分神似,充分地表达出吉他无穷的魅力。乐曲最后的尾奏短暂地再现了 A段的主题,随后以四个中止式的和弦简洁有力地结束全曲,整首作品优雅细致、极具抒情色彩。
29、《大霍塔舞曲》 —-塔雷加
泰雷加一生创作的大量作品中有不少是不朽名作。他的绝大多数作品都是以突出吉他的音乐性、抒情性为主,唯独《大霍塔舞曲》炫耀了吉他各种各样的技巧,包括许多特殊技法:快速半音阶,琶音,分解和弦,揉弦,轮指,上下行涟音奏法,滑音奏法,靠弦与不靠弦奏法,泛音奏法,左手单手涟音奏法,大鼓奏法,小鼓奏法,单簧管奏法,大管(巴松管)奏法等等。可以说这支曲子几乎包括了古典吉他全部技法,弹奏这首乐曲需要相当的功底才能真正应付自如。
30、《樱花变奏曲》—–横尾幸弘
日本名谣,横尾幸弘改编为《樱花变奏曲》,分前奏、主题、3个变奏、尾声6个部分。
31、《大序曲》—-朱利亚尼
弹奏朱里亚尼的《大序曲》,需要有非常熟练的技巧和高度激动的热情,才能把这首曲子表现得淋漓尽致。
大序曲开始是15小节的序奏,a小调,4/4拍,行板,可分为三段,前4小节为第一段,乐曲一开始的第一个主和弦就给人以强有力的乐队全奏的感觉,然后是分解和弦,渐弱之后到第二小节第二拍是一个突强的和弦,接下来第三小节是很弱的、模仿木管乐器演奏的分解属七和弦。到第四小节第二拍,又是一个突强和弦,形成序奏第一段的小高潮。
序奏的第二段是个过渡句,在力度上明显地由弱到强,这三小节的过渡引出了序奏的第三小段。序奏的第三小段使用不断重复的低音加上此起彼伏的分解和弦,把序奏引向高潮,然后又渐慢、渐弱,一直到序奏的结尾。
32、《小夜曲》—–舒伯特

小夜曲这是舒伯特短促的一生中最后完成的独唱艺术歌曲之一,也是舒伯特最为著名的作品之一。此曲采用德国诗人莱尔斯塔勃的诗篇谱写成。“吉他是非常美妙的乐器,然而,能了解其中奥妙者,则寥寥无几”,这是舒伯特的一句话。他给我们留下了非常美妙的吉他室内乐作品,如由吉他、横笛、中音提琴及大提琴演奏的四重奏就是这一首作品。

33、《少女的祈祷》—–巴达捷斯卡·太克拉
  《少女的祈祷》是一首由钢琴经典小品改编的古典吉他曲。该曲作于1859年,初刊登在法国巴黎一家音乐杂志的副刊上,但很快就不胫而走,成为畅销一时的名曲,此后相继以八十余种不同版本风行全球。
作者芭达捷芙斯卡是一位女钢琴家,她生于波兰首都华沙,二十四岁时就过早地离开了人世,留给我们的只有这一首名曲。虽然世人对于本曲的作曲经过已无从知晓,但这首乐曲在形式上只不过是简单的变奏曲,却由于命名为《少女的祈祷》而蜚声世界,久盛不衰,也许应归功于作曲者的匠心独具,抑或是出版商的精明,总之,这不能不说是音乐史上的一个奇迹。
乐曲的结构极其简单,为速度适中的行板,以下行音为中心的四小节前奏之后,乐曲呈现出温婉而幽丽的主题;此后是主题的四种变奏形式,最后一个变奏以三连音符为主,饱含热情,和声只是一些属七和弦和主三和弦而已。本曲形象单纯、手法朴素。俄国杰出的文学家契诃夫曾在他的著名剧作《三姐妹》中引用此曲作为配乐。
34、《阿拉伯风格绮想曲》—–塔雷加
《阿拉伯风格绮想》,也是有近代"吉他音乐之父”之称的塔雷加的代表作品之一,曾被后人称赞为“吉他演奏技术与音乐表现最合理的结合”。
全曲中小夜曲风格的主题与变化的旋律交替出现。悠然自得的主旋律和华彩乐段几乎扩展到吉他的全部音域。充分发挥了吉他六根弦各个音区的不同音色特点,表现了吉他魅力之所在。
塔雷加和别的古典派作曲家不同,很少写奏鸣曲或协奏曲等室内作品,而专注于吉他小品之作曲和编曲,这首曲子中飘忽变化的旋律,表现了抒情悠扬的小夜曲风格,使人在广阔音域中欣赏到吉他的美妙的音色。
35、《最后的颤音》—-巴里奥斯
巴里奥斯的《最后的颤音》,旋律优美、神秘悠远而带有沉思意境,在潺潺流水般的轮指下,像是悠悠地诉说着巴里奥斯生平的故事。
36、《阿狄利达》—-塔雷加
阿狄利达与《泪》一样,学习塔雷加的初学者必须学习《阿狄利达》。此曲以较缓慢的速度演奏,曲中在明朗歌唱的部分采用高音部的滑音演奏法,这是吉他以外乐器所无法表现的。
37、《卡伐蒂娜》—-史坦利 梅耶
  与另一只吉他名曲《爱的罗曼斯》有惊人的异曲同工之妙。这只乐曲出自英国作曲家斯坦尼.麦尔斯的笔下。在电影《猎鹿人》中,导演邀请了享有“吉他王子”美誉的吉他演奏家约翰.威廉斯(John williams)来担任配乐演奏。乐曲在电影放映之后一举风靡全球。
“卡伐蒂那”原意是指短小的抒情歌曲,在器乐上是指旋律优美动听的小品。这只乐曲也正是这样一只曲子。乐曲在轻柔的分散和弦的伴奏下奏出舒缓如歌的旋律,意境温柔而浪漫,充满了向往与憧憬,最后在无穷的眷恋中结束了全曲。这只迷人的乐曲深受人们的喜爱,但涉及到的技巧内容要远比《爱的罗曼斯》复杂的多。
38、《罗密欧与朱丽叶》—–普罗柯菲耶夫
一个传统的爱情故事,用一段音乐就真实地表现出来了。于是《罗密欧与朱丽叶》的主题很快风靡全球,并被改编成钢琴、小提琴等多种音乐形式。现在,我们不妨从吉他中去感受这段忧郁的旋律……
39、《小行板圆舞曲》—–卡诺
西班牙吉他演奏家安东尼";卡诺(Antoni Cano,1811-1897)生于洛尔卡。卡诺早年学医,取得外科医生资格后回故乡行医数年。同时学习音乐。此后,曾在宫廷演奏并任职。1813年索尔由于政治原因离开祖国,流亡巴黎。在巴黎他得到凯鲁比尼(Linsi Cherabini,1760-1842),梅于尔(Etienne-Nicolas Aehul,1763-1817),贝尔东(Henri Montan Berton,1767-1844)等好友的热烈支持。于是这位失意的军人,又在诸友的劝慰下,再度重返艺术家的生涯。
40、《追想曲》 —–阿兰布拉
阿兰布拉的《追想曲》被赞为历史上最浪漫的追想曲,记得以前上海每天早上有一个广播,主持人是裴子安,她主持的节目背景音乐放的一直是这首歌曲,确实是很优美。
41、《随想曲第24号》——帕格尼尼
闻名于世的“二十四首随想曲”是浪漫时期“琴魔”帕格尼尼的小提琴曲集,由于帕格尼尼亦是一位吉他演奏者,其作曲思维也受到吉他演奏法的影响,所以这二十四首随想曲改编为吉他作品也很自然与小提琴比各有千秋,其中第二十四首无论是小提琴还是吉他都演奏的较多,它的一首变奏曲作曲手法很有新意、技巧高难,“琴魔”狂傲之气尽现无遗。
42、《美人鱼小夜曲》——-那卡巴亚西
听着这首《美人鱼小夜曲》仿佛来到了丹麦那个童话世界,来到了海边看到了那个美人鱼雕像。而且,本曲子需要颤音技巧;《美人鱼小夜曲》的轮指全部是轮一弦,使得轮指难度相对较低,同时它的左手没有太难的指法,不会成为演奏上的障碍。而《阿尔罕布拉宫的回忆》则不同,上来就是轮指轮二弦,这样声音不易出来,连贯性也不易弹好。

本文介绍mysqldiff工具来比较数据表结构,并生成差异SQL语句。

mysqldiff类似Linux下的diff命令,用来比较对象的定义是否相同,并显示不同的地方。

如果要比较数据库是否一致,可以用另外一个工具:mysqldbcompare(点击查看教程)。

以下是mysqldiff的用法。

1 安装

mysqldiff是MySQL Utilities中的一个脚本,默认的MySQL不包含这个工具集,所以需要独立安装。

MySQL Utilities下载地址:http://downloads.mysql.com/archives/utilities/。
Windows系统中需提前安装“Visual C++ Redistributable Packages for Visual Studio 2013”,下载地址:https://www.microsoft.com/en-gb/download/details.aspx?id=40784。
Linux系统在下载页面选择对应发行版。

2 语法

mysqldiff的语法格式是:

1
$ mysqldiff --server1=user:pass@host:port:socket --server2=user:pass@host:port:socket db1.object1:db2.object1 db3:db4

这个语法有两个用法:

1
2
3
4
5
6
7
8
9
10
11
12
db1:db2:如果只指定数据库,那么就将两个数据库中互相缺少的对象显示出来,不比较对象里面的差异。这里的对象包括表、存储过程、函数、触发器等。
db1.object1:db2.object1:如果指定了具体表对象,那么就会详细对比两个表的差异,包括表名、字段名、备注、索引、大小写等所有的表相关的对象。
接下来看一些主要的参数:

--server1:配置server1的连接。
--server2:配置server2的连接。
--character-set:配置连接时用的字符集,如果不显示配置默认使用character_set_client。
--width:配置显示的宽度。
--skip-table-options:保持表的选项不变,即对比的差异里面不包括表名、AUTO_INCREMENT、ENGINE、CHARSET等差异。
-d DIFFTYPE,--difftype=DIFFTYPE:差异的信息显示的方式,有[unified|context|differ|sql],默认是unified。如果使用sql,那么就直接生成差异的SQL,这样非常方便。
--changes-for=:修改对象。例如--changes-for=server2,那么对比以sever1为主,生成的差异的修改也是针对server2的对象的修改。
--show-reverse:在生成的差异修改里面,同时会包含server2和server1的修改。

3 范例

先创建两个表。

use study;

create table test1(
id int not null primary key,
a varchar(10) not null,
b varchar(10),
c varchar(10) comment ‘c’,
d int
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’test1’;

create table test2(
id int not null,
a varchar(10),
b varchar(5),
c varchar(10),
D int
)ENGINE=myisam DEFAULT CHARSET=utf8 COMMENT=’test2’;
不使用–skip-table-options,

mysqldiff –server1=root:root@localhost –server2=root:root@localhost –changes-for=server2 –show-reverse –difftype=sql study.test1:study.test2

使用--skip-table-options

如果需要生成SQL文件,加上输出就可以了:

1
mysqldiff --server1=root:root@localhost --server2=root:root@localhost --changes-for=server2 --show-reverse --difftype=sql study.test1:study.test2 > output.sql

说明:执行MySQL语句时可能会遇到这样错误:`Error 1054 - Unknown column ‘name’ in ‘aspect’``

这是因为mysqldbcompare生成的ALTER语句中,用逗号,拼装了多条ADD、CHANGE等语句,如果这些语句还包含AFTER关键字,就会提示这个错误并中断执行MySQL语句。解决的办法就是:去除AFTER及其后面的条件。

这可能是MySQL的一个Bug,详情参考:http://bugs.mysql.com/bug.php?id=34972http://bugs.mysql.com/bug.php?id=60650。

mysqldbcompare用于比较两个服务器或同个服务器上的数据库,有文件和数据,并生成差异性SQL语句。

要比较数据表,请用另外一个工具:mysqldiff(点击查看教程)。

以下是mysqldbcompare的用法。

1 安装

mysqldbcompare是MySQL Utilities中的一个脚本,默认的MySQL不包含工具集,所以需要独立安装。

MySQL Utilities下载地址:http://downloads.mysql.com/archives/utilities/。
Windows系统中需提前安装“Visual C++ Redistributable Packages for Visual Studio 2013”,下载地址:https://www.microsoft.com/en-gb/download/details.aspx?id=40784。
Linux系统在下载页面选择对应发行版。

2 语法

mysqldbcompare的语法如下:

1
$ mysqldbcompare --server1=user:pass@host:port:socket --server2=user:pass@host:port:socket db1:db2

以上参数中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
--server1:MySQL服务器1配置。
--server2:MySQL服务器2配置。如果是同一服务器,--server2可以省略。
db1:db2:要比较的两个数据库。如果比较不同服务器上的同名数据库,可以省略:db2。
--all:比较所有两服务器上所有的同名数据库。--exclude排除无需比较的数据库。
--run-all-tests:运行完整比较,遇到第一次差异时不停止。
--changes-for=:修改对象。例如--changes-for=server2,那么对比以sever1为主,生成的差异的修改也是针对server2的对象的修改。
-d DIFFTYPE,--difftype=DIFFTYPE:差异的信息显示的方式,有[unified|context|differ|sql],默认是unified。如果使用sql,那么就直接生成差异的SQL,这样非常方便。
--show-reverse:在生成的差异修改里面,同时会包含server2和server1的修改。
--skip-table-options:保持表的选项不变,即对比的差异里面不包括表名、AUTO_INCREMENT、ENGINE、CHARSET等差异。
--skip-diff:跳过对象定义比较检查。所谓对象定义,就是CREATE语句()里面的部分,--skip-table-options是()外面的部分。
--skip-object-compare:默认情况下,先检查两个数据库中相互缺失的对象,再对都存在对象间的差异。这个参数的作用就是,跳过第一步,不检查相互缺失的对象。
--skip-checksum-table:数据一致性验证时跳过CHECKSUM TABLE。
--skip-data-check:跳过数据一致性验证。
--skip-row-count:跳过字段数量检查。

3 示例

比较两个数据库,并生成差异SQL:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ mysqldbcompare --server1=root:root@localhost --server2=root:root@localhost db1:db2 --changes-for=server1 -a --difftype=sql

# WARNING: Objects in server1.db1 but not in server1.db2:
# TABLE: table2
#
# WARNING: Objects in server1.db2 but not in server1.tb1:
# TABLE: table3
#
# Defn Row Data
# Type Object Name Diff Count Check
#-------------------------------------------------------------------------
# TABLE t1 pass pass -
# - Compare table checksum FAIL
# - Find row differences FAIL
#
# Transformation for --changes-for=server1:
#

# Data differences found among rows:
UPDATE db1.t1 SET b = 'Test 123' WHERE a = '1';
UPDATE db1.t1 SET b = 'Test 789' WHERE a = '3';
DELETE FROM db1.t1 WHERE a = '4';
INSERT INTO db1.t1 (a, b) VALUES('5', 'New row - db2');


# Database consistency check failed.
#
# ...done

WARNING之后提示两个数据库表之间的差异,也就是一个数据库中有,另一个数据库没有的数据表。

之后就是差异的SQL语句了,把有#号注释的行删掉,就能直接在数据库中执行了。

说明:执行MySQL语句时可能会遇到这样错误:`Error 1054 - Unknown column ‘name’ in ‘aspect’``

这是因为mysqldbcompare生成的ALTER语句中,用逗号,拼装了多条ADD、CHANGE等语句,如果这些语句还包含AFTER关键字,就会提示这个错误并中断执行MySQL语句。解决的办法就是:去除AFTER及其后面的条件。

这可能是MySQL的一个Bug,详情参考:http://bugs.mysql.com/bug.php?id=34972http://bugs.mysql.com/bug.php?id=60650。

Yii2 advanced add module

在Yii2高级版添加新的模块

0 下载Yii2框架,配置环境

https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-installation.md

1 先在项目的根目录下复制一份 backend 为 api

1
cp backend/ api -r

2 拷贝 api 环境

1
2
cp -a environments/dev/frontend environments/dev/api
cp -a environments/prod/frontend environments/prod/api

3 修改 environments/index.php 文件之后的代码(主要是添加了一些 api 相关的代码)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
return [
'Development' => [
'path' => 'dev',
'setWritable' => [
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
'api/runtime',
'api/web/assets',
],
'setExecutable' => [
'yii',
],
'setCookieValidationKey' => [
'backend/config/main-local.php',
'frontend/config/main-local.php',
'api/config/main-local.php',
],
],
'Production' => [
'path' => 'prod',
'setWritable' => [
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
'api/runtime',
'api/web/assets',
],
'setExecutable' => [
'yii',
],
'setCookieValidationKey' => [
'backend/config/main-local.php',
'frontend/config/main-local.php',
'api/config/main-local.php',
],
],
];

4 然后再执行初始化命令

1
php init

5 然后记得去 common/config/bootstrap.php 最后一行添加如下代码:

1
Yii::setAlias('api', dirname(dirname(__DIR__)) . '/api');

6 修改一下配置文件 api/config/main.php

1
2
3
4
5
return [
'id' => 'app-api',
// ...
'controllerNamespace' => 'api\controllers',
]

7 api 里面的控制器等有命名空间的文件

8

三十二品

法善大妙

正无,依一
庄无,尊

离持,能究一法
离非,无尽福化
法无,不威,一知应

开经偈

无上甚深微妙法
百千万劫难遭遇
我今见闻得受持
愿解如来真实义
南无祇园会上佛菩萨
南无祇园会上佛菩萨
南无祇园会上佛菩萨

《金刚般若波罗蜜经》

姚秦三藏法师 鸠摩罗什 译

第一品 法会因由分

如是我闻:
一时,佛在舍卫国祇树给孤独园,与大比丘众千二百五十人俱。
尔时世尊,食时,著衣持钵,入舍卫大城乞食。于其城中,次第乞已,还至本处。饭食讫,收衣钵,洗足已,敷座而坐。

第二品 善现启请分

时长老须菩提在大众中,即从座起,偏袒右肩右膝着地,合掌恭敬而白佛言:“稀有,世尊!如来善护念诸菩萨,善付嘱诸菩萨。世尊,善男子、善女人,发阿耨多罗三藐三菩提心,应云何住,云何降伏其心?”

佛言:“善哉!善哉!须菩提,如汝所说,如来善护念诸菩萨,善付嘱诸菩萨。汝今谛听,当为汝说。善男子,善女人,发阿耨多罗三藐三菩提心,应如是住,如是降伏其心。”

“唯然,世尊,愿乐欲闻”

第三品 大乘正宗分

佛告须菩提:“诸菩萨摩诃萨,应如是降伏其心,所有一切众生之类,若卵生,若胎生,若湿生,若化生,若有色,若无色,若有想,若无想,若非有想非无想。我皆令入无余涅槃而灭度之。如是灭度无量无数无边众生,实无众生得灭度者。
何以故?须菩提,若菩萨有我相、人相、众生相、寿者相,即非菩萨。”

第四品 妙行无住分

“复次,须菩提,菩萨于法,应无所住行于布施,所谓不住色布施,不住声香味触法布施。
须菩提,菩萨应如是布施,不住于相。
何以故?若菩萨不住相布施,其福德不可思量。
须菩提,于意云何?东方虚空可思量否?”
“不也,世尊”
“须菩提,南西北方,四维上下虚空可思量不?”
“不也,世尊”

“须菩提,若菩萨无住相布施,福德亦复如是,不可思量。
须菩提,菩萨但应如所教住。”

第五品 如理实见分

“须菩提,于意云何?可以身相见如来不?”
“不也,世尊。不可以身相得见如来。”
“何以故?如来所说身相,即非身相”
佛告须菩提:“凡所有相,皆是虚妄,若见诸相非相,即见如来”

第六品 正信稀有分

须菩提白佛言:“世尊,颇有众生,得闻如是言说章句,生实信不?”
佛告须菩提:“莫作是说,
如来灭后,后五百岁,有持戒修福者,于此章句,能生信心,以此为实。
当知是人,不于一佛二佛三四五佛而种善根,已于无量千万佛所种诸善根。
闻是章句乃至一念生净信者,须菩提,如来悉知悉见,是诸众生得如是无量福德。
何以故?是诸众生无复我相、人相、众生相、寿者相,无法相亦无非法相。
何以故?是诸众生,若心取相,则为著我、人、众生、寿者。若取法相,即著我、人、众生、寿者。
何以故?若取非法相,即著我、人、众生、寿者。
是故不应取法,不应取非法。
以是义故,如来常说,汝等比丘,知我说法,如筏喻者。法尚应舍,何况非法。”

第七品 无得无说分

“须菩提,于意云何?如来得阿耨多罗三藐三菩提耶?如来有所说法耶?”
须菩提言:“如我解佛所说义,无有定法,名阿耨多罗三藐三菩提.亦无有定法,如来可说。
何以故?如来所说法,皆不可取、不可说,非法非非法。
所以者何?一切贤圣、皆以无为法而有差别。”

第八品 依法出生分

“须菩提,于意云何?若人满三千大千世界七宝以用布施,是人所得福德,宁为多不?”
须菩提言:“甚多,世尊,
何以故?是福德即非福德性,是故如来说福德多。”

“若复有人,于此经中受持乃至四句偈等,为他人说,其福胜彼。
何以故?须菩提,一切诸佛,及诸佛阿耨多罗三藐三菩提法,皆从此经出。
须菩提,所谓佛法者,即非佛法”

第九品 一相无相分

“须菩提,于意云何?须陀洹能作是念,我得须陀洹果不。”
须菩提言:“不也,世尊。
何以故?须陀洹名为入流,而无所入,不入色身香味触法,是名须陀洹。”

“须菩提,于意云何?斯陀含能作是念,我得斯陀含果不?”
须菩提言:“不也,世尊
何以故?斯陀含名一往来,而实无往来,是名斯陀含。”

“须菩提,于意云何?阿那含能作是念,我得阿那含果不?”
须菩提言:“不也,世尊。
何以故?阿那含名为不来,而实无不来,是名阿那含”

“须菩提,于意云何?阿罗汉能作是念,我得阿罗汉道不?”
须菩提言:“不也,世尊
何以故?实无有法名阿罗汉,
世尊,若阿罗汉作是念,我得阿罗汉道。即著我、人、众生、寿者。
世尊,佛说我得无诤三昧,人中最为第一,是第一离欲阿罗汉
我不作是念,我是离欲阿罗汉,
世尊,我若作是念,我得阿罗汉道,世尊则不说须不提是乐阿兰那行者
以须菩提实无所行,而名须菩提是乐阿兰那行”

第十品 庄严净土分

佛告须菩提:“于意云何?如来昔在燃灯佛所,于法有所得不?”
“不也,世尊。如来在燃灯佛所,于法实无所得。”
“须菩提,于意云何,菩萨庄严佛土不?”
“不也,世尊。
何以故?庄严佛土者,即非庄严,是名庄严。”

“是故,须菩提,
诸菩萨摩诃萨,应如是生清净心,不应住色生心,不应住声香味触法生心,应无所住而生其心。
须菩提,譬如有人身如须弥山王,于意云何,是身为大不?”
须菩提言:“甚大,世尊。
何以故?佛说非身,是名大身。”

第十一品 无为福盛分

“须菩提,
如恒河中所有沙数,如是沙等恒河,于意云何,是诸恒河沙,宁为多不?”
须菩提言:“甚多,世尊。但诸恒河尚多无数,何况其沙。”
“须菩提,我今实言告汝,
若有善男子、善女人,以七宝满尔所恒河沙数三千大千世界,以用布施,得福多不?”
须菩提言:“甚多,世尊。”
佛告须菩提:“若善男子、善女人,于此经中,乃至受持四句偈等,为他人说。而此福德胜前福德。”

第十二品 尊重正教分

“复次,须菩提,
随说是经乃至四句偈等,当知此处,一切世间天、人、阿修罗,皆应供养,如佛塔庙。
何况有人,尽能受持读诵。
须菩提,当知是人,成就最上第一希有之法。
若是经典所在之处,即为有佛,若尊重弟子。”

第十三品 如法受持分

尔时,须菩提白佛言:“世尊,当何名此经,我等云何奉持?”
佛告须菩提:“是经名为金刚般若波罗蜜,以是名字,汝当奉持。
所以者何?须菩提,佛说般若波罗蜜,即非般若波罗蜜,是名般若波罗蜜
须菩提,于意云何,如来有所说法不?”
须菩提白佛言:“世尊,如来无所说。”

“须菩提,于意云何,三千大千世界所有微尘,是为多不?”
须菩提言:“甚多,世尊。”
“须菩提,诸微尘,如来说非微尘,是名微尘。
如来说世界,即非世界,是名世界。”
“须菩提,于意云何,可以三十二相见如来不?”
“不也,世尊,不可以三十二相得见如来。
何以故?如来说三十二相,即是非相,是名三十二相。”

“须菩提,若有善男子、善女人,以恒河沙等身命布施,若复有人,于此经中,乃至四句偈等,为他人说,其福甚多。”

第十四品 离相寂灭分

尔时,须菩提闻说是经,深解义趣,涕泪悲泣而白佛言:
“稀有,世尊。佛说如是甚深经典,我从昔来所得慧眼,未曾得闻如是之经。
世尊,若复有人得闻是经,信心清净,则生实相。当知是人,成就最上第一希有功德。
世尊,是实相者即是非相,是故如来说名实相。
我今得闻如是经典,信解受持,不足为难,若当来世,后五百岁,其有众生,得闻是经,信解受持,是人则为第一希有。
何以故?此人无我相,无人相,无众生相,无寿者相。
所以者何?我相即是非相,人相、众生相、寿者相,即是非相。
何以故?离一切诸相即名诸佛。”

佛告须菩提:“如是如是,若复有人,得闻是经,不惊不怖不畏。当知是人甚为稀有。
何以故?须菩提,如来说第一波罗蜜,即非第一波罗蜜,是名第一波罗蜜”
“须菩提,忍辱波罗蜜,如来说非忍辱波罗蜜,是名忍辱波罗蜜。
何以故?须菩提,如我昔为歌利王割截身体,我于尔时,无我相、无人相、无众生相、无寿者相。
何以故?我于往昔节节支解时,若有我相、人相、众生相、寿者相,应生嗔恨。”

“须菩提,又念过去于五百世做忍辱仙人,于尔所世,无我相、无人相、无众生相、无寿者相。
是故,须菩提,菩萨应离一切相,发阿罗多诺三藐三菩提心,不应住色生心,不应住声香味触法生心,应生无所住心,若心有住则为非住,是故佛说菩萨心不应住色布施。
须菩提,菩萨为利益一切众生,应如是布施。
如来说一切诸相,即是非相,又说一切众生,即非众生,
须菩提,如来是真语者,实语者,如语者,不诳语者,不异语者。
须菩提,如来所得法,此法无实无虚,
须菩提,若菩萨心住于法而行布施,如人入暗,则无所见。若菩萨心不住法而行布施,如人有目,日光明照,见种种色。”

“须菩提,当来之世,若有善男子、善女人,能于此经受持读诵,则为如来。以佛智慧,悉知是人,悉见是人,皆得成就无量无边功德。”

第十五品 持经功德分

“须菩提,若善男子、善女人,初日分,以恒河沙等身布施;中日分,复以恒河沙等身布施;后日分,亦以恒河沙等身布施。如是无量百千万亿劫,以身布施。若复有人,闻此经典,信心不逆,其福胜彼。何况书写受持读诵,为人解说。”

“须菩提,以要言之,是经有不可思议,不可称量,无边功德。
如来为发大乘者说,为发最上乘者说,若有人能受持读诵,广为人说。如来悉知是人,悉见是人,皆得成就不可量、不可称、无有边,不可思议功德。如是人等,则为荷担如来阿耨多罗三藐三菩提。
何以故?须菩提,若乐小法者,着我见、人见、众生见、寿者见,则于此经,不能受持读诵,为人解说。”

“须菩提,在在处处若有此经,一切世间天、人、阿修罗,所应供养,当知此处,则为是塔。皆应恭敬,作礼围绕,以诸华香而散其出”

第十六品 能净业障分

“复次,须菩提,若善男子、善女人,受持读诵此经,若为人轻贱,是人先世罪业,应坠恶道。以今世人轻贱故,先世罪业则为消灭,当得阿耨多罗三藐三菩提。”

“须菩提,我念过去无量阿僧祇劫,于燃灯佛前得值八百四千万亿那由他诸佛,悉皆供养成事,无空过者。若复有人,于后末世,能受持读诵此经,所得功德,于我所供养诸佛功德,百分不及一、千万亿分乃至算数譬喻所不能及。”

“须菩提,若善男子、善女人,于后末世,有受持读诵此经。所得功德,我若具说者,或有人闻,心则狂乱,狐疑不信。
须菩提,当知是经义不可思议,果报亦不可思议。”

第十七品 究竟无我分

尔时,须菩提白佛言:“世尊,善男子、善女人发阿耨多罗三藐三菩提心,云何应住,云何降伏其心?”
佛告须菩提:“善男子、善女人,发阿耨多罗三藐三菩提心者,当生如是心,我应灭度一切众生,灭度一切众生已,而无有一众生实灭度者。
何以故?须菩提,若菩萨有我相、人相、众生相、寿者相,则非菩萨。
所以者何?须菩提,实无有法发阿耨多罗三藐三菩提心者。”

“须菩提,于意云何?如来于燃灯佛所,有法得阿耨多罗三藐三菩提不?”
“不也,世尊。如我解佛所说义,佛于燃灯佛所,无有法得阿耨多罗三藐三菩提。”

佛言:“如是如是,须菩提,实无有法如来得阿耨多罗三藐三菩提,
须菩提,若有法如来得阿耨多罗三藐三菩提,燃灯佛则不与我授记,汝于来世,当得做佛,号释迦牟尼。
以实无有法得阿耨多罗三藐三菩提,是故燃灯佛与我授记,作是言,汝于来世,当得做佛,号释迦牟尼。
何以故?如来者,即诸法如义。
若有人言,如来得阿耨多罗三藐三菩提。
须菩提,实无有法,佛得阿耨多罗三藐三菩提。”

“须菩提,如来所得阿耨多罗三藐三菩提,于是中无实无虚,
是故如来说,一切法皆佛法。须菩提,所言一切法者,即非一切法,是故名一切法。”

“须菩提,譬如人身长大。”
须菩提言:“世尊,如来说人身长大,即为非大身,是名大身。”

“须菩提,菩萨亦如是,
若作是言,我当灭度无量众生,即不名菩萨。
何以故?须菩提,实无有法名菩萨。是故如来说,一切法无我、无人、无众生、无寿者。”

须菩提,若菩萨作是言,我当庄严佛土。即不名菩萨。
何以故?如来说庄严佛土者,即非庄严,是名庄严。

若菩萨通达无我法者,如来说名真菩萨。

第十八品 一体同观分

“须菩提,于意云何,如来有肉眼不?”
“如是、世尊。如来有肉眼”
“须菩提,于意云何,如来有天眼不?”
“如是、世尊。如来有天眼”
“须菩提,于意云何,如来有慧眼不?”
“如是、世尊。如来有慧眼”
“须菩提,于意云何?如来有法眼不?”
“如是、世尊。如来有法眼”
“须菩提,于意云何?如来有佛眼不?”
“如是、世尊。如来有佛眼”
“须菩提,如恒河中所有沙,如来说是沙不?”
“如是、世尊。如来说是沙”
“须菩提,如一恒河中所有沙,有如是沙等恒河,是诸恒河所有沙数佛世界。如是宁为多不?”
“甚多,世尊。”
佛告须菩提:“尔所国土中,所有众生,若干种心,如来悉知。
何以故?如来说诸心皆为非心,是名为心。
所以者何?须菩提,过去心不可得,现在心不可得,未来心不可得。”

第十九品 法界通化分

“须菩提,于意云何?
若有人满三千大千世界七宝,以用布施。是人以是因缘,得福多不?”
“如是,世尊。此人以是因缘,得福甚多。”

“须菩提,若福德有实,如来不说得福德多,以福德无故,如来说得福德多”

第二十品 离色离相分

“须菩提,于意云何?佛可以具足色身见不?”
“不也,世尊。如来不应以具足色身见?
何以故?如来说具足色身,即非具足色身,是名具足色身。”

“须菩提,于意云何?如来可以具足诸相见不?
不也,世尊。如来不应以具足诸相见。
何以故?如来说诸相具足,即非具足,是名诸相具足”

第二十一品 非说所说分

“须菩提,汝勿谓如来作是念,我当有所说法。
莫作是念。
何以故?若有人言如来有所说法,即为谤佛,不能解我所说故。
须菩提,说法者,无法可说,是名说法。”
尔时慧命须菩提白佛言:“世尊,颇有众生,于未来世,闻是说法,生信心不?”
佛言:“须菩提,彼非众生,非不众生,
何以故?众生众生者,如来说即非众生,是名众生”

第二十二品 无法可得分

须菩提白佛言:“世尊,如来得阿耨多罗三藐三菩提,为无所得耶?”
佛言:“如是如是,我于阿耨多罗三藐三菩提,乃至无有少法可得,是名阿耨多罗三藐三菩提。”

第二十三品 净心行善分

“复次,须菩提
是法平等,无有高下。是名阿耨多罗三藐三菩提。
以无我、无人、无众生、无寿者,修一切善法,即得阿耨多罗三藐三菩提。
须菩提,所言善法者,即非善法,是名善法。”

第二十四品 福智无比分

“须菩提,
若三千大千世界中,所有诸须弥山王,如是等七宝聚,有人持用布施。
若有人以此般若波罗蜜经,乃至四句偈等,受持读诵,为他人说。于前福德,百分不及一、百千万亿分、乃至算数譬喻所不能及。”

第二十五品 化无所化分

“须菩提,于意云何?
汝等勿谓如来作是念,我当度众生。
须菩提,莫作是念,
何以故?实无有众生如来度者。若有众生如来度者,如来即有我、人、众生、寿者”

“须菩提,如来说有我者,即非有我,但凡夫之人以为有我。
须菩提,凡夫者,如来说即非凡夫。”

第二十六品 法身非相分

“须菩提,于意云何,可以三十二相观如来不?”
须菩提言:“如是如是,以三十二相观如来。”
佛言:“若以三十二相观如来,转轮圣王即是如来。”
须菩提白佛言:“世尊,如我解佛所说义,不应以三十二相观如来。”
尔时,世尊说偈言:“若以色求我,以音声求我,是人行邪道,不能见如来。”

第二十七品 无断无灭分

“须菩提,汝若作是念,如来不以具足相故,得阿耨多罗三藐三菩提。
须菩提,莫作是念,如来不以具足相故,得阿耨多罗三藐三菩提。”

“须菩提,汝若作是念,发阿耨多罗三藐三菩提心者,说诸法断灭。
莫作是念,
何以故?发阿耨多罗三藐三菩提心者,于法不说断灭相”

第二十八品 不贪不受分

“须菩提,
若菩萨以满恒河沙等世界七宝布施,若复有人知一切法无我,得成于忍。此菩萨胜前菩萨所得功德。
何以故?须菩提,以诸菩萨不受福德故。”
须菩提白佛言:“世尊,云何菩萨不受福德?”
“须菩提,菩萨所作福德,不应贪著,是故说菩萨不受福德。”

第二十九品 威仪寂灭分

“须菩提,若有人言,如来若来若去,若坐若卧。是人不解我所说义,
何以故?如来者无所从来,亦无所去,故名如来”

第三十品 一合理相分

“须菩提,
若善男子、善女人,以三千大千世界碎为微尘,于意云何,是微尘众,宁为多不?”
“甚多,世尊
何以故?若是微尘众实有者,佛则不说是微尘众。
所以者何?佛说微尘众,即非微尘众,是名微尘众
世尊,如来说三千大千世界,即非世界,是名世界。
若世界实有,即是一合相。如来说一合相,即非一合相,是名一合相”

“须菩提,一合相者,即是不可说,但凡夫之人贪著其事。”

第三十一品 知见不生分

“须菩提,若人言,佛说我见、人见、众生见、寿者见,
须菩提,于意云何,是人解我所说义不?”
“不也,世尊,是人不解如来所说义。
何以故?如来说我见、人见、众生见、寿者见,即非我见、人见、众生见、寿者见,是名我见、人见、众生见、寿者见。”
“须菩提,发阿耨多罗三藐三菩提心者,于一切法,应如是知、如是见、如是信解,不生法相。所言法相者,如来说即非法相,是名法相。”

第三十二品 应化非真分

“须菩提,若有人以满无量阿僧祇世界七宝,持用布施。
若善男子、善女人发菩提心者,持于此经,乃至四句偈等,受持读诵,为人演说,其福胜彼。
云何为人演说?不取于相,如如不动。
何以故?一切有为法,如梦幻泡影,如露亦如电,应作如是观”

佛说是经已,时长老须菩提,及诸比丘、比丘尼、优婆塞、优婆夷,一切世间天、人、阿修罗,闻佛所说,皆大欢喜,信受奉行。

回向偈

愿以此功德
庄严佛净土
上报四重恩,
下济三途苦
若有见闻者
悉发菩提心
尽此一报身
同生极乐国

删除当前目录下面所有备份文件:

1
rm *.bak

如果想删除多级目录下面的所有备份文件,可以用:

1
find ./ -name *.bak -exec rm {} \;

或者:

1
find ./ -name *.bak | xargs rm -rf

两者的区别是,第一个是一次性把结果传过去,如果量太大,会导致错误,而后者可以避免这个错误。

QEMU VM ESCAPE 环境搭建

0.参考

1.安装操作系统 ubuntu 17.10

1
http://mirrors.163.com/ubuntu-releases/17.10/ubuntu-17.10.1-desktop-amd64.iso

2. 安装指定版本的qemu

不要使用make install. 后续使用绝对路径执行qemu

1
2
3
4
5
6
7
8
$ git clone git://git.qemu-project.org/qemu.git
$ cd qemu
$ git checkout bd80b59
$ mkdir -p bin/debug/native
$ cd bin/debug/native
$ ../../../configure --target-list=x86_64-softmmu --enable-debug \
$ --disable-werror
$ make -j 4

3. 创建ubuntu镜像,用户qemu运行虚拟机

3.1) 下载linux源代码

1
https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.15.18.tar.xz

3.2) 编译内核

可能需要安装一下依赖包,发现错误百度一下即可。

1
2
3
make defconfig
make kvmconfig
make -j 4

3.3) 创建Debian-Stretch image

  • 3.3.1) 安装debootstrap工具

    1
    sudo apt-get install debootstrap
  • 3.3.2)安装Debian镜像需要的依赖包

    1
    2
    3
    4
    5
    mkdir qemu
    sudo debootstrap --include=openssh-server,curl,tar,gcc,\
    libc6-dev,time,strace,sudo,less,psmisc,\
    selinux-utils,policycoreutils,checkpolicy,selinux-policy-default \
    stretch qemu
  • 3.3.4) 创建镜像
    这个镜像配置后,可以通过ssh使用root用户免密钥登录。

*脚本中 enp0s3为host机网卡的名称,通过ifconfig先查看后,修改脚本保持一至

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
set -eux

# Set some defaults and enable promtless ssh to the machine for root.
sudo sed -i '/^root/ { s/:x:/::/ }' qemu/etc/passwd
echo 'T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100' | sudo tee -a qemu/etc/inittab
printf '\nauto enp0s3\niface enp0s3 inet dhcp\n' | sudo tee -a qemu/etc/network/interfaces
echo 'debugfs /sys/kernel/debug debugfs defaults 0 0' | sudo tee -a qemu/etc/fstab
echo "kernel.printk = 7 4 1 3" | sudo tee -a qemu/etc/sysctl.conf
echo 'debug.exception-trace = 0' | sudo tee -a qemu/etc/sysctl.conf
echo "net.core.bpf_jit_enable = 1" | sudo tee -a qemu/etc/sysctl.conf
echo "net.core.bpf_jit_harden = 2" | sudo tee -a qemu/etc/sysctl.conf
echo "net.ipv4.ping_group_range = 0 65535" | sudo tee -a qemu/etc/sysctl.conf
echo -en "127.0.0.1\tlocalhost\n" | sudo tee qemu/etc/hosts
echo "nameserver 8.8.8.8" | sudo tee -a qemu/etc/resolve.conf
echo "ubuntu" | sudo tee qemu/etc/hostname
sudo mkdir -p qemu/root/.ssh/
rm -rf ssh
mkdir -p ssh
ssh-keygen -f ssh/id_rsa -t rsa -N ''
cat ssh/id_rsa.pub | sudo tee qemu/root/.ssh/authorized_keys

# Build a disk image
dd if=/dev/zero of=qemu.img bs=1M seek=2047 count=1
sudo mkfs.ext4 -F qemu.img
sudo mkdir -p /mnt/qemu
sudo mount -o loop qemu.img /mnt/qemu
sudo cp -a qemu/. /mnt/qemu/.
sudo umount /mnt/qemu

4.运行qemu

1
2
3
4
5
6
7
../Security/qemu/bin/debug/build/x86_64-softmmu/qemu-system-x86_64   \
-kernel /home/dango/Kernel/linux-4.15.7/arch/x86/boot/bzImage \
-append "console=ttyS0 root=/dev/sda rw" \
-hda /home/dango/Kernel/Image/image03/qemu.img \
-enable-kvm -m 2G -nographic \
-netdev user,id=t0, -device rtl8139,netdev=t0,id=nic0 \
-netdev user,id=t1, -device pcnet,netdev=t1,id=nic1
  • ../Security/qemu/bin/debug/build/x86_64-softmmu/qemu-system-x86_64为第2步生成qemu程序路径
  • /home/dango/Kernel/linux-4.15.7/arch/x86/boot/bzImage 为第3.2中生成的路径
  • /home/dango/Kernel/Image/image03/qemu.img 为第3.3.4中生成文件

虚拟机运行起来后,提示输入用户名root,即登录guest虚拟机。

5.测试qemu。

在第4步中运行起的客户机,在guest 虚拟机执行如下操作

5.1 用vim创建c源代码文件mmu.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//mmu.c
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <fcntl.h>
#include <assert.h>
#include <inttypes.h>

#define PAGE_SHIFT 12
#define PAGE_SIZE (1 << PAGE_SHIFT)
#define PFN_PRESENT (1ull << 63)
#define PFN_PFN ((1ull << 55) - 1)

int fd;

uint32_t page_offset(uint32_t addr)
{
return addr & ((1 << PAGE_SHIFT) - 1);
}

uint64_t gva_to_gfn(void *addr)
{
uint64_t pme, gfn;
size_t offset;
offset = ((uintptr_t)addr >> 9) & ~7;
lseek(fd, offset, SEEK_SET);
read(fd, &pme, 8);
if (!(pme & PFN_PRESENT))
return -1;
gfn = pme & PFN_PFN;
return gfn;
}

uint64_t gva_to_gpa(void *addr)
{
uint64_t gfn = gva_to_gfn(addr);
assert(gfn != -1);
return (gfn << PAGE_SHIFT) | page_offset((uint64_t)addr);
}

int main()
{
uint8_t *ptr;
uint64_t ptr_mem;

fd = open("/proc/self/pagemap", O_RDONLY);
if (fd < 0) {
perror("open");
exit(1);
}

ptr = malloc(256);
strcpy(ptr, "Where am I?");
printf("%s\n", ptr);
ptr_mem = gva_to_gpa(ptr);
printf("Your physical address is at 0x%"PRIx64"\n", ptr_mem);

return 0;
}

5.2 用gcc编译如下代码

如果没有先安装gcc,编译可能会有一些warning,不用在意。

1
gcc -c  mmu.c

5.3 执行程序

1
./mmu.o

1
2
3
4
5
6
7
8
9
10
11
12
hillock:~ liuligang$ wget -O /dev/null --content-disposition  http://airhubdemo.shareco.cn
--2018-03-01 18:19:17-- http://airhubdemo.shareco.cn/
正在解析主机 airhubdemo.shareco.cn (airhubdemo.shareco.cn)... 119.61.68.138
正在连接 airhubdemo.shareco.cn (airhubdemo.shareco.cn)|119.61.68.138|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Moved Temporarily
位置:https://airhubdemo.shareco.cn [跟随至新的 URL]
--2018-03-01 18:19:17-- https://airhubdemo.shareco.cn/
正在连接 airhubdemo.shareco.cn (airhubdemo.shareco.cn)|119.61.68.138|:443... 已连接。
错误: 无法验证 airhubdemo.shareco.cn 的由 “L=HangZhou,ST=ZheJiang,C=CN,O=H3C,CN=www.h3c.com” 颁发的证书:
出现了自己签名的证书。
错误: 证书通用名 “www.h3c.com” 与所要求的主机名 “airhubdemo.shareco.cn” 不符。
要以不安全的方式连接至 airhubdemo.shareco.cn,使用“--no-check-certificate”