2015-3-23

1、shell脚本中的  `command`表示方式:可以用来引用一个命令,并将结果返回。

举例:一个简单的查找所有linux用户,并修改用户终端字体颜色的脚本:

#!/bin/bash
get_user ()
{
    user=`awk -F : '$3 >= 500 {print $1}' /etc/passwd`
    for u in $user
    do
        if [ -d "/home/$u" ]; then
        echo $u
        fi
    done
    echo root
}
get_dir ()
{
    for u in $@
    do
        if [ $u == "root" ]; then
        echo "/root"
        else
            echo "/home/$u"
        fi
    done
}
user=`get_user`
dir=`get_dir $user`
for d in $dir
do
    echo "LS_COLORS='no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:'" >> "$d/.bashrc"
done
source ~/.bashrc

  

2、大小端的原理及如何写程序进行判断大小端机。

  (1)、内存的地址是由低到高的,计算机一般都是从低地址开始去数据的。

  (2)、出了char类型和byte类型是一个字节外,其他类型都占一个字节以上,而超过一个字节的数据类型就会引起存储上的分歧。

  (3)、小端机是低位字节存储在内存的低地址处,高位字节存储在内存的高地址处。(计算机取时,按照低字节->高字节的顺序,符合计算顺序)

  (4)、大端机是高字节存储在内存的低地址处,低字节存储在内存的高地址出。(计算机取时,按照高字节->低字节的顺序,符合人眼看的顺序)

  一个判断机器字节序的函数:

  

#include <stdio.h>
void byteorder()
{
	union
	{
		short value;
		char union_bytes[ sizeof( short ) ];
	} test;
	test.value = 0x0102;
	if (  ( test.union_bytes[ 0 ] == 1 ) && ( test.union_bytes[ 1 ] == 2 ) )
	{
		printf( "big endian\n" );
	}
	else if ( ( test.union_bytes[ 0 ] == 2 ) && ( test.union_bytes[ 1 ] == 1 ) )
	{
		printf( "little endian\n" );
	}
	else
	{
		printf( "unknown...\n" );
	}
}

  

3、epoll模型中的EPOLLOUT事件,有一种触发条件是:在设定好监听事件的EPOLLOUT属性之后。由此可以得到这么一种结论:每次写完数据后,就重新修改该套接字描述符的属性为:EPOLLOUT|EPOLLET,即可每次都触发写事件。

一个服务器端压测程序的例子:http://blog.csdn.net/nyist327/article/details/44588827

posted @ 2015-03-23 21:36  Sibyl_Zhang  阅读(128)  评论(0编辑  收藏  举报