人生就像公交车

人生就像公交车——真的很经典(与君分享)

-

  1.人的一生,就像乘坐一辆公交车。。。。。。 –

clip_image002

2.我们知道它有起点和终点,却无法预知沿途的经历。 –

3.有的人行程长,有的人行程短。 –

4.有的人很从容,可以欣赏窗外的景色。 –

5.有的人很窘迫,总处于推搡和拥挤之中。 –

6.然而与悬挂在车门上、随时可能掉下去的人相比,似乎有感到欣慰。 –

7.获得舒适与优雅,座位是必不可少的机会,因此总被人们争抢。 –

8.有的人很幸运,一上车就能落座。 –

clip_image004-

-

9.有的人很倒霉,即使全车的人都坐下,他还站着。 –

10.有时别处的座位不断空出来,唯独身边的这个毫无动静。 –

clip_image006-

-

11.而当你下定决心走向别处,刚才那个座位的人却正好离开。 –

12.为了坐上或保住座位,有的人漠视良心,甚至伤害他人。 –

clip_image008-

-

13.有的人却因为这样那样的原因,不得不将到手的座位让给他人。 –

clip_image010-

14.有的人用了种种地方式,经历了长长的等待,终于可以坐下。 –

clip_image012-

15.但这是他已经到站了。 –

16.下车的一刻,他回顾车厢,也许会为了区区的一个座位而感慨,自以为大彻大悟。 –

clip_image014-

-

17.其实即使重新来过,他依然回去争抢,因为有时如果不坐下,连站的位置都没有。 –

18.除非你永远不上车,而这并不由自己决定。 –

clip_image016-

19.到站的人下了,车上的人还在。 –

clip_image018-

-

20.依然熙熙攘攘,依然上上下下。。。。。。 –

clip_image020-

-熙熙攘攘的人生中我们有时很无奈,走过人生的旅程什么都可以释怀,可是关键是我们对个旅程还充满期待。

Posted in 励志故事 | Tagged , , , , | 2 Comments

linux中如何查看服务是否可以使用tcpwraps来进行访问控制?

今天有人问我,如果有四个程序: xinetd, httpd,sshd,syslogd 如何可以查到这4个程序中,支持tcpwrap的程序呢?
据我所知,如果支持tcpwrap就一定有libwrap的库文件参与。那么程序在运行的时候肯定会加载相应的库模块。
而查询加载的模块命令我们用ldd。可是查询的时候如何快速查询是否有libwrap的模块呢?就需要我们写一个简单的shell脚本了。。。呵呵
分解一下: 首先第一步。测试一下 xinetd程序在那里。可以用which命令来定位。
[root@RHEL5 ~]# which xinetd
/usr/sbin/xinetd
得到结果是/usr/sbin/xinetd这个程序,然后利用ldd 查看该程序加载了哪些模块。
[root@RHEL5 ~]# ldd /usr/sbin/xinetd
linux-gate.so.1 => (0x00e7b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0036f000)
libwrap.so.0 => /usr/lib/libwrap.so.0 (0×00582000) libnsl.so.1 => /lib/libnsl.so.1 (0×00294000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0×00256000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×00110000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0×00386000)
libdl.so.2 => /lib/libdl.so.2 (0x00a7c000)
libsepol.so.1 => /lib/libsepol.so.1 (0x00d72000)
/lib/ld-linux.so.2 (0x006db000)
我们需要的只是知道黑体显示的那一栏信息。这样我们知道了,xinetd程序是支持tcpwrap的程序。
接着,我们可以做得更好。利用shell脚本的特性。
[root@RHEL5 ~]# ldd $(which xinetd) | grep libwrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c81000)
当然我还需要个循环来逐个显示不同服务对tcpwrap的支持。因此写出个简单的脚本。
#/bin/bash
# 测试程序对tcpwrap的支持。
# yoyojacky2009@gmail.com
for i in sshd syslogd httpd xinetd
do echo $i ; ldd $(which $i) | grep libwrap ;
done
写完后,记得给这个文件赋权:
[root@RHEL5 ~]# chmod +x ceshi.sh
然后执行以下,测试结果如下:
[root@RHEL5 ~]# ./ceshi.sh
sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c6a000)
syslogd
httpd
xinetd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c7c000)
结果显示,只有xinetd和sshd这两个程序支持tcpwrap功能。大家可以举一反三,通过这种方法查询更多的模块。找到程序中共同的模块,更好地理解linux的工作原理。

Posted in Linux | Tagged , , , , , , | 2 Comments

大家一起学英语。

-I want to assemble(v.组装) a computer for game playing,
我想要为打游戏组装一下电脑。

-For game playing? You’d better have a bigger memory(n.内存) and a better quality video card.
要打游戏的话,你最好有一个稍大一点的内存和更好的显卡。

-I guess Intel Core 2 Duo E4300 would be good.
我想英特尔双核E4300挺不错。

-OK. What size hard drive do you want?
好。你需要多大的硬盘。

-At least 160G.
至少160G。

-If you are concerned about game effects(n.效果), I suggest you buy a higher quality sound card and video card.
如果你很在乎游戏的效果,我建议你去高一点质量的声卡和显卡。

-Effects are very important. Give me the best.
效果很重要。给我最好的。

-How about the screen?
显示屏呢?

-I want a big wide screen(宽屏) LCD.
我要一个大的宽频LCD(液晶显示屏)。

-What about other accessories(n.配件)?
那其他的配件呢?

-The memory should be 1G. The main board(n.主板), I’d like ASUS P5B.
内存应该是1G。主板的话,我要ASUS P5B这个型号的。

-No problem.
没问题。

Let’s go through some words and phrases: 让我们一起来回顾一下有用的词语吧!
Assemble a computer 组装电脑
Memory 内存
game effects 游戏效果
sound card 声卡
big wide screen 宽屏
accessories 配件
main board 主板

Posted in 教学 | Tagged , , , , , , , , | Leave a comment