2015年10月26日
使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,这就是正则表达式。Linux 的 grep 命令是一种查找过滤工具,用于在文件中查找指定模式的字符串,其支持正则表达式。
通配符和正则表达式的区别
在谈正则表达式之前,首先说一下通配符和正则表达式的区别,二者容易混淆。曾经我把通配符认为就是正则表达式,在本该使用统配符的地方意图使用正则表达式,由于没能达到想要的结果,这才意识到不对劲。通配符一般用于linux的shell命令中,例如:
grep hello *
这表示在当前目录下的所有文件中查找含“hello”字符串的文件的行。下面列出一些通配符的含义:
[a-z]...
阅读更多
2015年10月26日
Linux 下 find 命令用于在目录结构中查找文件,同时还可以对查找结果进行指定的操作。Find 命令具有很强大的搜索功能,可以遍历整个文件系统。所以 find 命令很耗资源,有时候甚至会耗费很长时间,因此建议把它放在后台执行。Find 命令格式如下所示:
find pathname -options [-print -exec -ok ...]
介绍一种简单易记的格式:
find <指定目录> <指定条件> <指定动作>
动作参数
-exec 命令名称 {} \;
对符合条件的文件执行所给的 unix 命令,而不询问用户是...
阅读更多
2015年10月24日
拿到一台 x86 中标麒麟的机器,需要在上边迁移一些东西。拿得到手时大致了解了一下系统,发现该系统是基于 radhat 的 release5.6 版本做的。这样的系统可以说是比较旧了,用起来是比较棘手的。不过我的工作就是这样,在及其恶劣的条件下,做一些看似可能,实际上可能,也可能不可能的迁移工作。下面是我对该机器的使用记录。
系统了解
查看操作系统详细信息:
lsb_release -a
查看操作系统发行信息:
cat /etc/*release
查看操作系统位数:
getconf LONG_BIT
安装配置Yum
在 linux 系统上,软件包之间的依赖关...
阅读更多
2015年08月20日
LLVM 是什么
LLVM 是 low level virtual machine(底层虚拟机)的简称,它是一个开源的编译器架构,已经被成功应用到多个应用领域。LLVM 的主要作用是它可以作为多种语言的后端,它可以提供可编程语言无关的优化和针对很多种CPU的代码生成功能。LLVM 核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。LLVM的项目是一个模块化和可重复使用的编译器和工具技术的集合。LLVM是伊利诺伊大学的一个研究项目,提供一个现代化的,基于SSA的编译策略能够同时支持静态和动态的任意编程语言的...
阅读更多
2015年08月16日
在没有 Python DB-API 之前,各数据库之间的应用接口非常混乱,实现各不相同。如果项目需要更换数据库时,则需要做大量的修改,非常不便。Python DB-API 的出现就是为了解决这样的问题。
Python 所有的数据库接口程序都在一定程度上遵守 Python DB-API 规范。DB-API 是一个规范,它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。由于 DB-API 为不同的数据库提供了一致的访问接口, 在不同的数据库之间移植代码成为一件轻松的事情。
模块属性
DB-API规范规定数据库接口模块必...
阅读更多
2015年08月13日
Python 中的 Decorator(装饰器) 是对一个函数或者方法的封装,从而使其可以完成一些与自身功能无关的工作。
预备知识
一切皆对象
在 Python 中,所有的一切都被视为对象,任何的变量、函数、类等都是 object 的子类。因此除了变量之外,函数和类等对象也可以被指向和传递。
>>> def foo():
... pass
...
>>> def Foo():
... pass
...
>>> v = foo
>>> v
<function foo at 0x7f457ec...
阅读更多
2015年08月08日
什么是上下文管理器? 有时候,在执行一个语句块时需要保持某种状态,并且在离开语句块后结束这种状态。例如对文件的操作,在打开一个文件进行读写操作时需要保持文件处于打开状态,而等操作完成之后要将文件关闭。所以,上下文管理器的任务是:代码块执行前准备,代码块执行后收尾。上下文管理器是在 Python 2.5 加入的功能,它能够让代码可读性更强并且错误更少。
需求的产生: 在正常的管理各种系统资源(文件、锁定和连接)中,涉及到异常时通常是个棘手的问题。异常很可能导致控制流跳过负责释放关键资源的语句。例如打开一个文件进行操作时,如果意外情况发生(磁盘已满、特殊的终端信号让其终止等),就会抛出异常...
阅读更多
2015年08月05日
Python的time模块提供了各种操作时间的功能。在大多数的编程语言中,表示时间的方法有两种,一是时间戳。即从1970年1月1日00:00:00开始按秒计算的偏移量;二是该语言自己的数据结构。Python中表示时间的数据结构元组,共有九个元素, 即:
(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
每个元素分别表示如下含义:
year (four digits, e.g. 1998)
month (1-12)
day (1-31)
hours (0-23)
minute...
阅读更多