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 " ); } else if ( ( test.union_bytes[ 0 ] == 2 ) && ( test.union_bytes[ 1 ] == 1 ) ) { printf( "little endian " ); } else { printf( "unknown... " ); } }
3、epoll模型中的EPOLLOUT事件,有一种触发条件是:在设定好监听事件的EPOLLOUT属性之后。由此可以得到这么一种结论:每次写完数据后,就重新修改该套接字描述符的属性为:EPOLLOUT|EPOLLET,即可每次都触发写事件。
一个服务器端压测程序的例子:http://blog.csdn.net/nyist327/article/details/44588827