08 2017 档案

摘要:1 递归扩展变量和简单扩展变量的区别 最大的区别在于,递归扩展变量等号右边的表达式里面的变量要等到该递归变量被用的时候再去扩展,而简单变量的话,在读取makefile的时候就已经扩展了。 并且简单扩展变量有前后关系,简单扩展变量只能用到在其前面定义的变量,而不能用到在其后面定义的变量。而递归扩展变量 阅读全文
posted @ 2017-08-31 17:28 PhoenixTree(梧桐树) 阅读(678) 评论(0) 推荐(0) 编辑
摘要:1 链接器是被符号表表所驱动的,换句话说,是被部分符号表所驱动的 这部分的符号表单独放在.dynsym段中,strip elf的符号表的时候,这个段是不会被strip的,因为动态链接的时候会用到。 .dynsym中有的符号在.symtab中都有。 2 .symtab符号表 2.1 .symtab符号 阅读全文
posted @ 2017-08-23 11:47 PhoenixTree(梧桐树) 阅读(936) 评论(0) 推荐(0) 编辑
摘要:1 开发linux driver时的调试思路 基本上是打印调试,原因很简单,方便。或者使用工具挂住cpu。 阅读全文
posted @ 2017-08-23 08:50 PhoenixTree(梧桐树) 阅读(156) 评论(0) 推荐(0) 编辑
摘要:1 本质上就是一段代码 BEGIN在程序运行前执行,END在程序运行之后执行。 2 BEGIN END的行为和所在的位置无关 也就是说,无论BEGIN和END block位于代码的哪里,最先执行的是BEGIN,最后执行的是END。 阅读全文
posted @ 2017-08-21 14:59 PhoenixTree(梧桐树) 阅读(307) 评论(0) 推荐(0) 编辑
摘要:1 partial initialization 即所谓的部分初始化。 这个时候,无论该struct变量是static的还是automic的,未显式初始化的成员都会被初始化为默认值。 阅读全文
posted @ 2017-08-19 15:30 PhoenixTree(梧桐树) 阅读(930) 评论(0) 推荐(0) 编辑
摘要:1 变量类型 1.1 static global or static .data/.bss 1.2 automic stack,its relevant to os kernel and compiler 1.3 dynamic malloc() 2 life time static as long 阅读全文
posted @ 2017-08-19 15:27 PhoenixTree(梧桐树) 阅读(128) 评论(0) 推荐(0) 编辑
摘要:1 make执行分为两个阶段 第一个阶段:读makefile并且建树阶段 第二个阶段:构建目标阶段 2 扩展的立即和推迟 在第一个阶段的扩展是立即,在第二个阶段或者在需要的时候再扩展是推迟,这里的需要的时候不光是第二个阶段,也可能在第一个阶段,比如在条件判断里面用了推迟扩展的变量,那么还是会立即扩展 阅读全文
posted @ 2017-08-18 10:55 PhoenixTree(梧桐树) 阅读(306) 评论(0) 推荐(0) 编辑
摘要:1 chroot做了什么 chroot只是修改了所有的path resolution过程,也就是说,chroot之后,所有的命令和库的根目录都是chroot到的目录。 2 chroot使用的条件 目标根目录下至少要有一套程序运行的最小环境,因为根目录修改后,命令运行时,原来的运行环境已经不可见了。 阅读全文
posted @ 2017-08-16 14:01 PhoenixTree(梧桐树) 阅读(194) 评论(0) 推荐(0) 编辑
摘要:1 xargs命令的用途 xargs擅长于将标准输入转换成命令行参数,然后交给其后的命令,默认命令是echo。 2 一次性删除某个文件夹下的所有的xxx文件名的文件 find . -name xxx | xargs rm 阅读全文
posted @ 2017-08-15 16:50 PhoenixTree(梧桐树) 阅读(160) 评论(0) 推荐(0) 编辑
摘要:1 关闭蜂鸣 在/etc/bash.bashrc中加入下面的行: setterm -blength=0 2 debian bash路径显示太长 将.bashrc中的 else PS1='${debian_chroot: + ($debian_chroot)}\u@\h:\w\$' fi 中的\w换成 阅读全文
posted @ 2017-08-15 15:41 PhoenixTree(梧桐树) 阅读(156) 评论(0) 推荐(0) 编辑
摘要:1 设置gdb参数,加一个--args就可以了 gdb --args program_to_debug arg1 arg2 ... 2 step、next、stepi、nexti 2.1 汇编指令和机器指令之间的对应关系 它们之间并不是完全是一对一关系的,也有一对多关系。 2.2 stepi和nex 阅读全文
posted @ 2017-08-14 22:05 PhoenixTree(梧桐树) 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1 保留debug sympol和优化等级设置为-O0的最简单的方法 在执行configure脚本生成Makefile文件时,使用CXXFLAGS宏,因为标准的configure脚本给了这个宏。 ../configure --prefix=xxx CXXFLAGS="-g -O0" 阅读全文
posted @ 2017-08-14 18:17 PhoenixTree(梧桐树) 阅读(495) 评论(0) 推荐(0) 编辑
摘要:1 cut命令处理的基本数据单元 同大多数文本处理工具一样,cut也是以行为基本的数据单元的。 2 cut命令的用途 顾命思议,cut就是从行中cut出满足条件的数据,返回的是满足条件的数据。 3 cut的方式 2011年08月11日 星期四20:44:52 EDT 3.1 以字节cut 以字节为单 阅读全文
posted @ 2017-08-13 13:10 PhoenixTree(梧桐树) 阅读(497) 评论(0) 推荐(0) 编辑
摘要:1 管道的本质是进程间通信的一种手段 这个命名是非常形象的,数据从管道的一端流向管道的另外一端,然后另外一个进程等在那里,只要有数据了就进行处理。 2 管道连接的多个命令是同时启动的 也就是说,管道连接的多个命令的进程之间是并行的,管道就相当于进程间通信的一个buffer,是一个生产者和消费者模式, 阅读全文
posted @ 2017-08-13 13:01 PhoenixTree(梧桐树) 阅读(377) 评论(0) 推荐(0) 编辑
摘要:1 set --的用途 给位置参数赋值。 2 $variable是如何赋值给位置参数的 假如variable=a b c?或者variable=a;b;c? 这里果然和IFS有关,默认情况下,variable=a b c,会讲a给$1,b给$2,c给$3,如果设置IFS=;,那么a b c都会给$1 阅读全文
posted @ 2017-08-13 11:13 PhoenixTree(梧桐树) 阅读(247) 评论(0) 推荐(0) 编辑
摘要:它们都表示所有的位置参数,但是,加了双引号之后,它们在位置参数传递的过程中的行为是不一样的。 “$@”,将位置参数原封不动的传给下一个命令,也就是说,把$1传给新的$1,$2传给新的$2,依此类推。 “$*”,将位置参数合并从一个位置参数,也就是说,把$1 $2 $3合并传给$1。 set -- " 阅读全文
posted @ 2017-08-13 10:17 PhoenixTree(梧桐树) 阅读(463) 评论(0) 推荐(0) 编辑
摘要:1 当exec执行命令时,会为该命令创建shell进程,并且终止老的shell进程的执行,并且保留老的shell进程的进程号 [root@localhost ~]# cat test_exec.sh #!/bin/bash echo "hello mysql" exec echo " hello o 阅读全文
posted @ 2017-08-12 22:03 PhoenixTree(梧桐树) 阅读(316) 评论(0) 推荐(0) 编辑
摘要:1 命令替换的构成 一个命令command、一种形式$() 2 怎样理解命令替换 替换的是命令本身,也就是命令出现的地方进行替换,即被替换的是$(command)。 用什么来替换呢?用执行command的标准输出来替换它。 也就是说,将命令看成是一个变量,它不同于取其它变量的值用${},要用$(), 阅读全文
posted @ 2017-08-08 09:33 PhoenixTree(梧桐树) 阅读(416) 评论(0) 推荐(0) 编辑
摘要:1 sort 1.1 sort 文本文件 最小单位是行,按照每行的首字母的ascii值排序。 2 tr 对来自标准输入的字符进行替换,字符逐个匹配,逐个处理。 tr 'xxx1' 'xxx2',将标准输入的字符中匹配到的xxx1模式转换成xxx2模式。 tr ' ' '\n',将空格替换成换行符。 阅读全文
posted @ 2017-08-08 08:55 PhoenixTree(梧桐树) 阅读(283) 评论(0) 推荐(0) 编辑
摘要:1 ${parameter%word}和${parameter%%word} ${parameter%word},word是一个模式,从parameter这个参数的末尾往前开始匹配。单个%进行最短匹配,也就是说,从后往前匹配,遇到了匹配成功立马停止,删除同word模式匹配的子串,留下未匹配的部分。 阅读全文
posted @ 2017-08-07 21:01 PhoenixTree(梧桐树) 阅读(281) 评论(0) 推荐(0) 编辑
摘要:1 awk处理的对象 1.1 record awk处理时,默认会将文件按照换行符,分隔成record。默认分隔符是换行符。 1.2 filed 对于每个record,awk自动又分隔成filed。默认分隔符是空格和tab键。 然后处理每个record中的filed的时候,可以使用$N,N从1开始,表 阅读全文
posted @ 2017-08-07 11:31 PhoenixTree(梧桐树) 阅读(305) 评论(0) 推荐(0) 编辑
摘要:1 /(^|[ \t]+)#.*/ 匹配以#开头的行,#前面有任意多个空格或者tab键也可以匹配。#后面的内容任意。 显然#这个是comment的行了。 阅读全文
posted @ 2017-08-07 11:21 PhoenixTree(梧桐树) 阅读(245) 评论(0) 推荐(0) 编辑
摘要:1 元字符 1.1星号 * 专用重复元字符,表示重复0个或者多个字符。 1.2加号 + 专用重复字符,匹配一个或者多个字符。 注意:*和+号是属于寄生元字符,也就是说,它的存在价值需要体现在它前面的字符上。它是为了表明重复它前面的字符。它单独存在是没有意义的。 1.3 中括号 [] 无论[]里面的字 阅读全文
posted @ 2017-08-07 11:19 PhoenixTree(梧桐树) 阅读(333) 评论(0) 推荐(0) 编辑
摘要:1 什么是quilt quilt是一个patch管理工具,特别适合于对多个patch进行管理。 quilt是基于gnu patch和diff的。 2 使用quilt创建一个patch 第一步,quilt new xxx.patch,创建一个patch文件。 第二步,quilt edit xxx qu 阅读全文
posted @ 2017-08-07 09:46 PhoenixTree(梧桐树) 阅读(1406) 评论(0) 推荐(0) 编辑
摘要:1 shell语句的基本构成 shell每个基本的构成元素之间都相隔一个空格。 比如[ -e file ],[、-e、file、]这四个基本元素之间都相隔了一个空格。 同样的道理[ ! -e file ],[、!、-e、file、]这五个基本元素之间都相隔一个空格。 2 shell if expre 阅读全文
posted @ 2017-08-07 07:33 PhoenixTree(梧桐树) 阅读(381) 评论(0) 推荐(0) 编辑
摘要:1 pushd和popd是bash shell的builtin命令 2 pushd和popd维护了一个目录栈 pushd xxx就是将xxx放入目录栈顶。 目录栈顶就是当前的目录。 但是cd的话,会不管这个目录栈,cd的话,对目录栈没有影响。 popd的话,就是把目录栈顶抛掉,然后栈顶目录换了。 3 阅读全文
posted @ 2017-08-04 22:05 PhoenixTree(梧桐树) 阅读(1590) 评论(0) 推荐(0) 编辑
摘要:1 debian下shell脚本的执行过程 当sh xxx.sh,或则./xxx.sh时,默认是sh解释器来执行这个shell脚本的,但是sh是到bash的软连接,所以本质上还是bash来解析这shell脚本。 2 debian下使用bash而不是用dash debian下默认是dash,需要sud 阅读全文
posted @ 2017-08-04 22:03 PhoenixTree(梧桐树) 阅读(380) 评论(0) 推荐(0) 编辑
摘要:1 这个文件的用途 这个文件是启动时自动挂载指定的磁盘或者分区到系统目录下用的,提供给mount命令用。 2 文件解析 每一行是一次mount操作。 磁盘或者分区 挂载的目录 挂载的磁盘或者分区的文件系统类型 参数 dump fsck dump是备份,一般的不需要备份。 fsck指的是是否要fsck 阅读全文
posted @ 2017-08-04 16:01 PhoenixTree(梧桐树) 阅读(156) 评论(0) 推荐(0) 编辑
摘要:1 apt-get update apt-get update并没有将远程仓库的包都下载到本地,而是通过访问远程仓库创建或者更新了远程仓库的本地索引,索引文件放在/var/lib/apt/lists目录下,这样的话,apt-get install安装的时候就可以很快的查找到所安装的包的依赖已经在服务 阅读全文
posted @ 2017-08-04 12:28 PhoenixTree(梧桐树) 阅读(327) 评论(0) 推荐(0) 编辑
摘要:1 /usr和/var /usr,只读数据。 /var,可变数据。 2 /var/lib和/var/cache /var/lib,保存应用或者系统可变的状态信息,真的只是状态信息,比如/var/lib/apt/lists目录下,执行apt-get update,只是将sources.list中指定的 阅读全文
posted @ 2017-08-04 11:57 PhoenixTree(梧桐树) 阅读(429) 评论(0) 推荐(0) 编辑
摘要:1 debian repository 参考:https://wiki.debian.org/DebianRepository 1.1 版本代号 sid,still in development,该版本和unstable版本是一样的。 版本可以从多个侧面来进行命名。 第一,从release的角度进行 阅读全文
posted @ 2017-08-02 21:50 PhoenixTree(梧桐树) 阅读(3178) 评论(0) 推荐(0) 编辑
摘要:1 debian old version cd/dvd 官网的old version image,下载速度很慢 http://cdimage.debian.org/cdimage 下面这个靠谱,是镜像,可以下载到所有的old version cd/dvd images https://ftp.gno 阅读全文
posted @ 2017-08-01 17:48 PhoenixTree(梧桐树) 阅读(349) 评论(0) 推荐(0) 编辑
摘要:1 虚拟机和machine simulator的不同 虚拟机是让多个操作系统同时共用现有的硬件架构,它不会模拟新的硬件架构。qemu这样的模拟器是模拟新的硬件架构,这个架构和host不同。 阅读全文
posted @ 2017-08-01 15:47 PhoenixTree(梧桐树) 阅读(323) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示