20145225 《信息安全系统设计基础》第2周学习总结

20145225 《信息安全系统设计基础》第2周学习总结

一、vim编辑器

在命令行中输入vimtutor,跟着教程练习了几遍,对vim编辑器有了初步的了解,但以后还需要常用才能熟练使用。

简单操作:

i → Insert 模式,按 ESC 回到 Normal 模式.

x → 删当前光标所在的一个字符。

:wq → 存盘 + 退出 (:w 存盘, :q 退出)  

dd → 删除当前行,并把删除的行存到剪贴板里

p → 粘贴剪贴板 hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。

:help <command→ 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。

进阶操作:

各种插入模式

a → 在光标后插入

o → 在当前行后插入一个新行

O → 在当前行前插入一个新行

cw → 替换从光标所在位置后到一个单词结尾的字符

简单的移动光标

0 → 数字零,到行头

^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)

$ → 到本行行尾

g_ → 到本行最后一个不是blank字符的位置。

/pattern → 搜索 pattern 的字符串(如果搜索出多个匹配,可按n键到下一个)

拷贝/粘贴 (p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)

P → 粘贴

yy → 拷贝当前行当行于 ddP

Undo/Redo

u → undo

<C-r> → redo

打开/保存/退出/改变文件(Buffer)

:e <path/to/file> → 打开一个文件

:w → 存盘

:saveas <path/to/file> → 另存为 <path/to/file>

:x, ZZ 或 

:wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)

:q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。

:bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。

 

 

二、GCC

  • 预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
  • 编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
  • 汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
  • 链 接:gcc hello.o –o hello ;gcc -o 调用ld

静态库和动态共享库的代码区别:

创建

静态库的创建需要调用归档工具ar:
gcc -c addvec.c multvec.c
ar rcs libvector.a addvec.o multvec.o

而动态库只需要gcc即可:
gcc -shared -fPIC -o libvector.so addvec.c multvec.c

链接

静态库的链接需要先编译生成.o文件,然后再和库链接,并且需要staric命令构建一个完全链接的可执行文件:
gcc -02 -c main2.c
gcc -static -o p2 main2.o ./libvector.a

动态库可以直接把.c文件和库文件链接
gcc -o p2 main2.c ./libvector.so

练习:

建立静态库,并命名为math1.a

链接main.o和静态库math.a(上面已经把main.c编译成main.o)

运行:

建立动态库,并命名为math2.so

运行:

编写makefile:
静态库——math3:

动态库math4:

 

代码托管

https://git.oschina.net/nizaikanwoba/xinxianquanxitongshejijichu/tree/master

 

参考资料

posted on 2016-09-25 23:03  20145225唐振远  阅读(186)  评论(1编辑  收藏  举报

导航