
linux/unix/shell
文章平均质量分 74
adcxf
c/c , linux ,后端开发
展开
-
pear和pecl
PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR就是PHP的CPAN。PECL (PHP Extension Community Library),PHP的扩展库,它提供了一系列已知的扩展库,由C++等其他语言编写而成,以.so形式出现,.so 为共享库转载 2012-01-15 22:37:16 · 4266 阅读 · 0 评论 -
源码安装软件及PKG_CONFIG_PATH设置
怎么源码安装 PKG_CONFIG_PATH设置 如何从源码包安装软件?从源码包安装软件最重要的就是仔细阅读README INSTALL等说明文件它会告诉你怎样才能成功安装通常从源码包安装软件的步骤是:tar jxvf gtk+-2.4.13.tar.bz2 解开源码包cd gtk+-2.4.13/ 进入源码目录./configure 似乎在某些环境下./configure转载 2009-03-16 08:04:00 · 2144 阅读 · 0 评论 -
mmap共享内存
共 享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空 间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易 见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像转载 2009-03-14 11:47:00 · 1862 阅读 · 1 评论 -
rsync使用指南
考虑到服务器数据的安全,我考虑增加一台备份服务器,通过数据同步,达到较好的冗余。 linux下有非常好的一个命令rsync可以实现差异备份,下面就说说它的用法:ubuntu缺省安装的安装中,rsync服务是没有开启的。需要做3步:1、修改/etc/default/rsync,让rsync服务在开机的时候启动。$ sudo vi /etc/default/rsync 将RSYNC_ENA转载 2009-03-10 08:31:00 · 12029 阅读 · 2 评论 -
gettimeofday函数
gettimeofday(取得目前的时间)相关函数time,ctime,ftime,settimeofday表头文件#include #include 定义函数int gettimeofday ( struct timeval * tv , struct timezone * tz )函数说明转载 2009-03-03 19:00:00 · 9374 阅读 · 2 评论 -
su和sudo的区别与使用
一. 使用 su 命令临时切换用户身份1、su 的适用条件和威力su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来转载 2009-02-28 08:46:00 · 848 阅读 · 0 评论 -
linux configure参数
Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不 离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。configure脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不转载 2009-02-28 10:01:00 · 4845 阅读 · 0 评论 -
NPTL, NGPT
NPTL在Linux操作系统中,本地POSIX线程库(NPTL)是一种软件特性,它可让Linux的内核 ,高效地运行那些使用POSIX风格的线程所编写的程序。 测试中,NPTL在一个IA-32处理器上,成功地同时跑了10万个线程,启动这些线程只用了不到2秒。比较起来,在不支持NPTL的内核上,这个测试花费了大约15分钟。 以前(也就是在2.6内核以前),Linux把进程当作其调度实体 ,内原创 2009-02-26 23:09:00 · 5971 阅读 · 1 评论 -
reentrant,thread-safe 和 async-signal-safe
先上定义吧,POSIX对它们的定义分别是:Reentrant FunctionA function whose effect, when called by two or more threads, is guaranteed to be as if the threads each executed the function one after another in an undef转载 2009-02-09 18:53:00 · 1175 阅读 · 0 评论 -
Linux 内存管理 -- 线性空间与物理内存
上图反映了如下信息:1、 进程的4G 线性空间被划分成三个部分:进程空间(0-3G)、内核直接映射空间(3G – high_memory)、内核动态映射空间(VMALLOC_START - VMALLOC_END)2、 三个空间使用同一张页目录表,通过 CR3 可找到此页目录表。但不同的空间在页目录表中页对应不同的项,因此互相不冲突3、 内核初始化以后,根据实际物理内存的大小,转载 2008-10-05 10:01:00 · 1853 阅读 · 0 评论 -
微内核,单内核和linux
Linux大部分都是单内核的 操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下: l 微内核(Microkernel kernel)――在微内核中,大部分内核都作为单独的进程在特权状态下运行,他们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,假如在设计中有一个系统调用模块,那么就必然有一个相应的进程来转载 2008-09-30 11:29:00 · 4531 阅读 · 0 评论 -
expr命令用法-实例讲解
expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。–格式为:expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)–参数应用规则:用空格隔开每个项;用 / (反斜杠) 放在 shell 特定的字符前面;对包含空格和其他特殊字符的字符串要用引号括起来–expr用法实例讲解:(1)、转载 2008-09-30 09:25:00 · 15653 阅读 · 0 评论 -
LANG,LC_ALL,local详解
locale 是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面:看中文,写中文,与 window中文系统的兼容和通信。从实际经验上看来,locale的设定与看中文关系不大,但是与写中文,及window分区的挂载方式有很密切的关系。本人认为就像一个纯英文的Windows能够浏览中文,日文或者意大利文网页一样,你不需要设定loca转载 2008-09-21 19:08:00 · 808 阅读 · 1 评论 -
linux字符界面下的乱码问题---改成英文显示
安装中文Redhat后,字符界面下,运行setup,vi等命令,显示乱码,搜索网络后解决方法如下:1.暂时性解决#exportLC_ALL=POSIX再启动setup后,解决,但是reboot后,还是还是显示乱码2。永久性解决编辑/etc/sysconfig/目录下的i18n文件,将LC_ALL=POSIX写入,保存文件如果你在i18n文件中加入LC_ALL=POSIX,那么系统的LC_XXX就都转载 2008-09-21 17:41:00 · 2517 阅读 · 0 评论 -
ulimit用法
1,说明:ulimit用于shell启动进程所占用的资源.2,类别:shell内建命令3,语法格式:ulimit [-acdfHlmnpsStvw] [size]4,参数介绍:-H 设置硬件资源限制.-S 设置软件资源限制.-a 显示当前所有的资源限制.-c size:设置core文件的最大值.单位:blocks-d size:设置数据段的最大值.单位:kbytes-f size:设置创建文件的最转载 2009-03-20 08:26:00 · 5112 阅读 · 0 评论 -
/etc/init.d/functions
/etc/init.d/functions functions这个脚本是给/etc/init.d里边的文件使用的。提供了一些基础的功能,看看里边究竟有些什么。首先会设置umask,path,还有语言环境,然后会设置success,failure,warning,normal几种情况下的字体颜色。下面再看看提供的重要方法:checkpid:检查是否已存在pid,如果有一个存在,返回0(通转载 2009-03-22 08:56:00 · 4390 阅读 · 0 评论 -
linux mincore 函数
MINCORE(2) Linux Programmers Manual MINCORE(2)NAME top mincore - determine whether pages are resident in memorySYNOPSIS top转载 2009-03-22 09:07:00 · 3583 阅读 · 0 评论 -
ssh 免密码登陆
ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。1.在A机下生成公钥/私钥对。转载 2011-08-10 09:06:20 · 2459 阅读 · 0 评论 -
开源许可证~
<br />如何为代码选择开源许可证,这是一个问题。<br />世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,也很复杂。<br />乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。<br />下面是我制作的中文版,请点击看大图。<br /><br />(完)<br />转载 2011-05-03 13:10:00 · 2384 阅读 · 0 评论 -
linux判断文件是否存在
<br />对于判断文件是否存在,每个人有不同的方法!我通常采用两种方法 : open 和 access ;<br /><br />这个俩个方法有相似之处,且有不同之处;下面为大家详细说明他们的不同之处:<br /><br />open 是打开,读写等操作文件的一个函数,access就是一个判断文件权限的函数。在linux下,由于文件有不同的权限,当当前用户没有对此文件的读权限的时候,用来判断文件是否存在,显然不合适。而access却可以做到。<br /><br />open 的第一个参数是文件路径,第二个转载 2011-05-03 12:48:00 · 6778 阅读 · 0 评论 -
linux c++动态链接库so编写
<br />Linux下的动态链接库是.so文件,即:Shared Object,下面是一个简单的例子说明如何写.so以及程序如何动态载入.so中的函数和对象。<br />testso.h:#ifndef _TESTSO_H#define _TESTSO_Hextern "C" { int myadd(int a, int b); typedef int myadd_t(int, int); // myadd function type}#endif // _TESTSO转载 2011-04-11 17:07:00 · 12053 阅读 · 1 评论 -
linux定时器setitimer
<br />setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个function,以下程序demo如何使用setitimer()。 <br /> <br />view plaincopy to clipboardprint?<br />01./* <br />02. <br />03. <br />04. <br />05.Filename : time转载 2011-04-08 10:21:00 · 772 阅读 · 0 评论 -
eventfd 进程间通知机制
<br />eventfd 在内核版本,2.6.22以后有效。查看内核版本可以用命令 uname -r 。<br /><br />1 #include <sys/eventfd.h><br />int eventfd(unsigned int initval, int flags);<br />这个函数会创建一个 事件对象 (eventfd object), 用来实现,进程(线程)间 的 等待/通知(wait/notify) 机制. 内核会为这个对象维护一个64位的计数器(uint64_t)。<转载 2011-05-23 23:18:00 · 4038 阅读 · 0 评论 -
系统性能监控常用命令
<br />系统监控<br />系统监控需要安装psacct,sysstat,SysVinit三个rpm软件安装包<br />一.<br />显示系统内核消息<br />uname -srvmo<br />显示系统运行时间和平均负载<br />uptime<br />显示系统进程列表<br />ps aux<br />显示系统物理内存和交换区的使用<br />free<br />显示系统的磁盘空间用量<br />df -h<br />显示磁盘分区<br />fdisk -l<br />显示系统PCI信息,也转载 2011-05-25 13:00:00 · 3373 阅读 · 0 评论 -
Memcached内存分配
<br />Memcached是一个高效的分布式内存cache,了解memcached的内存管理机制,便于我们理解memcached,让我们可以针对我们数据特点进行调优,让其更好的为我所用。这里简单谈一下我对memcached的内存管理的一些认识,在没有特别注明的情况下,这里谈到的memcached是1.2版本,1.1和1.2版本有一些差异。基本概念:Slab和chunk在Memcached内存结构中有两个非常重要的概念:slab 和 chunk,我们先从下图中对这两个概念有一个感性的认识:图 1 memc转载 2011-05-22 11:25:00 · 2723 阅读 · 0 评论 -
ulimit 参数
<br />表 1. ulimit 参数说明选项 [options]含义例子-H 设置硬资源限制,一旦设置不能增加。ulimit – Hs 64;限制硬资源,线程栈大小为 64K。-S 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。ulimit – Sn 32;限制软资源,32 个文件描述符。-a 显示当前所有的 limit 信息。ulimit – a;显示当前所有的 limit 信息。-c 最大的 core 文件的大小, 以 blocks 为单位。ulimit – c unlimited; 对生转载 2011-04-02 16:08:00 · 721 阅读 · 0 评论 -
C++ dlopen mini HOWTO
C++ dlopen mini HOWTO<br />作者:Aaron Isotton <aaron@isotton.com> 2006-03-16<br />译者:Lolita@linuxsir.org 2006-08-05<br />------------------------------------------------<br />摘要<br /> 如何使用dlopen API动态地加载C++函数和类<br />-----------------------------------------转载 2011-04-01 19:48:00 · 633 阅读 · 0 评论 -
进程可打开的最大句柄数
一个进程能够打开最大文件句柄(Linux)<br />在Linux下,我们使用ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 <br /> 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有 点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少转载 2011-05-18 22:41:00 · 6542 阅读 · 1 评论 -
关于SIGPIPE导致的程序退出
关于SIGPIPE导致的程序退出<br />收集一些网上的资料,以便参考:<br /><br />http://blog.chinaunix.net/u2/69143/showart_1087349.html<br /><br />当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。<br />根据信号的默认处理规则SIGPIPE信号的默认执转载 2011-03-21 19:06:00 · 682 阅读 · 0 评论 -
gdb多进程调试
<br />使用GDB最好的文档就是其名为'Debugging with GDB'的参考手册。手册中有一小章节提到了如何调试多进程程序。一般情况下,如果被gdb调试的程序中调用fork派生出一个新的子进程,这时gdb调试的仍然还是父进程,其子进程的执行不被理会。如果之前你在子进程的执行routine上设置了断点,那么当子进程执行到那个断点时,子进程会因为收到一个SIGTRAP信号而自行终止,除非你在子进程中拦截了该信号。<br />那么使用GDB该如何调试多进程程序呢?在其参考手册中提供了一种通用方法,这里转载 2011-03-17 11:33:00 · 725 阅读 · 0 评论 -
hadoop配置注意事项
1访问要通过 hosts或nameServer来访问,不能再配置文件中直接设置IP2.每次重新格式化后一定要删除hadoop_tmp目录下的所有文件3.多使用JPS查看状态,还有http的接口4.在每台机器上设置hostName原创 2011-03-16 22:50:00 · 517 阅读 · 0 评论 -
linux根文件系统与initrd
1 根文件系统简单来说,(根文件系统)就是系统第一个mount的文件系统 Filesystem Handling Like every traditional Unix system, Linux makes use of a system s root filesystem : it is the filesystem t原创 2008-09-20 11:13:00 · 4049 阅读 · 1 评论 -
linux设备模型详解
Linux 2.6内核的一个重要特色是提供了统一的内核设备模型。随着技术的不断进步,系统的拓扑结构越来越复杂,对智能电源管理、热插拔以及plug and play的支持要求也越来越高,2.4内核已经难以满足这些需求。为适应这种形势的需要,2.6内核开发了全新的设备模型。1. Sysfs文件系统Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模转载 2008-09-13 18:23:00 · 1039 阅读 · 0 评论 -
Core Dump?!
Core Dump?! 整理:Wilbur Lang何谓 core? 在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明 者为王安),线圈就叫作 core ,用线圈做的内存就叫作 core memory。如今 ,半导体工业澎勃发展,已经没有人用 core memory 了,不过,在许多情况下, 人们还是把记忆体叫作 core 。 何谓 core dump?转载 2008-07-22 21:49:00 · 553 阅读 · 0 评论 -
C/C++ 两大GUI库Qt & GTK比较
C/C++ 两大GUI库Qt & GTK比较一: Qt: Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境K原创 2008-07-17 22:25:00 · 2695 阅读 · 0 评论 -
内核级程序开发的特点
相对于用户空间内应用程序的开发,内核开发有很大的不同。这种差异给开发内核带来了了挑战,但这并不意味着开发内核就比开发应用程序难多少。这种差异使内核成了一只性格迥异的猛兽。一些常用的准则被颠覆了,而又必须建立许多全新的准则。尽管有许多差异一目了然(人人都知道内核可以做它想做的任何事),但还是有一些差异晦暗不明。最重要的差异包括以下几种:* 内核编程时不能访问C库。* 内核编程时必须使用G原创 2008-07-04 21:36:00 · 829 阅读 · 0 评论 -
深入分析 Linux 内核链表
本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和转载 2008-04-26 09:26:00 · 541 阅读 · 0 评论 -
.vimrc配置文件
在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~/.vimrc转载 2008-04-22 20:31:00 · 964 阅读 · 0 评论 -
setuid和setgid
5、setuid和setgid 位;本部份内容做为了解,看看就行了;5.1 setuid和setgid的解说 ;setuid 和setgid位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。比如我们用普通用户运行passwd命令来更改自己的口令,实际上最终更改的是/etc/passwd文件。我们知道/etc/passwd文件是用户管理的配置文件,只有roo转载 2008-04-20 08:31:00 · 2141 阅读 · 1 评论 -
硬链接和软链接
首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(S转载 2008-04-20 08:24:00 · 738 阅读 · 0 评论