摘要: Jenkins入门系列的文章,快速地了解和使用Jenkins。阅读全文
posted @ 2011-11-23 12:38 iTech 阅读(2955) 评论(2) 编辑
摘要: SCM软件配置管理阅读全文
posted @ 2011-08-26 15:05 iTech 阅读(647) 评论(0) 编辑
摘要: 软件构建发布自动化阅读全文
posted @ 2011-07-25 17:10 iTech 阅读(657) 评论(0) 编辑
摘要: Python 学习总结阅读全文
posted @ 2011-01-31 14:25 iTech 阅读(1465) 评论(3) 编辑
摘要: 转自:http://www.ruanyifeng.com/blog/2011/12/inode.htmlhttp://blog.s135.com/post/295/http://hi.baidu.com/leejun_2005/blog/item/d9aa13a53b3af6e99152ee7e.html一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个&q阅读全文
posted @ 2012-05-15 21:31 iTech 阅读(94) 评论(0) 编辑
摘要: http://hyperpolyglot.org/scripting比较csh+perl+python csh perl(1987) python(1991) 基础 ...阅读全文
posted @ 2012-04-28 13:03 iTech 阅读(218) 评论(0) 编辑
摘要: 原文:http://www.textfixer.com/resources/css-tables.php#css-table01一个像素边框的表格: Info Header 1Info Header 2Info Header 3 Text 1A Text 1B Text 1C Text 2A Text 2B Text 2C ...阅读全文
posted @ 2012-04-25 21:49 iTech 阅读(357) 评论(0) 编辑
摘要: 经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如:修改前:[大家网]Mac OS X for Unix Geeks[www.TopSage.com].mobi修改后:Mac OS X for Unix Geeks.mobipython代码如下importosimportredefrename_dir(dir,regex,f):ifnotos.path.isdir(dir)ornotos.path.exists(dir):print("Theinputisnotonedirectoryor阅读全文
posted @ 2012-04-22 10:06 iTech 阅读(375) 评论(0) 编辑
摘要: 一 查看workspace sync到的changelistperforce的workspace其实是一些特定版本的文件的结合,相比只将workspace对应到某个特定的changelist,此方法更灵活。changelist和文件间的关系为:每个changelist其实是某些特定版本文件的集合,但是并不是所有的版本的文件结合都对应到一个changelist。perforce允许用户将workspace同步到文件的某些特定版本,不一定对应一个chagnelist。使用如下三步来确定workspace的最新状态p4 changes 命令可以查看workspace中文件集合所对应的最高chagne阅读全文
posted @ 2012-04-21 12:44 iTech 阅读(225) 评论(0) 编辑
摘要: Linux任务前后台的切换Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的进程n到前台来 4. bg %n 让进程n到后台去; PS:"n"为jobs命令查看到的job编号,不是进程编号. fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的.一、& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行二、ctrl + z 可以将一个正在前台执行的命令放到后台阅读全文
posted @ 2012-04-19 18:09 iTech 阅读(269) 评论(0) 编辑
摘要: 一 进程的uid和euid转自:http://bbs.linuxpk.com/thread-39597-1-1.htmllinux系统中每个进程都有2个ID,分别为用户ID(uid)和有效用户ID(euid),UID一般表示进程的创建者(属于哪个用户创建),而EUID表示进程对于文件和资源的访问权限(具备等同于哪个用户的权限)。C语言中,可以通过函数getuid()和geteuid()来获得进程的两个ID值。当一个用户登陆系统时,系统会将UID和EUID都赋值为/etc/passwd文件中的UID,一般情况下2个ID是相同的,但是某些情况下会出现2个ID不同的情况。gid和egid同理。下面一阅读全文
posted @ 2012-04-01 17:08 iTech 阅读(343) 评论(0) 编辑
摘要: 转自:http://www.mike.org.cn/articles/linux-about-gcc-glibc-and-binutils-the-relationship-between-modules/一、关于gcc、glibc和binutils模块之间的关系 1、gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等。 2、binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态..阅读全文
posted @ 2012-03-31 13:44 iTech 阅读(308) 评论(0) 编辑
摘要: 一 安装perl模块到非自定义目录How do I get MakeMaker and Module::Build to install to the same place?Module::Build, as of 0.28, supports two ways to install to the same location as MakeMaker.1) Use INSTALL_BASE / --install_baseMakeMaker (as of 6.31) and Module::Build (as of 0.28) both can install to the same loca阅读全文
posted @ 2012-03-26 18:44 iTech 阅读(311) 评论(0) 编辑
摘要: 转自:http://www.cnblogs.com/sunblackshine/archive/2011/08/25/2152962.html+http://easwy.com/blog/使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码。关键词: vim, cscope, ctags, tags1. 查看vim是否支持cscope $ vim --version | grep cscope2. 编译支持cscope的VIM(--enable-cscope) # USE="bash-completion cscope n阅读全文
posted @ 2012-03-23 18:55 iTech 阅读(422) 评论(0) 编辑
摘要: kill命令用于终止指定的进程(terminate a process),是Unix/Linux下进程管理的常用命令。通常,我们在需要终止某个或某些进程时,先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令的另外一个用途就是向指定的进程或进程组发送信号(The command kill sends the specified signal to the specified process or process group),或者确定进程号为PID的进程是否还在。比如,有许多程序都把SIGHUP信号作为重新读取配置文件的触发条件。一 阅读全文
posted @ 2012-03-05 18:06 iTech 阅读(437) 评论(0) 编辑
摘要: 转自:http://coanor.blog.hexun.com/38241166_d.html1.简介只要你在Unix环境中写过程序,你必定会邂逅神秘的Lex&YACC,就如GNU/Linux用户所熟知的Flex&Bison,这里的Flex就是由Vern Paxon实现的一个Lex,Bison则是GNU版本的YACC.在此我们将统一称呼这些程序为Lex和YACC.新版本的程序是向上兼容的(译注:即兼容老版本),所以你可以用Flex和Bison来尝试下我们的实例.这些程序实用性极广,但如同你的C编译器一样,在其主页上并没有描述它们,也没有关于怎样使用的信息.当和Lex结合使用时,阅读全文
posted @ 2012-03-04 22:33 iTech 阅读(647) 评论(1) 编辑
摘要: 文章原始出处和作者信息及本声明http://xuev.blogbus.com/logs/37005042.html====== lsof简介 ======lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本阅读全文
posted @ 2012-03-04 22:01 iTech 阅读(695) 评论(0) 编辑
摘要: 如果想在关闭ssh连接后刚才启动的程序继续运行怎么办,可以使用nohup。但是如果要求第二天来的时候,一开ssh,还能查看到昨天运行的程序的状态,然后继续工作,这时nohup是不行了,需要使用screen来达到这个目的。一 nohup问题1为什么ssh一关闭,程序就不再运行了?元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。在Linux/Unix中,有这样几个概念:进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(se阅读全文
posted @ 2012-03-04 21:57 iTech 阅读(415) 评论(0) 编辑
摘要: 一 xargs在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像find的-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。来看看xargs命令是如何同find命令一起使用的,并给出一些例子。在阅读全文
posted @ 2012-03-02 16:48 iTech 阅读(346) 评论(0) 编辑
摘要: Perforce2012新特征=20个用户免费+云1)免费版本最多支持20个users和20个clients了。相比以前的2个users和4个clients确实可以在小的产品中使用了。2)现在是一个云的时代,perforce公司提供源代码云也不为奇怪,不过云的安全还是重中之重。现在很多的公司都在用amazon的虚拟机和存储了,估计离源代码外包管理也不远了。3)stream,对branch的更高的抽象。完!阅读全文
posted @ 2012-02-24 13:49 iTech 阅读(320) 评论(0) 编辑
摘要: 转自:中国IT实验室Quota使用的方面很广,不过,一般的用途有以下这些:限制某一群组所能使用的最大磁盘配额(使用群组限制):你可以将你的系统上的用户分门别类,有点像是目前很流行的付费与免付费会员制的情况,你比较喜好的那一群的使用配额就可以给高一些!呵呵!^_^限制某一用户的最大磁盘配额(使用用户限制):在限制了群组之后,您也可以再继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配!以Link的方式,来使邮件可以作为限制的配额(更改/var/spool/mail这个路径):如果是分为付费与免付费会员的『邮件主机系统』,是否需要重新再规划一个硬盘呢?也不需要啦!直接使用Link的方式指阅读全文
posted @ 2012-02-24 13:14 iTech 阅读(408) 评论(1) 编辑
摘要: 1)一些常用的Vim配置,在~/.vimrc中syntax on 支持语法高亮set nu 显示行号set nonu 不显示行号set ai 设置自动缩进set shiftwidth=4 设置自动缩进 4 个空格, 当然要设自动缩进先.set sts=4 即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.set tabstop=4 实际的 tab 即为 4 个空格, 而不是缺省的 8 个.set expandtab 在输入 tab 后, vim 用恰当的空格来填充这个 tab.:set hls 打开搜索高亮:set nohls...阅读全文
posted @ 2012-02-22 15:32 iTech 阅读(423) 评论(0) 编辑
摘要: 在*unix系统中,常用的shell有sh,bash,csh/tcsh, ksh.sh来自于systemV的Unix,是传统的Unix的shell,直到现在很多的系统管理员仍然喜欢使用sh。bash来自于BSD Unix,语法非常类似于C语言,所以通常有C/C++编程背景的开发人员最喜欢使用。ksh是对sh的扩展,且吸收了csh的一些有用的功能,但是由于开始ksh的license是AT&T,所以后来出现了很多的ksh的开源版本,例如mksh,pdksh等。bash是现在很多Linux的发行版中默认的shell,综合了其他shell的很多优点。下面描述csh的一些基本的语法(在sh环境中阅读全文
posted @ 2012-02-21 13:34 iTech 阅读(382) 评论(0) 编辑
摘要: 使用wget可以将在线的网站下载到本地。如下实例下载在线的电子书http://web2py.com/books/default/chapter/29到本地目录C:\D\web2pybooken。1) wget下载网站set LOCAL-DIR=C:\D\web2pybookenset WEBSITE-URL=http://web2py.com/books/default/chapter/29wget --mirror --page-requisites --convert-links --no-host-directories --html-extension -P %LOCAL-DIR% %阅读全文
posted @ 2012-02-18 22:07 iTech 阅读(402) 评论(0) 编辑
摘要: rlogin : 登陆远程的Linux系统,例如 rlogin -l userid hostname。rsh:在远程的Linux系统上执行命令。如果没有指定命令,则相当于rlogin登陆到远程的系统。ssh: 使用ssh加密协议来登陆远程Linux系统或在远程的系统上执行命令,可以代替rlogin和rsh。rcp 或 scp : 用来实现Linux系统间文件的copy。完!阅读全文
posted @ 2012-02-15 18:25 iTech 阅读(260) 评论(0) 编辑
摘要: 一 Gird EngineGird Engine 指的是SGE(Sun Gird Engine),是一个开源免费的batch-queuing 系统用来对分布式资源的管理。典型地他将被应用于计算机farm和高性能计算cluster,用来接收,schedule,分发和管理远程和分布式的大量的独立,并行的非交互的jobs,他也可以管理和schedule分布式资源的分配,例如处理器,内存,硬盘和软件license。简单地说就是将任务打包为job分发到计算机集中执行。在Sun后来被Oracle收购后,从SGE延伸的开源产品为:http://gridscheduler.sourceforge.net/基于阅读全文
posted @ 2012-02-09 19:27 iTech 阅读(259) 评论(0) 编辑
摘要: 以下基本上是重装系统必须安装的软件:浏览器: chrome翻译: 有道词典输入法:搜狗输入法文本编辑:Notepad++截图且自动加水印:SPX Bundle思维导图:xmindUML画图: starUML虚拟系统: virtualbox文件锁检测:unlocker压缩解压:7zip +IZArc系统explorer增强 :StExBar脚本语言:python+perl虚拟光驱:deamon lite远程桌面管理:RemoteDesktopManager远程桌面:putty不同平台共享:winscp正则表达式测试工具:Regex Match Tracer系统增强工具:SysinternalsS阅读全文
posted @ 2012-01-31 14:53 iTech 阅读(61) 评论(1) 编辑
摘要: 参考:http://wiki.python.org/moin/ParallelProcessinghttp://wiki.python.org/moin/DistributedProgramming分布式:http://www.celeryproject.org/http://www.parallelpython.com/http://code.google.com/p/distributed-python-for-scripting/http://code.google.com/p/superpy/http://code.google.com/appengine/cloud:http://w阅读全文
posted @ 2012-01-10 18:36 iTech 阅读(582) 评论(0) 编辑
摘要: 一 picklepickle模块用来实现python对象的序列化和反序列化。通常地pickle将python对象序列化为二进制流或文件。python对象与文件之间的序列化和反序列化:pickle.dump()pickle.load()如果要实现python对象和字符串间的序列化和反序列化,则使用:pickle.dumps()pickle.loads()可以被序列化的类型有:* None,True 和 False;* 整数,浮点数,复数;* 字符串,字节流,字节数组;* 包含可pickle对象的tuples,lists,sets和dictionaries;* 定义在module顶层的函数:* 定阅读全文
posted @ 2012-01-10 17:49 iTech 阅读(333) 评论(0) 编辑
摘要: 一 poolmultiprocessing.pool也就是传说中的进程池,pool的构造如下multiprocessing.Pool([processes[, initializer[, initargs[, maxtasksperchild]]]]) 中,processes表示pool中进程的数目,默认地为当前CPU的核数。initializer表示新进程的初始化函数。initargs表示新进程的初始化函数的参数。maxtasksperchild表示每个进程执行task的最大数目。apply()用来为pool中的进程赋予task。map()用来循环地为pool中的进程赋予tasks。clos阅读全文
posted @ 2012-01-10 16:12 iTech 阅读(245) 评论(0) 编辑
摘要: Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装。使用multiprocessing.Manager可以简单地使用这些高级接口。Manager()返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过proxies来访问。从而达到多进程间数据通信且安全。Manager支持的类型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array。1) Manager的dic阅读全文
posted @ 2012-01-10 14:49 iTech 阅读(321) 评论(0) 编辑
摘要: 同步的方法基本与多线程相同。1) Lock当多个进程需要访问共享资源的时候,Lock可以用来避免访问的冲突。importmultiprocessingimportsysdefworker_with(lock,f):withlock:fs=open(f,"a+")fs.write('Lockacquiredviawith\n')fs.close()defworker_no_with(lock,f):lock.acquire()try:fs=open(f,"a+")fs.write('Lockacquireddirectly\n阅读全文
posted @ 2012-01-10 13:57 iTech 阅读(356) 评论(0) 编辑
摘要: 多进程通信queue和pipe的区别: pipe用来在两个进程间通信。queue用来在多个进程间实现通信。 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法。1)Queue & JoinableQueuequeue用来在进程间传递消息,任何可以pickle-able的对象都可以在加入到queue。multiprocessing.JoinableQueue 是 Queue的子类,增加了task_done()和join()方法。task_done()用来告诉queue一个task完成。一般地在调用get()获得一个task,在task结束后调用task_done()阅读全文
posted @ 2012-01-09 16:38 iTech 阅读(389) 评论(0) 编辑
摘要: 由于CPython实现中的GIL的限制,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况我们需要使用多进程。 这也许就是python中多进程类库如此简洁好用的原因所在。在python中可以向多线程一样简单地使用多进程。一 多进程process的成员变量和方法:>>class multiprocessing.Process([group[, target[, name[, args[, kwargs]]]]]) 来的定义类似于threading.Thread。target表示此进程运行的函数,args和kwargs表示tar阅读全文
posted @ 2012-01-06 16:53 iTech 阅读(500) 评论(1) 编辑