中国人上的四大当

中国人上的四大当

第一大当:房产 
   买房意味着什么?意味着你拥有了一个属于自己的房子。是的,你是这样以为,但是在中国你并无法拥有这个房子,只是租给你而已。因为房子是你的,地不是你的,只是把土地使用权租借给你70年(从现在退70年那是抗日战争时期,谁见过那时候的房子?)。房子通常情况下30年左右就会遇上拆迁或者旧房改造。也就是说你花了买房的钱,却只能得到租房的实际效果。当然这还不是最坏的。最坏的是,当几十年后你发觉上当了!有一群流氓冲进你用一辈子积蓄买下的房子,画上一个大大的拆字!然后把你的家当全部当垃圾一样的仍出门外,不顾你的苦苦哀求,甚至还在报纸上给你按一个钉子户的臭名,任大众辱骂的时候你就会知道什么叫做绝望!
  形容中国的房地产有一个很有名的笑话是这样写的:
  以前,有个地主有很多地,找了很多长工干活,地主给长工们盖了一批团结楼住着,一天,地主的谋士对地主说:东家,长工们这几年手上有点钱了,他们住你的房子,每月交租子,不划算,反正他们永远住下去,你干脆把房子卖给他们起个名堂叫做—–公房出售!告诉他们房子永远归他们了,可以把他们这几年攒的钱收回来,地主说:不错,那租金怎么办?谋士说:照收不误,起个日本名儿,叫物业费!地主很快实行了,赚了好多钱,长工们那个高兴啊!
  过了几年,地主的村子发展成城镇了,有钱人越来越多,没地方住,谋士对地主说:东家,长工们这几年手上又有钱了,咱们给他们盖新房子,起个名堂叫做旧城改造,他们把手上的钱给我们,我们拆了房子盖新的,叫他们再买回去,可以多盖一些卖给别人,地主又实行了,这次,有些长工们不高兴了,地主的家丁派上用途了,长工们打掉牙只好往肚子里咽,地主又赚了好多钱。
  又过了几年,地主的村子发展成大城市了,有钱人更多了,地主的土地更值钱了,谋士对地主说:东家,咱们把这些长工的房子拆了,在这个地方建别墅,拆出来的地盖好房子卖给那些有钱的大款还能赚一笔,地主说:长工们不干怎么办?谋士说:咱给他们钱多点儿,起个名堂叫货币化安置,咱再到咱们的猪圈旁边建房子,起个名堂叫经济适用房,给他们修个马车道让他们到那边买房住,地主说:他们钱不够怎么办?谋士说:从咱家的钱庄借钱给他们,一年6分利,咱这钱还能生钱崽,又没风险,地主又实行了,长工们拿到钱,地主的经济适用房到现在才建了一间,长工们只好排队等房子,直到现在,还等着呢——
  于是,长工们开始闹事了,地主有点慌,忙问谋士怎么办?谋士说:赶紧通知长工们,房子要跌价了,别买了,租房住吧,正好把我们的猪圈租给他们,结果,这么多年后,长工们的钱全没了,还在租房住,直到永远!
  这个笑话虽然有点夸张,但实际上这何尝又不是事实呢?有人说既然如此?为什么中国人还要买房?疯了一样的买?为什么?还不是愚民教育的结果,就好象60年代,鼓吹人们必须购买三大件:手表、缝纫机、自行车才算是成功人士,才可嫁人娶妻。80年代鼓吹人们必须购买新四大件:电视,冰箱,洗衣机,装电话才算是出人头地才可娶妻生子一样,记得当年装电话可是要几千块钱一部啊!(人均收入不到200元的小城),而北京上海更有上万一部的时候,还得排队买号搭人情,和今天的买房又何其相似?
  而今天所有的狗屁学者又开始了这一套愚弄百姓的旧招:白领一族新标准,成功人士新选择X环X路小户型,X环X路商住型。收了你几十万后,还得每个月收你租金(新物业费),银行利息,以及各种巧立名目的加息、政策等等等等。总之不怕你不被整死,就怕你死得不够惨!老百姓咋就怎么乐于上当,而且百上不厌呢?我真是气得浑身都湿了!
第二大当:就业
当有人终于开始感叹:当年当知青的时候;当有人下岗之后感到没有生路、只能静坐抗议却无人理会,只能沦落街头还被人编首歌嘲笑着人生豪迈,重头再来的时候。你可曾想过!他们也曾经和今天的白领一样风光!他们的收入和地位也曾经让周围的人艳羡不已?你可曾想过20年后的今天!你一样会和他们一样沦落街头,众叛亲离?!
  有人说:嘿!你不知道有失业保险,养老保险,XX保险么?呵呵,我在北京漂泊N年,交了无数保险大概有好几万吧,但失业的时候跑断腿也没人给我啥保险,反而很多保险都被冻结了说我交得断断续续的,我简直又气得……这还不算,你以为你到了60岁真的就可以拿到养老保险了吗?天上又不会掉钱!今天的老年人拿的退休金是我们在挣!而今天30-40岁的人通常都有好几个兄弟姐妹!意思就是,今天的老年人能在60岁拿到养老保险是因为有5个人供一个老人!而我们这一代老去之后则是一个人供我们两个老人!钱从哪里来?没得来!您要是能活到90岁估计能领到一些养老保险,嘿:保重吧您!然而即使是这样,家长们还是疯了一样的把孩子往各种企事业国有单位里送,我身边就经常有这样的例子。我老家一个远房亲戚,找关系拖朋友,花了七万块钱通过公开招聘把儿子送进了交警队,干上合同制的破差,一个月拿800块。结果第三年被竞争上岗给刷下来了。一家人哭哭啼啼,我说刷了好,你上那班一辈子挣不回那七万,赶紧先洗洗睡,改明再凑点钱做小生意去吧!没准还能赚点。
  当年我毕业的时候,我妈也是领着我抱着钱,把我往XX部送。我一看负责招工那人那德行,就忍不住的恶心,再一看薪水,妈呀,我这不是白干10年不吃不喝才拿回成本。所以我私下威胁了那家伙一把,吓得那个大腹便便的X科长再也不敢招收我。我才得已:离家出走!·
  我就想不明白?中国人咋就这么傻?这么迷信国字呢?醒醒吧,思维正常一点行不?做事之前自己算算合算不合算成不?
  还有那些年纪轻轻的小白领们,找工作最好把薪水要高点,别要医疗保险和啥保险,然后自己把钱存起来最保险,将来用得着。
第三大当:教育
一张文凭值多少钱?一张文凭值多少钱?一张文凭值多少钱?印刷成本两块钱顶了天了。一个老师工资多少?嘿,两个学生的学费足够一学期了!一个班的书本印刷多少钱?两个学生的足够了!一个班房租多少钱一学期?嘿嘿两个学生足够了。!
  嘿!中国教育你凭啥收那么多钱!?
  嘿!百姓们!我们为啥要上当?因为从小统治阶级就告诉我们考上秀才才光荣。哦对不起我说错了,是考上大学才光荣。但老百姓从来不去想一想为什么光荣?为什么光荣……
  大学秀才又怎样还不是废物!
  你知道你的孩子是什么人在教么?在中国一般是无法适应社会的人才会沦为一个教师,举个例子。前段时间我因为一个项目的关系,找了几个大学的硕士生做程序。结果有几个人笨得很,完全不给你考虑,非得你守着才干活,而且给个文件明显有一个错别字,也不给改,等你发现了还跟你较真,是这不是他的错,是你给的就是错的。一点责任感没有,一点都不会考虑究竟是为了做事而做事还是为了做好一件事而做事。我还是很心平气和的给他们讲道理:你们必须学会为别人思考,思考别人想要什么结果再去做事情。否则无法在社会上生存。结果那几个说:我们才不要去社会上,我们考试成绩好得很,学校要我们留校做老师。再说了本来我们就没什么错,你怎么安排我们怎么做,你不安排我们就不做。这是我们的尊严和原则。我说:如果你去守门,老板没安排你下班的时候锁好仓库你就不锁了吗?您心寒吗?以后您的孩子就是在这样的人的指导下学习和成长。您放心么?
  难怪现在读大学的同居,逃课,打架,自杀…… 但家长们还是愿意花钱把孩子送进学校去,而且是花一辈子的钱。
第四大当:买车
中国人疯了吗?买车?为什么要买车???当然您有了钱花不光了,您爱怎么买怎么买,买车买房,反正油价怎么涨你也花不完钱,房子要拆迁你也不心疼。但是大多数老百姓呢?
  我以前有个同事住北二环,公司西直门那里。每天坐地铁上班最多半小时。可非得买一二手夏利,每天早上8点开始在路上堵着,然后一点一点的挪到公司。嘿,一个月停车费都不少。可人家就觉得开了车自己身份高级一点。别说开个夏利,就是开个奥迪我也没见谁对谁三磕九拜。除了显得自己比别人傻一点外完全没有别的作用。
  还有一次,我遇见一个月收入才4000的小姑娘,在计划贷款买车。于是我就问她:小姑娘,你又没做生意,自己按时上班,地铁又方便,买车干什么呢?想了半天,实在估计也想不出什么理由来了就说:有时候去超市买东西吧,打车又觉得近了点不划算,走路又远了点。所以自己开车去了!听得我差点没恶心死。你开车去超市买个方便面不觉得恶心么?装备了大哥大去拣垃圾,也是拣垃圾的!别以为买了车能证明什么。
  比如我现在自己做生意,很忙,一天大概要跑4-5个地方,见很多客户。但我就不买车,为什么?我打车随招即来,打完就走,不用担心停车没地方,不用担心挂了碰了,不用担心被贼偷了绑了,无论挂风下雨都有司机。万一碰着个堵车还可以下车坐地铁。一年也就一万多块RMB!要买一车!一年停车费都得一万多!这不是傻么?
  说别买车别买车,可就有无数的人疯了一样的去贷款买?一定要嫌自己将来死得不够惨似的!买吧,买完了加息了不是?油价涨疯了不是?停车又贵了不是?后悔了不是?新车一上路就掉价了卖也卖不掉了不是??
  告诉你,油价还得涨!一定要涨到和美国一样的油价。嘿嘿!您拿老美1/10的收入,用的是和人家一个价的汽油。我看您还得瑟不。
  最后说一句,每个人都不傻,都是从小被愚民教育给弄傻了。傻点不要紧,但性命悠关的事儿您还是精着点,多盘算盘算经济利益之间的关系!别到头来,房产一跌,油价一涨,交了半辈子钱拿了毕业证还是啥啥不会干,交了几十年苛捐杂税还啥啥福利没有。您亏的可不仅仅是差价几十万。
  有人还说什么?哎呀没办法,难道不住了,不买车啦,公车好挤呀。我说全是愚民教育出来的虚荣心在做怪。您看看我,租一个房子住才一千多块一个月,也就相当于有些人的物业费。如果要结婚我还租得起3-4千的,家具装修一应具全。而且还哪方便我住哪儿。不想搬就长期租。也和交物业费一个样。还白白省出还银行贷款、利息、首付一大堆。有事就打车,没事就坐地铁,一年一万顶天了,还省了车库费,停车费,罚款等一堆,油价涨到10块也乐呵,也不耽误事。俺大学没念完就跑了,一边自学一边自己钻研市场出策划跑业务,不也同样可以进外资企业,上市企业做经理么?还省出好几万学费来。
  当然有的人会说:你连个房子都不买,指定结不了婚。我心想:我是没有,您以为您有啊?有人说租房子不划算,租完了还是别人的,嘿嘿,你以为买房子还了几十年贷款,还清了就是你的了?啊…… 呵呵.

Linux 系统文件之 /proc/loadavg

[root@supersun ~]# cat /proc/loadavg
0.43 0.26 0.29 1/125 4133
这里的平均负载也就是可运行的进程的平均数
前三个值分别对应系统在5分钟、10分钟、15分钟内的平均负载
第四个值的分子是正在运行的进程数,分母是进程总数,最后一个是最近运行的进程ID号
现在我们将平均负载的值写到虚拟终端的标题栏上。

创建多级目录的方法

特别是对于cache目录,如果磁盘出现问题,需要我们手动重建cache目录结构可能是很麻烦的事,我们也很容易想到能不能只复制目录结构而不复制其中的文件的问题(因为复制文件会更慢);高人就说了,

find . -type d |sed ‘s/\./\/dst’ | xargs mkdir -p

其实这样find的可能很慢,我们不如手动来建,比如3级目录:

mkdir 0
cd 0
mkdir 0
cd 0
seq 0 99 | mkdir
cd ..
seq 1 99 | xargs -n 1 cp -au 0
cd ..
seq 1 99 | xargs -n 1 cp -au 0

这样,很简单的脚本就完成了,而且速度要快的多

不过写脚本用for循环更方便,不知道速度怎么样

vmstat 中文详解

[root@ljj procps-3.2.7]# man vmstat
VMSTAT(8) Linux Administrator‘s Manual VMSTAT(8)

NAME
vmstat – Report virtual memory statistics

SYNOPSIS
vmstat [-a] [-n] [delay [ count]]
vmstat [-f] [-s] [-m]
vmstat [-S unit] 指定显示的数字的单位(默认为K) 如: vmstat -S M 1 5
vmstat [-d]
vmstat [-p disk partition] 显示指定分区的信息 如: vmstat -p sda1
vmstat [-V]

DESCRIPTION
vmstat reports information about processes, memory, paging, block IO, traps, and cpu activity.

The first report produced gives averages since the last reboot. Additional reports give information on a sampling
period of length delay. The process and memory reports are instantaneous in either case.

Options
The -a switch displays active/inactive memory, given a 2.5.41 kernel or better.

The -f switch displays the number of forks since boot. This includes the fork, vfork, and clone system calls, and
is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on
thread usage. This display does not repeat.

The -m displays slabinfo.

The -n switch causes the header to be displayed only once rather than periodically.

The -s switch displays a table of various event counters and memory statistics. This display does not repeat.

delay is the delay between updates in seconds. If no delay is specified, only one report is printed with the aver-
age values since boot.

count is the number of updates. If no count is specified and delay is defined, count defaults to infinity.

The -d reports disk statistics (2.5.70 or above required)

The -p followed by some partition name for detailed statistics (2.5.70 or above required)

The -S followed by k or K or m or M switches outputs between 1000, 1024, 1000000, or 1048576 bytes

The -V switch results in displaying version information.

FIELD DESCRIPTION FOR VM MODE
Procs
r: The number of processes waiting for run time. 可执行队列里的进程个数
b: The number of processes in uninterruptible sleep. 深度睡眠的进程个数(等待资源但不可中断)

Memory
swpd: the amount of virtual memory used. 使用的虚拟内存的数量(太大说明可能物理内存不足)
free: the amount of idle memory. 空闲的内存数量(太大则浪费,太小则为内存不足)
buff: the amount of memory used as buffers. 用做buffer的内存数量(不知道怎么解释)
cache: the amount of memory used as cache. 用做cache的内存数量(不知道怎么解释)
inact: the amount of inactive memory. (-a option) 不活动的内存数量(使用-a选项才显示)(不知道怎么解释)
active: the amount of active memory. (-a option) 活动的内存数量(使用-a选项才显示)(不知道怎么解释)

Swap (这两个值都不应该太大,最好为0,基本上不要拿硬盘当内存用)
si: Amount of memory swapped in from disk (/s). 每秒从交换内存调入内存的数量
so: Amount of memory swapped to disk (/s). 每秒写入交换内存的数量

IO
bi: Blocks received from a block device (blocks/s). 每秒从设备读入内存的数量
bo: Blocks sent to a block device (blocks/s). 每秒从内存写入设备的数量

System (这里我解释不清楚)
in: The number of interrupts per second, including the clock. 每秒钟cpu中断的次数
cs: The number of context switches per second. cpu每秒钟时间片的切换次数(异步io可能会导致切换频繁,关于同步io与异步io,一般来讲,大数据量的io适合使用异步io,非常小的数据量的io考虑使用同步io

CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time) cpu 执行非内核代码花费的时间
sy: Time spent running kernel code. (system time) cpu执行内核代码花费的时间
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. cpu空闲时间
wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero. cpu等待io的时间,(如果该值与id成反比,说明基本是同步io,这时,如果该值总是很大的话,io就是瓶颈,可以考虑使用异步io)

FIELD DESCRIPTION FOR DISK MODE
Reads
total: Total reads completed successfully 共读了多少次
merged: grouped reads (resulting in one I/O) 分了多少组(多次io可能合并为一组来读取)
sectors: Sectors read successfully 读的扇区的数目
ms: milliseconds spent reading 读数据花费的毫秒数

Writes
total: Total writes completed successfully 共写了多少次
merged: grouped writes (resulting in one I/O) 分了多少组(多次io可能合并为一组来写)
sectors: Sectors written successfully 写扇区的数目
ms: milliseconds spent writing 写数据花费的毫秒数

IO
cur: I/O in progress
s: seconds spent for I/O

FIELD DESCRIPTION FOR DISK PARTITION MODE 使用 -p 选项时显示的信息
reads: Total number of reads issued to this partition 读该分区的次数
read sectors: Total read sectors for partition 从该分区读取的扇区数
writes : Total number of writes issued to this partition 写入该扇区的扇区数
requested writes: Total number of write requests made for partition 对该分区的写请求次数

FIELD DESCRIPTION FOR SLAB MODE
cache: Cache name
num: Number of currently active objects
total: Total number of available objects
size: Size of each object
pages: Number of pages with at least one active object
totpages: Total number of allocated pages
pslab: Number of pages per slab

NOTES
vmstat does not require special permissions.

These reports are intended to help identify system bottlenecks. Linux vmstat does not count itself as a running
process.

All linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes.

Since procps 3.1.9, vmstat lets you choose units (k, K, m, M) default is K (1024 bytes) in the default mode

vmstat uses slabinfo 1.1 FIXME

FILES
/proc/meminfo
/proc/stat
/proc/*/stat

SEE ALSO
iostat(1), sar(1), mpstat(1), ps(1), top(1), free(1)

BUGS
Does not tabulate the block io per device or count the number of system calls.

AUTHORS
Written by Henry Ware <al172@yfn.ysu.edu>.
Fabian Fr<A8><A6>d<A8><A6>rick <ffrederick@users.sourceforge.net> (diskstat, slab, partitions…)

Throatwobbler Ginkgo Labs 27 July 1994 VMSTAT(8)
(END)

 

附:实例

1.

[junjie2@localhost ~]$ vmstat -S M 1 8
procs ———–memory———- —swap– —–io—- –system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 8 14 662 134 0 0 0 0 0 0 0 0 85 14
0 1 8 14 663 134 0 0 240 296 1313 460 1 0 76 24
0 0 8 14 663 134 0 0 196 36 1316 464 0 1 84 14
0 2 8 15 662 134 0 0 240 172 1339 494 0 1 81 19
0 2 8 14 662 135 0 0 376 148 1426 625 1 1 71 29
0 2 8 14 663 134 0 0 372 240 1357 537 0 1 66 34
0 1 8 15 662 134 0 0 224 692 1318 458 1 1 66 33
0 0 8 15 662 134 0 0 292 284 1441 605 0 1 55 44

根据id和wa列来看,应该多采用的io为同步io,而且在io上存在一些瓶颈

 

2.

Shell 条件判断总结

Shell 条件判断总结

UNIX Shell 编程

一些条件判断 总结

-b file            若文件存在且是一个块特殊文件,则为真
-c file           
若文件存在且是一个字符特殊文件,则为真
-d file           
若文件存在且是一个目录,则为真
-e file           
若文件存在,则为真
-f file           
若文件存在且是一个规则文件,则为真
-g file           
若文件存在且设置了SGID位的值,则为真
-h file           
若文件存在且为一个符合链接,则为真
-k file           
若文件存在且设置了"sticky"位的值
-p file           
若文件存在且为一已命名管道,则为真
-r file           
若文件存在且可读,则为真
-s file           
若文件存在且其大小大于零,则为真
-u file           
若文件存在且设置了SUID位,则为真
-w file           
若文件存在且可写,则为真
-x file           
若文件存在且可执行,则为真
-o file           
若文件存在且被有效用户ID所拥有,则为真

-z string          string长度为0,则为真
-n string         
string长度不为0,则为真
string1 = string2 
若两个字符串相等,则为真
string1 != string2
若两个字符串不相等,则为真

int1 -eq int2      int1等于int2,则为真
int1 -ne int2     
int1不等于int2,则为真
int1 -lt int2     
int1小于int2,则为真
int1 -le int2     
int1小于等于int2,则为真
int1 -gt int2     
int1大于int2,则为真
int1 -ge int2     
int1大于等于int2,则为真

!expr              expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2    
expr1expr2都为真则整式为真
expr1 -o expr2    
expr1expr2有一个为真则整式为真

特殊变量

$0                 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径
$n                
该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2…)
$#                
提供脚本的参数号

$*                
所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
$@                
所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于
$1$2
$?                
前一个命令执行后的退出状态

$$                
当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID
$!                
前一个后台命令的进程号

给apache添加模块

下面是使用apxs工具给apache添加模块

添加的模块:
LoadModule proxy_module       libexec/mod_proxy.so
LoadModule rewrite_module     libexec/mod_rewrite.so
LoadModule headers_module     libexec/mod_headers.so

添加方法:
1. 进入apache1.3.33 源文件modules目录
cd apache_1.3.33/src/modules/

2. 安装 proxy_module 
> cd proxy
> /user/local/apache/bin/apxs -i -a -c *.c

3. 安装 rewrite_module 
> cd standard
> /user/local/apache/bin/apxs -i -a -c mod_rewrite.c

4. 安装 headers_module 
> cd standard
> /user/local/apache/bin/apxs -i -a -c mod_headers.c

 

遇到的问题: 安装rewrite_module时,遇到“mod_rewrite.h:90:18: ndbm.h: No such file or directory”
的问题,用find命令在/usr/include/gdbm/ndbm.h 找见,修改 mod_rewrite.h
#include <ndbm.h>   => #include <gdbm/ndbm.h>

apache 1.3.33 中的
mod_proxy_ftp.so
mod_proxy_http.so
mod_proxy_connect.so
都编译到proxy.so中了,可以分开,但是我能成功编译proxy.so ,但是再编译mod_proxy_http.so就不行了,有时间在研究。

沉思

我需要的是什么?

我怎么才能得到我所需要的?

你真的需要无所不能吗?

 

人最牛逼也莫过于想要什么就能得到什么。如果都靠自己动手去做,累死也做不到;如果能利用众多人的智慧,那是可以做到的。

一个什么都能做的工具可能不如一个只能做一件事的工具;什么都能做,你可能就什么都不会做,或不知道该做什么了;只能做一件事,可能谁都会用,简单的不需要任何思考。

当你辛辛苦苦昨晚一件事的时候,你想到的基本是‘终于做完了,该歇一下了’,其实你最需要做的不是歇一下,而是总结一下,看看做对了什么做错了什么。

知识与实践赛跑,同样的技术,今天价值10000,明天就价值8000.

善于分析的是员工,善于总结的人是领导;
善于制造工具的人是员工,善于使用工具的人是领导。