UNIX系统接口
    
            
摘要:UNIX系统接口8.1 文件描述符UNIX操作系统中,所有的外围设备(包括键盘和显示器)都被看作是文件系统中的文件。系统通过文件描述符来标识文件:标准输入为0,标准输出为1,标准错误为2。当程序的输入/输出被重定向时,shell把文件描述符0和1的默认赋值改变为指定的文件。8.2 低级I/o——read和writeread和write是UNIX的两个系统调用,这两个函数中,第一个参数是文件描述符,第二个参数是程序中存放读或写的数据的字符数组,第三个参数是要传输的字节数。int read(int fd,char *buf,int n);int write(int fd,char *buf,int
        
阅读全文
摘要:由浅入深shell脚本训练最近一直在学习Shell,以前一直觉得Shell语法很难,不好学,现在总算有一些收获了。其实Shell脚本就是一堆linux命令的集合,把脚本里每一步的命令搞懂是什么意思,然后整个脚本的意思就搞出来了;同样要通过脚本完成一项工作,就把这项工作分解成若干的小命令,然后把小命令集合起来就可以了。至于什么awk、sed、正则,都要靠自己平常的积累。①查询一个服务某天的请求次数:12catrenren-1.log|grep"MSG without parse">tempawk'{a[$1]++}END{for(i in a)print i,a
        
阅读全文
摘要:零基础学习Linux(一)环境搭建从本文开始我会为大家介绍一下linux环境下详细的集群环境安装、配置、部署到实例演示的整个过程。在此过程中会给大家详细介绍一下Linux的操作技巧和一些工具的使用。今天开始第一步——环境搭建。第一步:安装 虚拟机 内容比较简单,不详细介绍了,如果需要可参考文章末尾提供的文档下载链接第二步:安装 Linux1、准备文件下载rhel-server-5.5-i386-dvd.iso2、安装Linux虚拟环境a)运行VM 进入VM工作环境,如下图所示b)在工作空间左侧右键选择新建虚拟机【New Virtual Machine…】c)根据需要可以选择默认【typica.
        
阅读全文
摘要:5个Unix命令原文:http://spin.atomicobject.com/2013/09/09/5-unix-commands/希望早几年知道的5个Unix命令使用*nix系统已经有一段时间了。但是还是有一些命令是被我一直忽略的,现在我希望我能早几年发现这些命令。1 man ascii这个命令会打印出八进制,十六进制和十进制的ascii码表。难以置信我是一个月之前才知道这个命令的。我总是使用google来查询ascii码表。这个命令其实更方便要查看更多信息,请参考 ascii man page(http://linuxcommand.org/man_pages/ascii7.html )
        
阅读全文
摘要:Linux目录树详细说明目录树的主要部分有root(/)、/USR、/var、/home等等。下面是一个典型的linux目录结构如下:/ 根目录/bin 存放必要的命令/boot 存放内核以及启动所需的文件等/dev存放设备文件/etc 存放系统的配置文件/home 用户文件的主目录,用户数据存放在其主目录中/lib 存放必要的运行库/mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。/proc 存放存储进程和系统信息/root 超级用户的主目录/sbin 存放系统管理程序/tmp 存放临时文件的目录/usr 包含了一般不需要修改的应用程序,命令程
        
阅读全文
摘要:Linux系统VNC配置实践总结VNC概述 VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。VNC 是在基于UNIX和Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和Windows或MAC中的任何远程控制软件媲美。在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下只需要其中的两个命令:vncserver 和 vncviewer。目前,原来的AT&
        
阅读全文
摘要:SOCKET网络编程快速上手(二)——细节问题(1)三、细节问题一个也不能少 Socket编程说简单也简单,程序很容易就能跑起来,说麻烦还真是麻烦,程序动不动就出问题。记得刚开始写网络代码的时候,那真是令人抓狂的经历,问题一个套一个,一会服务器起不来了,一会数据接收异常了,到最后自己都对那些系统调用都不放心了,怎么会要考虑那么多东西?起初,我是一万个怀疑,是不是自己人品出问题了,怎么别人没遇到,全给自己赶上了。后来,拿着《UNIX网络编程》随便看看,那书怎么会这么了解我的?细节!细节!细节!那些问题都被别人明明写出来了,自己又SX了。没办法,细节不注意,有苦说不出啊。 不过也不能怪自己不爱学习
        
阅读全文
摘要:Linux内核知识版本linus树Linux内核最初创始人--Linus Torvalds管理一个Linus树,linus树也称为主线(mainline)。一般指的upstream,“上游”,也指这个linus树或者各种开发树。linus树是以2.6.x这样的三个数字来表示。比如Linux 2.6.18-164.el5xen 的linus树中的内核版本就是2.6.18stable树这个是针对某个具体的内核版本进行bug修复,使其更加稳定的树。这个树的版本号是在linus树的版本号后加一个数字。比如Linux 2.6.18-164.el5xen 的linus树中的内核版本就是2.6.18,sta
        
阅读全文
摘要:Linux系统下用C语言获取MAC地址最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下。如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址的函数再调用,可以采用方法二,见代码2。代码1:#include #include #include #include #include #include int main(int argc, char *argv[]){ struct ifreq ifreq; int sock; if(argc!=2) ...
        
阅读全文
摘要:Linux环境fork()函数详解引言先来看一段代码吧, 1 #include 2 #include 3 #include 4 #include 5 6 int main(int argc, char **argv) 7 { 8 pid_t pid = fork(); 9 if(pid 0);调用一次返回两次;复制父进程地址空间内容(非地址)给子进程;子进程拥有独立的地址空间;无法确定执行顺序;三、为何fork函数会返回两次 先来看一个图: 由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因此fork函数会返回两次,一次是在父进...
        
阅读全文
摘要:CentOS中安装MySQL数据库1、首先下载MySQL的安装文件,我这里安装的是MySQL5.1.7版本的, 下载链接:http://pan.baidu.com/share/link?shareid=255483056&uk=924063144 http://pan.baidu.com/share/link?shareid=269901909&uk=9240631442、安装MySQL数据库服务器 进入安装包所在文件夹,执行命令 rpm -ivh MySQL-server-5.1.7-0.i386.rpm 安装MySQL服务器。 如果报了与原先版本冲突的话,就执行rpm -q
        
阅读全文
摘要:在ubuntu上安装nodejs[开启实时web时代]作为一名菜鸟,竟然在centos桌面上连输入命令行的地方都找不到,是在是对不起开山祖师,最后苍天不负苦心人,在ubuntu上找见了【安装过程参考了http://cnodejs.org/topic/4f16442ccae1f4aa270010b5,】NODEJS的特点:Node.js的使用事件驱动,非阻塞I / O模型,使得它重量轻,高效,完美的数据密集型实时应用程序运行在分布式设备,在实时web应用上有很强的竞争力第一步:安装依赖包1. 安装python 2.6版或者更高(ubuntu默认都已安装,可以在terminal中使用 pyhton
        
阅读全文
摘要:Linux 下的多线程编程随着你对编程的深入,多线程是一个免不了的话题,在这里就对多线程做一个比较详细的总结。 首先摆在我们面前的就是什么是线程,以及为么会有这个东西。记得之前学习的时候自己会画一张很大的图,在图中可以详细的写出线程为什么会出现?他是为了解决什么问题才出现的?线程的出项肯定是针对进程的,那就看看它针对进程的那些特性进行了改进吧: 1. 通过每种任务的类型,将各种任务分配给单独的线程,每个线程在处理任务的时候可以采用同步编程的方式 2. 所有的线程都可以访问同一进程内的全局变量/文件描述符/heap memory等,这比多进程中的共享memory等方便很多 3. 线程间的...
        
阅读全文
摘要:在树莓派Raspbian下安装支持Hard Float的.NET环境【题外话】最近入了个树莓派玩,系统装的官方推荐的Hard Float的Raspbian,由于衍生自Debian,所以Mono什么的非常好装。但是官方源中的Mono在Hard Float的Raspbian下是没法完整支持.NET程序的,比如没法在LXDE上运行Winform,但是装Soft Float的话又感觉很亏,所以我们要在Hard Float的Raspbian下装支持Hard Float的.NET环境。【文章索引】安装支持Hard Float的Mono安装Gtk#安装xsp安装mod_mono【一、安装支持Hard Flo
        
阅读全文
摘要:如何安装ArchLinux本文基于ArchLinux(https://www.archlinux.org/)Current Release: 2013.08.01的ISO写的安装教程!ISO下载地址:http://mirrors.163.com/archlinux/iso/2013.08.01/archlinux-2013.08.01-dual.iso1、分区cfdisk·新手可以不用分区,如果需要分多个区,建议一个 / 一个/home,如果内存大,不需要swap分区。使用cfdisk分区比较直观。·注意【Bootable】,/ 分区一定要Bootable,如果你单独划分了
        
阅读全文
摘要:Nagios学习实践系列——产品介绍篇2013-08-21 23:24 by 潇湘隐者,32阅读,0评论,收藏,编辑Nagios介绍 Nagios是一款功能强大、优秀的开源监控系统,它能够让你发现和解决IT架构中存在的问题,避免这些问题影响到关键业务流程。 Nagios最早于1999年发布,它在开源社区的影响力是相当大的。目前全球Nagios的社区已经开发了数以千计的项目。Nagios的官方赞助是通过Nagios企业,它通过许多不同方式销售其商业产品和服务来支持这个社区。 Nagios可以监控您的整个IT基础设施,以确保系统,应用程序,服务和业务流程的正常运行。它能有效监控Windows、Li
        
阅读全文
摘要:简单的HTTP过滤模块一、Nginx的HTTP过滤模块特征 一个请求可以被任意个HTTP模块处理; 在普通HTTP模块处理请求完毕并调用ngx_http_send_header()发送HTTP头部或调用ngx_http_output_filter()发送HTTP包体时,才会由这两个方法一次调用所有的HTTP过滤模块来处理这个请求。HTTP过滤模块仅处理服务器发送到客户端的响应,而不处理客户端发往服务器的HTTP请求。 多个过滤模块的顺序的形成以及Nginx自带的过滤模块请参考原书。二、编写一个HTTP过滤模块 以向返回给用户的文本格式响应包体前加一段字符串"[my filter pr
        
阅读全文
摘要:孤儿进程与僵尸进程[总结]1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调..
        
阅读全文
摘要:本文是对陶辉《深入理解Nginx》第5章内容的梳理以及实现,代码和注释基本出自此书。一、upstream:以向nginx服务器的请求转化为向google服务器的搜索请求为例(一)模块框架 首先要明确的是,这里是编写一个使用upstream的模块,而不是编写upstream模块。因此,和HelloWorld类似,模块结构体ngx_http_mytest_module、模块上下文结构体ngx_http_mytest_module_ctx、数组ngx_http_mytest_command[]、方法ngx_http_mytest()和ngx_http_mytest_handler()的框架是不可..
        
阅读全文
摘要:Ubuntu环境搭建系列—JavaEE篇恩,其实我是一时兴起,所以就写了目前这几篇环境的博文,希望能给自己做一个笔记,同时也能够给一些新手带来一些帮助,不会在配置方面那么迷茫。本篇文章主要就是针对Java web开发进行环境搭建。一、Tomcat的下载安装1下载地址:http://tomcat.apache.org/download-70.cgi2.选择zip版本或者tar.gz版本的压缩包并且下载 1)如果下载的是zip压缩包,直接使用unzipapache-tomcat-7.0.42.zip进行解压 2)如果下载的是.tar.gz压缩包,直接使用tar -zxvf apache-tomca
        
阅读全文