源码地址:https://www.kernel.org/
鸟哥教程:http://vbird.dic.ksu.edu.tw/
Linux下开发所具备的操作技巧:
shell命令行操作
<ctrl-l>: 清空屏幕, 相当于clear
<ctrl-a>: 光标跳至命令开始
<ctrl-e>: 光标跳至命令结尾
<ctrl-w>: 移除光标前的一个单词,先按ESC,再敲BACKSPACE也可达到同样效果
<ctrl-u>: 清除光标前至行首间的所有内容【可用于删除整行已录入的命令】
<ctrl-k>: 清除光标后至行尾的内容
<ctrl-y>: 粘贴或者恢复上次的删除
<ctrl-p>: 前一个命令
<ctrl-n>: 后一个命令
<ctrl-r>: 匹配历史命令,搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history当查找到的命令不是你想要的命令,你还可以继续按 Ctrl+R 来查找下一个匹配的命令
<ctrl-s>: 锁定键盘
<ctrl-q>: 解锁键盘
<ctrl-c>: 中断当前的命令并返回Shell. 【终止当前进程】
<ctrl-d>: 中断当前的通信或从文件中退出. 【退出shell】
<ctrl-z>: 暂停当前进程bg后台运行,fg转到前台. 【习惯bg,fg操作,效率大大提升】
一、文件以及内容查找
whereis <程序名称>
查找软件的安装路径
-b 只查找二进制文件
-m 只查找帮助文件
-s 只查找源代码
-u 排除指定类型文件
-f 只显示文件名
-B <目录> 在指定目录下查找二进制文件
-M <目录> 在指定目录下查找帮助文件
-S <目录> 在指定目录下查找源代码
locate <文件名称>
在文件索引数据库中搜索文件
-d <数据库路径> 搜索指定数据库
updatedb
更新文件索引数据库
find [路径] <表达式>
查找文件
-name <表达式> 根据文件名查找文件
-iname <表达式> 根据文件名查找文件,忽略大小写
-path <表达式> 根据路径查找文件
-ipath <表达式> 根据路径查找文件,忽略大小写
-amin <分钟> 过去N分钟内访问过的文件
-atime <天数> 过去N天内访问过的文件
-cmin <分钟> 过去N分钟内修改过的文件
-ctime <天数> 过去N天内修改过的文件
-anewer <参照文件> 比参照文件更晚被读取过的文件
-cnewer <参照文件> 比参照文件更晚被修改过的文件
-size <大小> 根据文件大小查找文件,单位b c w k M G
-type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
-user <用户名> 按归属用户查找文件
-uid <uid> 按UID查找文件
-group <群组名> 按归属群组查找文件
-gid <gid> 按GID查找文件
-empty 查找空文件
从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
$ grep "str" -r *
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
查找内容中带有指定字符串的文件
find . -name \* -type f -print | xargs grep ""
系统查找到httpd.conf文件后即时在屏幕上显示httpd.conf文件信息。
find/-name"httpd.conf"-ls
在根目录下查找某个文件
find . -name "test"
在某个目录下递归查找包含某个字符串的文件
grep -r "zh_CN" ./ -r
查找某软件是否安装
rpm -qa | grep xxx
动态跟踪日志文件的内容
tailf a.log
分析 do_page_fault() 的方法步骤
ps
sh
cd /proc/<pid>
cat maps
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-uclibc-objdump -D