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

教材学习内容总结

vi的基本操作
在命令行模式中
i:切换到插入模式,在目前的光标所在处插入输入的文字,已存在的文字会后退

x:删除光标所在为止的一个字符

a:切换到插入模式,并从目前光标所在为止的下一个位置开始输入文字

vim 文件名: 进入Vim编辑器

dw:从当前光标删除至下一个单词的起始处,不包括它的第一个字符

d$:从当前光标删除至行末

de:从当前光标删除至单词末尾,包括最后一个字符

0:光标移动至行的开头

$:光标移动至行的结尾

e:光标移动至所在处下一个单词尾部

ne:光标移动至所在处下n个单词尾部

w:光标移动至所在处下一个单词开头

nw:光标移动至所在处下n个单词开头

dd:删除当前行

ndd:删除光标所在处往下n行(包括自己)

u:撤销最后执行的命令,相当于windows中的ctrl+z

U:撤销对整行的修改

ctrl+r:撤销掉撤销的动作

在正常模式下修改命令的格式:

operator [number] motion

operator - 操作符,代表要做的事情,比如d代表删除

[number] - 可以附加数字,代表动作重复的次数

motion - 动作,代表在所操作的文本上的移动,例如w代表单词(word),$代表行末等等

p:将最后依次删除的内容防止光标之后。(若删除的为行,则需要将光标移至需添加处的上方。若为仅为单词或字母,则可以需要将光标移至需添加出的左方。)

r和一个字符:替换光标所在为止的字符

R:多字符替换

ce:修改文本直到一个单词的末尾(相当于删除+插入的操作)

c [number] motion

c$:修改文本直至行末

G:光标移动至文件最后一行

gg:光标移动至文件第一行

nG:光标移动至文件第n行

ctrl+g:显示当前编辑的文件名和文件中光标位置

/和一个字符串:在当前文件中查找该字符串

n:向光标所在处下方查找上一次的字符串

N:向光标所在处上方查找上一次的字符串

?相对于/为逆向查找

ctrl+0:回到之前的位置

ctrl+i:光标移动至较新的位置

%:查找配对的括号

v:进入可视模式

v+方向键:选取所需要进行操作的内容

o:在光标所在的下一行进入插入模式

O:在光标所在的上一行进入插入模式

y:复制

yw:复制一个单词

p:粘贴

[[ : 转到上一个位于第一列的"{"]] : 转到下一个位于第一列的"{"

{ : 转到上一个空行

} : 转到下一个空行

gd 转到当前光标所指的局部变量的定义
在底行模式中
输入":wq"存盘退出

输入":q!"放弃所有改动

输入":s/old/new/g" 替换old为new(整行)

输入":s/old/new" 替换old为new(第一个匹配项)

输入":#,#s/old/new/g" 替换两行之间出现的每个匹配串(#,#代表替换操作的若干行中首尾两行的行号

输入":%s/old/new/g" 替换整个文件中的每个匹配串

输入":s/old/new/gc" 找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换

输入":!+外部命令":执行外部命令 例如::!ls,:!dir

输入":w 文件名":将整个文件以文件名保存

输入":r 文件名":提取文件,并放置于光标处

输入":r 外部命令":可将外部命令所得到的结果放置光标处

输入":set ic":忽略大小写

输入":set noic":关闭忽略大小写

输入"\c":仅在依次查找时忽略字母大小写

输入":set hls is":打开高亮

*hls = hlsearch(匹配项高亮显示)

*is = insearch(查找短语时显示部分匹配)

输入":nohlsearch":关闭高亮

输入":set nu":显示行号

输入":set ai":自动缩行

输入":set ts=n":设置一个TAB键等于n个空格
gcc编译器的基本原理与gcc编译器的常用选项
GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。
编译器驱动程序
预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp(E-i)
编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl(S-s)
汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as(C-o)
链 接:gcc hello.o –o hello ;gcc -o 调用ld
运 行:在Unix外壳的命令中输入"./hello"
gcc常用选项列表
-c 只编译不连接,生成目标文件".o"
-S 只编译不汇编,生成汇编代码
-E 只进行预编译,不做其他处理
-g 在可执行预编译,不做其他处理
-o file 将file文件指定为输出文件
-v 打印处编译器内部编译各过程的命令行信息和编译器的版本
-I dir 在头文件的搜索路径列表中添加dir目录
链接器完成的两个任务:
符号解析
重定位
文件的三种形式
可重定位目标文件
可执行目标文件
共享目标文件
静态库的创建和使用
使用归档工具.ar将一些目标文件集成在一起。 《嵌入式》p64
动态库的创建和使用
使用gcc的-fPIC选项为动态库构造一个目标文件
使用-shared选项和已创建的为止无关目标代码,生成一个动态库
编译主程序,它将会链接到刚生成的动态库
gdb
gdb就是一个调试程序的工具。
b 设断点
info b 查看断点情况
run或者r 开始运行程序(若想从制定行开始,可在r后面加上行号)
bt 打印函数调用堆栈
p 查看变量值(例如p n)
c 从当前断点继续运行到下一个断点(恢复程序运行)
n 单步运行(不会进入函数,相当于Visual C++的step over)
s 单步运行(会进入函数,相当于Visual C++的step in)
quit 退出GDB
display 跟踪变量值的改变
until 跳出循环
finish 跳出函数
help 帮助
查看所载入的文件
在对文件进行编译时,一定要加上选项-g,这样编译出来的可执行代码才包含调试信息,否则之后gdb无法载入可执行文件。
断点的设置
函数断点
把函数名列在命令"b"后,即b 函数名 (例如b sum)
条件断点
b 行数或函数名 if 表达式 例如(b 10 if j==1)
行断点
break [文件名:]行号或函数名
临时断点(到达后自动删除)
tbreak [文件名:]行号或函数名
makefile基本原理及语法规范
makefile基本结构
makefile是make读入的惟一配置文件:
需要由make工具创建的目标体(target),通常是目标文件或可执行文件;
要创建的目标体所以来的文件(dependency_file);
创建每个目标体时需要运行的命令(comman),这一行必须以制表符(Tab键)开头。
格式:
target:dependency_files

command:/该行以Tab键开头/

例如:有两个文件分别为hello.c和hello.h,创建的目标体为hello.o,执行的命令为gcc,编译指令:gcc -c hello.c相对应的makefile写为:
The simplest example
hello.o:hello.c hello.h
gcc -c hello.c -o hello.o
make的使用
格式:make target
例如: make hello.o
makefile变量
三个目标体(target)
david
kang.o
yul.o
david的依赖文件就是kang.o和yul.o
makefile规则
隐含规则
模式规则
meke管理器的使用
C dir 读入指定目录下的makefile
f file 读入当前目录下的file文件作为makefile
i 忽略所有的命令执行错误
I dir 指定被包含的makefile目录
n 只打印要执行的命令,但不执行这些命令
p 显示make变量数据库和隐含规则
s 在执行命令时不显示命令
w 如果make在执行过程中改变目录,则打印当前目录名


教材学习中的问题和解决过程

暂无


本周代码托管截图

暂无


学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 10/10
第二周 0/0 1/2 10/20
第三周 0/0 1/3 10/30

参考资料

Linux基础入门
别出心裁的Linux命令学习法
深入理解计算机系统

转载于:https://www.cnblogs.com/qiwei/p/5906608.html

20145213《信息安全系统设计基础》第二周学习总结相关推荐

  1. 信息安全系统设计基础第二周学习总结

    信息安全系统设计基础第二周学习总结 学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项 ...

  2. 20135219洪韶武——信息安全系统设计基础第九周学习总结

    信息安全系统设计基础第九周学习总结 学习时间:7小时 学习内容:课本第十章 一.第十章知识点(1~6) 第一部分:文件的概念及相关操作 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络. ...

  3. 信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...

  4. 信息安全系统设计基础第九周学习总结

    第十章 系统级I/O的实践 学习目标: 代码阅读理解: 1.编译运行代码 2.使用man学习理解相关系统调用, 理解参数.返回值的含义 3.会用grep -nr xxx /usr/include 查宏 ...

  5. 20135323符运锦---信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1小时 代码:8小时 作业:4小时 博客:2小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Li ...

  6. 20135304刘世鹏——信息安全系统设计基础第一周学习总结

    第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实 ...

  7. LINUX信息安全系统设计基础第一周学习总结

     Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...

  8. 20135306-信息安全系统设计基础第一周学习总结

    第二周(9.14-9.20): 学习计时:共14小时 读书:2h 代码:4h 作业:4h 博客:4h 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3 ...

  9. 20135219洪韶武——信息安全系统设计基础第四周学习总结

    信息安全系统设计基础第四周学习总结 学习任务:教材第三章 学习时间:10小时 学习内容 一.教材知识梳理 1.程序编码与机器级代码 程序编码: gcc编译器,将源代码转化成可执行代码,C预处理器-汇编 ...

  10. 20135203齐岳 信息安全系统设计基础第四周学习总结

    20135203齐岳 信息安全系统设计基础第四周学习总结 学习计时:共17小时 读书:10 代码:1 作业:3 博客:3 一.学习目标 理解逆向的概念以及 掌握X86汇编基础,能够阅读(反)汇编代码 ...

最新文章

  1. AR行业成本拆解解析
  2. 云数据中心的网络架构
  3. html不继承父级背景色,javascript – 如何获取从父元素继承的计算背景颜色样式...
  4. java发送邮件所需jar包_javamail 发邮件所需jar 包两个 activation.jar,mail.jar | 学步园...
  5. java基础----变量与常量+作用域
  6. 黑客观察手机倾斜角度就能猜出你的密码,首次命中率高达74%!
  7. 非常好用的模糊pid温度控制算法_PID参数调试“口诀”,总结的真好!
  8. —— GPS测量原理及应用复习 ——
  9. 在c语言中下列类型属于构造地震,C语言课后习题解析及答案
  10. macOS 安卓模拟器 Genymotion 安装
  11. leetcode---栈
  12. 相册里的WEB3 Festivals香港记忆
  13. uniapp开发APP使用echart
  14. 大数据要掌握哪些语言?怎样才能学好大数据?
  15. 世界上最震撼的屏幕保护程序
  16. mysql8 内存设置_高性能的MySQL(8)优化服务器配置一内存
  17. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。
  18. 如何使用光流芯片U30实现四轴无人机悬停
  19. Linux之条件变量
  20. 苹果效应:创新已不是主流,去惊喜”才是大流行

热门文章

  1. 深入了解VPP关键技术有哪些?
  2. mybatis 业务逻辑
  3. MockWebServer--环境
  4. Android软件盘(EditText)的搜索功能
  5. 条件GAN论文简单解读
  6. 微信公众平台回复音乐
  7. Linux上FTP服务的相关配置2:搭建FTPs及虚拟账号
  8. 点评2009年PHP十大图书(2)
  9. 【数字全排列】LeetCode 31. Next Permutation
  10. 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?