2009年2月16日星期一

转贴: APUE, A Great Book

From:http://blog.solrex.cn/go/622676.html

这两周是选课试听期,还没有正式开始上课,所以有点空闲就翻了翻 UINX 环境高级编程(Advanced Programming in the UNIX Environment, 2e),看了七八章,发现这本书真的是无愧于"UNIX编程圣经"的称号。书中对编程中可能遇到的问题讲解得非常系统和详细,尤其当看到自己以前遇到过问题的地方时,简直就有一种顿悟的感觉,就想感叹一句"哦,原来如此!"。

我平常在写程序时,遇到问题总是求助于Google。对那些讲编程技巧的书向来不怎么感冒(尤其是中国人写的),总觉得那种书根本不适合花时间仔细看一遍。这种问题驱动式的学习方式固然在解决某一特定问题时显得快捷高效,但是也往往受限于一叶障目不见泰山的困境。在解决了某一问题之后,对其它同类问题没有足够关注,导致再遇到类似问题时仍需要去搜索答案。

问题驱动式的学习方式会导致对问题的了解不够系统和深入,但如果仅仅拿本大部头慢慢翻完的话,又会枯燥无味,而且体会也不深。我觉得读编程书的最好方法就是,先有一定量的实践,再去看书,而且要保持对书中习题和代码的练习量。有时候不妨先看实例代码再看正文解释,如果代码看得懂,看作者的解释是否和自己理解一样;如果代码看不懂,就会加深对正文的注意度。而且有时候读那些入门级的教科书,不妨只看代码。

当然,在编程的时候,桌子上应该有几本经典图书当作手册来参考,不时地重读一下某些章节会很有好处。像 APUE,我就觉得非常适合作为案头书,做 Linux/Unix开发的程序员买一本看看绝对不会失望。

毕业生必须知道:干部身份、三方协议、派遣证

本文系转贴,原帖地址为:http://cnc.byr.edu.cn/wForum/disparticle.php?boardName=Job&ID=522504&pos=564
原帖作者为Tritree (嚎月贪狼),感谢原帖作者。
===
[正文开始]

学校里关于毕业生的会也已经开了一大堆,耳朵也长膙了,嘴唇也磨薄了,很多人随大流听听看看,可真正重要的一些东西相信有很大一部分人却没有搞懂。如果不
信,你可以问问自己,什么叫三方协议?三方协议和谁签?有什么用?户口和三方又有什么关系?当一个个问题逐一提出来时,你可能已经开始觉得发虚。

在这里,我想简单的说一说我目前所知道的关于这方面的一些问题,相信肯定有很多不全面的地方,但至少相信可以帮帮你。

首先是大学毕业后的人生基本规划(本处所指为非在职考研、考博、考公务员等同学):

大学毕业后的一年最为关键,举例如2008年6月毕业7月正式工作者,其从08年7月到09年7月这一年是对其人生的基本规划最为重要的一年,原因涉及三项——三方协议、报到证(派遣证)、干部身份。

关于三方协议:

什么叫三方协议?网上答案都有,随便查查就知道了。但再深一些说呢,肯定有人不知道了。

三方协议,简单的讲就是学校、学生本人、工作单位三方就毕业生离校后就业工作落实所签署的一份协议书,很多人知道的是:三方协议过去必须签,但现在不一
定,三方签了只是学校统计就业率的一个参考指标。三方和派遣证挂钩,但我没有留京户口,单位签三方就要解决你的户口,所以现在单位都不签三方了,尤其是私
企等等。没错,上边说的都对,所以有些朋友们就把三方协议放弃了,而只是找到工作,自己去做个打工者,然后只考虑劳动合同。

那么究竟三方协议背后究竟还有什么呢?其实三方的背后还隐藏着很多。

如果说到三方协议,那么必需提到的就是派遣证与干部身份。

三方协议作为国家统计大学生就业率的一个根据,同时也是国家派遣证发放的一个证明。只有你签署了三方协议,拿回学校,学校才会在你毕业后将派遣证发给你,
而你拿着派遣证到你工作的单位报道,就此开始计算工龄,而你也就拥有了干部身份(每年基本6月25日毕业,所以6月18日前必需将三方交到学校)。

派遣证(报到证):

派遣证一式两份,一份是派遣证,另一部分是报到证。派遣证在你毕业后将放入你的档案,由国家直接打到你的单位(档案属国家机密,不允许个人持有。如果你的
用人单位拥有档案保存资格那么你的档案就放在单位,如果没有,那单位会掏钱将你的档案放在人才市场类的档案保存处。你过你没工作,那你的档案就直接打回原
籍)。而报到证则交由你手自行保管。在这里必须要重点说的是,很多人在毕业后没多久就把报到证丢了,而当若干年后单位希望将你提干要求出示报到证时,很多
就没有了,而只能再跑回某地去重新开证明,这时的证明可就没那么好开了,所以还是劝君保管好。

干部身份:

在中国社会体系中,公民分三中身份:农民、工人、干部。农民归农业部管理,工人归劳动局管理,而干部归人事局管理。大学生属于国家培养的专业人才,属于国
家干部身份。很多农村来的朋友家里都希望孩子通过念大学而改变祖辈农民的身份(这里没有贬低农民朋友的意思),而很多人却从毕业后就莫名其妙的丢了自己的
干部身份。当然也有很多是根本不在乎自己的干部身份。认为有就有,没有就没有,没有的话我至少是四年大学毕业学士学位。其实你错了。如果你没有留住你的干
部身份,可以说你的大学就是白念,而你只是个有学士学位的工人,根本没有改变你自己(就很多农村朋友来讲)。

干部身份靠什么来?靠三方协议,靠派遣证。派遣证就是你大学生干部身份的证明,假如某天你被提干时,这个就是你可以被提干的证明,因为你是干部身份。否则你就不能被提,因为你是工人。

也许很多人说:我不会被提干,那我要干部身份干嘛,我就想挣钱。

那么我现在要说的就是职称评定了。其中也涉及到关键一年的具体事宜。

大学生持报到证到单位上岗后,必须要经过一年的见习期(国家规定。相当于中专、大专的实习期)。见习期满后,本人必须记得要签"毕业生见习期考核鉴定表
",这是你转正的鉴定表(从此你就拿正常工资了),说明你已经是一个合格的人才了(见习期需要在同一单位完成,也就是你的三方、派遣证以及你的转正证明
表,这三个上面盖的要是同一单位的章,否则视为无效)。紧接着要记得填写"国家统一分配大中专院校毕业生专业技术职务任职资格认定表",也就是初级职称评
定表(这些事要你自己留心,没有人会提醒你去做的,表要到人事部网站下载)。具体可评定的职称可以到人事部网站上查询(职称最好和自己学的专业有联系,否
则到中高级评定时比较难)。现在我国职称评定这块要通过考试(除艺术、工艺美术、体育教练员及广播电视播音4个系列外,申报其他初级系列都需要通过考试才
能获得初级专业技术资格。考试采用闭卷笔答方式,实行统一大纲、统一命题、统一组织。申报人员参加北京市初级专业技术资格考试成绩合格,即可取得《北京市
专业技术资格证书》),以考试来决定你是否能评上职称。当然有些职称评定也不排除某些单位内部的人为原因。在你初级职称评完四年后,也就是你工作的第五
年,你可以申请评定中级职称。再五年后,也就是工作第十年,评定高级职称(具体可上网查)。这样你一辈子的职称就基本评定完了,所以有些幸运的人10年就
可以当上"高级工程师"。在我国,无论各行各业都会有职称评定,而且相信任何单位都希望有那些有职称的人来工作,而且,就算你工作的单位没有职称评定一
说,那想你如果是高级工程师,你拿的钱也绝对比别人多。而什么人能评定职称呢?有干部身份的人。所以从此看出,就算你不当官,你只挣钱,那干部身份对你来
说还是有用的。

说到这里,基本上一般的情况都讲完了。但有些人会问了,我不是本地生,我户口不能留这,没公司给我签三方,你说的都是屁话。呵呵,那你就错了。为什么不变
通的想想呢?例如:你在北京上学,但毕业后没有公司解决你的户口,怎么办?好办!在家里找公司签三方。因为你不能留京,所以你的户口会打回原籍,而档案与
户口不能脱离,所以你的档案也要打回原籍,而如果你想保住干部身份(但想在北京工作),那你就托人也好,请客也好在家找个单位把你的三方签了。然后其他和
上边一样,只是一年后记得回家去办转正与职称评定。如果嫌麻烦,没关系,你就回家就业,别担心回不来北京,因为如果你有职称,那么你就可以以后来京找工
作,而你也会属于人才流动,这时只要你提出单位也会适当解决你的户口问题,否则凭你打工者的身份要求单位解决你户口,梦吧你!

三方协议的签署是没有限制的,与任何公司或单位签都可以,不一定要国企或事业单位,否则每年那么多大学生就业,还不80%都要丢了干部身份,国家还不成白痴了。但要保证一点,就算是三个人的小公司也能签,但不要在一年内倒闭,否则你就没有人给你签转正了,切记切记。

又有人说了,我想考研,我明年要考,我就不签三方了,随便找个活干干,挣点钱完了。那你就大错特错了。(注意:此处考研并非指本科之后直接上研者,是指本科毕业后需要工作1年以上者)

记住,不论任何时候,别放弃你的身份!

如果你要考研,那么你属于在职考研一类,我们分类说一下。

假如你考上了:

你6月大学毕业,7月到单位报到。第二年7月,你转正,初级职称评定。研究生9月入学。当你研究生入学时,哥们已经是有身份的人了,3年研究生读完,哥们
出来直接拿正常工资了(进私企),没有见习期一说了(研究生毕业也有3个月的见习期)。如果你进国企或事业单位,那么研究生3年算工龄(我不知道私企是不
是,但国企或事业单位绝对是),你出来就可以评中级职称了,哥们又赚了一大笔。所以你说你该不该保你的干部身份?

假如你没考上:

没考上更简单,直接继续工作,回头等着评中级,没差什么。

很多人总是怕麻烦,其实一切就是这么简单,如果你做了,那么也许我的话会改变你的一生,如果你没做,那么就当给我捧场,也谢谢你,我们又少了一个竞争对手。不过要记住一句话,别因小失大,谨记!

bash快捷键

Ctrl-A 相当于HOME键,用于将光标定位到本行最前面

Ctrl-E 相当于End键,即将光标移动到本行末尾

Ctrl-B 相当于左箭头键,用于将光标向左移动一格

Ctrl-F 相当于右箭头键,用于将光标向右移动一格

Ctrl-D 相当于Del键,即删除光标所在处的字符

Ctrl-K 用于删除从光标处开始到结尾处的所有字符

Ctrl-L 清屏,相当于clear命令

Ctrl-R
进入历史命令查找状态,然后你输入几个关键字符,就可以找到你使用过的命令

Ctrl-U 用于删除从光标开始到行首的所有字符。一般在密码或命令输入错误时常用

Ctrl-H 删除光标左侧的一个字符

Ctrl-W 用于删除当前光标左侧的一个单词

Ctrl-P 相当于上箭头键,即显示上一个命令

Ctrl-N 相当于下箭头键,即显示下一个命令

Ctrl-T
用于颠倒光标所在处字符和前一个字符的位置。(目前不知道有什么作用,哪位朋友知道?)

Ctrl-J 相当于回车键

Alt-.
用于提取历史命令中的最后一个单词。你先执行history命令,然后再敲击此快捷键若干下,你就懂了!

Alt-BackSpace 用于删除本行所有的内容,基本上和Ctrl-U类似。

Alt-C
用于将当前光标处的字符变成大写,同时本光标所在单词的后续字符都变成小写。

Alt-L 用于将光标所在单词及所在单词的后续字符都变成小写。

Alt-U 用于将光标所在单词的光标所在处及之后的所有字符变成大写。

ps:使用bind -P命令可以查看所有键盘绑定。

ps2:Alt快捷键较少使用,因为常常和编辑器冲突

情景分析“C语言的const关键字”

C语言中的const一直是C语言初学者心中的痛,这是因为const在不同位置有不同作用,在不同情景有不同角色。这让初学者摸不清头脑。今天,和大家一起研究一下const,让它的每个角色都"深入人心"!

==============================================================================================

情景一:最简单的const用法

#include<stdio.h>
int main()
{
int const a;
a=5;
printf("a=%d\n",a);
return 0;
}

如果编译这个c文件,就会报错:

1071.c: In function 'main':
1071.c:5: error: assignment of read-only variable 'a'

显而易见,这是const在搞鬼,因为声明了const的变量是不能修改的!

如果将源代码修改为如下这样,就没有问题了!
#include<stdio.h>
int main()
{
int const a=5;
printf("a=%d\n",a);
return 0;
}

总结:const声明的变量必须要进行初始化赋值,如果错过这个机会,以后再想给const的变量赋值,可就没门了!切记~

PS:int const和const
int是一回事,"颠倒写"都是可以的。以后遇到了别犯晕,呵呵。但是,还是要留个心眼,当const和指针搀和到一起时,这个"颠倒写"的规律可未必成立。

==============================================================================================

情景二:发明const为了什么?

在const诞生之前,开发者一直使用#define VAR
100来定义一些有特殊用途的类常量,不过这样定义是存在一些劣势的。因此const应运而生,之后开发者可以使用const
int VAR=100;来定义类常量了。

至于为什么#define有其劣势,请参阅:http://dongpingli.blogspot.com/2009/02/define.html
:)
==============================================================================================

情景三:const和指针的配合是噩梦!

你能分辨得清这些声明么:
const int *A;
int const *A;
int *const A;
const int *const A;

如果有点犯晕的话,那就先给出它们的讲解,然后继续看后面的情景分析吧。

const int *A; //修饰指向的对象,A可变,A指向的对象不可变
int const *A;   //修饰指向的对象,A可变,A指向的对象不可变
int *const A;   //修饰指针A, A不可变,A指向的对象可变
const int *const A; //指针A和A指向的对象都不可变

==============================================================================================

情景四:const int *A

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
const int *A=&num;
printf("result=%d\n",*A);
return 0;
}

编译执行结果为:

[rocrocket@wupengchong const_test]$ cc test1.c
[rocrocket@wupengchong const_test]$ ./a.out
result=12

接下来,我们动动手脚,在代码中加入了(*A)++;这条语句:

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
const int *A=&num;
(*A)++;
printf("result=%d\n",*A);
return 0;
}

编译这个c文件:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
test1.c: In function 'main':
test1.c:6: error: increment of read-only location '*A'
可以看到,报错了,报错的内容表示"*A"是只读的,不能修改。

我们再修改一下源代码为下面这样:

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int tmp=100;
const int *A=&num;
A=&tmp;
printf("result=%d\n",*A);
return 0;
}

编译执行结果为:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
[rocrocket@wupengchong const_test]$ ./a.out
result=100

好了,如果你仔细看了这几个小得不能再小的程序,你自己都可以给出结论了!

结论:如果声明了const int
*A,那么A值是可以修改的,而*A是不可以修改的。更通俗的说,A指针可以随便指向一个整型,但只要被A盯上了的整型变量在使用*A引用时就不能修改了。

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int tmp=100;
const int *A=&num;
A=&tmp;
tmp=3;
printf("result=%d\n",*A);
return 0;
}

编译执行的结果为:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
[rocrocket@wupengchong const_test]$ ./a.out
result=3

结论2:即使A指向了tmp,我虽然不能修改*A,但是我仍然是可以用tmp来修改这个值的,完全不管*A的存在。呵呵

==============================================================================================

情景五:int *const A

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int *const A=&num;
printf("result=%d\n",*A);
return 0;
}

编译执行结果为:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
[rocrocket@wupengchong const_test]$ ./a.out
result=12

我们稍微修改下源代码:

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int tmp=100;
int *const A=&num;
A=&tmp;
printf("result=%d\n",*A);
return 0;
}

编译时报错了:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
test1.c: In function 'main':
test1.c:7: error: assignment of read-only variable 'A'
[rocrocket@wupengchong const_test]$ cat test1.c

可见A本身的值已经不能再变了。

继续修改源代码如下:

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int *const A=&num;
(*A)=100;
printf("result=%d\n",*A);
return 0;
}

编译执行结果为:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
[rocrocket@wupengchong const_test]$ ./a.out
result=100

可以看出,(*A)是可以改变的。

结论又可以轻易推出了:int *const A;   //const修饰指针A,
A不可变,A指向的对象可变

==============================================================================================

情景六:const int *const A; //指针A和A指向的对象都不可变

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int const *const A=&num;
(*A)=100;
printf("result=%d\n",*A);
return 0;
}

编译会报错:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
test1.c: In function 'main':
test1.c:6: error: assignment of read-only location '*A'

改下源代码:

[rocrocket@wupengchong const_test]$ cat test1.c
#include<stdio.h>
int main()
{
int num=12;
int tmp=100;
int const *const A=&num;
A=&tmp;
printf("result=%d\n",*A);
return 0;
}

编译仍然会报错:

[rocrocket@wupengchong const_test]$ !cc
cc test1.c
test1.c: In function 'main':
test1.c:7: error: assignment of read-only variable 'A'

呵呵,结论很明显了,const int *const A; //指针A和A指向的对象都不可变

当然const int *const A;和int const *const A=&num;是等价的!

情景七:如果const用在函数形参里呢?是不是又要复杂很多?

答案是NO!一点也不复杂。

来看看这个函数投:int addnum(const int num, int a, int b);

这个函数声明中的第一个形参是const int
num,这就表明如果我调用了这个函数,那么第一个实参被传到addnum函数里之后,就不能再做修改了!呵呵
就这么简单。

给个例子吧,让大家能更一目了然:

[rocrocket@wupengchong const_test]$ cat test2.c
#include<stdio.h>
int addto(const int num, int a, int b)
{
if(num==1){
return a+b;
}else{
return 0;
}
}

int main(){
int num=100;
int a=12,b=22;
int res;
num=1;
res=addto(num,a,b);
printf("res=%d\n",res);
return 0;
}

编译执行结果为:

[rocrocket@wupengchong const_test]$ !cc
cc test2.c
[rocrocket@wupengchong const_test]$ ./a.out
res=34

如果我修改一下,编译就会出错:

[rocrocket@wupengchong const_test]$ cat test2.c
#include<stdio.h>
int addto(const int num, int a, int b)
{
if(num==1){
num=3;
return a+b;
}else{
return 0;
}
}

int main(){
int num=100;
int a=12,b=22;
int res;
num=1;
res=addto(num,a,b);
printf("res=%d\n",res);
return 0;
}

编译报错为:

[rocrocket@wupengchong const_test]$ !cc
cc test2.c
test2.c: In function 'addto':
test2.c:5: error: assignment of read-only location 'num'

可见在函数里形参被声明为const的变量也是不能修改的哦!呵呵~

const其实不难,把本文的几个小例子看懂就OK了!

================================================================================
除了传递要求为const的参数以外,自己声明对象没有什么必须要加,但是对于一个逻辑上不应该被修改,应该为常量的对象,没有声明为const,就必须由程序员自己来维护,来记住这个变量不应该被修改,即使你不小心修改导致程序整体混乱了,编译器也不会报错
另,const和普通变量的声明存在于头文件时有区别,总之这些都是与你具体写程序的规划有关系,const这个玩意只是方便程序设计和程序编写,能够使程序更加的清晰,如果说我就是不爱用,就是喜欢一路变量用到底,那也没什么不行。。。

#define的坏处

在C++编程中应该尽量使用const和inline来代替#define,尽量做到能不用#define就不用。

#define常见的用途有"定义常量"以及"定义宏",但其中存在诸多的弊病。

第一,查错不直观,不利于调试。Define的定义是由预处理程序处理的,作的是完全的文本替换,不做任何的类型检查。在编译器处理阶段,define定义的东西已经被完全替换了,这样在debug的时候就看不到任何的相关信息,即跟踪时不能step
into宏。例如,把ASPECT_RATIO用define定义成1.653,编译器就看不到ASPECT_RATIO这个名字了。如果编译器报1.653错,那么就无从知道此1.653来自于何处。在真正编码的时候应该使用如下的语句来定义:
static const double ASPECT_RATIO = 1.653;

第二,没有任何类型信息,不是type
safe。因为它是文本级别的替换,这样不利于程序的维护。

第三,define的使用很容易造成污染。比如,如果有两个头文件都定义了ASPECT_RATIO,
而一个CPP文件又同时包含了这两个头文件,那么就会造成冲突。

更难查的是另外一种错误,比如有如下的代码:

// in header file def.h

#define Apple 1 #define Orange 2 #define Pineapple 3 …

// in some cpp file that includes the def.h

enum Colors {White, Black, Purple, Orange};

在.h文件中Orange被定义成水果的一种,而在.cpp文件中Orange又成为了一种颜色,那么编译器就会把此处的Orange替换成2,编译可能仍然可以通过,程序也能够运行,但是这就成了一个bug,表现出古怪的错误,且很难查错。

再比如定义了一个求a与b哪个数大的宏,

#define max(a,b) ((a) > (b) ?(a) : (b))

int a = 5, b = 0; max(++ a, b); max(++ a, b + 10);

在上面的操作中,max(++ a, b); 语句中a被++了两次,

而max(++ a, b + 10); 语句中a只加了一次,

这样在程序处理中就很有可能成为一个bug,且此bug也非常的难找。在实际编码时可以使用如下的语句来做:

template inline const T& max(const T& a, const T& b) { return a > b ? a :
b; }

more multiple file renaming goodness

From:http://www.basicallytech.com/blog/index.php?/archives/11-Shell-stuff-more-multiple-file-renaming-goodness.html

I had an e-mail from a guy named Devon telling me yet more ways to rename
multiple files. I thought they were pretty good (damn it!) and had to
share these new (to me) techniques.

These alternative methods seem to require the use of the Bash shell, so
some people may not wish to read any further!
remove a suffix

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices.txt

Note the use of the "%" symbol to denote a suffix.

$ for FILE in *.txt; do mv -i "$FILE" "${FILE%.txt}"; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices
change a suffix

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices.txt

$ for FILE in *.txt; do mv -i "$FILE" "${FILE%.txt}.TXT"; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra.TXT
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus.TXT
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations.TXT
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry.TXT
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices.TXT
remove a prefix

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 maths_algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 maths_calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 maths_equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 maths_geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 maths_matrices

For prefixes, replace the "%" with a "#".

$ for FILE in maths_*; do mv -i "$FILE" "${FILE#maths_}"; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices
change a prefix

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 maths_algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 maths_calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 maths_equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 maths_geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 maths_matrices

$ for FILE in maths_*; do mv -i "$FILE" "MATHS_${FILE#maths_}"; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 MATHS_algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 MATHS_calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 MATHS_equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 MATHS_geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 MATHS_matrices

Thanks to Devon for that!

shell脚本对文件进行批量改名例子:
把当前文件夹下文件名含有eee的都改成大写的EEE,比如21-eee.doc就要改成21-EEE.doc。

for filename in *eee*
do
newname=`echo $filename|sed -n ’s/eee/EEE/p’`
mv $filename $newname
done

如果要将每个文件的执行权限去掉,这样写:
for filename in *; do chmod ugo-x $filename;done

rename multiple files on the command line

From:
http://www.basicallytech.com/blog/?/archives/10-Shell-stuff-rename-multiple-files-on-the-command-line.html#remove_spaces_tr

If you wish to quickly rename multiple files in a directory, a for loop
(sometimes combined with other utilities such as sed or tr) is one way to
do the job.

The examples in this article include removing spaces from filenames,
adding and removing suffixes and prefixes, and changing from uppercase to
lowercase.

Here is a full list of the examples I'm going to look at:
remove spaces from file names
alternative way to remove spaces from file names
add a suffix
add a prefix
remove a prefix
remove a suffix
uppercase to lowercase
uppercase to lowercase (suffix only)
an unlikely situation
remove spaces from file names

I've got some imaginary mp3 files with spaces in the file names. Spaces in
filenames are a bad idea. It's inconvenient, spaces are the delimiters
between command-line arguments, and for files you're putting out over the
Internet, it can cause other problems, so we're going to get rid of these
spaces as a matter of principle. (Whose foolish idea was it to put spaces
into filenames, anyway?)

$ ls -l
total 468
-rw-r--r-- 1 rob rob 15015 2006-10-20 11:18 01 - Some Song.mp3
-rw-r--r-- 1 rob rob 17313 2006-10-20 11:18 02 - Another Song.mp3
-rw-r--r-- 1 rob rob 17381 2006-10-20 11:19 03 - Yet Another Song.mp3
-rw-r--r-- 1 rob rob 410075 2006-10-20 11:19 04 - A New Song.mp3
-rw-r--r-- 1 rob rob 7327 2006-10-20 11:19 05 - Some Instrumental
Piece.mp3

I'm going to change the spaces to underscores. Since I don't want to mess
things up, I'll be cautious to begin with:

$ for FILE in *.mp3 ; do NEWFILE=`echo $FILE | sed 's/ /_/g'` ; echo
"$FILE will be renamed as $NEWFILE" ; done
01 - Some Song.mp3 will be renamed as 01_-_Some_Song.mp3
02 - Another Song.mp3 will be renamed as 02_-_Another_Song.mp3
03 - Yet Another Song.mp3 will be renamed as 03_-_Yet_Another_Song.mp3
04 - A New Song.mp3 will be renamed as 04_-_A_New_Song.mp3
05 - Some Instrumental Piece.mp3 will be renamed as
05_-_Some_Instrumental_Piece.mp3

That looks okay, so I'll try it for real.

$ for FILE in *.mp3 ; do NEWFILE=`echo $FILE | sed 's/ /_/g'` ; mv "$FILE"
$NEWFILE ; done
$ ls -l
total 468
-rw-r--r-- 1 rob rob 15015 2006-10-20 11:18 01_-_Some_Song.mp3
-rw-r--r-- 1 rob rob 17313 2006-10-20 11:18 02_-_Another_Song.mp3
-rw-r--r-- 1 rob rob 17381 2006-10-20 11:19 03_-_Yet_Another_Song.mp3
-rw-r--r-- 1 rob rob 410075 2006-10-20 11:19 04_-_A_New_Song.mp3
-rw-r--r-- 1 rob rob 7327 2006-10-20 11:19
05_-_Some_Instrumental_Piece.mp3

I realise that there is an alternative way, using tr, which is easier (to
type ). However I would argue that the principle of the above technique
(using sed) can be applied to more situations, making it more useful as a
template.

For those who are unfamiliar with the command line, I'm going to break
this down into it's constituent components. If you are familiar with this
sort of thing, feel free to skip down to the other examples.

This is not the place to discuss for loops in great detail. There are
loads of resources on the Internet for that sort of thing. When I was
starting to learn this stuff, I always found detailed analysis of these
things confusing, and that the best way to learn was to actually do it.

for FILE in *.mp3

In this part of the loop, FILE is the variable, and *.mp3 is the argument.
The for loop generates a variable for each argument until there are no
arguments left. In the example above, the variables generated are all the
files which match the regular expression *.mp3, in other words:
01 - Some Song.mp3
02 - Another Song.mp3
03 - Yet Another Song.mp3
04 - A New Song.mp3
05 - Some Instrumental Piece.mp3

; do

The semicolon is special character which allows you end one command and
run another command on the same line. Every for requires a do.

NEWFILE=`echo $FILE | sed 's/ /_/g'`

Now I'm creating a new variable called NEWFILE. sed is used to replace
each space in the name of the mp3 file referenced by FILE with an
underscore (s/ /_/g), so the variable NEWFILE is the same as FILE, except
the value of each variable has every space replaced with an underscore.

The next bit is the command we want to run on each argument:

mv "$FILE" $NEWFILE

Note that I put the loop-generated $FILE variable inside double-quote
marks for the mv command. This is required because of those spaces in the
original file name. If you don't do that the loop will try to run the
following command on each file:
mv 01 - Some Song.mp3 01_-_Some_Song.mp3

instead of
mv "01 - Some Song.mp3" 01_-_Some_Song.mp3

; done

Finally, every do requires a done.

Here are some other examples.
alternative way to remove spaces from file names

$ ls -l
total 468
-rw-r--r-- 1 rob rob 15015 2006-10-20 11:18 01 - Some Song.mp3
-rw-r--r-- 1 rob rob 17313 2006-10-20 11:18 02 - Another Song.mp3
-rw-r--r-- 1 rob rob 17381 2006-10-20 11:19 03 - Yet Another Song.mp3
-rw-r--r-- 1 rob rob 410075 2006-10-20 11:19 04 - A New Song.mp3
-rw-r--r-- 1 rob rob 7327 2006-10-20 11:19 05 - Some Instrumental
Piece.mp3

$ for FILE in *.mp3 ; do mv "$FILE" `echo $FILE | tr ' ' '_'` ; done
$ ls -l
total 468
-rw-r--r-- 1 rob rob 15015 2006-10-20 11:18 01_-_Some_Song.mp3
-rw-r--r-- 1 rob rob 17313 2006-10-20 11:18 02_-_Another_Song.mp3
-rw-r--r-- 1 rob rob 17381 2006-10-20 11:19 03_-_Yet_Another_Song.mp3
-rw-r--r-- 1 rob rob 410075 2006-10-20 11:19 04_-_A_New_Song.mp3
-rw-r--r-- 1 rob rob 7327 2006-10-20 11:19
05_-_Some_Instrumental_Piece.mp3
add a suffix to multiple files

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices

In this example, I wish to add a .txt suffix to each file in this
directory.

We don't need sed here:

$ for FILE in * ; do mv $FILE $FILE.txt ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices.txt
add a prefix

Taking the files from the previous example:

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices.txt

I wish to add a maths_ prefix to each file:

$ for FILE in * ; do mv $FILE maths_$FILE ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 maths_algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 maths_calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 maths_equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 maths_geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 maths_matrices.txt
remove a prefix

Sticking with the files we've been using:

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 maths_algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 maths_calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 maths_equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 maths_geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 maths_matrices.txt

I've changed my mind about that maths_ prefix and want to remove it.

$ for FILE in * ; do NEWFILE=`echo $FILE | sed 's/^maths_//'` ; mv $FILE
$NEWFILE ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices.txt

The ^ symbol in sed matches the start of a line.
remove a suffix

While I'm at it, I think I'll remove the suffix as well.

$ for FILE in *.txt ; do NEWFILE=`echo $FILE | sed 's/.txt$//'` ; mv $FILE
$NEWFILE ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices

The $ symbol in sed matches the end of a line.
uppercase to lowercase

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 ALGEBRA
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 CALCULUS
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 EQUATIONS
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 GEOMETRY
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 MATRICES

$ for FILE in * ; do mv $FILE `echo $FILE | tr '[A-Z]' '[a-z]'` ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices
uppercase to lowercase (suffix only)

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 Algebra.TXT
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 Calculus.TXT
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 Equations.TXT
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 Geometry.TXT
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 Matrices.TXT

$ for FILE in *.TXT ; do NEWFILE=`echo $FILE | sed 's/.TXT$/.txt/'` ; mv
$FILE $NEWFILE ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 Algebra.txt
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 Calculus.txt
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 Equations.txt
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 Geometry.txt
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 Matrices.txt
an unlikely situation

Finally, an unlikely situation. I have a bunch of files with multiple
spaces and capitalised suffixes. I want the spaces changed to an
underscore, except where there are two or more consecutive spaces, where I
want just a single underscore. While we're at it, if a space is next to
the dot of a prefix, let's just remove it. I also want to make the
suffixes lowercase. Hmm.

$ ls -l
total 20
-rw-r--r-- 1 rob rob 201 2006-10-23 23:44 A file with many spaces.TXT
-rw-r--r-- 1 rob rob 1579 2006-10-23 23:44 Another wierdly named file.TXT
-rw-r--r-- 1 rob rob 1452 2006-10-23 23:44 My mate Arron spels beter than
this.txt
-rw-r--r-- 1 rob rob 924 2006-10-23 23:44 Not really.TXT
-rw-r--r-- 1 rob rob 379 2006-10-23 23:44 Whoo named this .TXT

I'm not going to try to correct the spelling as well!

$ for FILE in * ; do NEWFILE=`echo $FILE | sed -e 's/.TXT$/.txt/' -e 's/[
]*[ ]/_/g' -e 's/_[.]/./g'` ; mv "$FILE" $NEWFILE ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 201 2006-10-23 23:44 A_file_with_many_spaces.txt
-rw-r--r-- 1 rob rob 1579 2006-10-23 23:44 Another_wierdly_named_file.txt
-rw-r--r-- 1 rob rob 1452 2006-10-23 23:44
My_mate_Arron_spels_beter_than_this.txt
-rw-r--r-- 1 rob rob 924 2006-10-23 23:44 Not_really.txt
-rw-r--r-- 1 rob rob 379 2006-10-23 23:44 Whoo_named_this.txt

That was somewhat contrived, but it does provide an example of the power
of the command line.

Bear in mind that some people pay for this sort of functionality. Mind
you, consider their option.
addendum

It occurred to me after I wrote this article that some one might want to
emulate the windows option.

Giving all the files the same name, but with a different number seems,
well, foolish, but let's do it anyway. Parentheses are also a bad idea in
filenames, but this is just an exercise.

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices

$ NUM=0 ; for FILE in * ; do NUM=`expr $NUM + 1` ; mv $FILE
foolish\($NUM\) ; done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 foolish(1)
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 foolish(2)
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 foolish(3)
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 foolish(4)
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 foolish(5)

What might be more useful would be to retain the original name and
seperate it from the sequential number with a much more command-line
friendly underscore.

$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices

$ NUM=0 ; for FILE in * ; do NUM=`expr $NUM + 1` ; mv $FILE ${FILE}_$NUM ;
done
$ ls -l
total 20
-rw-r--r-- 1 rob rob 733 2006-10-20 13:23 algebra_1
-rw-r--r-- 1 rob rob 194 2006-10-20 13:23 calculus_2
-rw-r--r-- 1 rob rob 117 2006-10-20 13:23 equations_3
-rw-r--r-- 1 rob rob 402 2006-10-20 13:23 geometry_4
-rw-r--r-- 1 rob rob 50 2006-10-20 13:23 matrices_5

Happy renaming.

Carla Schroder:Linux网管的十大秘诀

早在 Carla Schroder 编写第一本书《Linux Cookbook》之际,她就预想将来会写一本《Linux Networking Cookbook》作为姐妹篇,两者就像花生奶油和巧克力一样天然浑成。

以下是她为那些想成为卓越Linux网管的人们所撰写的十大秘诀——无论你目前水平如何,它们都是非常值得参考的建议。除第一条之外,不分先后:

1. 研究并掌握TCP/IP包、UDP数据报及ICMP消息的结构。

2. 理解网络连接如何建立、维持和终止的相关细节。

3. 抓紧时间研究IPv6。IPv4迟早要被IPv6所取代。

4. 理解NAT如何工作,以及如何使不同协议的数据经由此转换通过。通过NAT过程中产生的问题是很多网络问题的源头。

5. 让事情尽可能变得简单。不要因为来自你那些计算机怪才朋友的压力,而去增加一些没有必要的复杂性。

6. 充分熟悉OpenSSH、OpenSSL,以及如何创建和维护一个公钥基础设施(PKI,Public
Key Infrastructure)。

7. 无线网络正在迅速变化和提升之中,Linux现已拥有大量实用工具程序,以用于漫游客户、安全和无线网络部署等诸多方面。

8. 学习如何排查和追踪网络问题。你能从网络和线路传输中发现很多令人惊奇的东东。在非加密传输中,你可以看见所有数据,而即便加密的传输也有你可以读取的明文数据包头。

9. 避免在任何成本支出项目中锁定。你无需锁定于任何特定供应商,或固定范围内的专有协议和标准。

10. Linux的网络功能非常先进和强大,而且Linux正不断地以各种特性功能,适用于从嵌入式路由器到大型复杂Internet网关等各种设备。它包括一套真正安全的跨平台VPN,和许多不同的远程安全访问应用程序。不要相信你还可以在那个已被证实为极不安全的平台上得到安全——用Linux吧。

《迟到的衰退》——许小年于2008年12月27日

2008年12月27日,中欧工商学院教授许小年在燕山大讲堂做了题为"迟到的衰退"主题演讲,以下为主要内容:

许小年:很高兴来到燕山大讲堂。我非常赞同燕山大讲堂的传统,我们在大学的讲堂,首先坚持批判性,第二是建设性,第三是开放性,第四就是独立性,知识分子一定要独立,否则没有任何价值,我希望燕山大讲堂可以沿着这条路一直走下去。受文化大革命的影响,我们觉得批判这个词很有贬义,在英文中这个词是一个中性词,它对现有的结论、现有的观念永远持批判的态度、怀疑的态度,只有这种态度才能推动学术的发展、才能推动公共政策的制定,所以我觉得批判是非常重要的。
经济衰退来得异常猛烈

我今天要讲的题目是"迟到的衰退"。目前我们国家经济的情况有多严重?应该说非常严重。我最近跑了两趟南方,去了一些受金融危机影响比较严重的地区,像广东的东莞、中山,我看到企业减产、停产甚至是关门,大量的工人被解雇,因为政府不让工厂解雇工人,于是就叫"停薪休假",今年民工返乡潮也提前到来。外贸出口负增长、发电量负增长、工业企业的利润增长率迅速下降,9-11月份工业企业的利润增长率也是负的。

经济下滑的速度超乎所有人的预料,包括我在内,我感觉到了衰退的到来,但是没有想到来得如此猛烈,这也促使我们每一个经济学家的思考,中国经济到底怎么回事、世界经济到底怎么回事?上半年所有的政策都是为了防通货膨胀,为了把过快的增长速度降下来,在几个月的时间里,政策180度大转弯,所有的政策工具都用来保证经济较快增长。通胀的危险几乎在几个礼拜之间消失了,现在我们面临的是通缩、经济衰退、物价的下跌,失业的上升。政府在很短的时间内出台了四万亿财政刺激计划,标志着中国加入了世界上信奉凯恩斯主义国家的行列,凯恩斯主义能不能应用在今天的中国呢?这个稍后我会讲到。

我们先来看看,为什么我们国家的经济在短短几个月内发生了戏剧性的变化,难道都是因为金融海啸?都是因为外部原因吗?答案不是这样的,想要理解为什么,我们还是要回顾一下过去几年间中国经济的高速增长。我们也要问,为什么在金融海啸的冲击下,世界各国政府看不到方向,世界上最发达的经济体,经济实力最雄厚的美国被金融海啸搞得狼狈不堪。美国的金融体系一度面临崩溃,危险的高潮是今年的10、11月份,金融机构倒闭,雷曼兄弟的倒闭使得整个金融市场冻结,人心慌慌、风雨飘摇。如果不是美国政府采取紧急的措施,美国的第一大投行高盛、第二大投行摩根斯坦利都要倒闭,这个世界的经济可能会倒掉。美国政府费尽九牛二虎之力才使整个金融大厦免于彻底崩塌。

究竟怎么回事呢?这是个说来很长的故事,我讲的观点,只是众多解释中的一个,未必我的认识是正确的、唯一的。

风起于2001

这要从2001年开始说起。2001年世界经济舞台上发生了一件大事,就是互联网泡沫破灭了。同时,2001年中国加入WTO,这是一个标志性的事件,在这之前,以中国为代表的新兴市场国家已经把自己的经济和全球经济紧密地联系在一起。而中国加入WTO,标志着世界上的两大经济体,一个是发达市场经济国家美国、一个是发展中国家中国,已经不可分割地、历史性地融为一体了。但是对于这种经济关联度的提高,世界各国政府,包括美国、中国政府的学术界、商界都认识不足,人们还带着过去的习惯思维、用过去的经验来处理这两大经济体已经融合在一起的今天。结果就犯了错误,种下金融海啸的祸根。

在中国加入WTO之后,美国获得了什么收益?
第一,"中国制造"帮助美国人有效地抑制了通货膨胀,为什么?因为大量的产品可以从中国进口,而中国产品的价格便宜。第二,美国人突然发现,有中国这么一个庞大的世界加工厂,在美国劳资双方的谈判中,资方的地位得到了加强。美国的通货膨胀和中国不一样,中国的通货膨胀是由供给短缺引起的,比如四川的猪生病了,猪肉价格狂涨。而美国通货膨胀最大的原因来自于工资成本的上升,它是一个市场比较发达的国家,供应方面的瓶颈几乎是没有的,对它通胀推动比较大的是工资,工资的上升超过了劳动生产力的上升,工人的报酬超过了工人用劳动创造的财富时,就发生了通货膨胀。而中国因素在这个环节抑制了美国的通货膨胀,美国的资方劳方说,你想加工资我不给你加,我可以让中国人替我做,把订单下到中国去,你想罢工我在国内就不做了,所以"中国因素"压制了美国的通货膨胀。

通货膨胀跟美国的政策有什么关系?跟美国的哪个政策有关系?当然是货币政策。

美国的故事

如果没有通货膨胀,当局就可以保持一个宽松的货币政策,只有在通货膨胀起来的时候,世界各国的中央银行才会紧缩银根、加息,用紧缩银根的方法来削减社会总需求,把通货膨胀压下去。由于中国的存在,美国在很长时间里保持经济高速增长,同时没有通胀,格林斯潘这个时候就有点迷茫,为什么美国的经济没有通胀?他想加息,但又看不见通胀,敌人没有出现你打枪有什么意思?经济增长速度高有什么不好呢。在犹犹豫豫之中,格林斯潘把"911"时候的低利率保持了两年之久。911时为什么要降息?因为911袭击使得美国金融系统陷入混乱,金融体系之间的周转困难,美国商界的信心受到很大的打击,为了刺激投资、刺激消费避免美国的经济陷入衰退,格林斯潘在911之后大幅度的降息。但是,格林斯潘在很长时间里看不到任何通胀的迹象,所以他就等!等!等!一直等到2004年中,通胀在美国开始有抬头,格林斯潘才开始加息、收紧银根,但是已经太晚了。2001年到2004年的利率是战后的最低水平,大概在1%,当然,今天美国的利率比"911"那会儿还低。

战后最低的利率水平保持了两年多时间,造成了什么问题?低利率使流动性过剩。非专业经济的同学可能不懂流动性,流动性就是钱,钱太多了。1%的利率,老百姓会把钱放到银行里吗?不会的,于是这个钱就在市场上到处游逛;1%的利率,银行也放出了大量的贷款,老百姓也喜欢借钱,因为利率低、资金很便宜;老百姓不存钱、企业不存钱,美国的家庭、企业、金融机构都大量的借钱,借的结果是我们经济学上讲的信用泛滥、流动性泛滥,大家都在借钱过日子。中国老百姓是勒紧裤腰带过日子,我们是世界上最节俭的民族,我们的储蓄率接近50%,在世界上最高的。美国的储蓄率是多少?是0,有几年储蓄率是负的,借钱度日。为什么?因为借钱太便宜、利率太低,一个经济中钱太多了就不是好事,就要出问题。北京下一场雨、雪,大家都觉得这么干旱的地区下雨很好,很湿润,但是下多了二环桥底下就积水,车就开不过去了,所以水不能太多;一个城市水不能太多,一个经济中钱不能太多,钱太多就出事。如果钱太多,超过了实体经济的需要,这些多余的钱上哪里去?就去寻找资产,当资产市场上也容纳不下的时候,就转变成资产泡沫了。钱太多了怎么办?进如股市,
A股为什么可以从1000点冲到6000点,美国股市也同样,一路牛气冲天。进入楼市,在楼市创造出一个日益膨胀的大泡沫,楼市的泡沫是怎么产生的?就是因为钱太多了。商业银行能够拿到贷款的人全都拿到了,剩下那些人是没有资格拿贷款的,但是商业银行和美国的政治家们给这些没有资格的人创造了条件,让他去借贷款,这种贷款叫"次贷"。什么叫次贷?就是不合格的贷款人拿到了贷款。在次贷的支持下,大量的资金进入到房地产市场,把房地产市场的泡沫一天一天地吹大,吹到去年年中泡沫破灭。次贷的泡沫吹大了以后,再加上金融创新、MBS,把次贷做成资产证券化,然后再卖给投资者,这样风险就分散到市场上了。

次贷风波的根子就在钱太多了,为什么钱多?因为利率低。为什么利率低而没有通胀?"中国因素"是原因之一。所以在国际经济一体化突然提高的时候,美国的经济制定者有点发懵,美国的经济这么多年为什么没有通胀,导致货币政策出现失误。今天,我们一般都同意格林斯潘是金融危机的罪魁祸首之一,格林斯潘的两大错误:第一是货币政策的错误;第二是金融监管的错误。格林斯潘本人前些天承认了第二条错误,我认为这是避重就轻,到现在不承认货币政策上的错误。所以奥巴马政府一上台,就把保罗.沃尔克请去当经济复兴委员会的主任,保罗就是格林斯潘的前任,格林斯潘应该感觉非常失落,但是他的失落也没有什么好抱怨的。这是美国这边的故事。

中国的故事

我们再来看全球经济一体化的这半边,中国是怎么回事。美国钱多,除了制造股市泡沫、房地产泡沫之外,还拿这些钱到国际市场上买东西,于是造成了对中国出口产品的旺盛需求。别看我们"中国制造"质量还不怎么样,但外面需求很多,卖得出去就能赚钱。既然需求强,国内的企业就投资,增加生产供应能力,进入本世纪以来我们经济的增长主要靠投资拉动,投资推动的力量一方面是国内有需求,另一方面是来自于海外。在中国加入WTO之后,出现了来自于海外的强劲需求,我们就拼命的投资,增加产能的供应,形成过多的产品,出口到美国,这两边拼起来,就形成了完整的国际经济循环。

现在这个循环走不下去了,为什么?忽然之间我们发现来自于美国的需求没了。我去广东了解情况,有一些外向型企业和我说,11月份整整一个月没有一张订单,有的企业不光是没有新订单,连老订单都取消了,从来没有见到这样的情况。为什么忽然像退潮一样,这些订单就消失了呢?原来来自于美国、欧洲和日本的外部需求是由什么支持的?是由宽松的货币政策支持的,现在次贷危机爆发、泡沫破灭、美国的金融机构泥菩萨过江自身难保,再也不可能像过去那样发放贷款,一旦贷款停止,美国的经济马上陷于停顿。为什么在次贷经济之后三大车厂混不下去了?美国老百姓买车跟我们买车不一样,别说买车,我们买房子都是现金。美国人可不是这样,美国人买车用借贷。一旦商业银行不敢往外放款,美国家庭的购买力就突然下降,汽车销售量马上变成负的,三大车厂也是负债经营,一旦现金流不能流入,整个公司就无法运转。当然,从长远来看三大车厂的核心问题是工会问题,但是银行停止贷款引发了三大车厂的经营危机,美国的老百姓无法再像过去那样买车了。

伴随着三大车厂的负债经营,国内是国美出事了,美国的"国美"叫"百思买",也不行了。因为美国人不仅借贷买汽车,而且借贷买冰箱,一旦贷款停止,电器的销售都发生了问题,百思买的股价都跌到谷底。企业负债经营、家庭负债消费,美国政府更不用说,也是负债累累,美国人的问题是负债过重。中国人的问题是什么?存钱太多。我们为什么老是买美国的国债,美国人借债谁借给他?是由存钱的人借给他,存钱的是谁?中国人,所以中国人买美国国债是非常符合逻辑的事情,借出去钱还能赚点利息,所以我们不要责备中央银行和外管局,在这种经济循环的过程中必然中国要买美国的国债。

现在,美国的金融体系把负债经营的商业模式一下给打乱了。过去我们这里不管生产多少东西,总会有人要,现在发现没人要了,我们大量的投资所形成的过剩产能,现在全变成了库存。过剩的库存、过剩的产能似乎一夜之间从地里冒出来,为什么我们在过去几个月里看到钢价暴跌、煤价暴跌、铁矿石价格暴跌,为什么?因为产能过剩,企业都不计成本的抛售库存,国际经济循环的链条,只要中间一个链条断掉,其他各个链条就产生"滚雪球"的效应。银行放出了太多的借贷,这需要调整,当然调整是痛苦的。

可怕的产能过剩

中国这边需要调整的是什么?国内的经济有这么多的过剩产能,库存好处理,过剩产能怎么处理呢?我听钢铁厂的人跟我讲,他们现在正在考虑炼钢的炉子怎么办,炼钢不是市场上有需求就多炼两炉,没有需求就停两天,炉子能停吗?不能停。但是市场上又没有需求,钢铁厂有两个办法:第一个叫做"闷炉",就是用蜂窝煤盖上,留一个眼让它缓慢燃烧,供给它燃料、电力,仅仅保持铁水不冻上,但是闷炉也有成本,闷炉也得供电、烧焦炭,如果闷炉的成本太高了,有些钢厂考虑把铁水放干,把炉炸掉。

过去我们在学习《资本论》时,都说资本主义生产方式的一个特点就是大量的过剩。我记得教科书上有照片,美国的农民把牛奶都倒沟里了,今天我们也倒沟里了,只不过原因不太一样,不仅要把牛奶倒沟里,还要把好好的炉子给炸了。美国人很痛苦的在调整,我们也要调整,把过剩的库存处理完以后,我们要面对过剩产能。牛奶可以倒掉、奶牛可以杀了,这些机器设备怎么办、厂房怎么办、矿山怎么办?全球经济的调整是个非常痛苦的过程,不仅是痛苦,很有可能是漫长的过程。我们发现旺盛的海外需求实际上是由货币政策支持的,而货币政策这个虚火一撤掉,我们过去大量的投资有可能今后不能创造价值了。这些投资如果不能产生效益,对银行意味着什么?意味着银行的大量坏帐。它对社会意味着什么?失业的产生。所以现在政府很着急,但是,着急也得讲究方式方法,不能乱着急,一着急就命令产业不许裁员,企业经营不下去不裁员怎么办?

新的世界经济格局

我们下面怎么调整?过去中国经济的增长全靠投资。给大家一个数量的概念,我们推动经济增长的三驾马车:第一驾马车叫投资,现在占GDP42%左右,投资的增长率在过去几年平均每年20%;第二驾马车叫出口,在经济学上的计算只是净出口,净出口去年占中国GDP的9%,而出口的增长平均每年30%多,有些年达到了40%;第三驾马车是消费,居民消费占中国GDP35%,消费的平均增长率大概是在10%-15%之间。有这组数据大家就知道中国GDP的增长,第一靠投资、第二靠出口,消费在这三架马车中是小兄弟,是敬陪末座。现在出口已经负增长了,它由推动经济的强大引擎,变成了拖累经济增长的因素;投资正在熄火,为什么?因为有那么多过剩的产能,但需求在什么地方?市场在什么地方?没有市场、没有需求为什么要投资。现在能够撑起中国经济局面的就剩下消费了,但是当我们需要消费的时候,我们发现消费占经济的比重在逐年下降,这都是要用数据说明的,因为PPT设备无法支持,我现在无法演示。

在调整的过程中我想强调一个概念,美国的调整和中国的调整都是必须要进行的,这个调整不是在原有均衡上简单的周期性重复,而是从一个旧的均衡向一个新的均衡过渡。这个调整不是旧的游戏的简单重复,而是从旧的游戏跳跃到新的游戏上去,旧的游戏和新的游戏均衡区别在哪里?在于预期的不同。

我在这里讲的是美国和中国,我用美国代表一个经济发达体,用中国代表"金砖四国"、新兴经济国家,也就是发展中国家。

在新的世界格局中,人们的预期必须做永久性的调整,美国人再也不能幻想像过去那样借贷度日,美国人必须增加储蓄率,企业必须降低杠杆率。杠杆率又是一个经济学的概念,杠杆率是企业的资产负债率。为什么雷曼兄弟倒台了?杠杆率太高,有30多倍,自有的资本金只有3%,抵御风险的能力非常低,他的投资里只要出现3%的坏帐,它就资不抵债,所以美国的企业一定要降低杠杆率、美国的家庭一定要增长储蓄、减少消费,这就是在美国进行的去杠杆化过程,实际上就是降低负债。但是降低负债,企业就要缩小投资计划,这对整个经济意味着经济活动的收缩,所以美国经济陷入衰退恐怕短时间内走不出来,只要去杠杆化过程继续一天,美国的经济就会在停滞的状况下度过一天。

美国的经济什么时候恢复?什么时候去杠杆化完成之后才能恢复,这并不是传统的周期波动,30年河东30年河西,两个季度GDP收缩,第三个季度就好转了,不是那么简单的,因为这次是从旧均衡过渡到新均衡,而不是在原有的均衡上重复。

中国将告别两位数高增长时代

对于中国来说,也要调整预期,这个预期是什么?国外对中国产品的需求不会像过去那样。中国的出口不会再以20%、30%的速度增长了,只能跟着全球贸易量的增长而增长,全球的贸易量每年增长多少?大致来讲比全球GDP的增长高2-3个百分点,如果全球GDP是4%,那全球的贸易量也就是6%、7%,所以国内还有理由投资每年增长20%以上吗?没有了!企业要调整它的投资计划,投资也不可能20%多的增长了,如果外贸从20%多的增长降到6%、7%,固定资产的增长降到10%,中国的GDP每年还有10%吗?可能只有5%、7%,我们必须习惯一个新的时代,在这个新的时代中GDP只有中度的增长,两位数的增长已经成为历史,如果我们展望未来中国GDP增长也许只有5%-6%。5%-6%的GDP增长意味着什么?意味着各位毕业之后找工作就困难了,这个困难今年已经发生了。

在中度增长时期我们怎么办?我们已经习惯了10%的增长,好像低于10%我们的日子就过不下去,为什么?就业是个很大的原因,我们形成一种习惯性的思维,中国一定要有10%的增长,否则解决不了就业问题。

但是世界上有哪个国家像中国一样?日本3%的增长保持了20年、韩国保持了15年,他们的就业问题怎么解决的?虽然我们的自然增长率比美国高,但总人口增长率美国比我们高,因为它有移民。过去我们靠投资来推动经济增长,投资又大部分进入了制造业,特别是最近几年,大量的投资进入了所谓的重型制造业。制造业的特点是什么?制造业是资本密集型行业,它不是劳动密集型行业,特别是一些所谓的重型制造业。我们很多著名的经济学家说中国的工业化以后要有二次工业化,二次工业化的特征叫做重型制造业,这是缺乏基本的经济历史常识的著名经济学家们才能讲出来的话。我们都知道工业化完成之后,世界各国走的道路都表明,工业化的下一个阶段是经济的轻型化,去工业化。在工业化完成之后,下一个新兴产业不是重型制造业,是服务业,如果有一点经济常识都不会讲出这样外行的话来。

我们前两年还在鼓吹工业化、后工业化、重型工业化,完全无视世界各国经济发展的一般趋势和我们国家自己经济发展的趋势,这样做的结果是什么?是我们的经济结构严重失衡,我们发展的重点是制造业,而制造业不能有效地创造工作机会,我们不得不依靠经济10%的增长解决就业问题。但是能够有效创造机会的服务业长期被忽视。(注:对,非常有道理!)

4万亿投资的钱从哪里来

现在怎么办呢?我们还是不谈产业结构的问题、不谈经济结构的问题,我们想用四万亿来扭转乾坤,大家也都听说,政府推出四万亿的财政刺激计划,要扭转中国经济增长下行的趋势,我们现在也成了"凯恩斯主义者"。

首先,明年的财政支出到底是六万亿还是八万亿,如果四万亿是新增的,则明年的财政支出是八万亿,如果四万亿是原来预算中就有的,明年的财政支出就还是六万亿,这一点都不刺激。经济学中只有新增的才有刺激作用,这四万亿到底是新增的还是原来就有的,到目前为止我们还没有看到一个明确的说法。如果是原来就有的,这四万亿无非是把原来就有的提前宣布了一下。

第二个问题,钱从哪来?有一万亿已经清楚了,来自于中央财政,明年发行特殊国债五千亿-六千亿,这一万亿是落实的。算一下中央政府的负债、GDP、增发五、六千亿的国债,政府的债务水平还能够控制在国际警戒线附近。国际警戒线赤字是多少?GDP的3%,根据现在的情况我们还能够管理它。问题在于剩下的三万亿从哪里来,到现在我们也没看到一个明确的说法,我们国家的财政非常不透明,我们拿不到数据,所以只好猜测。

有的说从地方政府来,我们就去找数据看地方政府有没有这个财力,找到的结果结论是够呛。大家注意到没有,现在好多地方政府都出台了救楼市计划,政府为什么要救楼市啊?因为土地财政难以为继。我们手头拿到一组数据,今年1-11月份,7、8个城市卖地的收入仅为去年全年卖地收入的1/3,有些城市甚至连1/4、1/5都不到。地方政府匆匆出台措施救楼市,实际上是救自己。土地财政难以为继,希望刺激楼市,把地价抬高。目前刺激的结果是什么?不甚理想。在这样的情况下,假如明年的楼市不能恢复到几个月前那样火爆,地方财政连自己都解决不了问题,哪有钱投入到这三万亿中来?这是个很大的问号。

第二个来源是哪里?银行。大家要知道我们的银行经过了多年的努力,好不容易开始剥离坏帐,然后改革,建立基本的规章制度,在海外上市,进一步筹集资本金,现在我们的银行体系基本上可以说是健康的,为什么在国际金融危机的冲击下我们这里没有发生大的动荡,一个是重要的原因就是我们的银行体系基本健康。好在我们抓紧了银行改革,否则按照过去银行20%-40%的坏帐率,在国际金融危机的冲击下,国内的信心发生什么变化很难设想。现在有一些银行买了次贷资产,如果是不良资产,我们能不能消化次贷资产造成损失,很成疑问,我认为改革当先银行刚刚恢复健康,你马上要求银行给你放几万亿的款。银行贷不贷呢?不贷又不对,贷也不对。别忘了银行现在都是上市公司,上市公司要对股东负责,贷的这笔款项风险、收益是否匹配、能不能回收?多长时间回收?如果没有效益怎么到股东大会上交代。你跟股东说,我知道这个贷款风险很高、收益比较低,但是我要讲政治,响应国家号召。股东买了银行的股票是为什么?是为了赚钱。生活中炒股的人很多,各位买股票时心里想的是支持国家建设还是什么?如果是赚钱就对了,如果你说是为了支持国家建设,反而我觉得口是心非。

银行怎么办?它要面对股东,每年要交财务报表,今年的资产规模扩张了多少,不能说响应党的号召就贷款了,如果这么贷,我们的商业银行又要回到政策性银行的老路上去。我们这么多年吃苦头吃在哪里,就是因为我们的商业银行不是商业银行,而是政策性银行,这条路不能这么走,不仅在股东那里没法交代,就是在全国老百姓这里也无法交代,不能再人为的制造银行坏帐。

如果银行不行,就剩企业了。如果企业愿意在这个时候投资的话,何必还要这四万亿呢?这四万亿隐含的前提就是,企业不愿意在这个时候投资。可以肯定的是民营企业不会掏钱,因为钱都是他自己的,他不愿意在经济下行的时候冒然把钱扔出去。那就剩下国有企业了,政府可以跟国有企业讲政治,让国有企业在四万亿里做出贡献,但是别忘了国有企业的任务是什么?资产保值增值,尽管我认为国有企业资产保值增值的目标是错的,但是目前政府给它规定的目标就是资产保值增值,你在这个时候做投资出现损失怎么办?国有资产亏损怎么办?所以我们看到国资委领导讲话都非常艺术,"一方面"、"另外一方面","既要"、"又要",既要支持扩大内需的政策,又要控制风险。

算了一圈,除了中央的一万亿以外,不知道从哪筹集这三万亿。

4万亿刺激可能无功而返

第三个问题,就算落实了资金的来源,拿到了四万亿,扔下去能不能起作用?由于这个事情还没有发生,我们只能借助一些历史的事件来判断这四万亿到底能不能起作用。

我们都认为,1933年的罗斯福新政结束了上次大萧条,这被称为"凯恩斯主义"、"国际标准"。新政有两条主要内容:第一,建立全国的社会保障体系;第二,政府增加开支创造需求,试图把经济拉出萧条。但是美国经济并没有因为罗斯福新政而摆脱萧条,萧条从1929年一直持续到1939年才结束,为什么结束?因为希特勒进攻波兰,第二次世界大战全面爆发,政府的需求突增、政府的开支在1940年以后占到GDP的50%,才结束了美国长达10年的萧条。结束大萧条的不是罗斯福的新政而是希特勒。这就是历史,当然历史经常被人们改写,08年的诺贝尔奖获奖者是克鲁格曼。其实我认为他是没有资格拿到这个奖的,他获这个奖不是因为他的学术研究,主要是因为他是《纽约时报》的专栏作家,类似于歌星、球星,而不是经济学家。但是克鲁格曼讲了一句正确的话,他说"靠财政政策结束萧条只有一次,就是第二次世界大战"。

我们再看一下日本,日本在1989年经济进入衰退,房地产和股票市场泡沫破灭。日本政府为了应对这样的衰退,同样也应用了凯恩斯主义,连续10几年实行扩张性的财政政策,财政赤字平均每年达到GDP
5%以上,早就突破了国际的警戒线,在高峰的年份达到GDP
10%以上,但是日本的经济什么状况?到今天仍然是不死不活。当然,大家会说如果不实施积极的财政政策,日本比今天还惨,这句话是对的,但问题在于这样的扩张性财政政策是无法持续的。在日本长期衰退的初期,也就是80年代末90年代初,日本的国家债务对GDP的比例是50%,今天是多少?今天是160%,日本政府还有可能增加债务吗?进一步举债的空间已经非常有限,如果再增加负债,国家有可能破产,日本政府在海外发行的国债就曾经被国际评级机构把它评为"垃圾以下",说明大家对日本政府的偿还能力产生怀疑,中国愿意走日本的道路吗?我们不愿意。那怎么办?

有人说1998年我们也执行过扩张性的财政政策,经济不正结束了下行增长的趋势,而调头向上吗。确实是这样。但是当我们分析数据之后就会发现,98年财政政策起到了一定的作用,但是99年、2000年以来经济的反转最根本的是两大原因:第一,房地产投资的突飞猛进,为什么房地产在99年、2000年启动?因为1998年我们进行了住房改革,取消了分配住房,把住房推向了市场,忽然在国内打开了一个巨大的房地产市场,资金、材料、劳动创造了一个新的产业,这个新的产业支撑了我们经济发展一直到今天,到今天我们房地产投资已经占到固定资产总投资的1/3以上。而房地产市场的启动跟四万亿没什么关系,房地产市场是靠改革启动的。

第二大原因是什么?就是前面讲过的,进入WTO后的外部需求。

放开政府对经济的过度管制是关键

所以,中国经济的调头向上第一是靠改革;第二是开放。我在各种各样的会上讲,中国不需要凯恩斯主义,中国需要邓小平理论。邓小平理论是什么?就是坚持改革开放、培育新的经济增长点,让市场发挥作用、让民众的创造力充分的涌现、我们国家的经济是有希望的、有办法的。我在四万亿上看不到希望,在四万亿上得不到信心,我能够看到希望的是改革和开放。尽管我在凯恩斯主义上花的时间比邓小平理论上多得多,同时我们也要批判凯恩斯主义。现在经济中确实碰到一些困难,这些困难没有什么了不起的,过去我们也碰到过,我们靠什么来解决这些困难?不是靠政府花钱!花钱!再花钱!而是靠不断地改革开放、培育新的增长点,相信民众的创造力、相信市场的活力,实际上我们也提了很多建设性的意见,至于听的人感觉是不是建设性就不知道了。

为了培育新的增长点,我一再呼吁要解除政府对经济的过度管制。刚才我们已经讲到了,为什么我们经济增长10%还解决不了就业问题,就是因为我们把经济发展的重点放在了制造业上而长期忽视服务业,使得我们国家的服务业在世界各个主要经济体中是相对比较落后的。我们服务业占GDP比重不到40%,美国是80%以上、日本是65%,连经济发达程度不如中国的印度,服务业占GDP的比重也有50%。服务业长期的落后和政府的管制有着长期的关系。

我所说的服务业不是我们通常理解的洗头的、捏脚的,我说的是金融服务、电讯服务、交通运输、港口机场、文化教育、医疗卫生、媒体娱乐,这些行业有多大的空间、有很多投资机会、能创造很多工作岗位。拿金融服务业来说,我们80%以上的中小企业现在没有金融服务、几乎百分之百的农民没有金融服务,如果把这个市场打开,我们能创造多少就业?医疗卫生行业,现在我们都不敢去医院,去医院没病都给你搞病了,排队、拥挤、医生服务的态度,有病的不敢去医院,没病也不想去医院。

为什么医疗服务的供应长期落后民众的需要?因为管制。想办个医院,先到卫生部报批,等着吧,两、三年不批,为什么不批也不告诉你。民营医院想了各种各样的办法打擦边球、钻墙角,最后还是经营不下去,政府铁打的医疗体系阻碍了资源流入,结果就是供应的短缺,看病难。现在不提政府管制,反而把气都撒到大夫身上,说大夫医德有问题。大夫的工资也是管制的,不能由市场的供给、需求决定医生的工资,医生的收入长期低于市场价值,但市场的规律总是要顽强的表现自己,表现的方式就是红包。不给医生涨工资,还骂他收红包是医德有问题,这不是市场经济的逻辑,这是计划经济的逻辑,我们在市场经济中老用计划经济的逻辑,把事情全搞扭曲了。医学院毕业不就开那点钱吗,还不如做公务员呢。大家知不知道,公务员不创造价值。公务员做的工作都是价值的重新分配,政府是不创造价值的,政府手里的钱都是老百姓创造的价值,以税收的形式交到那去。如果我们社会中的青年才俊都向往着不创造价值的工作,我们这个社会长久发展下去是不是令人担忧。

对文化娱乐体系过度的管制,一个片子出来三堂会审,关系搞得不好就说你品位低下不能播。文化娱乐是老百姓喜闻乐见的事,有人愿意做、有人愿意看,你为什么要插一杠子评审呢?为什么你的口味就比老百姓高雅呢?这种无所不在的管制束缚了我们经济的发展,我们政府经常做两件事:第一就是作茧自缚。中国还是一个中等程度发达经济,我们跟日本不一样,我们有很大的潜力,但我们作茧自缚;第二件事就是"逼良为娼",如果没有地下钱庄,我们的民营企业不能到今天,地下钱庄为什么是非法的呢,因为没有法。地下钱庄如果能在阳光下操作,大家去注册,政府可以收税、可以监管、能解决中小企业的融资问题、创造了就业,何乐而不为呢?

在经济碰到一些困难的时候,不存在信心问题,我们对中国经济的发展、对中国民众的创造力、对市场的活力始终充满着信心,我们缺乏信心的是政府的政策,我们对于改革开放在近几年的停滞不前深感忧虑,为了应对这些困难我们要好好的总结过去30年改革开放的经验,坚持邓小平理论、坚持改革开放。目前摆在我们面前的困难是可以克服的,克服之后中国的经济将进入新的发展阶段,我们GDP的增长率也许不会像过去那样令人印象深刻,也许只有5%、8%,但是这5%、8%是健康的、是可以持续的、是高质量的,可以实现充分就业,可以维护社会稳定的。

从六个基本方面看财务报表

财务报表主要是反映企业一定期间的经营成果和财务状况变动,对财务报表可以从六个基本方面来看,以发现问题或作出判断。

一、看利润表,对比今年收入与去年收入的增长是否在合理的范围内。像一些公司已经发生过的事件,利润表上今年的收入比去年增加几百个百分点,这就是不可信的,问题非常明显。那些增长点在50%-100%之间的企业,都要特别关注,弄清楚增长点源自那里。

二、看企业的坏账准备。有些企业的产品销售出去,但款项收不回来,但它在账面上却不计提或提取不足,这样的收入和利润就是不实的。有做假的可能。

三、看长期投资是否正常。有些企业在主营业务之外会有一些其他投资,看这种投资是否与其主营业务相关联,如果不相关联,那么,这种投资的风险就很大。不专心主营的企业未来肯定好不了。

四、看其他应收款是否清晰。有些企业的资产负债表上,其他应收款很乱,许多陈年老账都放在里面,有很多是收不回来的。象这样乱糟糟的企业一定要格外小心。

五、看是否有关联交易,尤其注意年中大股东向上市公司借钱,到年底再利用银行借款还钱,从而在年底报表上无法体现大股东借款的做法。

六、看现金流量表是否能正常地反映资金的流向,注意今后现金注入和流出的原因和事项。

总之投资者一定要看清楚,这段时间是年报集中出来的时间,好多垃圾企业不把心思放在企业经营上,而是把心思放在怎样粉饰年报上。优秀就是优秀,垃圾就是垃圾。投资者不要被华丽的外表而迷惑了方向。只要仔细去甄别肯定会看出一些端倪来。不足的地方请大家补充建议。

行业投资清单

投资圣经/【美】帕特·多尔西

医疗保健行业

●开发新药是费时、高成本、没有成功保证的。寻找那些有长期专利保护和有很多正在研发中的新药可以分散开发风险的公司。

●如果制药公司的产品目标市场有大量的患病人群或者需求明显未被满足,这就存在一个非常好的盈利机会。

●对一种畅销药品占销售收入很大比例的制药公司而言,要确信投资该股票时有大的安全边际。任何意想不到的研发都可能使现金流和股票价格萎缩。

●除非你深入了解这项技术,否则不要在生物技术公司起步阶段投资。这类公司的盈利可能是巨大的,但是迄今为止其现金流还不可预测,在这种情况下,输得精光比赚大钱的可能性更大。

●不要忽视了医疗保健器材行业,这个行业里有很多公司具有竞争优势。

●对依赖于研发的公司(包括制药、生物技术和医疗器材)来说,现金为王。确信公司有足够的现金或者来自经营活动的现金,能够让它完成下一个研发周期。

●密切注意政府。任何医疗保险和医疗补助政策的调整和变化,都可能对整个行业的定价能力产生深远的影响。

●分散风险的管理医疗组织,无论是通过高混合的基于收费的业务、产品多样化、强大的承销能力,还是拥有风险最小化的政府账户,都可提供一个能保持一定增长速度的收益。

消费者服务业

●大多数消费者服务概念在长期经营中是失败的,所以,对处于商业生命周期中投机或者积极成长阶段的公司的任何投资,都需要比一般股票投资更严密地监控。

●小心股价已经到了高成长期的价位了。建立消费者对门店忠诚或者依赖的公司很有吸引力,蒂凡尼公司是一个很好的例子,它在珠宝零售市场上只面临有限的竞争。

●要比较存货和应付账款周转率,以确定哪一家零售商是超级高手。那些知道顾客的需求并知道如何使用强大的谈判能力的公司,是这个行业里值得下赌注的投资对象。

●密切注视那些表外债务。很多零售商在它们的账面上很少或没有债务,但是它们的全面财务健康状况也许并不那么好。

●当一家稳健的公司出了一份不好的月度或季度销售报表时,要注意寻找买入的机会。很多投资者对一份不好的门店销售收入结果反应过度,其原因也许仅仅是因为坏天气或者因为是与去年同期过高的数字相比。你要关注的是公司的基本面而不是股票的反应。

●当经济走势明朗时,公司也趋向于同步波动。当整个行业下滑时,寻找机会买入一家著名零售公司的股票,同时要对手边的名单保持警觉。

商业服务业

●理解商业模式。了解基于技术、人力或公司的行业特点以及这些公司创造业绩的不同方式。

●寻找规模经济和经营杠杆作用。这些特性能够提供明显的进入壁垒并创造令人佩服的财务业绩。

●寻找应计收入。长期客户合同能够保证未来一些年份的一定水平的收入,它能够给财务状况提供一定的稳定性。

●关注现金流。投资者赚取回报最终要依靠这家公司产生现金的能力,要规避那些不能预期产生充沛现金流的投资。

●判断市场机会大小。有大的、尚未开发的市场机会,可以为高成长提供一个有吸引力的环境。而且,公司顺应市场发展趋势,可以预知大的、能容纳全行增长的机会,因为对全行业参与者来说,不太可能只在价格方面进行竞争。

●检查增长预期。搞清楚哪种增长率是和股价联系在一起的。如果增长率是不现实的,就要规避这只股票。
银行业

●银行的商业模式可以归纳为管理三种风险——信用风险、流动性风险和利率风险。
●关注经营良好的银行。投资者应当挑出那些相对于竞争对手持有巨额流动性基础资产、并为未来的坏账已适度计提了风险准备金的银行。
●银行损益表的不同组成揭示了财务表现的不稳定,这源于利率和信用环境等诸多因素。一般来说,经营好的银行应当在各种各样的环境下表现出稳定的净利润增长。投资者应当为能够挑选出过往记录好的银行多付出些努力。
●经营良好的银行会严格匹配资产和负债的时间期限。例如,银行应当用长期负债(比如长期债务或存款)做长期贷款,而不是用短期资金来做这件事。投资者应规避不这样做的贷款银行。
●银行业有巨大的竞争优势。它们能以甚至比联邦政府还要低的利率借钱,它们巨大的规模经济源于已经建立起来的巨大的销售分配网络。银行业资本敏感的天性阻止新的竞争者进入,而且客户转换成本高。
●投资者应当挑选那些有良好权益基础,有适度的、稳定的净资产收益率和资产收益率、盈利能力能稳步增长的银行。
●用市净率指标比较相类似的银行,可能是避免为银行股票付钱过多的一个好办法。

资产管理和保险业

●寻找多样化的资产管理公司。那些管理着许多资产种类(比如股票、债券和对冲基金等)的公司,在经济回调期间更稳定。一炮走红具有更大的不稳定性,并且可能遇到剧烈的波动。
●密切注意资产增长。确信一个资产管理人带来的资金流入比流出要多得多。
●寻找有吸引力的能瞄准机会的资产管理人,比如税收递延基金或者国际化投资基金的管理人。
●粘性资产增加稳定性。寻找高稳定性资产比例大的公司,比如国际货币投资基金或者专业化的退休储蓄基金的管理人。
●规模越大常常就越好。管理资产多、有长期良好记录和多种资产种类的公司,可以给客户提供更专业的服务。
●警惕那些比同行业平均水平增长快得多的公司(除非这种增长的原因是公司的收购)。
●在寿险业,一个保护投资免受风险的最好办法是考虑那些营业收入来源多样化的公司。某些产品,比如易变的养老金,显示出很强的周期性。
●寻找那些高信用等级(AA级)、有可靠的实力、能实现高于资本成本的净资产收益率的公司。
●挑出那些能够始终如一实现15%以上的净资产收益率的财产和灾害保险公司,这是一个很好的承保约束和成本控制指标。
●回避再三追加储备金的公司。这种情况常常暗示保单定价低于成本或者成本膨胀正在恶化。
●寻找忠心为股东创造价值的管理团队。这些团队常常把大量的个人财产投资在他们经营的公司里。

软件行业

●很少有行业的经营环境可与软件行业相比。成功的公司有极好的成长前景、逐渐扩大的利润率和财务健康状况。
●具有强大的竞争优势的软件公司有可能产生平均水平以上的收益率,而一流的技术在软件行业中只是最小的持续竞争优势之一。
●寻找那些跨越了多个商业周期还保持良好经营状况的软件公司。我们更喜欢那些已经存续了好几年的软件公司。
●许可收入是现在需求最好的指示器,因为它告诉我们在一个特定的时间段内有多少新的软件被售出。你要密切注意许可收入的趋势。
●上升的应收款天数预示着一家公司以扩大与客户的信用条件来完成交易,这是对未来几个季度收入的挤占,而且可能导致收入的亏空。
●如果递延收入增长减速或者递延收入余额开始下降,它可能是公司业务已经开始慢下来的信号。
●变换的脚步使得软件公司的未来很难预期。因为这个原因,买入之前最好是寻找以内在价值较大折扣交易的股票。
硬件行业

  ●信息技术是发达国家提高生产力日益重要的资源。在2002年,信息技术几乎占了美国重要设备投资的50%,而在30年前只占到20%。
  ●技术创新意味着硬件公司能以越来越便宜的价格提供更强大的计算能力,因此,信息技术将承担越来越多的任务。
  ●因为快速创新,硬件技术公司趋向于收入和盈利的快速增长。
  ●与此同时,硬件技术领域的竞争对手常常都很强大。此外,硬件的需求具有很强的周期性。
  ●就技术本身来说,不可能持续支撑竞争优势。硬件行业中经过长期努力建立竞争优势的公司比依赖技术的公司更有可能取得成功。
  ●硬件技术公司依靠竞争优势成功的例子包括:
低成本制造商(如戴尔公司)、无形资产(如凌特技术公司和美信集成产品公司)、高转换成本(如北电公司和朗讯公司)以及网络效应(如思科公司)。
  ●一家有持续竞争优势的公司应当可以有效地抵御它的竞争对手并保持主要的市场份额,或者在很长一段时间内维持高于平均水平的毛利率。

媒体行业

  ●寻找能够始终如一地产生充沛现金流的公司。我们希望看到自由现金流与营业收入比率在10%左右的公司。
  ●挑选出那些在它们的主要市场有高市场份额的公司,垄断对利润来说是好的。许可证(尤其对广播行业)可以减少竞争,维持较高的利润率。
  ●寻找那些成功收购后能带来更高毛利率的公司。
  ●表现良好的资产负债表能够使媒体公司在不增加股东风险或不稀释股东股权的情况下,做出有选择性的收购。
  ●寻找那些有公正坦率的管理团队、明智的收购历史记录、使用股东资本再投资比较保守,或者通过派息和股票回购方式使用投资收益的公司。
  ●不要赶时髦。为一部风行一时的影片或者电视节目就买入一家媒体公司的股票,很少有赚钱的。

电信业

  ●规则和新技术的变化使得电信业的竞争更加激烈。尽管电信业的某些领域比其他领域更稳定,但在投资之前,所有价值评估都要认真考虑资金安全问题。
  ●电信业是资本密集型行业,拥有维护和升级网络的资金对于成功来说是至关重要的。
  ●电信业是高固定成本行业,关注毛利率变化是非常重要的。
  ●无线通话时间的价格正在直线下降,运营商将继续在价格方面竞争。
生活消费品行业
  ●寻找那些比竞争对手规模大且有成本优势的制造商,比如这家公司在它所属的行业里拥有占支配地位的市场份额。
  ●寻找那些能够不断成功地推出新产品的公司,如果这家公司能使这些创新产品的市场份额达到市场第一就更好了。
  ●核实一下这家公司是否在不断地做广告以支撑它的品牌。如果这家公司坚持不懈地以廉价促销产品,这可能会耗尽品牌的价值——仅仅是为了短期的收益而掏空品牌的价值。检查一下这家公司是如何处理营业费用的,偶尔的重组可能有助于提高效率降低成本,但是如果公司常规地计提重组费用并依赖这种费用削减策略推动公司业务,对这样的公司你要小心。
  ●这些进入成熟期的公司能产生非常多的自由现金流,所以,确认管理层如何明智地使用这些现金就变得相当重要了。考察一下这些现金有多少是以给股东分红派息或者股票回购的形式回报给投资者的。
  ●牢记投资者在经济低迷时期可能会哄抬生活消费品股票的股价,使得股票价格相对于它的公平价值贵得多。当生活消费品行业的股票有20%-30%的安全边际交易时,可寻找买入的机会。

工业原材料和设备行业

●这是一个传统的旧经济行业,有很多坚实的资产和高固定成本。
●工业原材料和设备行业被分成基础材料生产商(比如钢材、化学产品生产商)以及增值产品和服务的制造商(机械和某些特殊化工产品制造商)。
●矿产品的购买者以价格选择产品。在其他方面,矿产品都是一样的,不管是谁生产的。
●在这个行业中,公司的销售收入和利润对商业周期很敏感。
●没有几家工业原材料和设备公司具有竞争优势,例外的是某些集中的行业(例如国防工业),某些有利于市场产品的行业(如美国铝业公司以及某些化学制品生产商)以及那些以最低成本(如纽柯公司)生产产品的公司。
●只有最有效率的公司才能在低迷时期幸存。最好的办法是选择低成本同时负债少的公司。
●用资产周转率(总资产周转率和固定资产周转率)度量一家制造企业的效率。
●密切注意那些拥有太多负债、资金严重不足的养老金计划,以及进行了把管理层弄得心烦意乱的大型收购行动的公司。

能源行业

●能源行业的收益率高度依赖石油价格。石油价格是周期性的,所以这个行业的利润也是周期性的。石油价格处于周期性的低谷时是买入石油公司股票更好的时机。
●即使这个行业有很强的周期性,很多能源公司还是能在周期低谷保持盈利。投资能源行业要注意这些特征。
●石油输出国组织是对能源行业的盈利非常有影响力的因素,因为这个组织能够把油价维持在生产成本之上。关注这个组织影响力的变化是有必要的,因为石油输出国组织是石油勘探和开采业的卡特尔,我们可以看到,勘探和开采比炼油和销售更有吸引力。
●在石油市场从事销售业务,规模经济可能是取得竞争优势的惟一路径。同样,石油公司规模越大越好,因为公司越大越赚钱。
●密切注意储量的变化和新储量的增长,因为这是保证公司未来采掘收入的坚实资产。
●拥有表现良好的资产负债表的公司,在经历周期性低谷时比那些负担债务的公司的表现要好得多。寻找那些投资新项目时不需要额外借债并能分红派息或者回购股票的公司。

公共事业

●公共事业行业不再是曾经的投资安全港。对这个行业中的公司要保持适度的谨慎。
●公共事业公司必须面对的竞争结构很大程度上取决于州这一级别。一些州已经在放松管制的道路上走得很远,而另外一些州还是完全管制。留意不同州的管制规章的变化,对了解这个行业是必要的。
●在管制体制下的公共事业公司往往有较强的竞争优势,因为它们类似垄断经营。但重要的是,要谨记规章制度不允许这些企业利用这种优势获得超额利润。另外,规章制度可能会(也常常会)发生变化。
●公共事业公司面对的另一个风险是解除管制或者不解除管制的环境风险。大多数电厂会产生某些种类的污染,环境管制会日益绷紧,成本会上升。
●公共事业公司在很大程度上受到杠杆作用(包括营业杠杆和财务杠杆)的制约,而这对受管制的企业来说不是那么重要的,面对日益增长的竞争,它们面对的风险指数也在增长。
●如果你为了分红而买入公共事业股票,你要确信这家公司能融到维持支出所必要的资金。
●在稳定的管制环境下经营、有相对优良的资产负债表并专心于自己核心业务的公共事业公司,是这个行业中最佳的投资对象。

约翰·邓普顿的投资法则

相信一件事情,而做的却是另外一件,这是被世界上许多文化公认的"人的劣根性"的表现。约翰先生认为我们投资乃至整个人生的成功,都取决于我们所做的,而不仅仅是我们所相信的。
赚钱的第一个法则就是不输钱。第二个法则就是千万别忘记了第一个法则!


关于投资:

1.Begin with a prayer. If you begin with a prayer, you can think more
clearly and make fewer mistakes.

1.信仰有助于投资。如果你从祈祷开始,你就能想的更清楚,少犯错误。

2.Outperforming the market is a difficult task. The challenge is not
simply making better investment decisions than the average investor. The
real challenge is making investment decisions that are better than those
of the professionals who manage the big institutions.

2.领先投资市场是一项很难的任务。它的难度不是做出比普通的投资者更好的决策这么简单,真正的挑战是要做出比那些运作大公司的专业人士更好的投资决策。

3.Invest - don't trade or speculate. The stock market is not a casino, but
if you move in or out of stocks every time they move a point or two, the
market will be your casino. And you may lose eventually - or frequently.

3.投资——不要交易或投机。股市不是赌场。但如果每次股票变动一两个点你就买进或卖出,股市就变成你的赌场了。你可能最终会彻底失败——或者经常失败。

4.Buy value, not market trends or the economic outlook. Ultimately, it is
the individual stocks that determine the market, not vice versa.
Individual stocks can rise in a bear market and fall in a bull market. So
buy individual stocks, not the market trend or economic outlook.

4.注重股票价值,而不是股市走向或经济前景。说到底,是一支支股票决定了股市走向,而不是相反。即使是熊市也有股票上涨,牛市也有股票下跌。所以买股票要注重个股的价值,而不是股市走向或经济前景。

5.When buying stocks, search for bargains among quality stocks.
Determining quality in a stock is like reviewing a restaurant. You don't
expect it to be 100% perfect, but before it gets three or four stars you
want it to be superior.

5.买股票的时候,在优质股票中寻找特价的。确定股票的品质就像考察餐厅一样。你不会指望它百分之百的完美,但在它达到三星或四星的评定行之前你会希望它表现良好。

6.Buy low. So simple in concept. So difficult in execution. When prices
are high, a lot of investors are buying a lot of stocks. Prices are low
when demand is low. Investors have pulled back, people are discouraged and
pessimistic. But if you buy the same securities everyone else is buying,
you will have the same results as everyone else. By definition, you cannot
outperform the market.

6.低价买入。理论上非常简单,但执行起来却如此之难。当价格很高时,一群投资者购买大量的股票。当需求减少价格下降时,投资者们撤退了,人们变得胆小又悲观。但如果你和其他人买同样的股票,你只能和其他人得到同样的结果。按照我们的原则2,你不能领先市场。

7.There's no free lunch. Never invest on sentiment. Never invest solely on
a tip. You would be surprised how many investors do exactly this.
Unfortunately there is something compelling about a tip. Its very nature
suggests inside information, a way to turn a fast profit.

7.天底下没有免费的午餐。别听信空穴来风。不要在小道消息上孤注一掷。你要是知道有多少投资者这么干可能会惊讶的。不幸的是小道消息总有点煽动性。它们非常自然的暗示有内部消息可以快速赢得利润。

8.Do your homework or hire wise experts to help you. People will tell you:
Investigate before you invest. Listen to them. Study companies to learn
what makes them successful.

8.做做功课或者雇一些明智的专家来帮你。会有人告诉你:投资之前先做调查。听他们的话。研究你的同行了解是什么使他们成功。

9.Diversify - by company, by industry. In stocks and bonds, there is
safety in numbers. No matter how careful you are, you can neither predict
nor control the future. So you must diversify.

9.分散投资——投资不同的公司、不同的行业。投资股票或者债券,分散投资可以降低风险。不管你多么小心,你都不能预知或控制未来,所以你必须分散投资。

10.Invest for maximum total real return. This means the return after
inflation. This is the only rational objective for most long-term
investors.

10.追求真实回报的最大化。这指的是通胀之后的回报。对大多数长线投资者来说,这是唯一合理的目标。

11.Learn from your mistakes. The only way to avoid mistakes is not to
invest - which is the biggest mistake of all. So forgive yourself for your
errors and certainly don't try to recoup your losses by taking bigger
risks. Instead, turn each mistake into a learning experience.

11.从错误中吸取教训。避免错误唯一的方法是不投资——而这却是最大的错误。所以原谅自己的错误。当然不要为了挽回损失冒更大的风险。而要把每一个错误都转化为学习的经验。

12.Aggressively monitor your investments. Remember, no investment is
forever. Expect and react to change. And there are no stocks that you can
buy and forget. Being relaxed doesn't mean being complacent

12.积极监控你的投资。记住,没有一项投资是一劳永逸的。要对变化做出预计和反应。没有一支股票可以买了就抛在脑后。放松不意味着自鸣得意。

13.An investor who has all the answers doesn't even understand all the
questions. A cocksure approach to investing will lead, probably sooner
than later, to disappointment if not outright disaster. The wise investor
recognizes that success is a process of continually seeking answers to new
questions.

13.不要满足于解决现有问题的答案。自满迟早会导致灾难降临。明智的投资者知道成功是不断探索新问题的答案的过程。

14.Remain flexible and open-minded about types of investment. There are
times to buy blue-chip stocks, cyclical stocks, convertible bonds, and
there are times to sit on cash. The fact is there is no one kind of
investment that is always best.

14.对投资产品保持弹性和开放的态度。有时适合买蓝筹股,有时适合买周期性股票,有时应该买可转换债券,也有的时候只适合持币观望。事实在于没有任何一种投资可以永远坚挺。

15.Don't panic Sometimes you won't have sold when everyone else is
selling, and you will be caught in a market crash. Don't rush to sell the
next day. Instead, study your portfolio. If you cannot find more
attractive stocks, hold on to what you have.

15.
有时大家都在卖股票,你没有卖,被套牢了,这个时候不要惊慌。不要在第二天狂抛。相反,好好研究手里的证券。如果找不到更合适的股票投资,就把手中已有的握牢。

16.Don't be fearful or negative too often. There will, of course, be
corrections, perhaps even crashes. But over time our studies indicate,
stocks do go up and up. In this century or the next, it's "Buy low, sell
high."

16.不要过分恐惧或态度消极。股市当然会有动荡,甚至可能会崩溃。但是我们的研究标明,股票总体还是会一涨再涨的。无论是这个世纪或是下个世纪,记住"低买,高卖。"

林肯肖像:美国国宝级老照片

亚伯拉罕林肯,拍摄者Alexander Hesler。1860年6月3日。

读《谁也逃不掉的金融危机》---但斌 2009年2月16日

  2009年2月10日到广州聆听许小年教授《中国与国际经济新格局》的演讲。许教授的主要观点已在媒体读到过,演讲中许教授推荐了一本他认为写得很好的书——《谁也逃不掉的金融危机》,在广州东站的书亭买了一本,一看作者是郎咸平教授。

  在大鹏证券资产管理公司工作的时候,郎教授正好是公司的顾问,听他的讲座,妙语连珠口才了得。有时候走的晚,还能在办公室门口遇见他,印象最深的是那满头的银发。

  在火车上迫不及待的开始阅读"危机",一打开就不忍放下,在地铁里,在家里,用几个小时的时间读完,书中的观点和许小年教授的说法有许多相同之处,逻辑清晰,条理分明,结论似乎也有说服力,我相信很多人看了这本书,恐怕至少是短期不敢再投资股票了。

  理论和现实有多大差距,经济学家能洞悉多少人类的秘密,恐怕是仁者见仁智者见智了。不过就我等学习者而言,书中有几点,个人认为郎教授是讲到了此次金融危机的要害之处:


  "一、金融海啸破坏了资本主义的灵魂

  很多人会说国际金融海啸对我们的冲击是不大的,因为我们的银行没有买太多的次级债。如果这么看问题的话就太简单了。如何理解国际金融海啸?你必须了解国际金融海啸的本质意义是什么。

  金融海啸最大的破坏力在于它破坏了资本主义的灵魂,而不是一个简单的次级债的人付不起利息这么简单。怎么样破坏了资本主义的灵魂?是信托责任。

  什么是次级债?美国曾经是一个具有信托责任资本主义的国家,一批有信托责任和信用卓著的借款人,有信托责任的中介,和有信托责任的金融体系塑造了一个强盛的美国金融市场,也塑造了一个前所未有的华尔街神话。

  然而,华尔街逐渐开始丧失他应有的信托责任,因为真正具有信托责任、信用良好的人毕竟是有限的,所以华尔街开始找那些信用不卓著的人来买房子,创造了一个新的债券,起了很美的名字叫"次级债"。这么亮丽、这么大的金融市场本身是不会出问题的,可是这批人开始买房子就非常糟糕了,因为这一切都挂钩在那个人那里,只要那个人不付利息了整个链条就断了。很不幸次级债从此就进入了美国庞大的金融市场,加入了前所未有的"三聚氰胺"。

  请各位想想,当你们碰到三聚氰胺的时候,会是什么心态?你对中国的牛奶工业立刻丧失了信心,其必然结果是不喝牛奶。不喝牛奶之后牛奶业必将全盘崩溃。当美国人发现了"三聚氰胺"之后,美国人对于整个金融体系和资本主义也会跟我们不喝牛奶一样,他们对资本主义金融市场完全丧失信心,那就是美国金融体系的全盘崩溃。

  二、救市必须斩断工商链条

  怎么解决问题?在这里我给大家提一个新观点,叫做工商链条的新时代。当一个部门发生危机的时刻,如果你不去救助这个部门,就一定会产生多米诺骨牌的连锁效应冲垮其他部门。想想美国的金融危机,老百姓对美国市场的信心彻底崩溃,接下来是消费下降,企业倒闭、失业、消费减少从而形成恶性循环打击到实体经济,这就是现代工商链条的意义。美国政府的做法不是把一切问题推给市场,而是站出来立刻斩断工商链条。美国政府直接拿出850亿美金给AIG,拿了200亿美金给了花旗银行。

  回到中国,2006年或2007年所经历过的股市泡沫和楼市泡沫怎么造成的?放到中国的工商链条解释就明白了。泡沫就是第二张骨牌,第一张骨牌是我国制造业所面临的投资营收环境急速恶化。从前年开始,大量的制造业资金不做制造业了,而流出来炒楼炒股去了,这是2006年股价上涨的原因。冲击到第二张骨牌造成了股市、楼市泡沫。这样的泡沫太可怕了,吸引了社会大量的资源进入了股市、房地产市场,造成了严重的误导。这种回光返照的现象必然使得股市、楼市大跌。资产业的倒闭,股票市场一跌就消灭了中国的中产阶层,企业倒闭的结果造成了大量的失业,这些效果会再冲击下一张骨牌,就是消费减少。

  政府真正要救的是我国的民营企业、制造业,如果不救的话就没有长期的效应。一切都取决于第一张骨牌。尤其是帮民营企业致富之后,整个链条才会往上走。

  三、消费减少冲击着营销的未来

  再回到欧美的工商链条,他们不是已经斩断工商链条设立防火墙了吗,为什么股价还大跌?我可以清楚地告诉各位,防火墙已经开始漏水了,而漏水的结果是欧美各国的信心丧失,冲击到下一张骨牌消费减少。看看万圣节清淡的市场,其原因只有一个就是防火墙开始漏水了,这样的冲击太大了,你们做什么营销都没有用。

  中国的工商链条和欧美的工商链条如何挂钩?美国是以负债为主导的消费国家,美国家庭负债的比例高达GDP的95%。前面讲过,中国的经济存在35%的产能过剩,这部分过剩产能由于欧美各国传统的负债消费形态,帮我们吸收掉了。然而美国高负债消费是极其庞大的泡沫市场,是不能戳破的。

  当他们发现他们的负债当中也多了"三聚氰胺",他们也会减少负债消费,所以,"三聚氰胺"真正可怕的结果是会刺破美国人的负债泡沫消费,改变美国人的消费形态。

  各位请注意,两个管道都冲击了在座各位营销的未来,第一个管道是防火墙漏水之后因为信心丧失所引发的消费减少,第二个管道是"三聚氰胺"使得美国人的泡沫消费从过去的非量入为出改为正常消费。这两条管道汇集成两把尖刀,一刀插到工商链的第一张骨牌,影响到中国占GDP35%的过剩产能。为什么2008年11月份的销售额都要下降,因为这把尖刀从11月份就插在了我们企业身上。11月,美国财政部长鲍尔森召开记者会,说美国政府决定拿出原来准备收购被"三聚氰胺"所污染的银行资产或者是银行负债的7000亿美元中的部分资金,去帮助已经被冻结的信用卡、消费贷款和学生贷款市场。这已经充分证明从11月份开始,中国企业的日子很难过是因为这两个管道已经紧缩了。

  我们35%的过剩产能就通过这两个管道和整个欧美的工商链条紧密地挂钩在一起的,这是对做营销的最大的冲击。因此我讲,欧美的金融海啸竟然绕过了金融危机,而直接一刀插向了我们的实体经济。

  四、稳定的现金流才能保证企业的生存

  在这种国际金融海啸大冲击下,我们能做什么?我告诉你们四个字"束手无策"。既然我们对整个金融海啸控制有限,我们应该怎么办?

  中国的企业家与香港的企业家相比,有个人辛勤奋斗的历程,但没有经历过几次大萧条的洗礼,一对比就会发现差别。拿上市公司为例,国内企业资本负债比例总资产高达100%到300%。而香港这些曾经受过几次洗礼的四大天王的资产负债比例是多少?是
20%。为什么负债比这么低?因为保守是非常重要的。

  10月底, 李嘉诚宣布合记黄埔所有的对外投资全部停止,李嘉诚在11月份的时候手中积累了210亿的美金做流动资金,其中70%是以现金形式所保有,30%是以国债形式所保有。李嘉诚是在大萧条的前期减少投资增加信心、减少负债。对于企业家来讲要思危。我私底下交流问过他,你这一生成功的原因是什么?他只讲了两个字——"保守"。我接着问了另外一句话,你在企业经营当中最重视哪一块?他讲了一句非常有意思的话,他们只注重稳定的现金流而不是现金为王。用各种各样的办法创造了稳定的现金流是四大天王这么多年积累的成功经验,我把这句话送给大家。

  在中长期怎么做?我们的企业在中长期应该是从制造扩展到整条产业链的整合。而且整条产业链的整合必须是以产品为单位,不是以产业为单位,以产品为单位以龙头企业来推动。

  今天提的战略思想不是简单地让你不做事,而是短期内要确保你的生存,生存保证之后,不要想简单的制造业的概念,而是更加高效整合的产业附加值。"

  另外书中对中国证券市场三次崩盘的历史;伟大的经济学家梁启超;郎咸平最佩服的男人——林觉民三段的描写,还有他的一段语录:"没有经过经济危机洗礼的民族,不可能是经济上成熟的民族;没有经过经济危机洗礼的企业家,不可能是成熟的企业家;没有经过经济危机洗礼的公民一,不可能是市场上成熟的公民。"让人记忆深刻,也敬佩有佳!