我是回忆未来[向东],我对回忆未来[张宴]的关于nginx那文章有点不同的看法,哈哈,不知道他要是看到这个说法,他会不会。。。,反正都是熟人,咱就写两行了,呵呵:
文章来源:http://blog.s135.com/nginx_php_v5/
我个人回忆未来[向东]认为(认为:当然包含了很主观的看法哈)Nginx性能大概是Apache的1.5倍左右(这个1.5是咋估计出来的呢?我是拍脑袋的咯,哈哈),所谓十倍,我估计(又接着主观了:()是回忆未来[张宴]是把并发数而不是负载能力做为了衡量性能的标准,这里值得探讨,同时注意:单纯并发数如果全是不活动的死连接没有什么意义的. epoll et模式实现简单的http server,每秒能处理11000个请求/s左右,apche如果参数充分优化,也可以达到8000请求/s左右,这个不能算作是nginx的功劳,而是Linux 的内核以及Unix的kqueque的内核的功劳,当然,以我为主,为我所用,无所谓了,瞎侃两句,呵呵.
文章来源:http://blog.s135.com/nginx_php_v5/
我个人回忆未来[向东]认为(认为:当然包含了很主观的看法哈)Nginx性能大概是Apache的1.5倍左右(这个1.5是咋估计出来的呢?我是拍脑袋的咯,哈哈),所谓十倍,我估计(又接着主观了:()是回忆未来[张宴]是把并发数而不是负载能力做为了衡量性能的标准,这里值得探讨,同时注意:单纯并发数如果全是不活动的死连接没有什么意义的. epoll et模式实现简单的http server,每秒能处理11000个请求/s左右,apche如果参数充分优化,也可以达到8000请求/s左右,这个不能算作是nginx的功劳,而是Linux 的内核以及Unix的kqueque的内核的功劳,当然,以我为主,为我所用,无所谓了,瞎侃两句,呵呵.
平时我们需要观察LVS与Client及RS之间TCP连接建立情况,你就需要深入了解一下建立连接的TCP三次握手和关闭连接的四次握手,举下面一个例子,你知道这些状态表示什么吗,下面的TCP连接状态图可以让你明白这一切,往下看吧
root@LG181:/usr/local/lvs# ipvsadm -L -c | grep SYN_RECV
TCP 00:54 SYN_RECV 117.24.44.192:40171 58.61.166.143:http 172.16.62.98:http
TCP 00:28 SYN_RECV 116.25.96.121:foliocorp 58.61.166.143:http 172.23.151.167:http
TCP 00:59 SYN_RECV 121.11.248.233:13447 58.61.166.143:http 172.16.62.73:http
root@LG181:/usr/local/lvs# ipvsadm -L -c | grep FIN|head -n 3
TCP 01:43 FIN_WAIT 61.154.119.42:kazaa 58.61.166.143:http 172.16.62.98:http
TCP 01:41 FIN_WAIT 220.169.169.255:eli 58.61.166.143:http 172.16.62.98:http
TCP 01:18 FIN_WAIT 59.39.127.15:10487 58.61.166.143:http 172.16.62.97:http
root@LG181:/usr/local/lvs# ipvsadm -L -c | grep ESTA| head -n 3
TCP 01:21 ESTABLISHED 124.230.6.91:sybasedbsynch 58.61.166.143:http 172.23.151.167:http
TCP 09:11 ESTABLISHED 116.21.129.16:19043 58.61.166.143:http 172.23.151.167:http
TCP 14:35 ESTABLISHED 124.229.50.133:49139 58.61.166.143:http 172.16.62.98:http

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
这个图n多人都知道,它对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。
1、建立连接协议(三次握手)
(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。
(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3) 客户必须再次回应服务段一个ACK报文,这是报文段3。
2、连接终止协议(四次握手)
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
(4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
CLOSED: 这个没什么好说的了,表示初始状态。
LISTEN: 这个也是非常容易理解的一个状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了。
SYN_RCVD: 这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。
SYN_SENT: 这个状态与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。
ESTABLISHED:这个容易理解了,表示连接已经建立了。
FIN_WAIT_1: 这个状态要好好解释一下,其实FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。
FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。
TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
CLOSING: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。
CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。
LAST_ACK: 这个状态还是比较容易好理解的,它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。
最后有2个问题的回答,我自己分析后的结论(不一定保证100%正确)
1、 为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。
2、 为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?
这是因为:虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文.
root@LG181:/usr/local/lvs# ipvsadm -L -c | grep SYN_RECV
TCP 00:54 SYN_RECV 117.24.44.192:40171 58.61.166.143:http 172.16.62.98:http
TCP 00:28 SYN_RECV 116.25.96.121:foliocorp 58.61.166.143:http 172.23.151.167:http
TCP 00:59 SYN_RECV 121.11.248.233:13447 58.61.166.143:http 172.16.62.73:http
root@LG181:/usr/local/lvs# ipvsadm -L -c | grep FIN|head -n 3
TCP 01:43 FIN_WAIT 61.154.119.42:kazaa 58.61.166.143:http 172.16.62.98:http
TCP 01:41 FIN_WAIT 220.169.169.255:eli 58.61.166.143:http 172.16.62.98:http
TCP 01:18 FIN_WAIT 59.39.127.15:10487 58.61.166.143:http 172.16.62.97:http
root@LG181:/usr/local/lvs# ipvsadm -L -c | grep ESTA| head -n 3
TCP 01:21 ESTABLISHED 124.230.6.91:sybasedbsynch 58.61.166.143:http 172.23.151.167:http
TCP 09:11 ESTABLISHED 116.21.129.16:19043 58.61.166.143:http 172.23.151.167:http
TCP 14:35 ESTABLISHED 124.229.50.133:49139 58.61.166.143:http 172.16.62.98:http
状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
这个图n多人都知道,它对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。
1、建立连接协议(三次握手)
(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。
(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3) 客户必须再次回应服务段一个ACK报文,这是报文段3。
2、连接终止协议(四次握手)
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
(4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
CLOSED: 这个没什么好说的了,表示初始状态。
LISTEN: 这个也是非常容易理解的一个状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了。
SYN_RCVD: 这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。
SYN_SENT: 这个状态与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。
ESTABLISHED:这个容易理解了,表示连接已经建立了。
FIN_WAIT_1: 这个状态要好好解释一下,其实FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。
FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。
TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
CLOSING: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。
CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。
LAST_ACK: 这个状态还是比较容易好理解的,它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。
最后有2个问题的回答,我自己分析后的结论(不一定保证100%正确)
1、 为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。
2、 为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?
这是因为:虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文.
A 马克思主义、列宁主义、毛泽东思想、邓小平理论
B 哲学、宗教
C 社会科学总论
D 政治、法律
E 军事
F 经济
G 文化、科学、教育、体育
H 语言、文字
I 文学
J 艺术
K 历史、地理
N 自然科学总论
O 数理科学和化学
P 天文学、地球科学
Q 生物科学
R 医药、卫生
S 农业科学
T 工业技术
U 交通运输
V 航空、航天
X 环境科学、安全科学
Z 综合性图书
B 哲学、宗教
C 社会科学总论
D 政治、法律
E 军事
F 经济
G 文化、科学、教育、体育
H 语言、文字
I 文学
J 艺术
K 历史、地理
N 自然科学总论
O 数理科学和化学
P 天文学、地球科学
Q 生物科学
R 医药、卫生
S 农业科学
T 工业技术
U 交通运输
V 航空、航天
X 环境科学、安全科学
Z 综合性图书
1.下载ipvsadm
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
$ tar vzxf ipvsadm-1.24.tar.gz
$ sudo ln -s /usr/src/kernels/2.6.18-8.el5-x86_64/ /usr/src/linux
$ cd ipvsadm-1.24
$ make
$ sudo make install
检查:$ sudo ipvsadm -v
ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.1)
2.配置
a. echo "1" >/proc/sys/net/ipv4/ip_forward
echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/eth1/send_redirects
b. 清除ipvsadm表
$ sudo ipvsadm -C
c. 使用ipvsadm安装LVS服务
$ sudo ipvsadm -A -t 192.168.192.168:80 -s rr ##192.168.192.168是虚拟IP
d. 增加realserver
$ sudo ipvsadm -a -t 192.168.192.168:80 -r 192.168.1.11:80 -m -w 1
$ sudo ipvsadm -a -t 192.168.192.168:80 -r 192.168.1.128:80 -m -w 1
e. 测试
browser open 192.168.192.168,同时ipvsadm打开。
$ sudo ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.192.168:http rr
-> 192.168.1.128:http Masq 1 0 0
-> 192.168.1.11:http Masq 1 0 0
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
$ tar vzxf ipvsadm-1.24.tar.gz
$ sudo ln -s /usr/src/kernels/2.6.18-8.el5-x86_64/ /usr/src/linux
$ cd ipvsadm-1.24
$ make
$ sudo make install
检查:$ sudo ipvsadm -v
ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.1)
2.配置
a. echo "1" >/proc/sys/net/ipv4/ip_forward
echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/eth1/send_redirects
b. 清除ipvsadm表
$ sudo ipvsadm -C
c. 使用ipvsadm安装LVS服务
$ sudo ipvsadm -A -t 192.168.192.168:80 -s rr ##192.168.192.168是虚拟IP
d. 增加realserver
$ sudo ipvsadm -a -t 192.168.192.168:80 -r 192.168.1.11:80 -m -w 1
$ sudo ipvsadm -a -t 192.168.192.168:80 -r 192.168.1.128:80 -m -w 1
e. 测试
browser open 192.168.192.168,同时ipvsadm打开。
$ sudo ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.192.168:http rr
-> 192.168.1.128:http Masq 1 0 0
-> 192.168.1.11:http Masq 1 0 0
在 Linux 下,可以使用
grep 'model name' /proc/cpuinfo | wc -l
物理核心数:
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
2
cat /proc/cpuinfo |grep "cpu core"|uniq
cpu cores : 1
cat /proc/cpuinfo |grep "processor"|wc -l
2
cat /proc/cpuinfo |grep name|cut -f2 -d: | uniq -c
cat /proc/cpuinfo |grep name
model name : Intel Xeon E3-12xx v2 (Ivy Bridge)
model name : Intel Xeon E3-12xx v2 (Ivy Bridge)
cut -f2 -d: #第二列用冒号分割
cat /proc/cpuinfo |grep name|cut -f2 -d:
Intel Xeon E3-12xx v2 (Ivy Bridge)
Intel Xeon E3-12xx v2 (Ivy Bridge)
cat /proc/cpuinfo |grep name|cut -f2 -d: | uniq -c
2 Intel Xeon E3-12xx v2 (Ivy Bridge)
-f:select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
仅选择这些字段;还要打印任何包含未定界符字符的行,除非指定-s选项
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
使用DeLim而不是TAB进行字段定界符
cat /proc/cpuinfo
获取你系统上的每个处理器的信息。如果你只想得到数字,那么就使用下面的命令:grep 'model name' /proc/cpuinfo | wc -l
物理核心数:
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
2
cat /proc/cpuinfo |grep "cpu core"|uniq
cpu cores : 1
cat /proc/cpuinfo |grep "processor"|wc -l
2
cat /proc/cpuinfo |grep name|cut -f2 -d: | uniq -c
cat /proc/cpuinfo |grep name
model name : Intel Xeon E3-12xx v2 (Ivy Bridge)
model name : Intel Xeon E3-12xx v2 (Ivy Bridge)
cut -f2 -d: #第二列用冒号分割
cat /proc/cpuinfo |grep name|cut -f2 -d:
Intel Xeon E3-12xx v2 (Ivy Bridge)
Intel Xeon E3-12xx v2 (Ivy Bridge)
cat /proc/cpuinfo |grep name|cut -f2 -d: | uniq -c
2 Intel Xeon E3-12xx v2 (Ivy Bridge)
-f:select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
仅选择这些字段;还要打印任何包含未定界符字符的行,除非指定-s选项
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
使用DeLim而不是TAB进行字段定界符
曾经使用过的签名:http://weblog.eviloctal.com/signature/
有些东西纪录下来,很多年后再看,也许一笑而过。
——题记
从矩阵到锡安,我们醉眠共被,携手同行,一起追寻生命的真实。
青铜的钝剑:我是没有眼泪的人,为了保护自己,今后我可以对任何人残忍!
巫师的披风:我不怕死,因为我一直对它充满着无尽的好奇,想亲眼看一下死之后会是什么?
耀眼的强光:我最擅长从零开始创造世界,所以从来不怕失败,它最多也就让我一无所有。
以上是我最主要的四条签名,以前的丢失了,所以就从今天开始吧。大部分都是原创哦。:)
[20060825]要变天了,今天空调开29度还有点冷。另外,晚上进山容易感冒。
[20060827]经历过风雨之后,有些话我一辈子也不会说出来。谁也别想知道,就是打死也不说!
[20060829]假使我是瞎子,那末,看得见的东西,看不见的东西,对我来说也就都无所谓了。
[20060923]恺撒真的不需要身为恺撒。
[20060928]我原本便是罪人了,那与别人确是好不相干的,然而,所谓罪人,也不过如此罢?
[20061013]我终究不是你,我想,我也许真的不可能懂你吧?好吧,好吧,我承认我是猪头男!
[20061018]其实利剑本身便是利剑,王冠也生来即是王冠,恺撒也并不需要身为恺撒。
[20061112]条件愈是艰苦,我们愈是强大。——这就是邪恶八进制
[20061226]假如母亲给了我一把错误的尺子,并让我用它去丈量真理。若非在矩阵中悲惨的死去,也会让沮丧的真相击垮我华丽的憧憬。
[20070118]星光点缀的苍穹,冬日摇摆的小树林,一湾清澈的花江水...这里,有我看得见的东西,看不见的东西。
[20070118]或许我做的,均是为了赎罪,如此便继续下去好了,但我却恐惧着。怎么了呢?然而,我却不知道,也一直这样不知道着...
[20070210]生命很漫长,因此,它很短暂。可,让短暂的生命变得漫长是痛苦的。于是,我便痛苦着。
[20070219]记忆和联想都不是思维。
[20070409]对美的追求并非要据为己有,否则即是贪婪。
[20070418]农夫和蛇。
[20070419]我看见一丝曙光,路途却仍然漫漫长。
[20070511]不能让金币和珠宝的光芒刺瞎我寻找真理的双眼。
[20070628]感谢真理让世界充满光明与正义。
[20070714]用事实去改变那些蠢人的见解。
[20071112]人类不是惧怕没有真理和光明,怕的是迷失了寻找真理和光明的方向。
[20071124]承诺的原因不复存在,诺言也随之消逝。若昔时残碎的折戟划破时空刺伤了你,我拿什么抚平你的痛,我的爱人。
[20071128]"是金色原野上的宁静长空,这是蒲叶痕风下的浅水花红。" ——摘自 冰血封情《窗外蒲叶》
[20071224]我信上帝,也信佛信道,但,我更信仰真理。
[20080204]竹林净雅,不夺斑驳陆离之丝竹,不染世俗尘风之案牍。
[20080210]江水湝湝,竹林静静,漓渊之畔,曲水流觞。自无所求,亦无所争,拜谒天地,万卷长虹。
[20080214]生于冰雪北国,长于岭南桂水,便有关东的豪放,漓渊之儒雅。
[20080317]断弦以咏志,寒尽而香来,卓立是明远,胸怀达宇然。故“断弦寒香,林卓宇”。
[20080330]人生是从微观和宏观两个角度不断求证自身的过程。我不会是哲学家,因为我的哲学观点很模糊。
[20080413]“沉默”有的时候,它本身就是一种“客观”。
[20080511]无价,是不能用货币衡量其价值,那种说不出的珍贵使得它神秘而美丽。只要知道世界的美好就够了,无需享受。
[20080515]纯洁的憧憬来自于心灵的柔软。
[20080516]看了那么多书,还是蠢货,真叫玩意儿。
[20080522]珍惜生命,只有超越了纷繁的物种域界,才能达到真正的善。
[20080523]受到无数次的伤害不要紧,重要的是要从其中成长起来,不然平白儿的受了伤还倒贴了眼泪。
[20080531]有人问我为什么不出本书,我说,写书不能说脏话真TMD不爽。
[20080606]说谎的孩子会被狼吃掉。
[20080612]一定不会有失望,你看不见我。
[20080616]...然泪已无存,青葱岁月不再,只见蜡纸上印下的痕迹。
[20080802]skree'ee -e ee,e eek。
[20080816]一个真正的人,应该有着鲜明的哲学观点,并激烈的捍卫它。这种激烈不是冲动的,而是对信念充满理性的憧憬。
[20080820]EST World Prime on 2009 AD. Long Wait Will Be End...for EST International Power Return!It is Ours.
[20080920]被喧嚣淹没灵魂的生命依然存活,于是他将拾起利刃,自尘沙中为谋求自由的人们划开一道通天的光痕。
[20081230]夜空朗朗,足下漫漫,轻轻采撷点点星光,放之入锦囊,待到阴霾之时取出,刺破万丈乌云直见青天。
[20090202]被喧嚣淹没灵魂的生命依然存活,于是他将拾起利刃,自尘沙中为谋求自由的人们划开一道通天的光痕。
[20090320]君子行文,当如曼妙之清泉,自山涧汩汩雀跃而出,思无邪。
[20090324]理性的光辉,为黑暗中迷茫的人们点亮智慧的双眸。
[20090415]明知是贱依然犯,犯完还忏悔,便是心甘情愿当婊子再深情诉苦的立牌坊,终日往复...这就是血统纯正的闷骚货。
[20090917]一杆清勾,一壶清酒,一揽清风,一平生。
[20091213]生命之树不恃恒久常青,而应谱就绚丽的真我华章。
有些东西纪录下来,很多年后再看,也许一笑而过。
——题记
从矩阵到锡安,我们醉眠共被,携手同行,一起追寻生命的真实。
青铜的钝剑:我是没有眼泪的人,为了保护自己,今后我可以对任何人残忍!
巫师的披风:我不怕死,因为我一直对它充满着无尽的好奇,想亲眼看一下死之后会是什么?
耀眼的强光:我最擅长从零开始创造世界,所以从来不怕失败,它最多也就让我一无所有。
以上是我最主要的四条签名,以前的丢失了,所以就从今天开始吧。大部分都是原创哦。:)
[20060825]要变天了,今天空调开29度还有点冷。另外,晚上进山容易感冒。
[20060827]经历过风雨之后,有些话我一辈子也不会说出来。谁也别想知道,就是打死也不说!
[20060829]假使我是瞎子,那末,看得见的东西,看不见的东西,对我来说也就都无所谓了。
[20060923]恺撒真的不需要身为恺撒。
[20060928]我原本便是罪人了,那与别人确是好不相干的,然而,所谓罪人,也不过如此罢?
[20061013]我终究不是你,我想,我也许真的不可能懂你吧?好吧,好吧,我承认我是猪头男!
[20061018]其实利剑本身便是利剑,王冠也生来即是王冠,恺撒也并不需要身为恺撒。
[20061112]条件愈是艰苦,我们愈是强大。——这就是邪恶八进制
[20061226]假如母亲给了我一把错误的尺子,并让我用它去丈量真理。若非在矩阵中悲惨的死去,也会让沮丧的真相击垮我华丽的憧憬。
[20070118]星光点缀的苍穹,冬日摇摆的小树林,一湾清澈的花江水...这里,有我看得见的东西,看不见的东西。
[20070118]或许我做的,均是为了赎罪,如此便继续下去好了,但我却恐惧着。怎么了呢?然而,我却不知道,也一直这样不知道着...
[20070210]生命很漫长,因此,它很短暂。可,让短暂的生命变得漫长是痛苦的。于是,我便痛苦着。
[20070219]记忆和联想都不是思维。
[20070409]对美的追求并非要据为己有,否则即是贪婪。
[20070418]农夫和蛇。
[20070419]我看见一丝曙光,路途却仍然漫漫长。
[20070511]不能让金币和珠宝的光芒刺瞎我寻找真理的双眼。
[20070628]感谢真理让世界充满光明与正义。
[20070714]用事实去改变那些蠢人的见解。
[20071112]人类不是惧怕没有真理和光明,怕的是迷失了寻找真理和光明的方向。
[20071124]承诺的原因不复存在,诺言也随之消逝。若昔时残碎的折戟划破时空刺伤了你,我拿什么抚平你的痛,我的爱人。
[20071128]"是金色原野上的宁静长空,这是蒲叶痕风下的浅水花红。" ——摘自 冰血封情《窗外蒲叶》
[20071224]我信上帝,也信佛信道,但,我更信仰真理。
[20080204]竹林净雅,不夺斑驳陆离之丝竹,不染世俗尘风之案牍。
[20080210]江水湝湝,竹林静静,漓渊之畔,曲水流觞。自无所求,亦无所争,拜谒天地,万卷长虹。
[20080214]生于冰雪北国,长于岭南桂水,便有关东的豪放,漓渊之儒雅。
[20080317]断弦以咏志,寒尽而香来,卓立是明远,胸怀达宇然。故“断弦寒香,林卓宇”。
[20080330]人生是从微观和宏观两个角度不断求证自身的过程。我不会是哲学家,因为我的哲学观点很模糊。
[20080413]“沉默”有的时候,它本身就是一种“客观”。
[20080511]无价,是不能用货币衡量其价值,那种说不出的珍贵使得它神秘而美丽。只要知道世界的美好就够了,无需享受。
[20080515]纯洁的憧憬来自于心灵的柔软。
[20080516]看了那么多书,还是蠢货,真叫玩意儿。
[20080522]珍惜生命,只有超越了纷繁的物种域界,才能达到真正的善。
[20080523]受到无数次的伤害不要紧,重要的是要从其中成长起来,不然平白儿的受了伤还倒贴了眼泪。
[20080531]有人问我为什么不出本书,我说,写书不能说脏话真TMD不爽。
[20080606]说谎的孩子会被狼吃掉。
[20080612]一定不会有失望,你看不见我。
[20080616]...然泪已无存,青葱岁月不再,只见蜡纸上印下的痕迹。
[20080802]skree'ee -e ee,e eek。
[20080816]一个真正的人,应该有着鲜明的哲学观点,并激烈的捍卫它。这种激烈不是冲动的,而是对信念充满理性的憧憬。
[20080820]EST World Prime on 2009 AD. Long Wait Will Be End...for EST International Power Return!It is Ours.
[20080920]被喧嚣淹没灵魂的生命依然存活,于是他将拾起利刃,自尘沙中为谋求自由的人们划开一道通天的光痕。
[20081230]夜空朗朗,足下漫漫,轻轻采撷点点星光,放之入锦囊,待到阴霾之时取出,刺破万丈乌云直见青天。
[20090202]被喧嚣淹没灵魂的生命依然存活,于是他将拾起利刃,自尘沙中为谋求自由的人们划开一道通天的光痕。
[20090320]君子行文,当如曼妙之清泉,自山涧汩汩雀跃而出,思无邪。
[20090324]理性的光辉,为黑暗中迷茫的人们点亮智慧的双眸。
[20090415]明知是贱依然犯,犯完还忏悔,便是心甘情愿当婊子再深情诉苦的立牌坊,终日往复...这就是血统纯正的闷骚货。
[20090917]一杆清勾,一壶清酒,一揽清风,一平生。
[20091213]生命之树不恃恒久常青,而应谱就绚丽的真我华章。
攻城略地,没有梯子很不方便,但凡武功高强倒是无所谓了。
——题记
既然有学妹问了,就说说我的看法。一家之言,说的不对,请批评,谈的是正经事儿,就不舞文弄墨了,深刻清晰要紧。^_^
学历和能力哪个更重要(我用的是更)
我认为是能力。学历只有可能保你吃上饭,但只有能力才能保你吃饱,或更有能力才会更有发展。当然,这个能力是广义的,如果处理人际关系、拍上级马屁、给要害人物送礼都很有一手,客观上讲也是一种能力。也很模糊,多有能力,才叫有能力?只能比。
有硬性规定的单位 学历是凭证
事业单位、公务员,学历是由国家硬性规定的,尽管很多把关者也清楚当前现状,但规章条例非他一人之力能改变。更何况,以后的各种福利待遇、职称等等,均有可能与学历挂钩,或与之有关。所以,它是一个凭证,没有这个凭证,你进不去,没有这个凭证,你爬不高。
无硬性规定的单位 学历是象征
在企业单位里,很多也会张榜告示,言必称硕士、博士。这则是另外一种情况,这时候学历俨然是一种象征,技术能力的象征。招聘的高标准会挡掉很多没有能力又学历欠佳的人,诚然,也会有一些有能力但学历不足的被吓跑了,不过胆识不够不用也罢。可,总会有一些才高气傲的哥们回去搏一番,若实为贤能,安舍弃之?
自己创业 学历是附属炫耀品
老板是硕士,相比本科,在这个扭曲的认知空间里,大家就会觉得他的团队不错,获得政府创业扶持的概率就更加大。所以说他是一个炫耀品,没有人审核的东西,他有我没有,他看起来比我强点。不要不相信,投资有很多资金,有一些就是不看能力的,甚至都不去认真的分析该企业的生存状况。
不过这是第一关,尔后,没有能力就没效果,亏的还是自己。所以说,能力还是很重要,不过自己创业有个好处,学什么都可以,不需要去拿所谓的认证了,只要会,就好。自己只要不骗自己,就会慢慢的好起来。
学历有替代品
总得有个敲门砖,垫脚石吧,不然你何以让HR目光和脑子多在若干份简历中的某一份多停留多思考一会呢?认证、经验、推荐都是学历替代品中的一部分。如果是在骨干运营企业,要是有CCIE,可能真比大学本科,甚至可能比硕士学历都好用。抑或,你愿意用一个从未工作过的管理学博士,还是愿意用一个在中型企业做过三年的销售主管来管理你的销售团队呢?甚或,比起一个与该部门主管熟识并深刻了解你的人向该部门推荐你,你觉得贸然联系该部门成功率会比前者高么。^_^
结语
所以你选择的就业方向,决定了你的学历占多少成分。另外,一张纸不重要,非强制标准的用人单位通常是希望看到一个有能力的人,但是,他最好曾经在高等教育的氛围中熏陶过。无论如何,我觉得,在大学环境中生活过的人,与没有在大学环境中生活过的人,存在着气质上的区别,不过,也不是念过大学就一定有那种气质。当然,这个问题可以通过一些方式弥补,比如多阅读人文类的东西等等,只要你聪敏睿智,一定没问题。
如果自考,请脱产,不是没有先例,自考的也出过很多优秀的人。^_^
最后,在中国,学历、能力都不如关系重要。
——题记
既然有学妹问了,就说说我的看法。一家之言,说的不对,请批评,谈的是正经事儿,就不舞文弄墨了,深刻清晰要紧。^_^
学历和能力哪个更重要(我用的是更)
我认为是能力。学历只有可能保你吃上饭,但只有能力才能保你吃饱,或更有能力才会更有发展。当然,这个能力是广义的,如果处理人际关系、拍上级马屁、给要害人物送礼都很有一手,客观上讲也是一种能力。也很模糊,多有能力,才叫有能力?只能比。
有硬性规定的单位 学历是凭证
事业单位、公务员,学历是由国家硬性规定的,尽管很多把关者也清楚当前现状,但规章条例非他一人之力能改变。更何况,以后的各种福利待遇、职称等等,均有可能与学历挂钩,或与之有关。所以,它是一个凭证,没有这个凭证,你进不去,没有这个凭证,你爬不高。
无硬性规定的单位 学历是象征
在企业单位里,很多也会张榜告示,言必称硕士、博士。这则是另外一种情况,这时候学历俨然是一种象征,技术能力的象征。招聘的高标准会挡掉很多没有能力又学历欠佳的人,诚然,也会有一些有能力但学历不足的被吓跑了,不过胆识不够不用也罢。可,总会有一些才高气傲的哥们回去搏一番,若实为贤能,安舍弃之?
自己创业 学历是附属炫耀品
老板是硕士,相比本科,在这个扭曲的认知空间里,大家就会觉得他的团队不错,获得政府创业扶持的概率就更加大。所以说他是一个炫耀品,没有人审核的东西,他有我没有,他看起来比我强点。不要不相信,投资有很多资金,有一些就是不看能力的,甚至都不去认真的分析该企业的生存状况。
不过这是第一关,尔后,没有能力就没效果,亏的还是自己。所以说,能力还是很重要,不过自己创业有个好处,学什么都可以,不需要去拿所谓的认证了,只要会,就好。自己只要不骗自己,就会慢慢的好起来。
学历有替代品
总得有个敲门砖,垫脚石吧,不然你何以让HR目光和脑子多在若干份简历中的某一份多停留多思考一会呢?认证、经验、推荐都是学历替代品中的一部分。如果是在骨干运营企业,要是有CCIE,可能真比大学本科,甚至可能比硕士学历都好用。抑或,你愿意用一个从未工作过的管理学博士,还是愿意用一个在中型企业做过三年的销售主管来管理你的销售团队呢?甚或,比起一个与该部门主管熟识并深刻了解你的人向该部门推荐你,你觉得贸然联系该部门成功率会比前者高么。^_^
结语
所以你选择的就业方向,决定了你的学历占多少成分。另外,一张纸不重要,非强制标准的用人单位通常是希望看到一个有能力的人,但是,他最好曾经在高等教育的氛围中熏陶过。无论如何,我觉得,在大学环境中生活过的人,与没有在大学环境中生活过的人,存在着气质上的区别,不过,也不是念过大学就一定有那种气质。当然,这个问题可以通过一些方式弥补,比如多阅读人文类的东西等等,只要你聪敏睿智,一定没问题。
如果自考,请脱产,不是没有先例,自考的也出过很多优秀的人。^_^
最后,在中国,学历、能力都不如关系重要。
很多人放着最新的源码不用,等着有人帮他做出rpm,deb,才能安装。我说你为什么不用源码编译,这样版本比rpm高的多,有很多新功能,而没有烦人的依赖关系。可是他说:“要是我用源码编译安装,卸载的时候就不方便了,会留下很多垃圾。”
为什么程序还没有安装你就想到卸载?难道你不知道这个程序是用来做什么的?你应该改变到处找程序来试用的作法,而应该先了解一下到底那些程序有同样的功能,听听别人的意见,看看它们各有什么长处和短处,然后挑一个最适合你的程序来用。
从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到/usr/local目录,这样你以后如果换硬盘重装系统,也可以把以前/usr/local下的程序原封不动拷贝过去用。我的/usr/local下有2G之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的Linux机器。
确实要卸载makeinstall的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下垃圾,引起“系统不稳定”。(btw:这是谁教你的啊?呵呵。)makeinstall无非就是把可执行程序放在/usr/local/bin,把某些函数库放在/usr/local/lib,把数据文件放在/usr/local/share下一个它自己的目录,你把这些东西都删掉就行了,不会留下垃圾,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX就是这么简单
但是有几个程序不建议从源码安装,它们是Mozilla,OpenOffice,...它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本。
为什么程序还没有安装你就想到卸载?难道你不知道这个程序是用来做什么的?你应该改变到处找程序来试用的作法,而应该先了解一下到底那些程序有同样的功能,听听别人的意见,看看它们各有什么长处和短处,然后挑一个最适合你的程序来用。
从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到/usr/local目录,这样你以后如果换硬盘重装系统,也可以把以前/usr/local下的程序原封不动拷贝过去用。我的/usr/local下有2G之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的Linux机器。
确实要卸载makeinstall的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下垃圾,引起“系统不稳定”。(btw:这是谁教你的啊?呵呵。)makeinstall无非就是把可执行程序放在/usr/local/bin,把某些函数库放在/usr/local/lib,把数据文件放在/usr/local/share下一个它自己的目录,你把这些东西都删掉就行了,不会留下垃圾,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX就是这么简单
但是有几个程序不建议从源码安装,它们是Mozilla,OpenOffice,...它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本。
了解acpid服务,acpid-处理电源管理 :
68 1859 0.0 0.0 17936 8 ? S Aug28 0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
NAME
acpid - Advanced Configuration and Power Interface event daemon。。。
关闭系统不需要的服务
service acpid stop chkconfig acpid off #停止服务,取消开机启动 #电源进阶设定,常用在 Laptop 上
service autofs stop chkconfig autofs off #停用自动挂载档桉系统与週边装置
service bluetooth stop chkconfig bluetooth off #停用Bluetooth蓝芽
service cpuspeed stop chkconfig cpuspeed off #停用控制CPU速度主要用来省电
service cups stop chkconfig cups off #停用 Common UNIX Printing System 使系统支援印表机
service ip6tables stop chkconfig ip6tables off #禁止IPv6
摘自:http://www.osyunwei.com/archives/754.html
阅读全文
68 1859 0.0 0.0 17936 8 ? S Aug28 0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
NAME
acpid - Advanced Configuration and Power Interface event daemon。。。
关闭系统不需要的服务
service acpid stop chkconfig acpid off #停止服务,取消开机启动 #电源进阶设定,常用在 Laptop 上
service autofs stop chkconfig autofs off #停用自动挂载档桉系统与週边装置
service bluetooth stop chkconfig bluetooth off #停用Bluetooth蓝芽
service cpuspeed stop chkconfig cpuspeed off #停用控制CPU速度主要用来省电
service cups stop chkconfig cups off #停用 Common UNIX Printing System 使系统支援印表机
service ip6tables stop chkconfig ip6tables off #禁止IPv6
摘自:http://www.osyunwei.com/archives/754.html
阅读全文
Linux CentOS开启samba服务(附smb.conf手册)
Unix/LinuxC技术 jack 2010-2-11 18:11
由于想在jackxiang目录下建立一个文件测试samb看看,没有想到看是看到了,一用记事本打开后保存说是找不到文件路径,最后发现时文件权限的问题,于是作如下修改:
修改为:
[root@localhost home]# chown -R jackxiang.users jackxiang/
就可以用记事本等编辑工具修改了而不提示找不到路径了。
\\192.168.63.128
然后直接点击生成的jackxiang目录,输入通过smbpasswd –a jackxiang 输入密码。
进入目录,建立文件夹等。。。注意是:user组喔,你建立文件夹可能会出现问题,所以:
-rw-rw-rw- 1 jackxiang jackxiang 18 02-12 07:55 mysambtest.txt
drwxr-xr-x 2 jackxiang jackxiang 4096 02-12 07:56 newfolder
drwxr-xr-x 2 jackxiang jackxiang 4096 02-12 07:56 newfoldertest
-rw-rw-rw- 1 jackxiang jackxiang 0 02-12 07:57 newfolder.txt
这时候才是随便建立目录和文件喽!
附:
#cd /usr/local/samba/bin
测试参数的设置格式,属性是否正确。
Samba version 3.0.10
PID Username Group Machine
-------------------------------------------------------------------
2502 root UEC uec-gcp (192.168.1.2)
Service pid machine Connected at
-------------------------------------------------------
IPC$ 2502 uec-gcp Mon Sep 12 13:11:31 2005
John docs 2502 uec-gcp Mon Sep 12 12:59:01 2005
gcp docs 2502 uec-gcp Mon Sep 12 12:58:54 2005
No locked files
添加访问的共享资源的用户,一般用户也可以访问SWAT,但只有查看状态的权限。
# smbtree
Password:
WORKGROUP
\SUN440EN Samba 3.0.10
\SUN440ENADMIN$ IPC Service (Samba 3.0.10)
\SUN440ENIPC$ IPC Service (Samba 3.0.10)
\SUN440ENjohn docs
\SUN440ENgcp docs
显示了samba server 上的共享资源。
阅读全文
-rw-r--r-- 1 root root 14 02-12 07:50 mysambtest.txt
修改为:
[root@localhost home]# chown -R jackxiang.users jackxiang/
就可以用记事本等编辑工具修改了而不提示找不到路径了。
\\192.168.63.128
然后直接点击生成的jackxiang目录,输入通过smbpasswd –a jackxiang 输入密码。
进入目录,建立文件夹等。。。注意是:user组喔,你建立文件夹可能会出现问题,所以:
[root@localhost home]# chown -R jackxiang.jackxiang jackxiang/
-rw-rw-rw- 1 jackxiang jackxiang 18 02-12 07:55 mysambtest.txt
drwxr-xr-x 2 jackxiang jackxiang 4096 02-12 07:56 newfolder
drwxr-xr-x 2 jackxiang jackxiang 4096 02-12 07:56 newfoldertest
-rw-rw-rw- 1 jackxiang jackxiang 0 02-12 07:57 newfolder.txt
这时候才是随便建立目录和文件喽!
附:
#cd /usr/local/samba/bin
#testparms
测试参数的设置格式,属性是否正确。
#smbstatus
Samba version 3.0.10
PID Username Group Machine
-------------------------------------------------------------------
2502 root UEC uec-gcp (192.168.1.2)
Service pid machine Connected at
-------------------------------------------------------
IPC$ 2502 uec-gcp Mon Sep 12 13:11:31 2005
John docs 2502 uec-gcp Mon Sep 12 12:59:01 2005
gcp docs 2502 uec-gcp Mon Sep 12 12:58:54 2005
No locked files
#smbpasswd –a username
添加访问的共享资源的用户,一般用户也可以访问SWAT,但只有查看状态的权限。
# smbtree
Password:
WORKGROUP
\SUN440EN Samba 3.0.10
\SUN440ENADMIN$ IPC Service (Samba 3.0.10)
\SUN440ENIPC$ IPC Service (Samba 3.0.10)
\SUN440ENjohn docs
\SUN440ENgcp docs
[root@localhost bin]# ./testparm
Load smb config files from /usr/local/samba/lib/smb.conf
Processing section "[homes]"
Processing section "[brutxiang]"
Processing section "[lxliu]"
Processing section "[ianzhang]"
Processing section "[guodong]"
Processing section "[kamchen]"
Load smb config files from /usr/local/samba/lib/smb.conf
Processing section "[homes]"
Processing section "[brutxiang]"
Processing section "[lxliu]"
Processing section "[ianzhang]"
Processing section "[guodong]"
Processing section "[kamchen]"
#smbclient -L yourhostname.
显示了samba server 上的共享资源。
阅读全文
我晚上睡觉的时候,经常会被自己的口水呛住了,然后就会有很多喉痰,特别不舒服,就像感冒了咳嗽那样,是怎么回事?
成年人睡眠时流口水这是因为患有神经官能症或其它引起植物神经功能紊乱的疾患,副交感神经活动相对亢进,胃肠蠕动加强,唾液及其它消化液的分泌增加,加上入睡后吞咽动作有粘膜溃疡、舌炎等疾患,由于慢性炎症的刺激,也可使唾液分泌增加。还有,睡眠时由于体位的关系,侧身睡、头偏向一侧,也容易流口水。当然,这种情况的口水流量较少。 祖国医学认为成年人流口水是脾胃功能失调的一种表现,这种情况常见于脾胃运动功能减弱、水湿停留、脾胃湿热或胃里存食下降、胃热上蒸,即所谓的“胃不和则卧不安”。 流口水怎么办呢?首先你不要有精神负担,先到正规医院去检查,要针对流口水的原发疾病予以治疗,例如神经官能症、口腔炎症等;其次,要养成良好的饮食习惯,饭后不要立即就寝,晚饭不要吃得过多或过多食用油腻、粘糯等不易消化的食物;第三,养成饭后漱口、睡前刷牙等良好的卫生习惯,以减少口腔内炎症的发生。另外,睡前也不要做剧烈的运动或过度用脑
关于大人半夜睡觉被口水呛住的问题
1、胃肠不好,尤其是胃酸分泌过多;
2、睡姿不对,尤其是仰躺;
3、睡前不要吃东西也不要太饿,侧卧姿睡觉...
咳嗽是呼吸系统中最常见的症状之一,是人体的一种保护性措施,对机体是有益的,当呼吸道粘膜受到异物、炎症、分泌物或过敏性因素等刺激时,即反射性地引起咳嗽,有助于排除自外界侵入呼吸道的异物或分泌物、消除呼吸道刺激因子
咳嗽偏方,你试试吧
1萝卜蜂蜜饮(治疗咳嗽)
用料:白萝卜5片、生姜3片、大枣3枚、蜂蜜30克。
制法服法:将萝卜、生姜、大枣加水适量煮沸约30分钟,去渣,加蜂蜜,再煮沸即可。
温热服下。每日1~2次。
功效主治:萝卜味辛、甘,性凉,有清热生津,凉血止血,化痰止咳等作用。其醇提取物对革兰氏阳性细菌有较强的抗菌作用。生姜是散风寒、止呕下气的常用药,大枣多作和胃养血及调和药物使用。蜂蜜润燥止咳,本饮可起到敬寒宣肺,祛风止咳的作用。
治疗伤风咳嗽,以风寒感冒咳嗽为宜。
注意事项:体弱屡易感冒咳嗽,久治不愈或反复迁延的婴儿,可试用。但风热咳嗽,见发热痰黄者,则不宜选用。
2百合蜜(专治:咳嗽)
用料:百合60克、蜂蜜30克。
制法服法:将百合洗净晾干,与蜂蜜拌匀,入锅隔水蒸熟。
此蜜制百合可作点心让婴儿吃。
功效主治:百合味甘、微苦,性微寒。有润肺止咳、清心安神作用。含淀粉、蛋白质、脂肪、多种生物碱、钙、磷、铁等成分。药理试验其煎剂对氨水引起的小孩咳嗽有止咳作用,并能对抗组织胺引起的蟾蛛哮喘。与蜂蜜同用,加强其润肺止咳作用。
治疗婴儿慢性支气管炎,咽干燥咳,特别是入秋之后的干咳,伴大便秘结更宜。
注意事项:脾虚便溏婴儿不宜选用。本法服食方便,以秋、冬季选用为宜。
3百合款冬花饮(专治:咳嗽 )
用料:百合30~60克、款冬花10~15克、冰糖适量。
制法服法:将上料同置砂锅中煮成糖水。
饮水食百合,宜晚饭后睡前食用。
功效主治:百合润肺止咳。款冬花辛温,有润肺下气,止咳化痰作用。本品提取液可使支气管略扩张,对组织胺引起的痉挛,有解痉作用。因此具有止咳,祛痰平喘作用。两药合用有润肺止咳、下气化痰之功效。
治疗婴儿慢性支气管炎,支气管哮喘(缓解期),秋冬咳嗽、咽喉干痛,久咳不愈。
注意事项:本饮以秋冬咳嗽,略见有痰者适宜,对支气管哮喘或痉挛性支气管炎,则药力不及,但可作辅助治疗用。
4荸荠百合羹 (专治:咳嗽 )
用料:荸荠(马蹄)30克、百合1克、雪梨l个,冰糖适量。
制法服法:将荸荠洗净去皮捣烂,雪梨洗净连皮切碎去核,百合洗净后,三者
混合加水煎煮,后加适量冰糖煮至熟烂汤稠。
温热食用。
功效主治:荸荠味甘,性微寒,能清热生津,凉血解毒,化痰消积等作用,含淀粉、蛋白质、脂肪、钙、磷、铁、维生素C和荸荠素等成分,荸荠素对金黄色葡萄球菌、大肠杆菌及绿脓杆菌有抑制作用;梨能清热生津,润燥化痰;百合润肺止咳。三者合用则起滋阴润燥,化痰止咳的作用。
治疗痰热咳嗽,痰黄稠,咽喉不利。用于婴儿慢性气管炎见痰热症者。
注意事项:脾虚便溏、咳痰清稀者不宜选用。血虚体弱的婴儿忌用。
5川贝母蒸梨(专治:咳嗽 )
用料:雪梨或鸭梨一个,川贝母6克,冰糖20克。
制法服法:将梨于柄部切开,挖空去核,将川贝母研成粉未后。装入雪梨内,用牙签将柄部复原固定。放大碗中加入冰糖,加少量水,隔水蒸半小时。
将蒸透的梨和其中的川贝母一起食入。
功效主治:贝母为化痰止咳良药,与雪梨、冰糖并用,则起化痰止咳,润肺养阴功效。
治疗久咳不愈,痰多,咽干,气短乏力。
注意事项:民间常用验方。婴儿久咳,多为慢性支气管炎,本方性味平和,对久咳体弱儿适用。复有外感者不宜用。本方以选用地道药材川贝母其效佳。
6醋饮 (专治:咳嗽 )
用料:白醋适量。
制法服法:将醋烧沸,放凉后备用。
每次服一小匙,慢慢咽之,日咽数次。
功效主治:醋味酸、甘,性平,有散瘀、解毒、消肿的功用。用治咽炎咳嗽,取其消除咽痒的功效。见患儿因痒而咳,遇风则甚。所谓“痒则咳,不能已矣”。
注意事项:此法有时可收到意想不到的功效。但对脾虚湿盛,有骨关节病痛者不宜。病愈即止,多食会损齿伤胃。
7核桃鸭子(专治:咳嗽 )
用料:核桃仁200克,荸荠150克,老鸭子1只、鸡肉泥100克、鸡蛋清(1只)。
制法服法:将鸭子宰杀,去内脏,洗净,用开水浸一遍,置盆内。加葱、姜、味精少许,上笼蒸熟,取出晾凉后,去骨,切成块。将核桃仁、荸荠研切成碎末状,与鸡肉泥、鸡蛋清,加少许湿粉共调成糊状。将糊淋在鸭膛上,下油锅炸酥,捞出、控油即成。
成年人睡眠时流口水这是因为患有神经官能症或其它引起植物神经功能紊乱的疾患,副交感神经活动相对亢进,胃肠蠕动加强,唾液及其它消化液的分泌增加,加上入睡后吞咽动作有粘膜溃疡、舌炎等疾患,由于慢性炎症的刺激,也可使唾液分泌增加。还有,睡眠时由于体位的关系,侧身睡、头偏向一侧,也容易流口水。当然,这种情况的口水流量较少。 祖国医学认为成年人流口水是脾胃功能失调的一种表现,这种情况常见于脾胃运动功能减弱、水湿停留、脾胃湿热或胃里存食下降、胃热上蒸,即所谓的“胃不和则卧不安”。 流口水怎么办呢?首先你不要有精神负担,先到正规医院去检查,要针对流口水的原发疾病予以治疗,例如神经官能症、口腔炎症等;其次,要养成良好的饮食习惯,饭后不要立即就寝,晚饭不要吃得过多或过多食用油腻、粘糯等不易消化的食物;第三,养成饭后漱口、睡前刷牙等良好的卫生习惯,以减少口腔内炎症的发生。另外,睡前也不要做剧烈的运动或过度用脑
关于大人半夜睡觉被口水呛住的问题
1、胃肠不好,尤其是胃酸分泌过多;
2、睡姿不对,尤其是仰躺;
3、睡前不要吃东西也不要太饿,侧卧姿睡觉...
咳嗽是呼吸系统中最常见的症状之一,是人体的一种保护性措施,对机体是有益的,当呼吸道粘膜受到异物、炎症、分泌物或过敏性因素等刺激时,即反射性地引起咳嗽,有助于排除自外界侵入呼吸道的异物或分泌物、消除呼吸道刺激因子
咳嗽偏方,你试试吧
1萝卜蜂蜜饮(治疗咳嗽)
用料:白萝卜5片、生姜3片、大枣3枚、蜂蜜30克。
制法服法:将萝卜、生姜、大枣加水适量煮沸约30分钟,去渣,加蜂蜜,再煮沸即可。
温热服下。每日1~2次。
功效主治:萝卜味辛、甘,性凉,有清热生津,凉血止血,化痰止咳等作用。其醇提取物对革兰氏阳性细菌有较强的抗菌作用。生姜是散风寒、止呕下气的常用药,大枣多作和胃养血及调和药物使用。蜂蜜润燥止咳,本饮可起到敬寒宣肺,祛风止咳的作用。
治疗伤风咳嗽,以风寒感冒咳嗽为宜。
注意事项:体弱屡易感冒咳嗽,久治不愈或反复迁延的婴儿,可试用。但风热咳嗽,见发热痰黄者,则不宜选用。
2百合蜜(专治:咳嗽)
用料:百合60克、蜂蜜30克。
制法服法:将百合洗净晾干,与蜂蜜拌匀,入锅隔水蒸熟。
此蜜制百合可作点心让婴儿吃。
功效主治:百合味甘、微苦,性微寒。有润肺止咳、清心安神作用。含淀粉、蛋白质、脂肪、多种生物碱、钙、磷、铁等成分。药理试验其煎剂对氨水引起的小孩咳嗽有止咳作用,并能对抗组织胺引起的蟾蛛哮喘。与蜂蜜同用,加强其润肺止咳作用。
治疗婴儿慢性支气管炎,咽干燥咳,特别是入秋之后的干咳,伴大便秘结更宜。
注意事项:脾虚便溏婴儿不宜选用。本法服食方便,以秋、冬季选用为宜。
3百合款冬花饮(专治:咳嗽 )
用料:百合30~60克、款冬花10~15克、冰糖适量。
制法服法:将上料同置砂锅中煮成糖水。
饮水食百合,宜晚饭后睡前食用。
功效主治:百合润肺止咳。款冬花辛温,有润肺下气,止咳化痰作用。本品提取液可使支气管略扩张,对组织胺引起的痉挛,有解痉作用。因此具有止咳,祛痰平喘作用。两药合用有润肺止咳、下气化痰之功效。
治疗婴儿慢性支气管炎,支气管哮喘(缓解期),秋冬咳嗽、咽喉干痛,久咳不愈。
注意事项:本饮以秋冬咳嗽,略见有痰者适宜,对支气管哮喘或痉挛性支气管炎,则药力不及,但可作辅助治疗用。
4荸荠百合羹 (专治:咳嗽 )
用料:荸荠(马蹄)30克、百合1克、雪梨l个,冰糖适量。
制法服法:将荸荠洗净去皮捣烂,雪梨洗净连皮切碎去核,百合洗净后,三者
混合加水煎煮,后加适量冰糖煮至熟烂汤稠。
温热食用。
功效主治:荸荠味甘,性微寒,能清热生津,凉血解毒,化痰消积等作用,含淀粉、蛋白质、脂肪、钙、磷、铁、维生素C和荸荠素等成分,荸荠素对金黄色葡萄球菌、大肠杆菌及绿脓杆菌有抑制作用;梨能清热生津,润燥化痰;百合润肺止咳。三者合用则起滋阴润燥,化痰止咳的作用。
治疗痰热咳嗽,痰黄稠,咽喉不利。用于婴儿慢性气管炎见痰热症者。
注意事项:脾虚便溏、咳痰清稀者不宜选用。血虚体弱的婴儿忌用。
5川贝母蒸梨(专治:咳嗽 )
用料:雪梨或鸭梨一个,川贝母6克,冰糖20克。
制法服法:将梨于柄部切开,挖空去核,将川贝母研成粉未后。装入雪梨内,用牙签将柄部复原固定。放大碗中加入冰糖,加少量水,隔水蒸半小时。
将蒸透的梨和其中的川贝母一起食入。
功效主治:贝母为化痰止咳良药,与雪梨、冰糖并用,则起化痰止咳,润肺养阴功效。
治疗久咳不愈,痰多,咽干,气短乏力。
注意事项:民间常用验方。婴儿久咳,多为慢性支气管炎,本方性味平和,对久咳体弱儿适用。复有外感者不宜用。本方以选用地道药材川贝母其效佳。
6醋饮 (专治:咳嗽 )
用料:白醋适量。
制法服法:将醋烧沸,放凉后备用。
每次服一小匙,慢慢咽之,日咽数次。
功效主治:醋味酸、甘,性平,有散瘀、解毒、消肿的功用。用治咽炎咳嗽,取其消除咽痒的功效。见患儿因痒而咳,遇风则甚。所谓“痒则咳,不能已矣”。
注意事项:此法有时可收到意想不到的功效。但对脾虚湿盛,有骨关节病痛者不宜。病愈即止,多食会损齿伤胃。
7核桃鸭子(专治:咳嗽 )
用料:核桃仁200克,荸荠150克,老鸭子1只、鸡肉泥100克、鸡蛋清(1只)。
制法服法:将鸭子宰杀,去内脏,洗净,用开水浸一遍,置盆内。加葱、姜、味精少许,上笼蒸熟,取出晾凉后,去骨,切成块。将核桃仁、荸荠研切成碎末状,与鸡肉泥、鸡蛋清,加少许湿粉共调成糊状。将糊淋在鸭膛上,下油锅炸酥,捞出、控油即成。
CGI(Common Gateway Interface): 通用网关接口
一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能. 传统的CGI解释器的反复加载是CGI性能低下的主要原因, 如果CGI解释器保持在内存中并接受FastCGI进程管理器调度, 则可以提供良好的性能、伸缩性等. 作为一种替代CGI的技术标准, fastCGI有如下优点(稳定,安全,高性能,方便扩展)
从稳定性上看,FastCGI是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.
从安全性上看, FastCGI和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,
从性能上看, FastCGI把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与
从扩展性上讲, FastCGI是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python…)
php5-cgi:
PHP5的CGI方式的一大优势是内置了FastCGI的支持,只需指明绑定的地址和端口参数便可以以FastCGI的方式运行.但是如果直接使用php-cgi的FastCGI运行方式有两个问题
如果进程崩溃,难以配置重新启动
单进程的效率低
因此,我们可以借助Lighttpd的spawn-fcgi,目前版本号为1.6.0 rc1 该版本已经从lighttpd中独立发布出来.我们使用spawn-fcgi来控制php5-cgi进程的运行.
php-fpm(PHP FastCGI Process Manager):
和spawn-fcgi是一样的东西,好像将会在php5.3.2+中得到支持, http://php-fpm.org/download/
php-fpm文档中文翻译, http://syre.blogbus.com/logs/20092011.html
一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能. 传统的CGI解释器的反复加载是CGI性能低下的主要原因, 如果CGI解释器保持在内存中并接受FastCGI进程管理器调度, 则可以提供良好的性能、伸缩性等. 作为一种替代CGI的技术标准, fastCGI有如下优点(稳定,安全,高性能,方便扩展)
从稳定性上看,FastCGI是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.
从安全性上看, FastCGI和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,
从性能上看, FastCGI把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与
从扩展性上讲, FastCGI是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python…)
php5-cgi:
PHP5的CGI方式的一大优势是内置了FastCGI的支持,只需指明绑定的地址和端口参数便可以以FastCGI的方式运行.但是如果直接使用php-cgi的FastCGI运行方式有两个问题
如果进程崩溃,难以配置重新启动
单进程的效率低
因此,我们可以借助Lighttpd的spawn-fcgi,目前版本号为1.6.0 rc1 该版本已经从lighttpd中独立发布出来.我们使用spawn-fcgi来控制php5-cgi进程的运行.
php-fpm(PHP FastCGI Process Manager):
和spawn-fcgi是一样的东西,好像将会在php5.3.2+中得到支持, http://php-fpm.org/download/
php-fpm文档中文翻译, http://syre.blogbus.com/logs/20092011.html
thread:略.
PthreadOSIX定义的纯用户线程,对于内河而言是不知道他存在的
lwp:内河支持的线程,LINUX中的THREAD就是于此相当.
kthread:没有用户文镜.纯粹的在内河的驱动程序中执行.注意要与LINUX中的内存守护线程象区别.
问题:
我用kthread_create方法创建了一个内核线程,在线程执行函数的末尾调用的do_exit(),这样虽然释放了大部分资源,但进程描述符应该还没有释放。
请问有没有合适的方法在我的内核模块程序里彻底删除这个线程?
请帮忙详细解释好吗
例如我这样创建一个kthread
由父进程在信号处理中执行最后的清除
do_signal->sys_wait4->release_task
而这个信号是由exit_notify->do_notify_parent发出的
kill_proc会导致内核crash掉,如果注释掉的话,kernel thread会一直处于zombie状态!
我也遇到在linux上通过php的dio_open函数调用串口出现:
不知道如何解决!
PthreadOSIX定义的纯用户线程,对于内河而言是不知道他存在的
lwp:内河支持的线程,LINUX中的THREAD就是于此相当.
kthread:没有用户文镜.纯粹的在内河的驱动程序中执行.注意要与LINUX中的内存守护线程象区别.
问题:
我用kthread_create方法创建了一个内核线程,在线程执行函数的末尾调用的do_exit(),这样虽然释放了大部分资源,但进程描述符应该还没有释放。
请问有没有合适的方法在我的内核模块程序里彻底删除这个线程?
请帮忙详细解释好吗
例如我这样创建一个kthread
struct task_struct *tsk = NULL;
int run(void *data)
{
init_completion( (struct completion *) data )
complete( (struct completion *) data );
do_exit(0);
}
void entrance()
{
struct completion cplt;
tsk = kthread_create(run, &cplt, "test_thd");
if (tsk == NULL) {
return;
}
wait_for_completion(&cplt);
// 如果我要在这个位置彻底删除上面创建的线程应该怎么办,应该添加哪些代码
return;
}
请帮忙解释好吗? 谢谢!int run(void *data)
{
init_completion( (struct completion *) data )
complete( (struct completion *) data );
do_exit(0);
}
void entrance()
{
struct completion cplt;
tsk = kthread_create(run, &cplt, "test_thd");
if (tsk == NULL) {
return;
}
wait_for_completion(&cplt);
// 如果我要在这个位置彻底删除上面创建的线程应该怎么办,应该添加哪些代码
return;
}
由父进程在信号处理中执行最后的清除
do_signal->sys_wait4->release_task
而这个信号是由exit_notify->do_notify_parent发出的
kill_proc会导致内核crash掉,如果注释掉的话,kernel thread会一直处于zombie状态!
我也遇到在linux上通过php的dio_open函数调用串口出现:
[root@localhost dio]# ps aux|grep read
root 7 0.0 0.0 0 0 ? S< 05:22 0:00 [kthread]
root 7 0.0 0.0 0 0 ? S< 05:22 0:00 [kthread]
不知道如何解决!
-rwxr-xr-x 1 www www 23045 11月 22 11:26 index.html
文件的链接数是1,这意味着只有一个文件名指向这个文件的inode。在大多数情况下,这个文件名就是文件的原始名称,例如这里的 index.html。
再给加上一个硬链接如下:
ln index.html /tmp/index_link.html
ls -lart index.html
-rwxr-xr-x 2 www www 23045 11月 22 11:26 index.html
rm -rf /tmp/index_link.html
ls -lart index.html
-rwxr-xr-x 1 www www 23045 11月 22 11:26 index.html
软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软连接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)
硬连接是不会建立Inode的,他只是在文件原来的Inode link count域再增加 1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个Inode,当然Inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息,一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查link count的数值,如果他大于等于1,那么Inode不会被回收。因此文件的内容没有不会被删除。
硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。
1.软连接可以跨文件系统,硬链接不可以;
2.软连接可以对一个不存在的文件名(filename)进行连接(当然此时如果你vi这个软连接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);
3.软连接可以对目录进行连接,硬链接不可以。
其他知识:
软连接(symbolic link)又叫符号连接,这个软链接文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
ln -s source_file softlink_file
硬链接,命令:ln -d existfile newfile 不用参数-d也可以的,如:ln existfile newfile
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Number)。在Linux中,多个文件名指向同一索引节点是存在的(如:硬链接)
I节点(Inode) :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.
文件的链接数是1,这意味着只有一个文件名指向这个文件的inode。在大多数情况下,这个文件名就是文件的原始名称,例如这里的 index.html。
再给加上一个硬链接如下:
ln index.html /tmp/index_link.html
ls -lart index.html
-rwxr-xr-x 2 www www 23045 11月 22 11:26 index.html
rm -rf /tmp/index_link.html
ls -lart index.html
-rwxr-xr-x 1 www www 23045 11月 22 11:26 index.html
软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软连接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)
硬连接是不会建立Inode的,他只是在文件原来的Inode link count域再增加 1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个Inode,当然Inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息,一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查link count的数值,如果他大于等于1,那么Inode不会被回收。因此文件的内容没有不会被删除。
硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。
1.软连接可以跨文件系统,硬链接不可以;
2.软连接可以对一个不存在的文件名(filename)进行连接(当然此时如果你vi这个软连接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);
3.软连接可以对目录进行连接,硬链接不可以。
其他知识:
软连接(symbolic link)又叫符号连接,这个软链接文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
ln -s source_file softlink_file
硬链接,命令:ln -d existfile newfile 不用参数-d也可以的,如:ln existfile newfile
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Number)。在Linux中,多个文件名指向同一索引节点是存在的(如:硬链接)
I节点(Inode) :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
border border
border-bottom borderBottom
border-bottom-color borderBottomColor
border-bottom-style borderBottomStyle
border-bottom-width borderBottomWidth
border-color borderColor
border-left borderLeft
border-left-color borderLeftColor
border-left-style borderLeftStyle
border-left-width borderLeftWidth
border-right borderRight
border-right-color borderRightColor
border-right-style borderRightStyle
border-right-width borderRightWidth
border-style borderStyle
border-top borderTop
border-top-color borderTopColor
border-top-style borderTopStyle
border-top-width borderTopWidth
border-width borderWidth
clear clear
float floatStyle
margin margin
margin-bottom marginBottom
margin-left marginLeft
margin-right marginRight
margin-top marginTop
padding padding
padding-bottom paddingBottom
padding-left paddingLeft
padding-right paddingRight
padding-top paddingTop
颜色和背景标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
background background
background-attachment backgroundAttachment
background-color backgroundColor
background-image backgroundImage
background-position backgroundPosition
background-repeat backgroundRepeat
color color
样式标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
display display
list-style-type listStyleType
list-style-image listStyleImage
list-style-position listStylePosition
list-style listStyle
white-space whiteSpace
文字样式标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
font font
font-family fontFamily
font-size fontSize
font-style fontStyle
font-variant fontVariant
font-weight fontWeight
文本标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
letter-spacing letterSpacing
line-break lineBreak
line-height lineHeight
text-align textAlign
text-decoration textDecoration
text-indent textIndent
text-justify textJustify
text-transform textTransform
vertical-align verticalAlign
补充:
在建设网站的过程中,有时难免会要用js来控制css,其实这是十分简单的看下面的例子。
[code]html:<div id="my_div" style="background-color:red">js控制css</div>
js:document.getElementById("my_div").style.backgroundColor="red"[/code]
其实就是用style对象访问css属性,值得注意的是样式属性的写法在css里是background-color,但是在js里就是backgroundColor,一般情况是把"_"去掉,第二个字母用大写。
如果用的是外联样式表,就用currentStyle对象代替style对象。如:
document.getElementById("my_div").currentStyle.backgroundColor="red"
一个例子:
[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试了</title>
<script type="text/javascript">
function divFloatRight(e) {
e.style.backgroundColor = "#ff0000";
e.style.styleFloat = "right";//IE
e.style.cssFloat = "right";//firefox and others explorer
}
function divFloatLeft(e) {
e.style.backgroundColor = "transparent";
e.style.styleFloat = "left";
e.style.cssFloat = "left";
}
</script>
</head>
<body>
<div>
<div id="demo" style="border: dashed 1px #000000;" onmousemove="divFloatRight(this);"
onclick="divFloatLeft(this);">
JavaScript控制div的float属性,onmousemove~float:right,onclick~float:left。
</div>
</div>
</body>
</html>[/code]
border border
border-bottom borderBottom
border-bottom-color borderBottomColor
border-bottom-style borderBottomStyle
border-bottom-width borderBottomWidth
border-color borderColor
border-left borderLeft
border-left-color borderLeftColor
border-left-style borderLeftStyle
border-left-width borderLeftWidth
border-right borderRight
border-right-color borderRightColor
border-right-style borderRightStyle
border-right-width borderRightWidth
border-style borderStyle
border-top borderTop
border-top-color borderTopColor
border-top-style borderTopStyle
border-top-width borderTopWidth
border-width borderWidth
clear clear
float floatStyle
margin margin
margin-bottom marginBottom
margin-left marginLeft
margin-right marginRight
margin-top marginTop
padding padding
padding-bottom paddingBottom
padding-left paddingLeft
padding-right paddingRight
padding-top paddingTop
颜色和背景标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
background background
background-attachment backgroundAttachment
background-color backgroundColor
background-image backgroundImage
background-position backgroundPosition
background-repeat backgroundRepeat
color color
样式标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
display display
list-style-type listStyleType
list-style-image listStyleImage
list-style-position listStylePosition
list-style listStyle
white-space whiteSpace
文字样式标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
font font
font-family fontFamily
font-size fontSize
font-style fontStyle
font-variant fontVariant
font-weight fontWeight
文本标签和属性对照
CSS语法 (不区分大小写) JavaScript语法 (区分大小写)
letter-spacing letterSpacing
line-break lineBreak
line-height lineHeight
text-align textAlign
text-decoration textDecoration
text-indent textIndent
text-justify textJustify
text-transform textTransform
vertical-align verticalAlign
补充:
在建设网站的过程中,有时难免会要用js来控制css,其实这是十分简单的看下面的例子。
[code]html:<div id="my_div" style="background-color:red">js控制css</div>
js:document.getElementById("my_div").style.backgroundColor="red"[/code]
其实就是用style对象访问css属性,值得注意的是样式属性的写法在css里是background-color,但是在js里就是backgroundColor,一般情况是把"_"去掉,第二个字母用大写。
如果用的是外联样式表,就用currentStyle对象代替style对象。如:
document.getElementById("my_div").currentStyle.backgroundColor="red"
一个例子:
[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试了</title>
<script type="text/javascript">
function divFloatRight(e) {
e.style.backgroundColor = "#ff0000";
e.style.styleFloat = "right";//IE
e.style.cssFloat = "right";//firefox and others explorer
}
function divFloatLeft(e) {
e.style.backgroundColor = "transparent";
e.style.styleFloat = "left";
e.style.cssFloat = "left";
}
</script>
</head>
<body>
<div>
<div id="demo" style="border: dashed 1px #000000;" onmousemove="divFloatRight(this);"
onclick="divFloatLeft(this);">
JavaScript控制div的float属性,onmousemove~float:right,onclick~float:left。
</div>
</div>
</body>
</html>[/code]
Linux下可以用ls –l 命令来判断文件类型,如上 图所示。可以依据第一列中的10个字符来判断。
• -rw-r—r—指明了1.txt文件是一个普通文件,1.txt和myprog04文件都是普通文件。以”-“开头的都是普通文件,而以”d”开头的是目录文件。
• brw-rw---- 指明了/dev/sda1是一个块设备(Block Device)文件。以”b”开头的文件都是块设备文件。•
• crw-rw----指明了/dev/lp0是一个字符设备(Chartacter Device)文件,以”c”开头的文件都是字符设备文件。
• srwxrwxrwx 指明了/var/lib/mysql/mysql.sock是一个socket文件。以””开头的文件都是socket文件。
• prwxr—r--指明了了mypipe 是一个管道文件。管道文件的一个属性是”p”。
• lrwxrwxrwx 指明了softlinkof1.txt 是一个软链接文件(或称符号链接文件),该文件指向了1.txt。以”l”开头的文件是软链接文件。
• -rw-r—r—开头的hard_link_of_1.txt看上去是个普通文件,但它实际上是一个硬链接文件。
• -rwsr-xr-x指明了myprog01是一个setUid的可执行文件,这是根据第四个字符”s”判断的。
• -rwxr-sr-x指明了myprog03是一个setGid的可执行文件,这是根据第七个字符中的”s”判断的。
• -rwsr-sr-x指明了myprog02是一个setUid加setGid的可执行文件,这是根据第四个和第七个字符中的”s”判断的。
• drwxrwxrwt 中的第一个”d”字指明了tmp文件是一个目录,最后一个字符”t”指明了该目录被设置了粘着位。
一、设备文件
Linux下的/dev 目录中有大量的设备文件。主要是块设备文件和字符设备文件。
块设备文件
在过去,在添加新磁盘后,往往需要手动增加块设备文件。现在通常我们不需要手动增加块设备文件,运行一下service kudzu start ,系统就会自动为您配置相应的设备。块设备的主要特点是可以随机读写,而最常见的块设备就是磁盘,如/dev/hda1 、/dev/sda2、/dev/fd0等。
字符设备文件
同块设备一样,我们一般都可以用service kudzu start命令来自动增加、删除或修改字符设备。最常见的字符设备是打印机和终端,他们可以接受字符流。
/dev/null是一个非常有用的字符设备文件,送入这个设备的所有东西都被忽略。如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息。甚至于,您可以将某一用户的shell指向/dev/null 以禁止其登陆。
管道设备文件
管道设备文件有时候也被叫做FIFO文件(FIFO是先进先出的意思),从字面上理解,管道设备文件就是从一头流入,从另一头流出。通常我们会在其中做一些工作,以达到我们“吃的是草,挤出来的是奶”的目的,管道文件也有其妙用。
以前,Unix系统对文件的最大用量用2GB的限制,虽然现在新版本的Linux、Solaris、FreeBSD等不再有此限制,但处理大文件的需求仍然存在,假设您想用镜像(dd命令)的方式来备份一个容量为20GB分区的分区,就会产生一个20GB的文件,根据您磁盘实际的使用状况,这个文件在压缩后可能只有数MB到数GB,我们可以建立一个管道文件来自动实现这个压缩过程。
[root@linux236 root]# mknod mypipe p
[root@linux236 root]# ls -l mypipe
prw-r--r-- 1 root root 0 Aug 5 23:27 mypipe
[root@linux236 root]#
在这里,我们建立了一个叫mypipe的管道文件,用ls -l 命令可以看到它的属性是prw-r--r--,用下面的组合命令实现镜像和压缩:
[root@linux236 root]# compress < mypipe > sda6.img.Z &
[root@linux236 root]# dd if=/dev/sda6 of=mypipe
[root@linux236 root]# ls sda6.img.Z
sda6.img.Z
第一个命令使得从mypipe管道中流出的文件被压缩为sda.img.Z文件,注意这个命令的结尾必须使用"&"符号。第二个命令将/dev/sda6分区中的资料道入管道文件mypipe,换句话说,/dev/sda6分区中的数据进入管道,而压缩文件sda6.img.Z文件从管道中流出。
在导出Oracle、DB2等大型数据库时等经常会生成很大的文件,熟练的数据库管理员往往会选择通过管道进行压缩的方式,对于Oracle数据库,我们可以使用下边的组合命令:
这样,就会将Oracle导出的内容直接压缩成为expdat.dmp.Z文件。
compress < mypipe > expdat.dmp.Z &
exp userid=system file=mypipe owner=scott
第二章 链接文件
链接文件有点类似于Windows 的所谓快捷方式,但并不完全一样。链接有两种方式,软链接和硬链接。
软链接文件
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。
[yaoyao@linux236 yaoyao]$ ls -l
total 0
lrwxrwxrwx 1 yaoyao yaoyao 5 Aug 6 17:39 1.txt -> 3.txt
lrwxrwxrwx 1 yaoyao yaoyao 5 Aug 6 17:38 2.txt -> 1.txt
lrwxrwxrwx 1 yaoyao yaoyao 5 Aug 6 17:39 3.txt -> 2.txt
上面的三个文件形成了一个递归,实质上没有任何作用。系统管理员应该避免系统出现断链或循环链接。
用ln -s 命令可以生成一个软连接,如下:
[root@linux236 test]# ln -s source_file softlink_file
在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
硬链接文件
info ln 命令告诉您,硬链接是已存在文件的另一个名字(A "hard link" is another name for an existing file),这多少有些令人困惑。硬连接的命令是
ln -d existfile newfile
硬链接文件有两个限制
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。
对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。
三、setUid、setGid文件和带粘着位的目录文件
在Linux/Unix下,有一种可执行文件被setUid,这使得任意使用者在执行该文件时,都绑定了文件拥有者的权限。就好像文件带了一把尚方宝剑一样,setUid文件通常用来提升使用者的权限.最有代表性的su命令.普通用户可以可以执行该命令,使自己升级为root。 setUid命令的用法是:
chmod 4755 your_program
setGid 文件和setUid文件非常类似,它使得这使得任意使用者在执行该文件时,都绑定了文件所有组的权限.单独setGid的文件非常少用,通常都是即 setUid又setGid。不过和您猜想的可能有点不同。setUid+setGid通常并不是用来提升权限的,而是为了绑定某个特殊用户及其组的特殊权限,例如qmail 的外围软件vpopmail,就使用了一个setUid+setGid的程序vchkpw来校验用户名和密码。这个道理和Apache常常以nobody 用户运行一样。其目的是为了更加安全。
setGid 命令的用法为
chmod 2755 your_program
通常使用命令
chmod 6755 yourprogram
来使得某可执行程序同时setUid和setGid
全能的root用户当然可以任意setUid和setGid。但尚方宝剑不能用来假传圣旨,普通用户只能给属于自己的文件配置setUid 或setGid。由于setUid或setGid文件会使普通用户提升权限,谨慎的系统管理员通常会留意系统中有setUid或setGid文件的变化。减少安全隐患。
在Linux下,/tmp是一个存放临时文件的目录,要求是对所有用户可写。但每个用户都只能删除自己拥有的文件。这种情况下,就可以把目录加一个粘着位。
[root@yaoyao /]# ls -l |grep tmp
drwsrwsrwt 9 root root 4096 8月7 10:50 tmp
注意第是个字符"t",它代表了这个目录被设置了粘着位。
我们自行建立一个abc的目录,使之具有和/tmp相同的特点
chmod 777 abc
chmod +t abc
上述的个两个命令组合等同于下边的一个命令:
chmod 1777 abc
用ls –l 看abc 目录的属性如下:
[root@yaoyao test]# ls -l
总用量 4
drwsrwsrwt 2 root root 4096 8月 7 11:32 abc
和/tmp目录相同的需求往往在ftp服务器的upload 目录中也存在。可以用相同的方式处理。
四、socket 文件
socket文件类似于管道,但它是在网络上面工作的。您到计算机就是靠它来做网络处理的。您可能听说过“Winsock”,那是 Windows 的套接口。我们在这里不深入谈有关套接口,因为如果您不写程序,您不会用到它,但如果您看到您系统里有个文件类型是s,您知道它是什么就行了。
比如说mysql 运行的时候通常会产生一个socket文件。
[root@yaoyao tmp]# ls -l /tmp/mysql.sock
srwxrwxrwx 1 mysql mysql 08月 7 10:03 mysql.sock
/tmp目录下还有一些socket文件,多半是运行Xwindows的时候产生的。
五、疑难杂症--删除不掉的文件
“为什么有些文件以讨厌的减号("-")开头做文件名,无论如何都删除不掉,这到底为什么?",您可能听过您临桌的新手这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法就可以把他们删除了,假定一个文件名为"-abc",您可以用:
rm ./-abc 或者
rm /home/yaoyao/-abc
命令将其轻松删除,另外您也可以用相同的方式用vi或者其他工具对他们进行修改。
另一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样:
[root@linux236 root]# ls -l 1.txt
-rw-r--r-- 1 root root 0 Aug 5 23:00 1.txt
[root@linux236 root]# rm -rf 1.txt
rm: cannot unlink `1.txt': Operation not permitted
您是全能root用户,居然系统告诉您操作不允许,是Linux疯了么?当然不是,如果您会用lsattr命令,问题就有了答案。
[root@linux236 root]# lsattr
---i---------- ./1.txt
-------------- ./weiqi.ldif
-------------- ./qi.schema
秘密终于暴露了,在lsattr命令下,这个1.txt文件带有一个"i"的属性,所以才不可以删除。您现在可以用下边的一系列命令:
[root@linux236 root]# lsattr 1.txt
---i---------- 1.txt
[root@linux236 root]# chattr -i 1.txt
[root@linux236 root]# rm -rf 1.txt
[root@linux236 root]#
成功了,这个属性专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的通常系统管理员有能力判断这个文件是否可以被删除。 如果您想给一个文件多加点保护,可以使用下边的命令:
chattr +i filename
命令,这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。只有root用户才能使用chattr命令。此命令可以在Linux ext2或ext3系统上使用。
类似于Dos和Windows文件系统,不能随意删除的文件多半都有其道理,即使您知道如何删除,都应该三思而后行。
总结
Linux/Unix系统管理是个复杂的工作,掌握和理解Linux/Unix文件类型是必备的基础之一。学习Linux/Unix没有捷径,必需通过大量的实践和努力学习。
• -rw-r—r—指明了1.txt文件是一个普通文件,1.txt和myprog04文件都是普通文件。以”-“开头的都是普通文件,而以”d”开头的是目录文件。
• brw-rw---- 指明了/dev/sda1是一个块设备(Block Device)文件。以”b”开头的文件都是块设备文件。•
• crw-rw----指明了/dev/lp0是一个字符设备(Chartacter Device)文件,以”c”开头的文件都是字符设备文件。
• srwxrwxrwx 指明了/var/lib/mysql/mysql.sock是一个socket文件。以””开头的文件都是socket文件。
• prwxr—r--指明了了mypipe 是一个管道文件。管道文件的一个属性是”p”。
• lrwxrwxrwx 指明了softlinkof1.txt 是一个软链接文件(或称符号链接文件),该文件指向了1.txt。以”l”开头的文件是软链接文件。
• -rw-r—r—开头的hard_link_of_1.txt看上去是个普通文件,但它实际上是一个硬链接文件。
• -rwsr-xr-x指明了myprog01是一个setUid的可执行文件,这是根据第四个字符”s”判断的。
• -rwxr-sr-x指明了myprog03是一个setGid的可执行文件,这是根据第七个字符中的”s”判断的。
• -rwsr-sr-x指明了myprog02是一个setUid加setGid的可执行文件,这是根据第四个和第七个字符中的”s”判断的。
• drwxrwxrwt 中的第一个”d”字指明了tmp文件是一个目录,最后一个字符”t”指明了该目录被设置了粘着位。
一、设备文件
Linux下的/dev 目录中有大量的设备文件。主要是块设备文件和字符设备文件。
块设备文件
在过去,在添加新磁盘后,往往需要手动增加块设备文件。现在通常我们不需要手动增加块设备文件,运行一下service kudzu start ,系统就会自动为您配置相应的设备。块设备的主要特点是可以随机读写,而最常见的块设备就是磁盘,如/dev/hda1 、/dev/sda2、/dev/fd0等。
字符设备文件
同块设备一样,我们一般都可以用service kudzu start命令来自动增加、删除或修改字符设备。最常见的字符设备是打印机和终端,他们可以接受字符流。
/dev/null是一个非常有用的字符设备文件,送入这个设备的所有东西都被忽略。如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息。甚至于,您可以将某一用户的shell指向/dev/null 以禁止其登陆。
管道设备文件
管道设备文件有时候也被叫做FIFO文件(FIFO是先进先出的意思),从字面上理解,管道设备文件就是从一头流入,从另一头流出。通常我们会在其中做一些工作,以达到我们“吃的是草,挤出来的是奶”的目的,管道文件也有其妙用。
以前,Unix系统对文件的最大用量用2GB的限制,虽然现在新版本的Linux、Solaris、FreeBSD等不再有此限制,但处理大文件的需求仍然存在,假设您想用镜像(dd命令)的方式来备份一个容量为20GB分区的分区,就会产生一个20GB的文件,根据您磁盘实际的使用状况,这个文件在压缩后可能只有数MB到数GB,我们可以建立一个管道文件来自动实现这个压缩过程。
[root@linux236 root]# mknod mypipe p
[root@linux236 root]# ls -l mypipe
prw-r--r-- 1 root root 0 Aug 5 23:27 mypipe
[root@linux236 root]#
在这里,我们建立了一个叫mypipe的管道文件,用ls -l 命令可以看到它的属性是prw-r--r--,用下面的组合命令实现镜像和压缩:
[root@linux236 root]# compress < mypipe > sda6.img.Z &
[root@linux236 root]# dd if=/dev/sda6 of=mypipe
[root@linux236 root]# ls sda6.img.Z
sda6.img.Z
第一个命令使得从mypipe管道中流出的文件被压缩为sda.img.Z文件,注意这个命令的结尾必须使用"&"符号。第二个命令将/dev/sda6分区中的资料道入管道文件mypipe,换句话说,/dev/sda6分区中的数据进入管道,而压缩文件sda6.img.Z文件从管道中流出。
在导出Oracle、DB2等大型数据库时等经常会生成很大的文件,熟练的数据库管理员往往会选择通过管道进行压缩的方式,对于Oracle数据库,我们可以使用下边的组合命令:
这样,就会将Oracle导出的内容直接压缩成为expdat.dmp.Z文件。
compress < mypipe > expdat.dmp.Z &
exp userid=system file=mypipe owner=scott
第二章 链接文件
链接文件有点类似于Windows 的所谓快捷方式,但并不完全一样。链接有两种方式,软链接和硬链接。
软链接文件
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。
[yaoyao@linux236 yaoyao]$ ls -l
total 0
lrwxrwxrwx 1 yaoyao yaoyao 5 Aug 6 17:39 1.txt -> 3.txt
lrwxrwxrwx 1 yaoyao yaoyao 5 Aug 6 17:38 2.txt -> 1.txt
lrwxrwxrwx 1 yaoyao yaoyao 5 Aug 6 17:39 3.txt -> 2.txt
上面的三个文件形成了一个递归,实质上没有任何作用。系统管理员应该避免系统出现断链或循环链接。
用ln -s 命令可以生成一个软连接,如下:
[root@linux236 test]# ln -s source_file softlink_file
在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
硬链接文件
info ln 命令告诉您,硬链接是已存在文件的另一个名字(A "hard link" is another name for an existing file),这多少有些令人困惑。硬连接的命令是
ln -d existfile newfile
硬链接文件有两个限制
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。
对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。
三、setUid、setGid文件和带粘着位的目录文件
在Linux/Unix下,有一种可执行文件被setUid,这使得任意使用者在执行该文件时,都绑定了文件拥有者的权限。就好像文件带了一把尚方宝剑一样,setUid文件通常用来提升使用者的权限.最有代表性的su命令.普通用户可以可以执行该命令,使自己升级为root。 setUid命令的用法是:
chmod 4755 your_program
setGid 文件和setUid文件非常类似,它使得这使得任意使用者在执行该文件时,都绑定了文件所有组的权限.单独setGid的文件非常少用,通常都是即 setUid又setGid。不过和您猜想的可能有点不同。setUid+setGid通常并不是用来提升权限的,而是为了绑定某个特殊用户及其组的特殊权限,例如qmail 的外围软件vpopmail,就使用了一个setUid+setGid的程序vchkpw来校验用户名和密码。这个道理和Apache常常以nobody 用户运行一样。其目的是为了更加安全。
setGid 命令的用法为
chmod 2755 your_program
通常使用命令
chmod 6755 yourprogram
来使得某可执行程序同时setUid和setGid
全能的root用户当然可以任意setUid和setGid。但尚方宝剑不能用来假传圣旨,普通用户只能给属于自己的文件配置setUid 或setGid。由于setUid或setGid文件会使普通用户提升权限,谨慎的系统管理员通常会留意系统中有setUid或setGid文件的变化。减少安全隐患。
在Linux下,/tmp是一个存放临时文件的目录,要求是对所有用户可写。但每个用户都只能删除自己拥有的文件。这种情况下,就可以把目录加一个粘着位。
[root@yaoyao /]# ls -l |grep tmp
drwsrwsrwt 9 root root 4096 8月7 10:50 tmp
注意第是个字符"t",它代表了这个目录被设置了粘着位。
我们自行建立一个abc的目录,使之具有和/tmp相同的特点
chmod 777 abc
chmod +t abc
上述的个两个命令组合等同于下边的一个命令:
chmod 1777 abc
用ls –l 看abc 目录的属性如下:
[root@yaoyao test]# ls -l
总用量 4
drwsrwsrwt 2 root root 4096 8月 7 11:32 abc
和/tmp目录相同的需求往往在ftp服务器的upload 目录中也存在。可以用相同的方式处理。
四、socket 文件
socket文件类似于管道,但它是在网络上面工作的。您到计算机就是靠它来做网络处理的。您可能听说过“Winsock”,那是 Windows 的套接口。我们在这里不深入谈有关套接口,因为如果您不写程序,您不会用到它,但如果您看到您系统里有个文件类型是s,您知道它是什么就行了。
比如说mysql 运行的时候通常会产生一个socket文件。
[root@yaoyao tmp]# ls -l /tmp/mysql.sock
srwxrwxrwx 1 mysql mysql 08月 7 10:03 mysql.sock
/tmp目录下还有一些socket文件,多半是运行Xwindows的时候产生的。
五、疑难杂症--删除不掉的文件
“为什么有些文件以讨厌的减号("-")开头做文件名,无论如何都删除不掉,这到底为什么?",您可能听过您临桌的新手这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法就可以把他们删除了,假定一个文件名为"-abc",您可以用:
rm ./-abc 或者
rm /home/yaoyao/-abc
命令将其轻松删除,另外您也可以用相同的方式用vi或者其他工具对他们进行修改。
另一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样:
[root@linux236 root]# ls -l 1.txt
-rw-r--r-- 1 root root 0 Aug 5 23:00 1.txt
[root@linux236 root]# rm -rf 1.txt
rm: cannot unlink `1.txt': Operation not permitted
您是全能root用户,居然系统告诉您操作不允许,是Linux疯了么?当然不是,如果您会用lsattr命令,问题就有了答案。
[root@linux236 root]# lsattr
---i---------- ./1.txt
-------------- ./weiqi.ldif
-------------- ./qi.schema
秘密终于暴露了,在lsattr命令下,这个1.txt文件带有一个"i"的属性,所以才不可以删除。您现在可以用下边的一系列命令:
[root@linux236 root]# lsattr 1.txt
---i---------- 1.txt
[root@linux236 root]# chattr -i 1.txt
[root@linux236 root]# rm -rf 1.txt
[root@linux236 root]#
成功了,这个属性专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的通常系统管理员有能力判断这个文件是否可以被删除。 如果您想给一个文件多加点保护,可以使用下边的命令:
chattr +i filename
命令,这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。只有root用户才能使用chattr命令。此命令可以在Linux ext2或ext3系统上使用。
类似于Dos和Windows文件系统,不能随意删除的文件多半都有其道理,即使您知道如何删除,都应该三思而后行。
总结
Linux/Unix系统管理是个复杂的工作,掌握和理解Linux/Unix文件类型是必备的基础之一。学习Linux/Unix没有捷径,必需通过大量的实践和努力学习。
你输入的一定是“rm -fr jakarta/”
所以才提示你“rm: cannot remove `jakarta/': Not a directory”
换用“rm -fr jakarta”就应该没问题了
rm jakarta
不要加-fr ,也不要加/
来源:http://linux.chinaunix.net/bbs/viewthread.php?tid=668717
所以才提示你“rm: cannot remove `jakarta/': Not a directory”
换用“rm -fr jakarta”就应该没问题了
rm jakarta
不要加-fr ,也不要加/
来源:http://linux.chinaunix.net/bbs/viewthread.php?tid=668717




