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
Shell脚本与字节序判断
本文介绍了一个用于修改Linux用户终端字体颜色的Shell脚本示例,以及如何通过C语言判断计算机的字节序(大端或小端)。同时,简述了epoll模型中的EPOLLOUT事件触发条件。
3850

被折叠的 条评论
为什么被折叠?



