2013年7月1日

转载:linux shell 正则表达式(BREs,EREs,PREs)差异比较

摘要: 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表 阅读全文

posted @ 2013-07-01 08:34 liyanfasd 阅读(244) 评论(0) 推荐(0) 编辑

2013年6月21日

shell脚本异常:/bin/sh^M:bad interpreter: No such file or directory

摘要: 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。解决:1)在windows下转换:利用一些编辑器如UE工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UE):文件-->转换-->DOS到UNIX即可。 阅读全文

posted @ 2013-06-21 17:22 liyanfasd 阅读(191) 评论(0) 推荐(0) 编辑

2013年6月20日

Linux中的Kconfig及Makefile

摘要: linux-2.6内核源码树的目录下都有两个文档 Kconfig 和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了 所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这 个.config,就知道了用户的选择。上面的内容说明了:Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,能够修改Kconfig,这样就能够选择这个驱动,假如想使这个驱动被编译,要修改Makefile。 阅读全文

posted @ 2013-06-20 23:18 liyanfasd 阅读(292) 评论(0) 推荐(0) 编辑

转载:Linux文件之/etc/passwd和/etc/shadow

摘要: 1./etc/passwdpasswd文件是以行为单位的配置文件,每行定义系统上的一个用户,行内分为字段,字段之间由一个冒号隔开。这些字段依次为:用户名:密码:用户ID:主要组ID:GECOS:主目录:登录shell字段解释:用户名:就是一个用户名,登录时候用的密码:在旧的UNIX系统上,这个字段含有用户的加密密码,为了安全性,现在的linux均显示为x或*号用户ID:linux内核用于识别用户的一个整数ID主要组ID:linux内核用于识别用户主要组的一个整数IDGECOS:用户全名,安装linux时如果不输入全名,则显示为跟用户名一样,如果输入,则显示为全名(不可用于登录)主目录:用户登录 阅读全文

posted @ 2013-06-20 00:59 liyanfasd 阅读(314) 评论(0) 推荐(0) 编辑

2013年6月19日

Linux系统vi命令

摘要: vi 命令在Linux/unix中是使用频率很高的命令,下面我们一起学习一下吧。1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作。等按下‘i,I,o,O,a,A,r,R’等 字母之后才能进入编辑模式.通常在linux中,按下上述字母时,左下方会出现'INSERT'或者‘REPLACE’字样,才可以 输入任何文字到文件中.要回到一般模式,按下[ESC]键即可. c) 命令行模式:在一般模式中,输入“: 或者/或者?”,即可将光标移动到最下面一行,在该模式下,您可以搜索 阅读全文

posted @ 2013-06-19 20:54 liyanfasd 阅读(166) 评论(0) 推荐(0) 编辑

Linux 为什么要用字符 ~ 来表示 home 目录

摘要: 在Unix风格的操作系统里(包括BSD, GNU/Linux 和 Mac OS X),通常用波浪号“~”来表示当前用户的主目录(home目录):例如,如果当前用户的home目录是/home/dir,那么,输入 cd 或 cd ~ 或 cd /home/dir或 cd $HOME 都是等效的。这种习惯源自于20世纪70年代流行的Lear-Siegler ADM-3A终端机,这种机器上波浪号和“home”键(用于把光标移动到最左端)正好在同一个键上。下面是Lear-Siegler ADM-3A终端机的一些照片:下面是Lear-Siegler ADM-3A终端机上的键盘照片:vi中的HJKL代表的方 阅读全文

posted @ 2013-06-19 20:29 liyanfasd 阅读(396) 评论(0) 推荐(0) 编辑

Linux下用inode删除文件

摘要: Linux 下有时候某些文件无法使用 rm 直接删除, 比如该文件的文件名含有终端不能正确显示的字符、文件名含有特殊字符等使用ls -li命令可以查看某文件所对应的inode号文件test对应的inode号为516327用inode号删除指定的文件命令如下:find dir -inum inode_num -delete当然如果该文件夹下没有别的文件. 可以直接 rm -rf * 删除,但是如果有别的不想删除的. 就只能通过 inode 删除了. 阅读全文

posted @ 2013-06-19 08:55 liyanfasd 阅读(911) 评论(0) 推荐(0) 编辑

2013年6月5日

转载:linux进程的休眠(等待队列)

摘要: 当进程以阻塞的方式通信,在得到结果前进程会挂起休眠。为了将进程以一种安全的方式进入休眠,我们需要牢记两条规则:一、永远不要在原子上下文中进入休眠。二、进程休眠后,对环境一无所知。唤醒后,必须再次检查以确保我们等待的条件真正为真简单休眠完成唤醒任务的代码还必须能够找到我们的进程,这样才能唤醒休眠的进程。需要维护一个称为等待队列的数据结构。等待队列就是一个进程链表,其中包含了等待某个特定事件的所有进程。linux维护一个“等待队列头”来管理,wait_queue_head_t,定义在<linux/wait.h>struct __wait_queue_head {wq_lock_t lo 阅读全文

posted @ 2013-06-05 11:33 liyanfasd 阅读(258) 评论(0) 推荐(0) 编辑

2013年6月1日

单件模式

摘要: 1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 class Singleton{ 7 8 public: 9 Singleton(){} 10 Singleton( const Singleton& ){} 11 ~Singleton(){} 12 13 public: 14 static bool CreateSingleton( void ); 15 static void ReleaseSingleton( v... 阅读全文

posted @ 2013-06-01 15:02 liyanfasd 阅读(150) 评论(0) 推荐(0) 编辑

2013年5月10日

转:把二元查找树转变成排序的双向链表

摘要: // 1:构造二叉查找树;// 2:中序遍历二叉查找树,因此结点按从小到大顺序访问,假设之前访问过的结点已经调整为一个双向链表,那么// 只需要将当前结点连接至双向链表的最后一个结点即可,访问完后,双向链表也就调整完了#include <iostream>using namespace std;struct BSTreeNode{ int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of node BSTreeNode *m_pRight; // right child of node};void... 阅读全文

posted @ 2013-05-10 09:22 liyanfasd 阅读(152) 评论(0) 推荐(0) 编辑

导航