随笔 - 895  文章 - 0  评论 - 155 
随笔分类 - Linux
linux下IPTABLES配置详解(转)
摘要: 如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source ...阅读全文
posted @ 2016-01-05 10:04 一个人的天空@ 阅读(249) | 评论 (0) 编辑
Linux Buffers和Cached的区别(转)
摘要: 在linux下使用free命令查看内存使用情况,有buffers和cached两项,以下是它们的区别: buffers是为块设备设计的缓冲。比如磁盘读写,把分散的写操作集中进行,减少磁盘I/O,从而提高系统性能。比如入U盘里cp一个文件,但是U盘读写指示灯未闪动,过了一会儿才闪动。卸载时会清空缓冲,...阅读全文
posted @ 2015-12-30 10:58 一个人的天空@ 阅读(198) | 评论 (0) 编辑
linux 下查找大于100M的文件(转)
摘要: 命令行如下find . -type f -size +1000000kLinux系统下查找大文件或目录的技巧当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢? #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小 du...阅读全文
posted @ 2015-12-24 10:19 一个人的天空@ 阅读(6828) | 评论 (0) 编辑
php-fpm.conf 重要参数 max_children 和 request_terminate_timeout(转)
摘要: php-fpm.conf有两个至关重要的参数:一个是”max_children”,另一个是”request_terminate_timeout”我的两个设置的值一个是”40″,一个是”900″,但是这个值不是通用的,而是需要自己计算的。计算的方式如下:如果你的服务器性能足够好,且宽带资源足够充足,P...阅读全文
posted @ 2015-11-27 16:02 一个人的天空@ 阅读(2893) | 评论 (0) 编辑
查看LINUX进程内存占用情况(转)
摘要: 可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用t...阅读全文
posted @ 2015-11-27 14:46 一个人的天空@ 阅读(4271) | 评论 (0) 编辑
Linux/Unix 怎样找出并删除某一时间点的文件(转)
摘要: 在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢?Linux/Unix提供了...阅读全文
posted @ 2015-09-01 10:40 一个人的天空@ 阅读(605) | 评论 (0) 编辑
linux中touch命令参数修改文件的时间戳(转)
摘要: linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件,以下是linux中touch命令参数的使用方法:touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)example:touc...阅读全文
posted @ 2015-09-01 10:11 一个人的天空@ 阅读(1214) | 评论 (0) 编辑
linux之cp/scp命令+scp命令详解(转)
摘要: 名称:cp使用权限:所有使用者使用方式:cp [options] source destcp [options] source... directory说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。把计-a 尽可能将档案状态、权限等资料都照原状予以复制。-r 若 source 中含有目...阅读全文
posted @ 2015-09-01 10:07 一个人的天空@ 阅读(340) | 评论 (0) 编辑
我使用过的Linux命令之date - 显示、修改系统日期时间(转)
摘要: 用途说明ate命令可以用来显示和修改系统日期时间,注意不是time命令。常用参数格式:date显示当前日期时间。格式:date mmddHHMM格式:date mmddHHMMYYYY格式:date mmddHHMM.SS格式:date mmddHHMMYYYY.SS设置当前日期时间,只有root用...阅读全文
posted @ 2015-07-06 13:39 一个人的天空@ 阅读(3256) | 评论 (0) 编辑
Linux下如何查看系统启动时间和运行时间(转)
摘要: 1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.002.查看/proc/uptime文件计算系统启动时间cat /proc/uptime输出: 5113396.94 575949.85第一数字即...阅读全文
posted @ 2015-07-06 11:49 一个人的天空@ 阅读(102) | 评论 (0) 编辑
nginx后的tomcat获取真实用户ip
摘要: 目前大部分获取ip的方式:beat.getRequest().getRemoteAddr()但是,如果通过nginx反向代理的话,就获取不到真实ip,是获取的nginx的ip需要:添加 proxy_set_headerX-Real-IP$remote_addr;[html]view plainco...阅读全文
posted @ 2015-03-27 15:09 一个人的天空@ 阅读(184) | 评论 (0) 编辑
Sed&awk笔记之sed篇(转)
摘要: Sed是什么《sed and awk》一书中(1.2 A Stream Editor)是这样解释的:Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprog...阅读全文
posted @ 2015-02-12 18:21 一个人的天空@ 阅读(266) | 评论 (0) 编辑
Sed&awk笔记之awk篇(转)
摘要: Awk是什么Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。sed是一种非交互式且面向字符流的编辑器(a "non-interactive" strea...阅读全文
posted @ 2015-02-12 11:46 一个人的天空@ 阅读(7798) | 评论 (0) 编辑
PHP上传文件大小限制的问题(转)
摘要: 在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:1、php.ini:upload_max_filesize所上传的文件的最大大小。默认值2M。2、php.ini:memory_limit本指令设定了一个脚本所能够申请到的最大内存字节...阅读全文
posted @ 2014-11-28 09:50 一个人的天空@ 阅读(113) | 评论 (0) 编辑
CENTOS下搭建SVN服务器(转)
摘要: 1.安装svnyum install -y subversion2.验证安装是否成功svnserve --version3.创建svn版本库mkdir svnsvnadmin create svn/repo注:repo是版本库名称4.配置svn创建版本库后,在这个版本库的conf目录下会生成3个配置...阅读全文
posted @ 2014-11-05 23:24 一个人的天空@ 阅读(124) | 评论 (0) 编辑
【原创】Nginx+PHP-FPM优化技巧总结(转)
摘要: php-fpm的安装很简单,参见PHP(PHP-FPM)手动编译安装。下面主要讨论下如何提高Nginx+Php-fpm的性能。1.Unix域Socket通信之前简单介绍过Unix Domain Socket这种通信方式,参见:Nginx+PHP-FPM的域Socket配置方法Unix域Socket因...阅读全文
posted @ 2014-10-19 10:34 一个人的天空@ 阅读(5769) | 评论 (0) 编辑
【汇总】PHP-FPM 配置优化(转)
摘要: -----------------------开启php-fpm慢脚本日志request_slowlog_timeout = 30sslowlog = /usr/local/php/var/log/php-fpm.log.slow典型的日志内容如下:[15-Apr-2012 20:56:19] [p...阅读全文
posted @ 2014-10-19 10:33 一个人的天空@ 阅读(125) | 评论 (0) 编辑
nginx File not found 错误(转)
摘要: 当我没初始配在lnmp的时候,用浏览器打开查看php能否解析网页的时出现File not found 不用惊奇让我我们分析一下 使用php-fpm解析PHP,"No input file specified","File not found"是令nginx新手头疼的常见错误,原因是php-fpm进程...阅读全文
posted @ 2014-10-19 10:01 一个人的天空@ 阅读(13935) | 评论 (0) 编辑
nginx php-fpm安装配置(转)
摘要: nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx本文以php-fpm为例介绍如何使nginx支持PHP...阅读全文
posted @ 2014-10-19 10:00 一个人的天空@ 阅读(95) | 评论 (0) 编辑
玩转ptrace(转)
摘要: 下面是转帖的内容,写的很详细。但是不同的linux发行版中头文件的路径和名称并不相同。如在某些发行版中就不存在,其中定义的变量出现在和中。=================================================================================...阅读全文
posted @ 2014-10-08 18:11 一个人的天空@ 阅读(361) | 评论 (0) 编辑
Ubuntu进不入系统,一直停留在ubuntu图标画面(转)
摘要: 在VMware中对Ubuntu进行“关闭电源”后,再次进入,一直停留在ubuntu的图标画面,无法进入系统了!网上也有别的网友碰到这个问题:http://forum.ubuntu.org.cn/viewtopic.php?p=1985549启动界面:ESC for Boot Menu:Enter S...阅读全文
posted @ 2014-09-16 11:43 一个人的天空@ 阅读(8369) | 评论 (0) 编辑
Ubuntu Java7 SDK环境变量配置(转)
摘要: 1.去甲骨文官网下载java7 sdkhttp://www.oracle.com/technetwork/java/javase/downloads/index.html这里笔者下载了最新的java1.7.0_072.解压解压下载下来的jdk-7u7-linux-i586.tar.gz,放入 /us...阅读全文
posted @ 2014-09-12 18:33 一个人的天空@ 阅读(1078) | 评论 (0) 编辑
centos配置虚拟主机virtualhost,让服务器支持多网站多域名(转)
摘要: 如何让centos(redhat)配置虚拟主机,让服务器支持多个网站,针对Apache,只需要你修改apache配置文件/etc/httpd/conf/httpd.conf即可。里面有个example文件,你只要对应配置即可。## ServerAdmin webmaster@dummy-host.example.com# DocumentRoot /www/docs/dummy-host.example.com# ServerName dummy-host.example.com# ErrorLog logs/dummy-host.example.com-error_log# Cus...阅读全文
posted @ 2014-04-09 23:42 一个人的天空@ 阅读(7675) | 评论 (0) 编辑
mysql Access denied for user root@localhost错误解决方法总结(转)
摘要: mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下。错误代码 1045Access denied for user 'root'@'localhost' (using password:YES)解决办法是重新设置root用户密码,在Windows平台下操作步骤如下:1、以系统管理员身份登录到系统;2、如果MySQL服务器正在运行,停止它。 如果是作为Windows服务运行的服务器,进入阅读全文
posted @ 2014-04-02 23:59 一个人的天空@ 阅读(379667) | 评论 (1) 编辑
mysql的性能监控指标(转载)
摘要: 这里列出了一些如何监视你安装的mysql性能的一些ideas。监视总是一个持续的过程。你需要知道哪种模式对你的数据库是好的,什么是问题的表象,甚至是危险的情况。一下列出了用来去监视你的系统的主要参数:- mysqladmin extended (绝对值)- mysqladmin extended -i10 -r (相对值)- mysqladmin processlist- mysql -e "show innodb status"- OS data. vmstat/iostat- MySQL error log- InnoDB tablespace info.1) mysq阅读全文
posted @ 2014-04-01 23:01 一个人的天空@ 阅读(747) | 评论 (0) 编辑
mysql的show status详解(转载)
摘要: SHOW STATUS提供服务器的状态信息(象mysqladmin extended-status一样)。输出类似于下面的显示,尽管格式和数字可以有点不同:+--------------------------+--------+| Variable_name | Value |+--------------------------+--------+| Aborted_clients | 0 || Aborted_connects | 0 || Connections | 17 || Created_tmp_tables | 0 || Delayed_insert_threads | 0 |阅读全文
posted @ 2014-04-01 22:49 一个人的天空@ 阅读(209) | 评论 (0) 编辑
MySQLAdmin的用法
摘要: mysqladmin 适合于linux和windows系统linux下:mysqladmin -u[username] -p[password] statuswindows下:先在安装目录找到mysqladmin.exe,然后在dos界面下change到这个目录,执行mysqladmin -u[username] -p[password] extended-status这里的extended-status 和status只是mysqladmin的两个参数而已!MySQLAdmin用法用于执行管理性操作。语法是:shell> mysqladmin [OPTIONS] command [co阅读全文
posted @ 2014-04-01 22:32 一个人的天空@ 阅读(34682) | 评论 (0) 编辑
linux 定时任务 crontab 详细解释(转)
摘要: cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:引用:/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond reload //重新载入配置//=========================================================================# Use the hash sign to prefix a comment# +-----阅读全文
posted @ 2014-04-01 00:27 一个人的天空@ 阅读(143) | 评论 (0) 编辑
linux下mysql自动备份脚本
摘要: 脚本放在 /home/user/mysql_backup.sh crontab # crontab -l # m h dom mon dow command 28 16 * * * /home/user/mysql_backup.sh 脚本如下 #!/bin/sh # mysql_backup.sh: backup mysql databases and keep newest 5 days backup. # # Last updated: 20 March 2006 # ------------------------------------------------------------阅读全文
posted @ 2014-04-01 00:22 一个人的天空@ 阅读(285) | 评论 (0) 编辑
mysqldump参数详细说明(转)
摘要: Mysqldump参数大全(参数来源于mysql5.5.19源码)参数参数说明--all-databases,-A导出全部数据库。mysqldump-uroot-p--all-databases--all-tablespaces,-Y导出全部表空间。mysqldump-uroot-p--all-databases--all-tablespaces--no-tablespaces,-y不导出任何表空间信息。mysqldump-uroot-p--all-databases--no-tablespaces--add-drop-database每个数据库创建之前添加drop数据库语句。mysqldum阅读全文
posted @ 2014-03-31 23:46 一个人的天空@ 阅读(56861) | 评论 (0) 编辑
Apache参数的优化(转)
摘要: 按照前面提到的版本问题,Apache可以直接使用2.0版本产品线。针对Apache的优化主要是针对httpd.conf的优化,当然还有其他地方,如果特别留意的话,网上常有专家惊呼“居然这么多人忽略xxxx处的优化”等等,实际情况也确实如此,因为优化的地方实在太多了,httpd.conf只能做一个出发点。即便如此如果仅仅使用httpd.conf出厂默认值的话还是令人痛心不已。httpd.conf的优化点有以下几处:1. KeepAlive我安装的Apache2.0出厂值居然是Off。除非你的网站只有文字没有图片,否则改成On。然后所有的麻烦就来了。以前看到过一个Web2.0和Web1.0的服务比阅读全文
posted @ 2014-03-30 21:23 一个人的天空@ 阅读(142) | 评论 (0) 编辑
shell中set的用法(转)
摘要: 使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.当BASHshell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数被处理后,其他的参数被赋值到位置参数中(,,...,$n)格式set[--abefhkmnptuvxldCHP][-ooptionname][arguments...]详解:选项说明-a自动向已经修改的变量或为导出后序命令的变量作出标志-b阅读全文
posted @ 2014-03-30 21:05 一个人的天空@ 阅读(206) | 评论 (0) 编辑
[转贴] start-stop-daemon命令
摘要: 转贴自 http://www.lampblog.net/ubuntu/start-stop-daemon%E5%91%BD%E4%BB%A4/1.功能作用启动和停止系统守护程序2.位置/sbin/start-stop-daemon3.格式用法start-stop-daemon [4.主要参数Commands:-S|--start -- ...开启一个系统守护程序,并传递参数给它-K|--stop 停止一个程序-T|--status 得到程序的状态-H|--help 显示帮助信息-V|--version打印版本信息Matching options (at least one is requir.阅读全文
posted @ 2014-03-30 20:39 一个人的天空@ 阅读(3155) | 评论 (0) 编辑
Linux命令service - 系统服务管理(转)
摘要: 用途说明service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。相关的命令还包括chkconfig、ntsysv等,chkconfig用于查看、设置服务的运行级别,ntsysv用于直观方便的设置各个服务是否自动启动。service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。看看下面的手册页可能更加清楚的了解service的内幕:service运行指定服务(称之为System V初始脚本)时,把大部分环境变量去掉了,只保留LANG和TERM两个环境变阅读全文
posted @ 2014-03-30 10:28 一个人的天空@ 阅读(37461) | 评论 (0) 编辑
Linux shell用法和技巧(转)
摘要: 使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧。当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务。于是,我开始在一个文本文件里记录这些用法,并放在我的Dropbox里,现在,向大家分享这个文件。这个文件我会不断的更新。需要注意一点的是,有些用法需要在你的Linux系统里安装额外的软件。UPDATE: November 25, 2013检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && echo "open"让进程转入后台:Ctrl + z将进程转到前台:fg阅读全文
posted @ 2013-12-02 15:00 一个人的天空@ 阅读(283) | 评论 (0) 编辑
Centos版Linux 一些常用操作命令
摘要: Linux命令收集1、文件处理命令:ls功能描述:显示目录文件命令英文原意:list命令所在路径:/bin/ls执行权限:所有用户语法:ls选项[-ald][文件或目录]-a显示所有文件,包括隐藏文件-l详细信息显示-d查看目录属性$ls–a>dir.txt←将ls–a命令执行结果输出到dir.txt文件。$ls–a>>dir.txt←将ls–a命令执行结果附加到dir.txt文件之后。2、文件处理命令:cd功能描述:切换目录命令英文原意:changedirectory命令所在路径:shell内置命令执行权限:所有用户语法:cd[目录]范例:$cd/切换到根目录$c...阅读全文
posted @ 2013-03-06 18:30 一个人的天空@ 阅读(17417) | 评论 (1) 编辑
cent os 查看服务器信息
摘要: Centos Linux下查看服务器信息的方法经常有客户咨询云志互联查看服务器一些硬件配置的方法,下面将以Centos为例,将各种信息的查看方法与用户分享。本教程使用于Centos,Debian等各Linux发行版1 查看服务器CPU型号more /proc/cpuinfo | grep "model name"grep "model name" /proc/cpuinfogrep "model name" /proc/cpuinfo | cut -f2 -d:2 查看服务器内存容量grep MemTotal /proc/meminf阅读全文
posted @ 2013-03-06 18:20 一个人的天空@ 阅读(4219) | 评论 (0) 编辑
apache配置文件httpd.conf部分参数说明
摘要: <Directory>...</Directory> -- 设定指定目录的访问权限<Files>...</Files> -- 设置应用于指定文件的指令示例:拒绝访问以‘-ht’开头的文件<Files ~"^\.ht">Order allow,denyDeny from all</Files><Location>...</Location> -- 设置应用于特定URL的指令,容器包含只应用于特定URL的指令<VirtualHost>...</VirtualHost阅读全文
posted @ 2013-01-28 15:58 一个人的天空@ 阅读(138) | 评论 (0) 编辑
apache配置禁止访问
摘要: 1. 禁止访问某些文件/目录增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:<Files ~ "\.inc$"> Order allow,deny Deny from all</Files>禁止访问某些指定的目录:(可以用 <DirectoryMatch> 来进行正则匹配)<Directory ~ "^/var/www/(.+/)*[0-9]{3}"> Order allow,deny Deny from all</Directory>通过文件匹配来进行禁止,阅读全文
posted @ 2013-01-28 15:56 一个人的天空@ 阅读(2393) | 评论 (1) 编辑
configure: error: Cannot use an external APR with the bundled APR-utilq错误解决
摘要: 一般在第一次安装进一般不会遇到这种问题,在重新编译时会遇到该问题以下是我根据错误提示进行纠正安装的cd httpd-2.2.2安装APRcd srclib/apr#./configure --prefix=/usr/local/apr#make#make install安装APR-utilcd srclib/apr-util#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr#make#make install# ./configure --prefix=/usr/local/apache--enable-so 阅读全文
posted @ 2013-01-28 11:05 一个人的天空@ 阅读(112) | 评论 (0) 编辑
最新Linux+Apache+Mysql+PHP安装笔记(转)
摘要: 服务器篇--之 LAMP安装手记Server OS: Cent OSApache: http-2.2.11PHP:PHP-5.2.9Mysql: 5.1.32GD: gd-2.0.35JPEG:jpeg-6blibpng:libpng-1.2.35libxml2:libxml2-2.6.19freetype:freetype-2.3.9ZendOptimizer:ZendOptimizer-3.3.0a-linux-glibc21-i386记得安装Linux的时候不要安装系统默认的apache,mysql和php以及相关的软件。已经安装的请用rpm -e * 删除已经安装的包。一,安装apa.阅读全文
posted @ 2013-01-25 14:16 一个人的天空@ 阅读(427) | 评论 (0) 编辑
子进程自父进程继承什么或未继承什么(转)
摘要: 下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是 这些东西的 拷贝,不是它们本身。由子进程自父进程继承到:①进程的资格(真实(real)/有效(effective)/已保存(saved)用户号(UIDs)和组号(GIDs))②环境(environment)③堆栈④内存⑤打开文件的描述符(注意对应的文件的位置由父子进程共享, 这会引起含糊情况)⑥执行时关闭(close-on-exec)标志(译者注:close-on-exec标志可通过fnctl()对文件描 述符设置,POSIX.1要求所有目录流都必须在exec函数调用时关闭。更详细说明, 参见《UN阅读全文
posted @ 2013-01-23 17:16 一个人的天空@ 阅读(80) | 评论 (0) 编辑
几个shell命令(转)
摘要: 1、!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:可以改成:$mkdir mydir$mv !$ yourdir #$mv mydir yourdir$cd !$2、^old^new替换前一条命令里的部分字符串。场景:echo "wanderful",其实是想输出echo "wonderful"。只需要^a^o就行了,对很长的命令的错误拼写有很大的帮助。(陈皓注:也可以使用!!:gs/old/new)3、列出当前目录下最大的几个文件du -s * | sort -n | tail -n 34、date -d@123456阅读全文
posted @ 2013-01-23 17:03 一个人的天空@ 阅读(108) | 评论 (0) 编辑
Linux Shell中的延时函数
摘要: Linux Shell中的延时函数在 linux shell脚本中经常需要做一些延时处理。所以经常要用到 sleep或usleep函数。下面来说一下 sleep和usleep的区别:sleep :默认以秒为单位。usleep :默认以微秒为单位。1s = 1000ms = 1000000ussleep不但可以用秒为单位,还可以指定延迟的单位,例如:sleep 1s表示延迟一秒sleep 1m表示延迟一分钟sleep 1h表示延迟一小时sleep 1d表示延迟一天原文:http://hi.baidu.com/fangqianshu/item/1128d317ed41c46d1009b53e阅读全文
posted @ 2013-01-23 16:50 一个人的天空@ 阅读(169) | 评论 (0) 编辑
VIRT,RES,SHR,虚拟内存和物理内存(转)
摘要: VIRT:1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等;2、假如进程新申请10MB的内存,但实际只使用了1MB,那么它会增长10MB,而不是实际的1MB使用量。3、VIRT = SWAP + RESRES:1、进程当前使用的内存大小,包括使用中的malloc、new分配的堆空间和分配的栈空间,但不包括swap out量;2、包含其他进程的共享;3、如果申请10MB的内存,实际使用1MB,它只增长1MB,与VIRT相反;4、关于库占用内存的情况,它只统计加载的库文件所占内存大小。5、RES = CODE + DATASHR:1阅读全文
posted @ 2013-01-23 16:22 一个人的天空@ 阅读(3961) | 评论 (0) 编辑
查看内存使用情况(转)
摘要: 查看内存使用情况1.top“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数--同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU数目时,CPU将比较吃力的负载当前系统所包含的进程;第五行(Swap)表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。2.freetotal:总计物理内存阅读全文
posted @ 2013-01-23 15:58 一个人的天空@ 阅读(124) | 评论 (0) 编辑
Swap简介(转)
摘要: Swap基本原理众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰。Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。计算机用户会经常遇这种现象。例如,在使阅读全文
posted @ 2013-01-23 15:29 一个人的天空@ 阅读(141) | 评论 (0) 编辑
伪终端(转)
摘要: 1、伪终端这个术语暗示对于一个应用程序而言,它看上去像一个终端,但实际上应用程序被欺骗了。从内核角度看,伪终端看起来像一个双向管道。而事实上Solaris的伪终端就是用STREAMS构建的。/dev/ptyAX -- 伪终端Pseudo Terminal的主设备/dev/ttyAx --伪终端的从设备/dev/pts/n -- 在Xwindows模式下第n个shell进程所使用的伪终端(伪终端的从设备)2、随着计算机技术的发展,出现了对一种特殊"终端设备"的需要,这个设备在逻辑上是终端设备,可是实际上却不是,所以称为"伪终端"(pseudo tty)。伪阅读全文
posted @ 2013-01-23 14:58 一个人的天空@ 阅读(1864) | 评论 (0) 编辑
expr简介(转)
摘要: expr命令一般用于整数值,但也可用于字符串。一般格式为:expr argument operator argument①用空格隔开每个项;②用\(反斜杠)放在shell特殊字符前面;③对包含空格和其他特殊字符的字符串要用引号括起来1、用于数字$expr 10 + 10$expr 20 \* 22、用于字符串(1)、计算字串长度> expr length "this is a test" //output : 14(2)、抓取字串> expr substr "this is a test" 3 5 //output : is is(3)、抓取阅读全文
posted @ 2013-01-23 14:17 一个人的天空@ 阅读(67) | 评论 (0) 编辑
time简介(转)
摘要: time简介time命令 用于 打印出一条命令或一个程序的执行时间time命令以秒为单位将一条命令执行期间所用的时间、系统时间和time命令的执行时间打印在标准错误中。用法:time [ -p ] Command [ Argument ... ]举例:想知道 列举home文件夹这一命令 花费的时间:time ls /home想知道 将文件复制到某一文件夹 花费的时间:time cp /home/***/h /home/***/Documents想知道 一个脚本运行的时间:time ./helloWorld.shtime命令结果有三行组成:real、user和sys。我们这里用的都是real值,阅读全文
posted @ 2013-01-23 14:10 一个人的天空@ 阅读(71) | 评论 (0) 编辑
awk 数组实例(转)
摘要: awk数组实例awk的数组,一种关联数组(Associative Arrays),下标可以是数字和字符串。因无需对数组名和元素提前声明,也无需指定元素个数 ,所以awk的数组使用非常灵活。首先介绍下几个awk数组相关的知识点:<1>建立数组array[index] = value:数组名array,下标index以及相应的值value。<2>读取数组值{ for (item in array) print array[item]} #输出的顺序是随机的{for(i=1;i<=len;i++) print array[i]} # Len是数组的长度<3>阅读全文
posted @ 2013-01-23 14:03 一个人的天空@ 阅读(106) | 评论 (0) 编辑
seq简介(转)
摘要: seq用于产生从某个数到另外一个数之间的所有整数例一:# seq 1 10结果是1 2 3 4 5 6 7 8 9 10例二:#!/bin/bashfor i in `seq 1 10`;doecho $i;done或者用for i in $(seq 1 10)例seq -s " " 1 10seq -f %05g 1 10seq -w 1 10for i in $(seq 1 20); do touch test$i;donefor i in{1..20}; do touch test$i;donetouch test$(seq 1 20)原文:http://bbs.li阅读全文
posted @ 2013-01-23 13:51 一个人的天空@ 阅读(66) | 评论 (0) 编辑
iostat命令详解(转)
摘要: iostatiostat用于输出CPU和磁盘I/O相关的统计信息.命令格式:iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]1)iostat的 简单使用iostat可以显示CPU和I/O系统的负载情况及分区状态信息.直接执行iostat可以显示下面内容:# iostatLinux 2.6.9-8.11.EVAL (ts3-150.ts.cn.tlan) 08/08/2007a...阅读全文
posted @ 2013-01-04 14:05 一个人的天空@ 阅读(6102) | 评论 (0) 编辑
linux常用命令100个(转)
摘要: 平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文件中,没事的时候可以拿出来看看,这样可以加深映像,时间长了这些命令的用法基本上都能掌握了。以下是100个用法,有什么不对,还请大家指正。1,echo "aa" > test.txt 和 echo "bb" >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部2,chmod go+w -R /home/zhangy //给组用户和其他用户添加写的权限3,tar -tzvf test.tar.gz 阅读全文
posted @ 2012-12-28 10:44 一个人的天空@ 阅读(353) | 评论 (0) 编辑
定义Bash提示符中显示IP
摘要: #=================================定义Bash提示符中显示IP==============================if [[ `tty | grep "pts"` ]]; then export PS1='['"\u@\033[31m`env| grep SSH_CONNECTION | awk '{print $(NF-1)}'`\033[0m"' \w]\$' else export PS1='[\u@\h \w]\$'fi阅读全文
posted @ 2012-11-28 10:22 一个人的天空@ 阅读(153) | 评论 (0) 编辑
linux alias命令参数及用法详解--linux定义命令别名alias
摘要: 命 令: alias功能说明:设置指令的别名。语 法:alias[别名]=[指令名称]补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。 还有,如果你想给每一位用户都生效的别名,请把alias la='ls-al' 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.参 数:若不阅读全文
posted @ 2012-11-28 10:16 一个人的天空@ 阅读(802) | 评论 (0) 编辑
做局域网yum源
摘要: 源制作:1、创建共享cdrom目录mkdir /media/cdrom2、编辑fstab文件(开机自动mount)vim /etc/fstab将以下文本加入文件尾/backup/CentOS-5.8-x86_64.iso /media/cdrom/ iso9660 loop,ro 0 0 3、查看mount -als /media/cdrom4、编辑export文件vim /etc/export将以下文本加入文件尾/media/cdrom *(ro)5、执行命令service portmap startservice nfs startshowmount...阅读全文
posted @ 2012-11-27 13:37 一个人的天空@ 阅读(829) | 评论 (0) 编辑
linux系统调用列表
摘要: 一、进程控制:fork创建一个新进程clone按指定条件创建子 进程execve运行可执行文件exit中 止进程_exit立即中止当前进程getdtablesize进 程所能打开的最大文件数getpgid获取指定进程组标识号setpgid设 置指定进程组标志号getpgrp获取当前进程组标识号setpgrp设 置当前进程组标志号getpid获取进程标识号getppid获 取父进程标识号getpriority获取调度优先级setpriority设 置调度优先级modify_ldt读写进程的本地描述表nanosleep使 进程睡眠指定的时间nice改变分时进程的优先级pause挂 起进程,等待信号阅读全文
posted @ 2012-10-31 17:28 一个人的天空@ 阅读(145) | 评论 (0) 编辑
Apache 虚拟主机 VirtualHost 配置
摘要: 虚拟主机 (Virtual Host)是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.主旨本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理.目标本文是写给拥有一定的服阅读全文
posted @ 2012-07-16 10:26 一个人的天空@ 阅读(183) | 评论 (0) 编辑
Apache 虚拟主机 VirtualHost 配置
摘要: 虚拟主机 (Virtual Host)是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.主旨本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理.目标本文是写给拥有一定的服阅读全文
posted @ 2012-07-10 22:34 一个人的天空@ 阅读(139) | 评论 (0) 编辑
使用sockopt与内核交换数据
摘要: 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn:yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn1. 前言打开一个网络socket后可以使用set/getsockopt(2)可实现用户空间与内核的通信,本质和ioctl差不多,区别在于set/getsockopt不用新建设备,直接利用系统已有的socket类型就可以进行,可用setsockopt函数向内核写数据,用getsockopt向内核读数据。本文内核代码版本为2.6.19.2。2. 基本过程首先在内核中要登记相阅读全文
posted @ 2012-06-12 17:04 一个人的天空@ 阅读(273) | 评论 (0) 编辑
集群之LVS(负载均衡)详解
摘要: 提高服务器响应能力的方法scale on 在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器。scale out 横向扩展,将多台服务器并发向外响应客户端的请求。优点:成本低,扩展架构比较简单。集群(Cluster),通俗地讲就是按照某种组织方式将几台电脑组织起来完成某种特定任务的这样一种架构。三种集群类型:LB,Load Balancing 负载均衡:在一定程度上能够实现高可用的目的。HA,High Availability 高可用:实时在线,能够及时响应客户端请求,企业应用要求达到 7*24小时,99.999%时间在线。HP,High Performance 高性能 提供大量超阅读全文
posted @ 2012-05-31 15:25 一个人的天空@ 阅读(9109) | 评论 (0) 编辑
Linux下群集服务简介&lvs集群详解(转)
摘要: Linux下集群服务简介:ClusterLB:Load Balancing,负载均衡HA:High Availability ,高可用HP:High Performance,高性能负载均衡集群目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问 量的Web服务。负载均衡集群往往也具有一定的高可用性特点。高可用性集群运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集群中比较著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。高性能集群对一种服务而言不具有负载阅读全文
posted @ 2012-05-31 15:25 一个人的天空@ 阅读(858) | 评论 (0) 编辑
/usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
摘要: /usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC/usr/local/lib/libz.a: could not read symbols: Bad value一般是64 位 电脑才会出现。解决方法如下:cd zlib-1.2.3 //进入zlib目录CFLAGS="-O3 -fPIC" ./confi阅读全文
posted @ 2012-05-30 19:32 一个人的天空@ 阅读(14456) | 评论 (1) 编辑
centos 单独安装apachebench
摘要: 这两天在测试php性能优化方法。为了做压力测试可观察效果,就选择了ApacheBench来作为压力测试工具。其实就是大家常说的ab。但是这个工具是安装apache web server的时候自带的,现在我服务器上都是跑nginx。也不想为了用这个工具就再装个apache。所以在用下面方法单独安装ab工具,这里记录下步骤。首先安装ab运行需要的软件包apr-utilyum install apr-util然后安装一个yum的工具包,为了可以单独弄出来ab。yum install yum-utils上面两个安装好以后,我们开始单独安装ab,其实就是下载到apache的rpm包,然后解压后,cp出来阅读全文
posted @ 2012-05-30 19:31 一个人的天空@ 阅读(2382) | 评论 (0) 编辑
Cent os 升级python到2.5后yum安装出错
摘要: # yum listLoading "priorities" pluginTraceback (most recent call last):File "/usr/bin/yum", line 29, in ?yummain.main(sys.argv[1:])File "/usr/share/yum-cli/yummain.py", line 105, in mainresult, resultmsgs = base.doCommands()File "/usr/share/yum-cli/cli.py", li阅读全文
posted @ 2012-05-30 19:31 一个人的天空@ 阅读(353) | 评论 (0) 编辑
[转]linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/lld.so.conf
摘要: Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。传统上,Linux 的先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准阅读全文
posted @ 2012-05-24 18:08 一个人的天空@ 阅读(1607) | 评论 (0) 编辑
配置yum
摘要: echo '192.168.0.27 KVM' >> /etc/hostsrm -rf /etc/yum.repos.d/*cat >> /etc/yum.repos.d/CentOS-Media.repo << EOF[c5-media]name=CentOS-\$releasever - Mediabaseurl=file:///misc/sysimage/gpgcheck=0enabled=1EOFecho 'sysimage kvm:/media/CentOS58' >> /etc/auto.misc阅读全文
posted @ 2012-05-24 16:32 一个人的天空@ 阅读(45) | 评论 (0) 编辑
linux系统实践之十六:linux修改系统时间详解 [转]
摘要: 两步(1)date 042612492005(2)hwclock -w第一步的意思是设置时间,设置完了可以用date命令查看对不对...注意是月日时分年第二步的意思是写入主板的rtc芯片..=======================================su -c 'date -s 月/日/年'su -c 'date -s 时:分:秒'=======================================了解Linux的时钟由于Linux时钟和Windows时钟从概念的分类、使用到设置都有很大的不同,所以,搞清楚Linux时钟的工作方式与设阅读全文
posted @ 2012-05-14 11:25 一个人的天空@ 阅读(168) | 评论 (0) 编辑
Icecast流媒体广播的设置(转)
摘要: 1,介绍写这篇文章前,我也找了不少的资料,不过其它的很多都太老了,没有给我以有效的帮助,本来是有两个选择的,icecast和shoutcast,既然用了linux,OpenSource的观念于我影响很深,所以毫不犹豫的选择了开源的icecast作为播放的服务器.她既能支持在Lan内,也能支持在Internet上同时向很多人播放,同时采用ices作为媒体源。整个架构就是以icecast作播放服务器,ices作为媒体采集提供源。要注意的是,当前icecast的版本是icecast-2.2.0,她支持mp3和ogg。ices有两个主要版本,2.0.x和0.4.x,这里面很有学问了,最新的2.0.x只阅读全文
posted @ 2012-05-10 15:59 一个人的天空@ 阅读(4047) | 评论 (0) 编辑
Linux 共享库
摘要: Linux系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。 第二类是动态链接的可执行程序。 静态可执行程序与动态可执行程序比较 我们可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的: # ldd /sbin/sln not a dynamic executable “not a dynamic executable”是 ldd 说明 sln 是静态链接的一种方式。现在,让我们比较 sln 与其非静态同类 ln 的大小...阅读全文
posted @ 2012-05-10 13:35 一个人的天空@ 阅读(1350) | 评论 (0) 编辑
Mount Windows共享文件夹到Linux目录
摘要: Check which shares are available for mountNow before you mount you can also check which shares (folders/drives) are available on your Windows machine that you can mount by giving the following command:# smbclient -L infohighway -U kushalwhereinfohighway = Name (NetBIOS Name) of my computerkushal = U阅读全文
posted @ 2012-05-09 16:57 一个人的天空@ 阅读(7189) | 评论 (0) 编辑
ulimit -c unlimited
摘要: ulimint -a 用来显示当前的各种用户进程限制Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,设置个Linux用户的最大进程数,一些需要设置为无限制:数据段长度:ulimit -d unlimited最大内存大小:ulimit -m unlimited堆栈大小:ulimit -s unlimited我们在用这个命令的时候主要是为了产生core文件,就是程序运行发行段错误时的文件:ulimit -c unlimited生成core文件,#######################################################以下来自;ht阅读全文
posted @ 2012-05-08 17:34 一个人的天空@ 阅读(66895) | 评论 (1) 编辑
【转】Linux C函数库参考
摘要: asctime(将时间和日期以字符串格式表示)clock(取得进程占用CPU的大约时间)ctime(将时间和日期以字符串格式表示)difftime(计算时间差距)ftime(取得目前的时间和日期)gettimeofday(取得目前的时间)gmtime(取得目前的时间和日期)localtime(取得当地目前的时间和日期)mktime(将时间结构数据转换成经过的秒数)settimeofday(设置目前的时间)strftime(格式化日期和时间)time(取得目前的时间)tzset(设置时区以供时间转换)abs(计算整型数的绝对值)acos(取反余弦函数值)asin(取反正弦函数值)atan(取反正阅读全文
posted @ 2012-04-25 11:35 一个人的天空@ 阅读(2316) | 评论 (0) 编辑
nginx常用的请求过滤
摘要: 以下为字符串匹配操作符:~为区分大小写匹配~* 为不区分大小写匹配!~和!~*分别为区分大小写不匹配及不区分大小写不匹配1: 限制某些类型的客户端的访问view plainprint?location/{if($http_user_agent~MSIE){return503;}}#限制IE访问如果把MSIE改成 Mozilla 就基本上把IE和firefox这样pc浏览器限制了2和3主要是针对盗链做处理2:针对不同的文件类型view plainprint?location~.*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)${if($ht阅读全文
posted @ 2012-04-10 13:02 一个人的天空@ 阅读(12810) | 评论 (0) 编辑
vi 缩进问题
摘要: 用redhat9 下面自带的vi编写c程序;用syntax on打开了高亮,用set cindent打开了自动缩进。参考 vi设置:在主目录下,创建一个文件,文件名必须是:.vimrc其中的内容通常包括:set nu 显示行号set ic 查找时不考虑大小写set ai 设置自动缩进(autoident)set sm 显示匹配括号等(show match)set ruler 显示行号和列号set ts=2 设置tabsize为2解决乱码通常很多在Ubuntu中使用VIM编辑中文编码的文档时所看到大全是乱码,而且就算是凭记忆修改内容也会出现问题,我就遇到过这样问题,后来终于解决。其实方法很简单编阅读全文
posted @ 2012-04-06 13:38 一个人的天空@ 阅读(4163) | 评论 (0) 编辑
POSIX 线程 – pthread_sigmask
摘要: 概念按照 POSIX, 异步 (外部) 信号发送到整个进程.所有线程共享同一个设置, 即通过 sigaction 设置的线程处置方法.每个线程有自己的信号掩码, 线程库根据该掩码决定将信号发送到哪个线程.由于 Linux 线程实现上的独特性, 外部信号始终发送到特定的线程. pthread_sigmaskpthread_sigmask 用来定义线程的信号掩码其接口与 sigprocmask 一样=============================================================================== #include <pthre...阅读全文
posted @ 2012-04-05 12:52 一个人的天空@ 阅读(6203) | 评论 (0) 编辑
TCP_NODELAY和TCP_CORK
摘要: 先上代码: int flag = 1; int result = setsockopt(sock, /* socket affected */ IPPROTO_TCP, /* set option at TCP level */ TCP_NODELAY, /* name of option */ (char *) &flag,/* the cast is historical cruft */ sizeof(int)); /* length of option v...阅读全文
posted @ 2012-04-01 15:16 一个人的天空@ 阅读(1278) | 评论 (0) 编辑
[精华] 讨论 Setsockopt选项
摘要: 有时候我们要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要控制套接字的选项了.以下资料均从网上收集得到getsockopt 和 setsockopt获得套接口选项: int getsockopt ( int sockfd, int level, int optname, void * optval, socklen_t *opteln ) 设置套接口选项: int setsockopt ( int sockfd, int level, int optname, const void * optval, socklen_t *opteln ) sockfd(套接字): 指向一个打开的套阅读全文
posted @ 2012-04-01 15:15 一个人的天空@ 阅读(240) | 评论 (0) 编辑
Linux下多路复用IO接口 epoll select poll 的区别
摘要: 我们先来介绍下nginxnginx :支持高并发连接.官方测试的是5w并发连接但在实际生产中可制成2-4w并发连接数,得益于nginx使用最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型.而apache使用的则是传统的select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,所消耗的CPU等服务器资源要比nginx高的多.select 和epoll效率差的原因: select是轮询、epoll是触发式的,所以效率高。单单这样讲,那能懂了才见鬼了.好...我们暂且客观的记住这句话.先说Select:1.Socket数量限制:该模式可阅读全文
posted @ 2012-03-30 18:06 一个人的天空@ 阅读(1585) | 评论 (0) 编辑
select,poll和epoll的区别
摘要: select()系统调用提供一个机制来实现同步多元I/O: #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); FD_CLR(int fd, fd_set *set); FD_ISSET(int fd, fd_set *set); FD_SET(int fd, fd_set *set);阅读全文
posted @ 2012-03-30 16:44 一个人的天空@ 阅读(1140) | 评论 (0) 编辑
(转)I/0模型
摘要: 在高性能服务器中,一般采用非阻塞网络IO,单进程事件驱动的架构。这种架构的核心是事件驱动机制。目前Linux常用select,poll和epoll系统调用来完成事件驱动。select和poll是传统的unix事件驱动机制,但它们有很大的缺点:在大量的并发连接中,如果冷连接较多,select和poll的性能会因为并发数的线性上升而成平方速度的下降,这是因为调用者在每次select和poll返回时都要检测每个连接是否有事件发生,当连接数很大时,系统开销会非常大。另外select和poll每次返回时都要从内核向用户空间复制大量的数据,这样的开销也很大。所以,select和poll并不是处理网络IO的阅读全文
posted @ 2012-03-30 16:02 一个人的天空@ 阅读(364) | 评论 (0) 编辑
(转)linux select poll
摘要: 以前写服务器程序直接就都写成多线程的了,没考虑过其他方式,也没考虑到底哪种方式好;前些日子看些人说windows下面用完成端口、Linux下面用epoll,这些效率高。其它环境一说就是select;似乎很多人不愿意提多线程方式,也许被传说中的线程同步吓得吧;我个人还是偏向多线程方式,这样不但可以监视多端口,还可以分离业务逻辑,便于调试维护。----------------------------------------------------------------------------------------------------看明白这几个东西,需要一个环境,描述问题;就是我的程序需要阅读全文
posted @ 2012-03-30 16:01 一个人的天空@ 阅读(2174) | 评论 (0) 编辑
poll函数
摘要: poll函数 poll函数起源于SVR3,最初局限于流设备。SVR4取消了这种限制,允许poll工作在任何描述字上。poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。 1.#include <poll.h> 2. 3.int poll(struct pollfd *fdarray, unsigned long nfds, int timeout); 4. 返回:就绪描述字的个数,0-超时,-1-出错 第一个参数是指向一个结构数组第一个元素的指针。每个数组元素都是一个pollfd结构,用于指定测试某个给定描述字fd的条件。 struct pollfd{.阅读全文
posted @ 2012-03-30 16:00 一个人的天空@ 阅读(3235) | 评论 (0) 编辑
线程堆栈大小 pthread_attr_setstacksize 的使用【转】
摘要: author: 张继飞pthread_create 创建线程时,若不指定分配堆栈大小,系统会分配默认值,查看默认值方法如下:# ulimit -s8192#上述表示为8M;单位为KB。也可以通过# ulimit -a其中 stack size 项也表示堆栈大小。ulimit -s value 用来重新设置stack 大小。一般来说默认堆栈大小为 8388608;堆栈最小为 16384 。 单位为字节。堆栈最小值定义为PTHREAD_STACK_MIN ,包含#include <limits.h>后可以通过打印其值查看。对于默认值可以通过pthread_attr_getstacksi阅读全文
posted @ 2012-03-29 17:52 一个人的天空@ 阅读(11748) | 评论 (0) 编辑
linux setsockopt
摘要: 1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BOOL bDontLinger = FALSE;setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLing阅读全文
posted @ 2012-03-22 11:59 一个人的天空@ 阅读(10321) | 评论 (0) 编辑
Linux下getsockopt/setsockopt 函数说明
摘要: 【getsockopt/setsockopt系统调用】功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include <sys/types.h>#include <sys/socket.h>intgetsockopt(int sock, int level, int 阅读全文
posted @ 2012-03-22 11:59 一个人的天空@ 阅读(3112) | 评论 (2) 编辑
TCP/IP编程中协议无关性的函数getaddrinfo()
摘要: 一、getaddrinfo函数介绍:gethostbyname和gethostbyaddr这两个函数仅仅支持IPv4,getaddrinfo函数能够处理名字到地址以及服务到端口这两种转换,返回的是一个sockaddr结构的链表而不是一个地址清单。这些sockaddr结构随后可由套接口函数直接使用。如此以来,getaddrinfo函数把协议相关性安全隐藏在这个库函数内部。应用程序只要处理由getaddrinfo函数填写的套接口地址结构。该函数在POSIX规范中定义了。#include<netdb.h>int getaddrinfo( const char *hostname, con阅读全文
posted @ 2012-03-22 11:38 一个人的天空@ 阅读(326) | 评论 (0) 编辑
Linux下的多线程编程(转)
摘要: 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进阅读全文
posted @ 2012-03-21 15:53 一个人的天空@ 阅读(162) | 评论 (0) 编辑
linux中fork创建进程讲解(转)
摘要: 大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难。我们举个例子来看看fork的用法吧。 大家用fork的时候记住fork是“分叉”的意思就很好理解了。 记得初学fork() 函数及遇到这个函数时,总是不能理解fork为什么会这样写,就会分成父子两个进程。 先看一下fork() 的经典模式//--------------------------------------------------------beginint pid=fork();if(pid < 0){//失败,一般是该用户的进程数达到限制或者内存被用光了.....阅读全文
posted @ 2012-03-21 15:50 一个人的天空@ 阅读(3993) | 评论 (0) 编辑
怎么查看redhat版本
摘要: 第一种:[root@css /]# cat /etc/redhat-releaseRed Hat Enterprise Linux AS release 4 (Nahant Update 2)第二种:[root@css /]# cat /etc/issueRed Hat Enterprise Linux AS release 4 (Nahant Update 2)Kernel \r on an \m查看核心版本:[root@css /]# cat /proc/versionLinux version 2.6.9-22.ELsmp (bhcompile@porky.build.redhat.co阅读全文
posted @ 2012-03-21 10:38 一个人的天空@ 阅读(182) | 评论 (0) 编辑
source insight 调用标准C函数时提示方法
摘要: 输入自定义函数时会代码提示输入标准C函数时没有提示解决方法Options->Prefernces->Create Common Projects->Standrd C/C++ and Windows Headers "...VC98/include"创建一个包含头文件的工程如CStandard_WIN32.PR然后在Options->Prefernces->Project symol path中Add Project to Path将CStandard_WIN32.PR添加进来对于Linux程序只需拷贝linux中的头文件,然后创建一个工程包含阅读全文
posted @ 2012-03-21 10:28 一个人的天空@ 阅读(2929) | 评论 (0) 编辑
请教shell读写XML问题(转)
摘要: 现有 123.xml文件,内容是:<?xml version="1.0" encoding="GBK"?><videoinfo> <videoname>呵呵</videoname> <videopath>20080110</videopath> <videosize>0.0</videosize> <widthOfImage>320</widthOfImage> <heightOfImage>240</heightOf阅读全文
posted @ 2012-03-08 13:55 一个人的天空@ 阅读(7897) | 评论 (0) 编辑
linux批量替换文件内容3种方法(perl,sed,shell)
摘要: 方法1:这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需要把这些资源库的url统一指定到nexus本地中央库.手 工一个个改文件配置有点不太实际,所以google了一下,找到批量替换文件内容的好方法,命令结构如下:find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的&#8221;http://阅读全文
posted @ 2012-03-08 13:17 一个人的天空@ 阅读(55427) | 评论 (0) 编辑
更改linux的最大文件描述符限制
摘要: ile Descriptor Requirements (Linux Systems)To ensure good server performance, the total number of client connections, database files, and log files must not exceed the maximum file descriptor limit on the operating system (ulimit-n). By default, the directory server allows an unlimited number of con阅读全文
posted @ 2012-03-07 13:03 一个人的天空@ 阅读(10105) | 评论 (0) 编辑
mount/umount命令
摘要: 如果想在运行的Linux下访问其它文件系统中的资源的话,就要用mount命令来实现。2. mount的基本用法是?格式:mount [-参数] [设备名称] [挂载点]其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统。-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。-n 不把安装记录在/etc/mtab 文件中。-r 讲文件系统安装为只读。-v 详细显示安装信息。-w 将文件系统安装为可写,为命令默认情况。-t指定设备的文件系统类型,常见的有:ext2linux目前常用的文件系统msdosMS-DOS的fat,就是fat16vfatwindo.阅读全文
posted @ 2012-03-06 17:28 一个人的天空@ 阅读(54359) | 评论 (0) 编辑
Linux如何查找文件安装路径
摘要: Linux中查看某 个软件的安装路径(地址)有时显得非常重要。比如某个文件的快速启动项被删除,或者你要建立快速启动项,或者想删除、 添加安装文件等等,很多地方都要用到查案文件安装路径的命令。这里给大家介绍Linux查看文件安装路径(地址)命令。一、查看文件安装路径:由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址)。这里以Oracle为例。比如说我安装了Oracle,但是不知道文件都安装在哪些地方、放在哪些文件夹里,可 以用下面的命令查看所有的文件路径在终端输入:whereis oracle回车,如果你安装好了Oracle,就会显示文件安装的地址,例如我的显示(安装地址可能阅读全文
posted @ 2012-03-04 23:18 一个人的天空@ 阅读(38758) | 评论 (1) 编辑
第一章:linux命令初步
摘要: 内容简介Linux控制台与图形界面切换掌握Linux命令的习惯介绍使用频率比较多的一些命令文件操作命令目录命令文件比较命令增加用户及更改密码命令列出文件内容命令其它命令Linux控制台与图形界面切换Ctrl+Alt+F1~F6 Ctrl+Alt+F7掌握Linux命令的习惯1、要善用TAB键来补全命令2、要善用帮助文件操作命令ls(list)相当于dos下的dir功能说明:列出目录内容。补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。参 数: -1 每列仅显示一个文件或目录名称。 -a或–all当前目录下所有文件和目录。 -c 以更改时间排序,显示文件和目录。 -C 以又上至.阅读全文
posted @ 2012-02-24 13:49 一个人的天空@ 阅读(106) | 评论 (0) 编辑
linux系统下更改用户名
摘要: 格式如下usermod -l new_user_name old_user_name即可更改用户名。用新用户登陆后,相应有用户家目录的用户组权限为新用户,但组的用户还是老用户!阅读全文
posted @ 2012-02-23 14:08 一个人的天空@ 阅读(708) | 评论 (0) 编辑
dd命令使用详解
摘要: 1.命令简介dd 的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number mif=file #输入文件名,缺省为标准输入。of=file #输出文件名,缺省为标准输出。ibs=bytes #一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。obs=bytes #一次写 bytes 个字节(即一个块大小为 bytes 个字节)。bs=bytes #同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。cbs=bytes #一次转换 bytes 个字节,即转换缓冲区大小。skip=blocks 阅读全文
posted @ 2012-02-23 14:03 一个人的天空@ 阅读(66649) | 评论 (0) 编辑
linux 系统启动过程
摘要: 硬件读取引导扇区加载LILO或者grub加载内核挂装根文件系统启动/sbin/init ,一切进程的“祖父”读取/etc/inittab文件读取rc.sysinit文件读取/etc/fstab文件运行rcX.d下的文件(文件都是init.d下的符号链接)其中有一个xinetd 的超级进程,调用/etc/xinetd.conf 配置文件,从配置文件中知道读/etc/xinetd.d 文件,结束后调用Miggetty读取/etc/rc.d/rc.local文件阅读全文
posted @ 2012-02-22 13:31 一个人的天空@ 阅读(140) | 评论 (0) 编辑
linux下如何挂载NTFS分区并让其可读可写
摘要: 第一步:重新编译内核<选上>FUSE(Filesystem in Userspace) support其下面的DOS/FAT/NT Filesystems —>里面的NTFS选项勾上吧!第二步:wgethttp://www.ntfs-3g.org/ntfs-3g-2009.4.4.tgz第三步:安装NTFS-3G./configure make make install第四步:进行挂载并测试mount -t ntfs-3g /dev/sda1 /mnt阅读全文
posted @ 2012-02-22 13:29 一个人的天空@ 阅读(988) | 评论 (0) 编辑
CentOS RHEL 5.3 编译内核
摘要: 下载linux-2.6.29.4.tar.bz2到/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2 # tar -jxvf linux-2.6.27.tar.bz2 # cd linux-2.6.27 # make mrproper # make menuconfig # make clean # make bzImage # make modules # make modules_install # mkinitrd /boot/initrd_2.6.27.img 2.6.27执行m阅读全文
posted @ 2012-02-22 13:28 一个人的天空@ 阅读(278) | 评论 (0) 编辑
Centos5.3+iptables+l7-filter+IPP2P的实现(转)
摘要: 这两天和一位朋友,相互研究了一下在IPTABLES中增加新的模块功能。在网上查了些资料,都没有成功实现,最后,经过测试与调试,最终实现。现在就把具体步骤贴出来,与大家分享。个人建议:在安装最新的软件前,大家最好看一下他们的版本与适合的版本。否则,出了问题也找不到原因!系统环境:CentOS 5.3Kernel 2.6.18-128.el5iptables 已经卸载(采用源码进行安装)1.下载所需软件包kernel 2.6.19.7# wgethttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.7.tar.bz2iptables1.3阅读全文
posted @ 2012-02-22 13:22 一个人的天空@ 阅读(563) | 评论 (0) 编辑
linux系统实用命令收集
摘要: 1、统计apache占用的系统内存ps aux | grep apache | awk ‘{sum+=$4};END {print sum}’注:$4表示第四域2、在VIM中的一些技巧(针对当前屏幕) H–跳到第一行 M–跳到中间一行 L–跳到最后一行 (针对整个文档) gg–到首行 G–到尾行 7yy复制7行 5dd 删除5行 dG 删除所有行 d$ 从当前位置删除到行尾 y$ 从当前位置复制到行尾3、让命令提示符前显示完整路径vi /etc/bashrc找到“$PS1″ = “< a href=” file:////s-//v///$”>\\s-\\v\\\$< /a &阅读全文
posted @ 2012-02-22 13:20 一个人的天空@ 阅读(104) | 评论 (0) 编辑
linux启动脚本(Red5)
摘要: vi /etc/init.d/red5#!/bin/bash# For RedHat and cousins:# chkconfig: 2345 85 85# description: Red5 flash streaming server# processname: red5# Created By: Sohail Riaz (sohaileo@gmail.com)PROG=red5RED5_HOME=/usr/local/red5DAEMON=$RED5_HOME/$PROG.shPIDFILE=/var/run/$PROG.pid# Source function library. /e阅读全文
posted @ 2012-02-21 14:39 一个人的天空@ 阅读(1239) | 评论 (0) 编辑
开机的时候重新设置密linux管理员的密码
摘要: 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键2. 再次用上下键选中你平时启动linux的那一项(类似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键3. 修改你现在见到的命令行,加入single,结果如下:kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ single4. 回车返回,然后按b键启动,即可直接进入linux命令行5.用password命令修改密码阅读全文
posted @ 2012-02-17 13:01 一个人的天空@ 阅读(128) | 评论 (0) 编辑
教大家如何实现硬盘安装linux系统
摘要: 在网上找也好多关于这方面的资料,但都没有一个可以用的,自己研究了一下,完全可以实现,只要按照以下步骤做了,包你能把CentOS请回家平台Windows XP; 所需软件grub4dos-0.4.3.zip; CentOS镜像文件DVD。1.在Windows XP下删除最后一个分区。2.把下载的CentOS镜像文件放在FAT格式的任何一个盘。3.解压DVD镜像中isolinux文件夹到C:\(就是C盘的根目录);4.解压grub4dos-0.4.3.zip里面的(menu.lst、grldr、grldr.mbr)到C:\(就是C盘的根目录)。5.打开c:\boot.ini在文件最后加入 c:\g阅读全文
posted @ 2012-02-17 12:59 一个人的天空@ 阅读(88) | 评论 (0) 编辑
如何在Linux下如何安装多语言包
摘要: 大家在使用linux系统的是时候是不是出现过麻将牌式字符?比如说,我们安装系统的时个只安装了英文,当我们在浏览中文网页的时候是不是会出现麻将牌式字符,这个时候你就要安装另外一种语言。我的系统是Centos5.2,已经安装好了系统是英文语言, 下面是我安装多个语言包的详细过程,希望对大家有所帮助.可以有两种方法,第一种,使用光盘或者相当于光盘的媒介。第二种,是用网络。先来讲第一种方法。# mount /dev/cdrom /mnt/cdrom# cd /mnt/cdrom# rpm -ivh fonts-chinese第二种方法更简单,但很需要时间,原因是网速太慢!(当然也可以配置本地的YUM源阅读全文
posted @ 2012-02-17 12:55 一个人的天空@ 阅读(2531) | 评论 (0) 编辑
详解建立Linux环境软RAID 5教程
摘要: 1:Raid定义RAID,全称Redundant Array of Inexpensive Disks,中文名为廉价磁盘冗余阵列.RAID可分为软RAID和硬RAID,软RAID是通过软件实现多块硬盘冗余的.而硬RAID是一般通过RAID卡来实现RAID的.前者配置简单,管理也比较灵活.对于中小企业来说不失为一最佳选择.硬RAID往往花费比较贵.不过,在性能方面具有一定优势.2:RAID分类RAID可分为以下几种,做个表格认识下:RAID 0 存取速度最快 没有容错RAID 1 完全容错 成本高,硬盘使用率低.RAID 3 写入性能最好 没有多任务功能RAID 4 具备多任务及容错功能 Par阅读全文
posted @ 2012-02-15 15:25 一个人的天空@ 阅读(481) | 评论 (0) 编辑
FMS流媒体服务器集群
摘要: 1.1 部署集群服务器负载均衡设备不是基础网络设备,而是一种性能优化设备。首先,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,这就是我们常说的集群(clustering)技术。第二层含义就是:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。那么什么是NAS存储,简单的说NAS存储就是基于专用硬件设备上的、安装特殊操作系统、具有强大用户访问权限管理功能、数据安全保护和恢复功能的文件服务器。搭建点播模式的流媒体服务器拓扑结构阅读全文
posted @ 2012-02-15 14:50 一个人的天空@ 阅读(4496) | 评论 (0) 编辑
redhat_linux_配置yum详解
摘要: redhat linux 配置yum详解 修改浏览权限 | 删除 首先,rhel5系统安装的时候其实已经有yum了,只是因为如果用官方的网站更新的话除非你是用钱买的rhel5.否则它会提示注册之类的。所以只要把 yum的更新地址改成开源的就行了。而限定yum更新地址的文件在/etc/yum.repos.d/里。先把它们改成备份文件,即在后面加.bak。[root@killgoogle ~]# mv /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.bak[root@killgoogle ~]# m阅读全文
posted @ 2012-02-10 10:22 一个人的天空@ 阅读(5335) | 评论 (0) 编辑
linux用户管理命令(添加,删除,修改)
摘要: linux下强制踢掉登陆用户查看机器中登陆的用户[root@sunsyk ~]# w16:29:02 up 2 days, 2:35, 5 users, load average: 0.03, 0.05, 0.01USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/1 :0.0 Tue15 2days 1:44 0.04s -bashroot pts/2 :0.0 Tue15 46:42m 0.05s 0.05s bashroot pts/3 :0.0 Tue15 2days 0.02s 0.02s bashroot pts/4 172.20.52阅读全文
posted @ 2012-02-10 09:33 一个人的天空@ 阅读(13913) | 评论 (0) 编辑
计划任务工具 cron 的配置和说明
摘要: 作者:北南南北来自:LinuxSir.Org摘要:Linux操作系统中,计划任务通常由cron来承担,了解或掌握cron,能为我们管理服务器带来更多的便利,也能省却更多的时间。本文也举了一些简单明了的例子,为了让新手上路方便;目录2.1.1 在Redhat 或 Fedora等RPM包管理的系统的安装;2.1.2 在Slackware系统中的安装;2.1.3 cron 的开启、停止、重新启动方法;2.2.1 全局性配置文件;2.2.2 cron 配置计划任务的书写格式2.2.3 关于同一时间,同时执行多个任务的定义方法;2.2.4 对于用户自身的cron 配置文件的说明;2.1 cron 的安装阅读全文
posted @ 2012-01-16 15:13 一个人的天空@ 阅读(144) | 评论 (0) 编辑
Ubuntu 安装VMware tools 解决方法讨论
摘要: 1、启动并进入Linux系统。2、然后选择虚拟机菜单中的“虚拟机/安装VMware-Tools”,此时就会有把VMware-tools文件映像到CD-ROM中。3、把“VMwareTools-6.0.2-59824.i386.rpm,VMwareTools-6.0.2-59824.tar.gz”文件复制到自己的需要的位置中,然后选择一种安装方式。在此我选VMwareTools-6.0.2-59824.tar.gz。4、解压# tar -zxvf VmwareTools-6.0.2-59824.tar.gz5、进入/home/tsm/Tools/vmware-tools-distrib目录中,c阅读全文
posted @ 2011-12-22 12:02 一个人的天空@ 阅读(4123) | 评论 (0) 编辑
VMware虚拟机磁盘压缩
摘要: 在VMware里新建虚拟机向导时会让选择是否预分配虚拟磁盘空间(preallocate for virtual disk),如果选是,VMware将立即分配所有空间(Allocate all disk space now);否则虚拟机文件将随着虚拟系统使用而增大。如果选择了不立即分配空间,那使用了一阵子虚拟机后,你会就发现虚拟机文件只增不减,远大于虚拟系统中已使用的空间;还有虚拟系统运行速度逐渐下降,这样可能造成很多不便。这时可以对虚拟磁盘/分区进行整理和压缩:整理(Defragment)在虚拟机设置中的虚拟磁盘设置可以找到,关键是保持磁盘数据的连续性,可以提高磁盘性能。VMware Tool阅读全文
posted @ 2011-12-21 10:19 一个人的天空@ 阅读(4414) | 评论 (0) 编辑
在Linux下安装和使用MySQL(转)
摘要: 一、引言 想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是Red Hat 9.0,MySQL是4.0.16。 二、安装Mysql 1、下载MySQL的安装文件 安装MySQL需要下面两个文件: MyS...阅读全文
posted @ 2011-12-16 10:28 一个人的天空@ 阅读(120) | 评论 (0) 编辑
Install Ruby 1.9.3 with libyaml on CentOS(转)
摘要: Ruby 1.9.3-p0 makes psych—the replacement for 1.8.7’sYAMLlibrary, Syck—the defaultYAMLparser. Psych is a wrapper around libyaml, so you’re going to need it installed and configuredbeforeinstalling Ruby.If you install 1.9.3-p0 without libyaml, you’ll see warnings like this:It seems your ruby installa阅读全文
posted @ 2011-12-15 11:15 一个人的天空@ 阅读(4938) | 评论 (0) 编辑
救火必备linux命令小结(一)------查问题
摘要: 线上查问题的时候有些命令是必备,有必要把一些常用命令总结一下(这类命令和相关参数相当多,只总结自己常用得到的),查找问题一般可以分为系统参数、性能参数、进程、内存、网络、存储、内存和jvm这么几类:系统参数cat /proc/cpuinfo cpu相关参数cat /proc/meminfo 内存相关参数cat /proc/loadavg 负载情况性能参数1)topM:按内存使用排序P:按CPU占用排序1:显示各CPU的使用情况k:kill进程o:更多排序规则回车:刷新数据2)ulimitulimit -a:显示本用户的系统限制参数ulimit -Hn <num>:更改最大Hard 阅读全文
posted @ 2011-12-13 14:51 一个人的天空@ 阅读(192) | 评论 (0) 编辑
Linux 下zip包的压缩与解压
摘要: linux zip 命令详解功能说明:压缩文件。语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。参 数:-A 调整可执行的自动解压缩文件。-b<工作目录> 指定暂时存放文件的目录。-c 替每个被压缩的文件阅读全文
posted @ 2011-11-29 17:09 一个人的天空@ 阅读(136) | 评论 (0) 编辑
LAMP网站架构方案分析
摘要: LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之阅读全文
posted @ 2011-08-23 16:56 一个人的天空@ 阅读(145) | 评论 (0) 编辑
[转]Linux中如何自动启动服务
摘要: linux自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里。这样就可以每次启动的时候自动启动服务了。例如对于 apache,编译好apache后会在安装目录的bin下生成apachectl文件,这是个启动脚本,我们只需要把这个命令加到rc.local里就可以了:echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local此外我们还可以使用chkconfig命令来把某项服务加到系统的各项运行级别中,步骤如下:1 创建启动脚本,对于apache、mysql、ssh这样的软件都是自己带的,我们只阅读全文
posted @ 2011-08-08 15:33 一个人的天空@ 阅读(319) | 评论 (0) 编辑
教会你Linux Shell自动交互的三种方法
摘要: 你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下。一、背景shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量、条件、算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多。但是有时候我们可能会需要实现和交互程序如ftp,telnet服务器等进行交互的功能,这时候我们需要用到shell的自动交互功能,本文收集了较常用的三种自动交互方法,并进行了比较和总结。二、需阅读全文
posted @ 2011-07-29 16:50 一个人的天空@ 阅读(408) | 评论 (0) 编辑
Linux下的tar压缩解压缩命令详解
摘要: tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。# t阅读全文
posted @ 2011-07-06 17:42 一个人的天空@ 阅读(684130) | 评论 (5) 编辑
Windows与Vmware下的Linux文件共享方式总结
摘要: Windows和Linux间有很多文件共享的方式,这里我总结了一下。假设你的Host计算机是Windows,Guest是Linux哈。1.利用Samba这是我用得最多的方式2.在Linux下配置Apahce在Linux下配置Apahce,然后在Windows下通过www方式把Linux下的文件下载下来。这种方式只能把Linux的文件传到Windows,不能把Windows的文件传到Linux.3.在Linux下配置Ftp用vsftp或者wu-ftp都可以,配置成上传权限的,然后Windows和Linux就可以相互共享文件了。4.Windows下配置WWW服务用IIS,Apache或者其它的都可阅读全文
posted @ 2011-07-06 14:02 一个人的天空@ 阅读(428) | 评论 (0) 编辑
用GDB调试程序(转)
摘要: 用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。从上面看来阅读全文
posted @ 2011-06-22 09:35 一个人的天空@ 阅读(298) | 评论 (0) 编辑
ar和nm命令的使用(转载)
摘要: ar和nm命令的使用当我们的程式中有经常使用的模块,而且这种模块在其他程式中也会用到,这时按照软件重用的思想,我们应该将他们生成库,使得以后编程能够减少研发代码量。这里介绍两个命令ar和nm,用来对库操作。By Wing, 出处:only_you当我们的程式中有经常使用的模块,而且这种模块在其他程式中也会用到,这时按照软件重用的思想,我们应该将他们生成库,使得以后编程能够减少研发代码量。这里介绍两个命令ar和nm,用来对库操作。1、ar基本用法ar命令能够用来创建、修改库,也能够从库中提出单个模块。库是一单独的文档,里面包含了按照特定的结构组织起来的其他的一些文档(称做此库文档的member)阅读全文
posted @ 2011-06-21 16:34 一个人的天空@ 阅读(1475) | 评论 (0) 编辑
配置Linux两节点SSH密钥信任
摘要: 首先感谢兄弟“瑞瑞”提供资料1. 生成两节点Oracle用户SSH密钥Racnode1[root@racnode1 ~]#su - oracle--------------------->【无.ssh目录】[oracle@racnode1 ~]$ll -atotal 32Kdrwxr-xr-x 3 oracle oinstall 4.0K Jun 13 15:08 .kde-rw-r--r-- 1 oracle oinstall 120 Jun 13 15:08 .gtkrc-rw-r--r-- 1 oracle oinstall 124 Jun 13 15:08 .bashrc-rw-阅读全文
posted @ 2011-06-15 17:48 一个人的天空@ 阅读(2040) | 评论 (2) 编辑
shell脚本实现的修改文件中的字符串(转)
摘要: 有两天没有寫自己的博客了,本来决定要每天坚持写,看来自己有时就是太懒了,总是会找借口不写了,今天很累明天再写吧,结果明天也没写,明天我一定写两篇,可是最后一篇都没写。也许这就是人之所以的人之惰性吧,我天生可能就是有一种惰性,很多事情都不是太会去主动做,这是不好而且可能是致命的缺点,所以决定了还是应该尽量去克服这个缺点,当然如果中间我确实有几天没写,如果不小心耽误了您搜索代码,对不起了,您可千万不要用砖头来拍我,因为现在的砖头不结实,拍死还好,拍不死可就傻了,那时郁闷也无奈了,呵呵。言规正传昨天公司的mary请我帮忙想一下如何去修改一个再linux下的XML文档,如果使用c语言,那当然可以了使用阅读全文
posted @ 2011-06-15 16:43 一个人的天空@ 阅读(4866) | 评论 (0) 编辑
linux常用命令大全(转)
摘要: 由于记忆力有限,把平时常用的Linux命令整理出来,以便随时查阅:linux 基本命令ls (list 显示当前目录下文件和目录 ls -l 详细显示 =ll )[root@linux ~]# ls [-aAdfFhilRS] 目录名称[root@linux ~]# ls [--color={none,auto,always}] 目录名称[root@linux ~]# ls [--full-time] 目录名称参数:-a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~-A :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~-d :仅列出目录本身,而不是列阅读全文
posted @ 2011-06-10 18:05 一个人的天空@ 阅读(134171) | 评论 (9) 编辑
Linux常用命令全集
摘要: catchattrchgrpchmodchowncksumcmpdiffdiffstatfilefindgitgitviewindentcutlnlesslocateisattrmattribmcmdelmdirmktempmoremmovemreadmrenmtoolsmtoolstestmvodpastepatchrcprmslocatesplitteetmpwatchtouchumaskwhichcpinmcopymshowfatrhmaskwhereis cddfdirsduedquotaejectmcdmdeltreemdumkdirmlabelmmdmrdmzippwdquota.阅读全文
posted @ 2011-06-10 18:03 一个人的天空@ 阅读(3885) | 评论 (1) 编辑
linux下Vi编辑器命令大全
摘要: /根目录下的文件夹输入”/”,回车里面有很多文件夹,如:etc,home,lib,mnt等等etc:存放用户名和密码home:每个用户有个文件夹,存放在这里lib:操作系统文件等mnt:挂扣用的opt:java工具bea:web编程的一些东西sbin,bin,usr:这三个文件夹都是存放unix的命令的tmp:临时文件夹常用的操作:查看当前目录:pwd修改密码:passwd更换模式:csh,bash远程登陆:telnet 服务器ip回到上级目录:cd ..查看该目录下的文件夹:ls打开文件:vi /文件夹/文件文件显示的格式:root:x:0:root…:/root;/bin/bash 用户名阅读全文
posted @ 2011-06-09 09:45 一个人的天空@ 阅读(4975) | 评论 (0) 编辑
Linux下的shell与make
摘要: 一、shell1.1 什么是shell● 用户与Linux的接口● 命令解释器● 支持多用户● 支持复杂的编程语言● Shell有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省Shell为bash(Bourne Again Shell)。Shell是用户和操作系统之间最主要接口。通过Shell,可以同时在后台运行多个应用程序,并且在把需要与用户交互的程序放在前台运行。通过在多条命令的序列中使用变量和流程控制,Shell可以作为一名复杂的编程语言。1.2 转义字符和通配字符●转义字符(metacharacters)指的是在Shell中有特殊含义的阅读全文
posted @ 2011-06-08 14:16 一个人的天空@ 阅读(2645) | 评论 (0) 编辑
linux下u盘的使用
摘要: 1、插入U盘2、输入 fdisk -l /dev/sda 查看输出结果,比如我的是这样的: # fdisk -l /dev/sda Disk /dev/sda: 131 MB, 131104768 bytes 3 heads, 32 sectors/track, 2667 cylinders Units = cylinders of 96 * 512 = 49152 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 2668 128016 6 FAT16注意:如果您的硬盘是 SCSI 接口的话,可能要将 sda 改成 sdb,阅读全文
posted @ 2011-06-08 14:09 一个人的天空@ 阅读(48) | 评论 (0) 编辑
Linux文件查找命令find,xargs详述
摘要: 目录版权声明前言:关于find命令一、find 命令格式1、find命令的一般形式为;2、find命令的参数;3、find命令选项;4、使用exec或ok来执行shell命令;二、find命令的例子;1、查找当前用户主目录下的所有文件;2、为了在当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;5、为了查找系统中所有属于root组的文件;6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.阅读全文
posted @ 2011-06-08 14:02 一个人的天空@ 阅读(81) | 评论 (0) 编辑
bash!(二)
摘要: -------------------------------------------------------------------------------- 注意: 除了以上给出的例子外,还有几种方法: lpr *doc lpr *oc lpr *c-------------------------------------------------------------------------------- 通配符 ? 除了只能匹配单个字符外,其他功能都与通配符 *相同,如果用通配符 ? 来打印前面提到的那个目录里所有扩展名是 .doc 的文件的话,键入下面的命令:lpr ch?.doc 阅读全文
posted @ 2011-06-08 13:45 一个人的天空@ 阅读(564) | 评论 (0) 编辑
bash!(一)
摘要: bash前言 本文译自《Slackware Linux Unleashed》(第三版)一书的 bash 一章,但做了一些必要的删节,并且有的地方根据实际情况作了较大的改动,必要的话请参考原文。对本文有任何问题的话请与我联系:con@nease.net简介 本文将较为详细地介绍 Linux 下最常用的 shell,bash。bash(Bourne Again Shell) 是 Linux 的缺省 shell,并被大多数用户所使用,在本文中你将学会: 什么是shell Linux上最常见的shell 命令补齐(Command-line completion)和通配 命令历史记录(Command h阅读全文
posted @ 2011-06-08 13:19 一个人的天空@ 阅读(142) | 评论 (0) 编辑
自动生成 Makefile 的全过程详解! automake/autoconf 入门
摘要: Description:automake/autoconf入门作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“makeinstal”就可以把程序安装到Linux系统中去了。这将特别适合想做开放源代码软件的阅读全文
posted @ 2010-12-22 15:16 一个人的天空@ 阅读(170) | 评论 (0) 编辑
使用 Bash shell 脚本进行功能测试[转]
摘要: 创建脚本功能测试是软件开发的一个关键部分--而已经装入Linux的Bash可以帮您轻而易举地完成功能测试。在本文中,AngelRivera将说明如何运用Bashshell脚本通过行命令来执行Linux应用程序的功能测试。由于此脚本依赖于命令行的返回码,因而您不能将这种方法运用于GUI应用程序。功能测试是开发周期的一个阶段,在这个阶段中将测试软件应用程序以确保软件的函数如预期的那样,同时能正确处理代码中错误。此项工作通常在单个模块的单元测试结束之后,在负载/重压条件下整个产品的系统测试之前进行的。市场上有许多测试工具提供了有助于功能测试的功能。然而,首先要获取它们,然后再安装、配置,这将占用您宝阅读全文
posted @ 2010-10-25 14:22 一个人的天空@ 阅读(119) | 评论 (0) 编辑
Bourne Shell及shell编程(2)
摘要: Bourne Shell及Shell编程(2)h.交互式从键盘读入数据使用read语句,其格式如下:readvar1 var2...varnread将不作变量替换,但会删除多余的空格,直到遇到第一个换行符(回车),并将输入值依次赋值给相应的变量。例:$readvar1 var2 var3Hellomyfriends$echo$var1$var2$var3Hellomyfriends$echo$var1Hello$readvar1 var2 var3Hellomydear friends$echo$var3dear friends<-输入多余变量时,输入值余下的内容赋给最后一个变量$rea阅读全文
posted @ 2010-10-25 14:21 一个人的天空@ 阅读(313) | 评论 (0) 编辑
Bourne Shell及shell编程(1)
摘要: ------------------------------------------------------------------------------Bourne Shell介绍:Bourne Shell 基础及其他很多有用的特性,shell编程及组织。主要内容:.shell基础 基本介绍,环境,选项,特殊字符.shell变量 用户定义变量,环境变量,位置变量(shell 参数).shell script编程 条件测试,循环及重复控制.shell定制1.shell基础知识 作者:Stephen Bourne 在Bell实验室开发 建议:man sh 查看相关UNIX上的改进或特性(1)s阅读全文
posted @ 2010-10-25 14:20 一个人的天空@ 阅读(978) | 评论 (0) 编辑
ed新手使用进阶全功略
摘要: 基础:正则表达式(RegularExpression)在学习sed前,首先了解RE的基本知识,大体上最基本也需要知道下面这些,如果不了解正则表达式,那么您将很难进阶引用:-錨點(anchor)用以標識RE於句子中的位置所在.常見有:^:表示句首.如^abc表示以abc開首的句子.$:表示句尾.如abc$表示以abc結尾的句子.\<:表示詞首.如\<abc表示以abc開首的詞.\>:表示詞尾.如abc\>表示以abc結尾的詞.-修飾字符(modifier)獨立表示時本身不具意義,專門用以修改前一個char.set的出現次數.常見有:*:表示前一個char.set的出現次數阅读全文
posted @ 2010-10-25 11:11 一个人的天空@ 阅读(163) | 评论 (0) 编辑
GNU hello学习笔记(1)——autoconf和automake
摘要: 什么是GNUhelloGNUhello是GNU推出的helloworld软件,就是将入门的helloworld,以正规的GNU规范来实现,从而来展示Unix-like系统下开发软件的一些常用技术和软件的组织方法。麻雀虽小,五脏俱全,GNUhello虽然只是一个helloworld,却包含了如下几项技术:Automake和Autoconf:生成编译配置脚本Gnulib:程序的基本函数库Gettext:国际化支持getopt:命令行参数支持help2man:用程序的--help选项输出生成manpageTexinfo:编写程序文档如何学习GNUhello最好的方式莫过于自己参照GNUhello弄个阅读全文
posted @ 2010-10-18 17:15 一个人的天空@ 阅读(1103) | 评论 (0) 编辑
Makefile详解
摘要: 概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列阅读全文
posted @ 2010-10-18 11:35 一个人的天空@ 阅读(118) | 评论 (0) 编辑
一些位运算技巧(二)
摘要: Findthelogbase2ofanintegerwithalookuptablestaticconstcharLogTable256[]={0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,阅读全文
posted @ 2010-01-12 23:04 一个人的天空@ 阅读(290) | 评论 (0) 编辑
一些位运算技巧(一)
摘要: http://graphics.stanford.edu/~seander/bithacks.htmlBitTwiddlingHacksBySeanEronAndersonseander@cs.stanford.eduIndividually,thecodesnippetshereareinthepublicdomain(unlessotherwisenoted)—feelfreetousethemhoweveryouplease.Theaggregatecollectionanddescriptionsare&copy;1997-2005SeanEronAnderson.Thecod阅读全文
posted @ 2010-01-12 23:01 一个人的天空@ 阅读(300) | 评论 (0) 编辑
C程序中的内存管理
摘要: 相比静态地分配内存空间,使用动态内存分配具有明显的优势:1,分配空间的大小够精确:设想一个读取用户输入行的程序,如果使用静态分配的数组作为buffer,那么,你如何确定该数组的长度呢?太大或太小都不合适.因为你无法事先知道用户输入字符串的长度.而使用动态内存分配就精准多了.2,静态分配的空间大小无法更改,而动态分配的内存大小是可调的.所以,理解C语言中的动态内存分配对于编写实用,有效,安全的程序来说必不可少.本文假设你使用C语言编程,且使用GNU/Linux系统.(其实由于现在的许多系统都是POSIX兼容的,本文的内容使用于任何操作系统,只是其中提到的某些工具仅存于GNU/Linux上.)要理阅读全文
posted @ 2010-01-12 22:58 一个人的天空@ 阅读(137) | 评论 (0) 编辑
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
摘要: C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做阅读全文
posted @ 2009-12-31 17:02 一个人的天空@ 阅读(178) | 评论 (0) 编辑
C 编程最佳实践
摘要: 本文转载自:http://www-128.ibm.com/developerworks/cn/linux/l-bppc/尽管C语言问世已近30年,但它的魅力仍未减退。C语言继续吸引着众多的人们,他们为了编写新的应用程序,或者移植或维护现有的应用程序而必须学习新技能。简介本文是为了满足开发人员的需要而写的。我们总结了一套指南,无论作为开发人员还是顾问,这些指南多年来一直都很好地指导着我们,我们把它们作为建议提供给您,希望对您的工作有所帮助。您也许不赞同其中的某些指南,但我们希望您会喜欢其中的一些并在您的编程或移植项目中使用它们.风格与指南使用一种使代码具有可读性和一致性的源代码风格。如果没有团队阅读全文
posted @ 2009-12-31 16:53 一个人的天空@ 阅读(104) | 评论 (0) 编辑
GNU/Linux平台的C程序开发及程序运行环境
摘要: 本文介绍在GNU/Linux环境下一个C程序由源代码到程序,到加载运行,最后终止的过程。同时以此过程为载体,介绍GNU/Linux平台下软件开发工具的使用。本文以我们最常见的hello,world!为例:#include<stdio.h>main(){printf(“hello,world!\n”);}C程序生成下图是一个由C源代码转化为可执行文件的过程:代码编辑:比较流行的编辑器是GNUEmacs和vim。Emacs具有非常强大的功能,并且可扩展。编译:包括编译预处理,编译,汇编,连接过程。它们都可以通过GCC来实现。关于GCC,可以参考我关于GCC的笔记。C编译器将源文件转换为阅读全文
posted @ 2009-12-31 16:51 一个人的天空@ 阅读(1150) | 评论 (0) 编辑
GCC笔记
摘要: TheHistoryofGCC1984年,RichardStallman发起了自由软件运动,GNU(Gnu'sNotUnix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植、可优化、支持ANSIC的开源C编译器。GCC最初的全名是GNUCCompiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNUCompilerCollection。这里介绍的gcc是GCC的前端,C编译器.警告信息-Wall:显示所有常用的编译警告信息。-W:显示更多的常用编译警告,如:变量未使用、一些逻辑错误。-Wconversion:警告隐式类型转换。-Wshadow:警告影子变量(阅读全文
posted @ 2009-12-31 16:20 一个人的天空@ 阅读(91) | 评论 (0) 编辑