Linux
expleeve
当我看到现在身边的人时,我在想,自己是不是该专注于某件事了
展开
-
UNIX.shell范例精解读书笔记 第三篇
grep选项 功能 -b 在每一行前面加上其所在的块号,根据上下文定义磁盘块时会用。 -c 显示匹配到的行的数目,而不显示行的内容。 -h 不显示文件名。 -i 比较字符时忽略大小写的区别原创 2011-07-31 20:37:20 · 740 阅读 · 0 评论 -
配置symfony时,遇到的问题
<br />最近,用symfony做后台,做一个网站。<br />在ubuntu上配置好LAMP环境后,把以前在windows下面的整个包含symfony的文件夹移到linux下。<br /> <br />配置完databases.yml和conf文件后,在浏览器上输入网址不能够显示出页面。<br />奇怪的是,竟然也不报错误。<br /> <br />经过查看文档,发现运行 php 待显示文档.php 后,可以在浏览器上输出页面。<br /> <br />经过考虑,可以认定,配置无问题,但是为什么必须用原创 2010-12-31 15:16:00 · 677 阅读 · 0 评论 -
deb包 控制文件
在deb建包的过程中,或多或少要接触一些控制文件,如control、{pre|post}{inst|rm}等。这些文件其实是在建包之前就已经存在在你的机器上的,一般都在/usr/share/debhelper/dh_make/下。如果你根据需要,需要更改他们时,也存在很多模板,在/usr/share/debhelper/autoscripts下,这些脚本也会被调用到。有一些命令会自动的产生维护脚本,但如果想在已经存在的脚本中产生代码,要用到 #DEBHELPER# 这个标记符,它将被dh_install原创 2010-11-02 19:11:00 · 2168 阅读 · 0 评论 -
deb包 建包原理
首先,如果你不理解debian/rules文件,可以先查看一下《Not Your Grandpa's Debhelper》一、建立环境(设置环境变量)二、检查依赖和冲突三、用-T选择一个目标,或调用fakeroot debian/rules clean 清除生成树。四、调用dpkg-source产生源码包(如用-b,产生二进制包)五、调用debian/rules build,然后fakeroot debian/rules binary-target六、使用gpg标记.dsc文件七、调用dpkg-gencha原创 2010-11-02 18:45:00 · 6227 阅读 · 0 评论 -
deb包 安装和删除
安装的一般步骤:1、把包的控制文件解压(control.tar.gz/bz2)2、如果有另外一个版本这样的包(the same package)已经被安装,执行原有包(the old package)的prerm脚本。3、运行当前安装包的preinst脚本,当然如果有的话。4、解压包中的新文件(data.tar.gz),同时,备份原有的文件,以便当发生错误时,可以恢复。5、如果已经安装了另一个版本的这样的包,执行这个原有包的postrm脚本。注意,这个postrm脚本是在新安装包(the new packa原创 2010-11-02 14:12:00 · 2132 阅读 · 0 评论 -
deb包 内容解析
deb文件,其实是一种ar文件,但是有一个头,如果你用编辑器打开的话,可以看到使用ar解压后,可以看到里面包含一般三个文件:debian-binary 只包含一行信息 “2.0”control.tar.gz 这个是控制信息的压缩包data.tar.gz 包含一个文件系统,它是最后一个成员,在这个文件之后的成员将在安装时被省略掉这里说一下control.tar.gz中的control文件————————————————————在control 中,包含文件包的Depends:一般,原创 2010-11-02 15:58:00 · 2942 阅读 · 0 评论 -
deb包 打包过程
因为debian的包管理机制比较健全,加上官网上给出的Policy Manual很详细,打包过程容易了很多。这里主要讲一下单个二进制文件的打包过程。deb包的打包步骤:1、在源码的基础上添加适当的编译脚本(configure、makefile)。2、使用dh_make生成相应的debian包模板,并对模板进行你需要的修改(尤其是debian/rules文件)。3、使用dpkg-buildpackage等建包命令进行建包。下面通过一个实例,来具体讲解一下打包的步骤。首先创建一个hello-1.0的目录,目录名原创 2010-11-02 15:25:00 · 8371 阅读 · 2 评论 -
linux shell实现随机数
这里主要讲了三种方法,分别通过date、random、uuid来实现。*******************************************在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签。呵呵,非常简单就可以实现。那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了。现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了。好了,废话我就不说了。呵呵。 shell脚本转载 2010-10-23 23:50:00 · 1208 阅读 · 0 评论 -
Unix命令 拾遗
typecommandname>> 显示命令 commandname 的信息。aproposkey-word>> 找到和 key-word 相关的命令。 man -k key-word 也可以做到。whatiscommandname>> 显示该命令的一句话帮助。 commandname. infocommandname>> 显示很长的命令解释 commandname. (GNU style) psaux | pager>> 用 BSD 风格输出所有正在运行的进程的信息。原创 2010-10-19 15:01:00 · 368 阅读 · 0 评论 -
BASH SHELL
BASH SHELL因为命令行输入命令时,每次输入一次命令,就可以得到系统的一次响应。如果需要一次性执行多个命令,可以把命令行写到一个脚本里面,让脚本批次完成,这个脚本就是shell脚本。1、创建一个简单的shell脚本 例:#cat test.sh#! /bin/sh # this is test scriptecho “hello everybody!” 说明:linux的注释是以“#”开头的。 #!/bin/sh 告诉内核,这是一个sh脚本 # this i转载 2010-10-19 11:11:00 · 567 阅读 · 0 评论 -
linux 路由表的一点疑惑
今天遇到一个问题,关于路由表的,这里分享一下。我在linux上输入route -n 查看路由表,里面有这么两条信息: Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface219.219.218.0 0.0.0.0 255.255.255.0 U 0 0 0 eth00.0.0.0原创 2010-11-12 10:24:00 · 677 阅读 · 0 评论 -
gdb中的信号(signal)相关调试技巧
引用:--------------------------------------------------------------------------------原发贴者 Couger:我写了一个INT信号的处理函数,在处理函数里设置断点后go,但是在console下按Ctrl-C后MC并没有进入处理函数,而console下的程序也直接退出,没有给出希望的输出。------------------------------------------------------------------------转载 2011-03-18 10:03:00 · 8055 阅读 · 0 评论 -
UNIX.shell范例精解读书笔记 第二篇
正则表达式\< #词首定位符/\<love/ #匹配含有以love开头的词的行\> #词尾定位符/love\>/ #匹配含有love为结尾的词的行\(..\) #匹配稍后将要使用的字符的标签/\(lov原创 2011-07-30 11:17:18 · 687 阅读 · 0 评论 -
UNIX.shell范例精解读书笔记 第一篇
/etc/shells #本机支持的shell ps -auxpstree #显示进程的所属结构 id 查看当前shell所有权 umask 用减法得到最终权限 env 显示环境变量set 显示局部变量 每个进程都有3个文件描述符 in、out、error重定向即对其原创 2011-07-29 11:58:50 · 851 阅读 · 0 评论 -
fork/source/exec的区别
<br />fork:<br />e.g: ./1.sh<br />创建子shell,在其中运行1.sh,子shell的运行结果不会影响到当前shell。<br />e.g: <br />#$ pwd<br />/home/r<br />#$ echo "cd /etc" > 1.sh<br />#$ ./1.sh<br />#$ pwd<br />/home/r<br /> <br />source:<br />e.g: . ./1.sh<br />在当前shell运行运行1.sh,会影响到当前shell原创 2011-05-09 10:49:00 · 688 阅读 · 0 评论 -
GIT分支管理是一门艺术
1. GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层面上,我建议你保持一个中心版本库。2. 我建议,一个中心版本库(我们叫它origin)至少包括两个分支,即“主分支(master)”和“开发分支(develop)” 3. 要确保:团队成员从主分支(master)获得的都是处于可发布转载 2011-06-28 17:27:00 · 1067 阅读 · 0 评论 -
备份方案
备份要求对多台网络服务器进行备份备份存储在同一台存储服务器上备份内容包括系统文件程序及配置文件运行时产生数据完全备份描述A为网络服务器,A为存储服务器Wi为A上第i个单位时间的全部内容操作将Wi存储在A中增量备份描述A为网络服务器,A为存储服务器Wi为A上第i个单位时间的全部内容操作将原创 2011-06-27 14:26:00 · 511 阅读 · 0 评论 -
git 工具使用
git 用于管理Linux内核已经很多年了,我的git经历刚刚开始。 > 首先,安装git,不赘述。> 可以使用gitk管理 参考《看日记学git》《git users manual》 man gittutorial原创 2011-06-16 20:25:00 · 560 阅读 · 0 评论 -
Linux下C语言编程--信号处理函数
Linux下C语言编程--信号处理函数作者:hoyt前言:这一章我们讨论一下Linux下的信号处理函数.Linux下的信号处理函数:1.信号的产生2.信号的处理3.其它信号函数--------------------------------------------------------------------------------一个实例1。信号的产生Linux下的信号可以类比于DOS下的INT或者是Windows下的事件.在有一个信号发生时候转载 2011-03-23 16:41:00 · 948 阅读 · 0 评论 -
Linux平台gcc和动态共享库的基础知识
<br />对大多数不从事Linux平台C语言开发的人来说,GNU gcc的一套工具和Linux平台的共享库的使用还是十分陌生的,其实我也不太熟悉,姑且写点基础知识,权当做备忘吧。 <br /><br />一、GNU gcc的编译工具用法<br /><br />我们先来写一个简单的C程序:hello.c <br />#include <stdio.h>void print_hello() { printf("Hello World/n");}int main(int argc, c转载 2011-03-22 13:38:00 · 509 阅读 · 0 评论 -
signal 定义的平台相关性
<br />同样是Linux系统,甚至连内核版本都相同,从PC机上交叉编译到目标机上却不能用。<br /> <br />今天遇到一件怪事:<br /> 我编写了一个小程序,在PC机上用来捕捉用户定义信号SIGUSR1和SIGUSR2,用kill -SIGUSR1 pid 程序正常使用。<br /> 将其交叉编译后,移植到mipsel板上,使用kill -USR1 pid退出。<br /> <br />考虑是收到的信号不对,造成程序接收到信号后执行了默认操作(这里是终止)。<br /> <原创 2011-03-18 11:15:00 · 994 阅读 · 0 评论 -
《The FreeType 2 Tutorial》第二部分中译版
<br />FreeType 2 教程<br /><br />第二步 -- 管理字形<br /><br />介绍<br /><br />这是“FreeType2 教程”的第二部分。它将教会你如何: <br /><br />* 检索字形度量 <br />* 容易地管理字形图像 <br />* 检索全局度量(包括字距调整) <br />* 渲染一个简单的字符串(采用字距调整) <br />* 渲染一个居中的字符串(采用字距调整) <br />* 渲染一个变换的字符串(采用居中) <br />* 在需要时以预设字转载 2010-12-07 15:17:00 · 567 阅读 · 0 评论 -
《The design of FreeType 2》中译版
<br />《The design of FreeType 2》中译版 <br /><br />FreeType 2的设计 <br /><br />介绍 <br />这份文档提供了FreeType 2函数库设计与实现的细节。本文档的目标是让开发人员更好的理解FreeType 2是如何组织的,并让他们扩充、定制和调试它。 <br />首先,我们先了解这个库的目的,也就是说,为什么会写这个库: <br />* 它让客户应用程序方便的访问字体文件,无论字体文件存储在哪里,并且与字体格式无关。 <br />* 方便转载 2010-12-07 15:12:00 · 510 阅读 · 0 评论 -
VMWare三种类型的网络:NAT,Bridged,Host-only
<br />NAT<br />这 种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。<br /><br /><br />Bridged<br />这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿转载 2010-09-02 16:35:00 · 542 阅读 · 0 评论 -
警告:隐式声明与内建函数‘malloc’不兼容
添加#include #include ...原创 2010-09-02 16:31:00 · 2701 阅读 · 0 评论 -
LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED
<br />多寄存器和堆栈寻址的用途:<br />多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB;<br />堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;<br /><br /><br />弄清堆栈寻址的SP的变化:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;<br /><br /><br />IA: 每次传送后地址加4;<br />原创 2010-09-02 16:27:00 · 5999 阅读 · 0 评论 -
GNU-ld链接脚本初析
<br />1. 概论<br />每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.<br /><br />连接器有个默认的内置连接脚本, 可用ld --verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响?).<br /><br />-T选项用以指定自己的链接脚本, 它将代替默认的连接脚本转载 2010-09-02 15:51:00 · 477 阅读 · 0 评论 -
Linux makefile(二)
Makefile 总述———————一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个转载 2010-09-02 15:44:00 · 438 阅读 · 0 评论 -
linux /dev/fb no such device 解决方法
<br />1.在grub.conf中的启动项后添加 fb:on vga=0x317<br />2.如何内核安装framebuffer,重新编译内核<br />3.可以在X window下启动qvfb代替<br />4.mknod /dev/fb c 29 0添加character device文件原创 2010-09-02 16:36:00 · 3522 阅读 · 0 评论 -
重拾Samba
<br />note:on REDHAT 5.0<br />(1)read only<br />vi /etc/samba/smb.conf<br />"<br />[global]<br />security = share //share,user,server,domain<br />[read]<br /> path = /home/read<br /> writable = yes //可写<br /> guest ok = yes //允许匿名登录<br原创 2010-09-02 16:30:00 · 627 阅读 · 0 评论 -
Linux系统调用号查询
<br />系统调用号的定义在 /usr/include/asm/unistd.h 文件中 <br /> <br />//unistd.h<br /># ifdef __i386__<br /># include "unistd_32.h"<br /># else<br /># include "unistd_64.h"<br /># endif原创 2010-09-02 16:08:00 · 6601 阅读 · 0 评论 -
gdb命令小节
<br />Starting:<br /> gdb<br /> gdb <file><br /> gdb -h (lists command line options)<br />Exiting:<br /> q<br /> Ctrl-d<br /> Note: Ctrl-C does not exit from gdb, but halts the current<br /> gdb command<br />General commands<br /> r (start you原创 2010-09-02 16:00:00 · 684 阅读 · 0 评论 -
Linux makefile(一)
Makefile 介绍———————make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。2)如果这个工程的某几个C文件被修改,那么我们只编译转载 2010-09-02 15:42:00 · 374 阅读 · 0 评论 -
zImage内核镜像解压过程详解
<br />作者:刘洪涛,华清远见嵌入式学院讲师。<br />在华清远见教学过程中,发现很多学员对内核镜像解压过程比较感兴趣,但网上相关的文章往往不能把关键问题讲清楚,所以写了这篇文章。<br />本文以linux-2.6.14内核在S3C2410平台上运行为例,讲解内核的解压过程。<br />内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的过程,就不是那么转载 2010-09-02 15:58:00 · 510 阅读 · 0 评论 -
《The FreeType 2 Tutorial》第一部分中译版
<br />FreeType 2 教程<br /><br />第一步 -- 简易的字形装载<br /><br />介绍<br /><br />这是“FreeType2 教程”的第一部分。它将教会你如何: <br /><br />* 初始化库 <br />* 通过创建一个新的 face 对象来打开一个字体文件 <br />* 以点或者象素的形式选择一个字符大小 <br />* 装载一个字形(glyph)图像,并把它转换为位图 <br />* 渲染一个简单的字符串 <br />* 容易地渲染一个旋转的字符串 <转载 2010-12-07 15:14:00 · 531 阅读 · 0 评论 -
gcc 降低版本
<br />有的软件由于版本的原因,不能用太高的gcc版本去编译,需要将gcc版本降低。<br /> <br />这次,我就遇到了这种事情<br /> <br />我的ubuntu 10.04上默认安装的是gcc 4.4.3,但是我需要使用gcc 3.4的版本<br />没办法,只能降低gcc 版本了。<br /> <br />在Debian系linux 中,根据《Toy Story》(pixer出的一部动画片,就是《玩具总动员》)中的人物,从buzz for release 1.1, rex for re原创 2010-10-12 15:51:00 · 3059 阅读 · 0 评论 -
ubuntu 10.04 源,无法连接
<br />最近看了一篇《最小的BabyLinux系统制作过程详解》,挺有意思<br /> <br />我把ubuntu升级到 10.04,但是再更改sources.list的源之后,一直不能连接到更改的源上。<br /> <br />ping路由和局域网中的其他机器都能ping通,我想,可能是DNS没有配置,于是,修改了一下/etc/resolv.conf<br /> <br />再重新apt-get update,连上了,唉,太马虎原创 2010-10-12 15:18:00 · 838 阅读 · 0 评论 -
编译你自己的Linux内核(Kernel)
为什么你想要编译并安装一个完全属于你自己的内核(Kernel)? 可能是下列原因中的一种吧: 新内核提供更好的硬件支持能力。 新内核有某些特殊的优点,例如,对多处理器(SMP)更好的支持, 或者是支持USB。这些特性已经被加入到2.4.x内核中。 新内核修正了一些BUG。 你自己定制的内核去除了多余的元素,因此它更快,更稳定。 编译(或说“轧制”)你自己的内核需要对计算机(译者注:不仅要对机器本身有了解,还要对Linux系统有一定的了解)有一定的理解——这是一个难题。 因此一个Linux新手是根本不转载 2010-10-11 22:10:00 · 4161 阅读 · 0 评论 -
如何在本地使用APT
<br />有时你硬盘上有许多.deb软件包,你会希望通过APT来安装它们,以便让它去处理软件包间复杂的依赖关系。 <br />想这么做,就建一个目录,将所有你想要安装的.deb文件放入其中。例如: # mkdir /root/debs<br />你可以使用一个override文件直接去修改软件包中控制文件中的定义,使之符合你的软件储藏库管理规则。在这个覆盖文件中,你可能希望定义一些选项来覆盖那些软件包的定义,如下所示: package priority section<转载 2010-10-13 16:44:00 · 633 阅读 · 0 评论 -
vi命令拾遗
1、如何在用vi编辑一个文件时,从另一个文件复制文段?输入:sp filename 或 :vert sp filename 来打开另外一个文件。通过y10y(假设复制光标以下的10行), 通过Ctrl+w来进行窗口的切换,p到目标文件。2、如何复制多行文件到指定行下?:5,10 co 12 (把5到10行复制到12行下)原创 2010-12-01 21:46:00 · 710 阅读 · 0 评论