
unix
wusoule
这个作者很懒,什么都没留下…
展开
-
linux的文本搜索
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行 find / -type f -name "*.log" | xargs grep "ERROR"但是,从/根目录开始搜的话,可能还是存在一些问题。比如读到/dev的时候就会报错,不执行了。那么可以把/根目录开始搜的范围缩小一点。比如,你认为包含“ERROR"的字符串可能出现在/etc下面的话,就用/etc来代替根目原创 2013-04-03 17:55:36 · 926 阅读 · 0 评论 -
设置用户ID的用处passwd
比如你的当前用户名是:zl你想改变你的password,可以用passwd命令来改变当前用户的密码。先看一下passwd可执行文件的属性:ls /usr/bin/passwd -l-rwsr-xr-x root而passwd命令直接修改的是/etc/passwd文件,此文件的属性:ls /etc/passwd -l-rw-r--r--说明,我们zl用原创 2013-04-15 14:57:40 · 999 阅读 · 0 评论 -
apue-alarm和pause函数,关于信号
题记:这里主要是用alarm和pause来实现sleep函数。会分析其中存在的bug,会很精辟。当然,大牛的恩赐啦~~不然我介些小生怎看到如此的经典呢?!1实现sleep1.1一个含有3个BUG的sleep的实现#include #include static void sig_alrm(int signo){}unsigned int slee原创 2013-04-16 14:58:13 · 1205 阅读 · 4 评论 -
apue-信号的恢复和继承
1,signal的恢复exec系列signal.c#include #include #include void handler(int s){ printf("hello\n");}int main(){ signal(SIGINT, handler); execl("./test", NULL); return 0;}编译:gcc原创 2013-04-16 13:24:48 · 914 阅读 · 0 评论 -
apue-setjmp,longjmp
编程模型:#include static jmp_buf jmpbuffer; //最好设置为全局变量main(){ if (setjmp(jmpbuffer) != 0) { ... } f1();}f1() { f2();}f2() { if () { longjmp(jmpbuffer, 1); //这里的1会返回到setjmp中 }}原创 2013-04-16 10:23:15 · 1009 阅读 · 0 评论 -
apue-局部变量的错误
#include #define DATAFILE "datafile"FILE *open_data(void){ FILE *fp; char databuf[BUFSIZ]; if ((fp = fopen(DATAFILE), "r")) == NULL) return NULL; if (setvbuf(fp, databuf, _IOLBF, BUFSI原创 2013-04-16 10:26:55 · 889 阅读 · 0 评论 -
apue-信号相关概念
1,genercation:信号产生2,delivery:信号递送3,pending:处于generation和delivery之间那段时间。处于阻塞阶段。通过sigpending来了解。4,signal mask:被屏蔽的信号。处于阻塞状态。通过sigprocmask来了解。原创 2013-04-16 14:07:40 · 929 阅读 · 0 评论 -
apue-手贱还是想谢谢信号未决pending
#include #include static void sig_quit(int);int main(void){ sigset_t newmask, oldmask, pendmask; if (signal(SIGQUIT, sig_quit) == SIG_ERR) printf("%m\n"), exit(-1); sigemptyset(&newmask);原创 2013-04-16 16:04:11 · 964 阅读 · 0 评论 -
千万级并发实现的秘密:内核不是解决方案,而是问题所在!
千万级并发实现的秘密:内核不是解决方案,而是问题所在!发表于2013-05-16 14:41| 11427次阅读| 来源HighScalability| 38 条评论| 作者Todd Hoff内核LinuxC10KErrata SecurityUnixApache摘要:C10K问题让我们意识到:当并发连接达到10K时,选择不同的解决方案,笔记本性能可能会超过转载 2013-05-18 21:36:33 · 1147 阅读 · 0 评论 -
dos2unix
find dic -type f | dos2unix实现:遍历嵌套原创 2013-05-21 15:08:22 · 1014 阅读 · 0 评论 -
apue有点激动的写下这个大神的东东,膜拜您啊!!
#include #include int glob = 6;char buf[] = "a write to stdout\n";int main(){ int var; pid_t pid; var = 88; if (write(STDOUT_FILENO, buf, sizeof(buf)-1) != sizeof(buf)-1) printf("%m\n原创 2013-04-16 11:02:12 · 978 阅读 · 0 评论 -
UNIX SOCKET编程简介
http://www.cnitblog.com/tarius.wu/articles/434.html1 . Layered Model of NetworkingSocket 编程的层次模型如下图所示, 最上面是应用层,应用层下面的是 SOCKET API 层,再下面是传输层和网络层…… 实际上, Sockets API 层并不是一个真正定义的网络层次,但却很好的描述了转载 2013-07-07 15:08:38 · 718 阅读 · 0 评论 -
apue文件的原子性操作
O_APPEND:防止程序在“定位文件尾,然后写的时候”出现问题。O_APPEND每次在写之前都会重新定位到文件尾。pread pwrite1,无法终端pread的定位和读操作2,不会更新文件指针O_CREAT,O_EXCL"判断如果文件不存在,然后在创建“原创 2013-04-15 12:34:41 · 848 阅读 · 0 评论 -
/dev/fd/ 的动态当前的理解
http://hi.baidu.com/kebey2004/item/d1d017c3a50c217489ad9ea4往对方的/proc/XXX/fd/0写入时,对方可以看到信息。环境:1,直接root用户登录虚拟机。2,telnet zl用户远程登录虚拟机。3,w命令看下现在有哪些用户登录root pts/0zl pts/14,telnet环境下去查看ls -l /dev/fd会发现下面原创 2013-01-02 16:11:26 · 1107 阅读 · 0 评论 -
apue进程那些事儿
1,进程的退出a,exit系列函数。exit相较于_Exit,_exit的区别是,会在进入内核前关闭所有打开的文件,这会造成数据被刷到磁盘上。b,atexit函数函数原型:int atexit(void (*func)(void));在进程结束的时候,会把注册的函数执行一遍。执行的顺序和注册的顺序相反的。2,进程的环境表原创 2013-04-15 16:10:46 · 740 阅读 · 0 评论 -
linux的启动脚本顺序--/etc/rc.d/init.d
这篇文章讲的很好~~我也是做了实验,大部分他讲的东西都验证过,是那么回事的。先抛砖引玉下:/etc/inittab的ID号=====> /etc/rc.d/rcXX.d/下的链接 ======>链接指向/etc/rc.d/init.d/下的脚本文件linux的启动脚本的顺序 另:本文如无特殊解释,init.d指的就是/etc/rc.d/init.d目录。转载转载 2013-04-03 17:51:42 · 3797 阅读 · 0 评论 -
管道实现交互
这几天在做测试,用脚本比较容易些。但是在此过程中遇到一些问题,也引发出对管道的重新思考。脚本需要实现的功能描述:1,循环上100次2,每次,都需要运行一个服务器上的程序(就叫J程序吧) 都需要输入密码问题:这里需要从脚本里往J里输入密码,这里我不会。我的问题集中在,怎么往标准输入中写入数据。好,我在脚本中这样写的:原创 2013-01-02 12:58:34 · 868 阅读 · 0 评论 -
怎么做rpm包
RPM包rpmbuild SPEC文件深度说明博客分类: · Linux脚本LinuxIBMRedHatHTML update log:2010.01.08 加入SPEC文件中的宏定义和变量2010.01.08 关键字说明,如何在升级过程中不覆盖配置文件 上一篇日志写到,为什么要制作rpm包,以及如转载 2013-04-11 12:40:00 · 984 阅读 · 0 评论 -
跟telnet,tftp等相关的一个xinetd守护进程的原理和配置等
抛砖引玉,以telnet为例:1,安装telnet服务器端和客户端都要安装yum install -y telnet-serveryum install -y telnet2,修改/etc/xinetd.d/telnet脚本的为:disable = no3,关闭防火墙service iptables stop4,重启xinetdservice xinetd转载 2013-04-03 18:03:09 · 1142 阅读 · 0 评论 -
手动查看和删除IPC未释放的资源
1,举一个造成IPC资源未释放的例子:eg:使用共享队列,在程序未主动释放共享队列资源的时候,ctrl+c;导致申请的共享队列资源未被操作系统回收。2,查看系统中没被释放的IPC资源ipcs -a:这个查看所有的IPC资源,包括共享内存,共享队列什么的3,释放IPC未释放的资源ipcrm -q 资源代号:-q是针对共享队列的。其余的东西可以参考man原创 2013-04-10 14:34:11 · 1941 阅读 · 0 评论 -
linux电源管理
一·acpid的实验:1) 我在机房的机器上的/etc/apci/events/power.conf中加了 actions=/bin/echo “111111111111” > /root/1.tmp2) Service acpid restart3) 我按了电源.呵呵,,,发现了/root/1.tmp 二· /etc/inittab中的ID原创 2013-04-11 12:46:32 · 888 阅读 · 0 评论 -
手贱,写写sem玩玩——semA
#include #include #include #include #include int semid;union semun { int val; struct semid_ds *buf; unsigned short *array; struct seminfo *__buf;};void handle(int s){ printf("ctrl +原创 2013-04-11 10:57:55 · 817 阅读 · 0 评论 -
自己动手做的一个rpm包(分享)
1, linux软件管理氛围:(ア) RPM打包方式 ① Yum工具是采用这种打包方式;② 操作系统:Redhat,Fedara,CentOS。(イ) DEBIAN打包方式① Apt-get工具是采用这种打包方式;② 操作系统:Ubantu 比较之后RPM打包比较容易,网络上参考的资原创 2013-04-11 12:43:09 · 1363 阅读 · 0 评论 -
linux查看文件按的精确的时间
Linux 下查看文件时,ls –l 缺省是不显示秒的:$ ls -ltotal 0-rw-r--r-- 1 gps gps 0 2012-06-12 16:21 README.txt-rw-r--r-- 1 gps gps 0 2012-06-12 16:21 test.txt要显示秒(实际更精确),可以用 –full-time 参数:$ ls --full-转载 2013-04-12 16:59:38 · 917 阅读 · 0 评论 -
apue程序清单3-1
这个程序虽小,小中见大嘛。主要是理解重定向符号和管道的概念。(八过,概念的理解是建立在代码的基础上)#include "apue.h"int main(void){ if (lseek(STDIN_FILENO, 0, SEEK_CUR) == -1) printf("cannot seek\n"); else printf("seek原创 2013-04-14 21:09:09 · 861 阅读 · 0 评论 -
apue文件环境
内核用三种数据结构描述一个打开的文件:1,进程表项a,文件描述符标志(close_on_exec)b,指向文件表的指针2,内核为打开的文件维持一张文件表a,文件状态标志(读,写,添写,同步和非阻塞等)b,当前文件偏移量c,指向v节点表的指针3,每个打开的文件都有一个v节点结构。包括了:a,文件所有者原创 2013-04-14 22:52:54 · 803 阅读 · 0 评论 -
从面向对象的设计模式看软件设计
http://coolshell.cn/articles/8961.html前些天发了一篇《如此理解面向对象编程》的文章,然后引起了大家的热议。然后我在微博上说了一句——“那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了……OO的设计模式思想和Unix的设计思想基本没什么差别”,结果引来了一点点争议。所以,我写下这篇文章把我的观点说明一下。我希望这样可以让大家更容易地转载 2013-07-02 19:07:52 · 1086 阅读 · 0 评论