一.vim:
1.编码风格与 indent 命令
2.切换到粘贴模式解决 Insert 模式自动缩进的问题 set paste/set nopaste
3.全局替换某个变量名 %s#old_variable#new_variable#g 和 %s#\<old_variable\>#new_variable#g
4.在编辑模式下查看手册 shift+k
5.删除空行 g/^$/d或%s#^\n##g。 多个空行转换为一个可以输入 g/^\n$/d 或者 %s#^\n$##g
二. Gcc 编译的背后
1.预处理
include/define/编译条件 处理。
gcc 查看编译细节-v;参数 -E, -S, -c, -o对应工具cpp, cc1, as, ld
2.编译
语法检查,编译器优化,生成汇编语言文件。
3.汇编
生成目标代码(可重定向文件elf)
1.工具 objdump , objcopy , nm , strip, readelf
2.ELF文件结构及三种ELF文件(目标文件/静态库、动态库、可执行文件)区别
3. ELF文件结构:ELF文件头,程序头表(段表),section1 section2...,section headers table节区头表
4.链接
三. 程序执行
命令行接口bash,bash的启动,命令的解析。
1. /bin/bash ->app
2. /bin/login ----/etc/passwd --execve--->/bin/bash
3. /sbin/init(linux)默认启动的第一个程序---> /sbin/getty ---> /etc/login
4.命令解析--管道、fd的复制