随笔分类 -  Linux

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

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

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 阅读(206) 评论(0) 推荐(0)

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 阅读(323) 评论(0) 推荐(0)

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 阅读(180) 评论(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 阅读(430) 评论(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 阅读(992) 评论(0) 推荐(0)

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

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

sed命令详解
摘要:转载:http://blog.chinaunix.net/u/22677/showart_1076318.html1.简介sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本 阅读全文

posted @ 2013-04-14 14:04 liyanfasd 阅读(138) 评论(0) 推荐(0)

转载:Linux下的 .o、.a、.so文件
摘要:工程里很多函数只是有声明,找不到实现的代码。因为那些实现代码已经编译成库所以看不见,我所看见的全是一堆头文件..o、.a、.so文件都是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。优点:程序模块化,容易重新编译,方便升级。分类:静态函数库(对应.a文件)、 共享函数库(对应.so文件,类似于Windows的dll文件)、 动态加载函数库(对应.o文件,相当于Windows里的.obj文件)静态函数库特点:实际上是简单的普通目标文件的集合,在程序执行前就加入到目标程序中。优点:可以用以前某些程序兼容;描述简单;允许程序员把程序link起来而不用重新编译代码,节省了... 阅读全文

posted @ 2013-03-29 16:40 liyanfasd 阅读(207) 评论(0) 推荐(0)

Fedora 10中Qt4 Designer显示乱码问题
摘要:最近在学习嵌入式Linux的Qt,在WMware上装的Fedora 10,在装Fedora 10时几乎将所有的软件rpm包都安装上了,可是在用Qt4 Designer时,发现其显示的太不正常(没有菜单栏、属性窗口等),点击Application->Programming->Qt4 Designer显示效果如下:上网search了一下,原来是字库捣的鬼,那就修改一下显示字体吧。按照网上说的,在终端输入qtconfig-qt4,将Fonts标签页的Family改成Bitstream Charter,然后重新启动Qt4 Designer,发现还是不显示菜单栏,看来是字体没有修改成功。这种 阅读全文

posted @ 2013-03-29 15:29 liyanfasd 阅读(293) 评论(0) 推荐(0)

Linux之设备文件
摘要:设备文件时一种特殊的文件,是操作系统和外部设备进行通信的中介者,设备文件均放在/dev目录下设备文件的类型:字符设备文件和块设备文件 字符设备文件:无缓冲顺序读。字符设备文件与设备之间传输数据时,按照FIFO的顺序读写数据。 块设备文件:有缓冲随机存取。先从内存的缓冲区中读写数据,而不是直接传送数据到物理磁盘,这种方式能有效的提 高磁盘的I/O性能。设备号:主设备号和次设备 mknod命令可以创建设备文件,格式为:mknod device_file_name type major minor device_file_name:创建的设备文件的名字 type:b代表块设备文... 阅读全文

posted @ 2013-03-24 21:42 liyanfasd 阅读(177) 评论(0) 推荐(0)

对fork函数的疑惑,求解!
摘要:初学Linux,对Linux不甚理解,望高手不惜赐教。“unix编程圣经”《unix环境高级编程》讲到,当调用fork函数后,子进程会拷贝父进程除正文段的所有资源,即拷贝已初始化的数据段、.bss段、堆、栈、命令行和环境变量。小弟在main函数外定义一个int型变量val=5,程序如下: 1 #include <unistd.h> 2 #include <stdio.h> 3 4 int val = 5; 5 //int *ptr = &val; 6 int main(int argc,char *argv[]) 7 { 8 int pid; 9 if((pid 阅读全文

posted @ 2013-03-11 21:36 liyanfasd 阅读(179) 评论(0) 推荐(0)

$(@:_config=)诠释
摘要:最近研究u-boot-1.1.6顶层的Makefile时,对其中的$(@:_config=)不甚理解,在网上搜了关于这句话的诠释,不是很满意,相信很多学习ARM开发的童靴也很是迷惑,现在把我对这句话的理解写出,仅供参考,如有不妥之处,敬请指正。 格式为$(var:str1=str2)或者${var:str1=str2}是指,将变量var中的所有以str1结尾的字符用str2替换。str1必须是结尾字符(若var中有多个变量构成,且变量之间用空格连接,空格前的变量若也是str1结尾也符合条件)。举个例子var:=file1.c file2.c file3.c, 则$(var:.c=.o)的... 阅读全文

posted @ 2013-01-05 21:00 liyanfasd 阅读(494) 评论(0) 推荐(1)

导航