信息安全系统设计基础第二周学习总结(一)

Linux下C语言编程基础实验报告


学习任务


1. 熟悉Linux系统下的开发环境

2. 熟悉vi的基本操作

3. 熟悉gcc编译器的基本原理

4. 熟练使用gcc编译器的常用选项

5 .熟练使用gdb调试技术

6. 熟悉makefile基本原理及语法规范

7. 掌握静态库和动态库的生成


学习内容


1. 快捷键

2. vim

3. gcc

4. gdb

5. make与makefile


学习过程记录

第一部分

第一讲第一节:移动光标

H左、j下、k上、l右

第一讲第二节:VIM的进入和退出

<ESC>键:确保处在正常模式

:q!退出编辑器(丢弃改动)

第一讲第三节:文本编辑之删除

X键;删除光标所在位置的字符。

第一讲第四节:文本编辑之插入

i键:在光标处插入文本。

第一讲第五节:文本编辑之添加

A键:行末添加文本。

第一讲第六节:编辑文件

使用一个可以改动的文件(进入vim编辑器):shell中输入:vim  tutor<回车>

Vim:启动vim编辑器;tutor:希望编辑的文件的名字

wq<回车>:保存退出

第二讲第一节:删除类命令

dw:删除光标所在的单词

第二讲第二节:更多删除命令

S$:从光标处删至当前行尾。(从当前位置之后整行)

第二讲第三节:关于命令和对象


操作符


动作


d(删除操作符)


W从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符


E从当前光标当前位置直到单词末尾,包括最后一个字符


$从当前光标当前位置直到当前行末

第二讲第四节:使用计数指定动作

在动作前加入数字使它重复那么多次

如:2w(光标向前移动两个单词)、3e(光标向前移动到第三个单词的末尾)、0(移动光标到行首)

第二讲第五节:使用计数以删除更多

在使用操作符时输入数字可以使它重复多次

如:d2w(删除两个大写字母单词)

正常模式下修改命令的格式:operator(操作符)  [number](可以附加的数字,代表次数)  motion(动作)

第二讲第六节:操作整行

dd:删除整个当前行(2dd:删除两行)

第二讲第七节:撤销类命令

U:撤销对整行的修改;u:撤销最后执行的命令

Ctrl +r:撤销之撤销

第三讲第一节:置入类命令

  1. 输入dd将改行删除,会将该行保存在vim的一个寄存器中
  2. p键:将最后一次删除的内容置入光标之后

第三讲第二节:替换类命令

r键:替换光标所在位置的字符

第三讲第三节:更改类命令

ce键:更改文本直到一个单词的末尾(cw键类似)

第三讲第四节:使用c更改更多

更改类操作符操作格式:c  [number]  motion

如:cw;更改单词;c$更改光标之后整行

第四讲第一节:定位及文件状态

  1. ctrl+g:显示一个状态信息行,显示当前编辑的文件名和文件中光标位置(行号)
  2. G键:使当前光标直接跳转到文件最后一行。

gg键:使当前光标直接跳转文件第一行。

  1. 输入之前行号+G,回到之前行

第四讲第二节:搜索类命令

/+字符串:在当前文件中查找该字符串

  1. n:查找同上一次的字符串,可在同一方向上查找;
  2. N:向相反方向查找同上一次的字符串
  3. 用?代替/:逆向查找字符串
  4. ctrl+O:回到之前的位置;

ctrl+I:跳转到较新的位置

查找到达文件末尾后,会自动从文件头部继续查找

第四讲第三节:配对括号的查找

%:查找配对的括号),],}

(光标应该在所需查找的括号处)

第四讲第四节:替换命令

在一行内替换头一个字符串old为新的字符串new,输入  :s/old/new

在一行内替换所有的字符串old为新的字符串new,输入  : s/old/new/g

在两行内替换头一个字符串old为新的字符串new,输入  :#,#s/old/new/g(#,#代表的是替换操作的若干行中收尾的行号)

在文件内替换头一个字符串old为新的字符串new,输入  :%s/old/new/g

进行全文替换是询问用户确认每个替换需添加c标志      :%s/old/new/gs

第五讲第一节:在VIM内执行外部命令的方法

:命令:光标移动到屏幕底部以输入命令

然后输入!命令:允许执行外部的shell命令

如::!ls;:!dir

第五讲第二节:关于保存文件的更多信息

:w TEST:以TEST为文件名保存整个文件

:!del TEST:在MS-DOS下删除TEST文件

:!rm TEST:在unix下删除TEST文件

第五讲第三节:一个具有选择性的保存命令

可视模式下保存文件的部分内容:v  motion:w  FILENAME

  1. 移动光标
  2. 按v键,移动光标,文本高亮
  3. 按:键,屏幕底部出现:’<,’>
  4. 输入 w  TEST(TEST是未被使用的文件名),回车
  5. 使用:!dir或:!ls查看存储的文件

第五讲第四节:提取和合并文件

向当前文件中插入另外的文件的内容,输入:r FINENAME

如:r  TEST将前面创建的名为TEST的文件提取进来,放在光标后面

:r!dir可以读取dir命令的输出并将其放置在当前文件的光标位置后面

第六节第一讲:打开类命令

O:在光标的上方打开新的一行并进入插入模式

o:在光标的下方打开新的一行并进入插入模式

第六节第二讲:附加类命令

a:在光标所在位置之后插入文本

A:在光标所在行的行末之后插入文本

e:可以使光标移动到单词末尾

第六节第三讲:另外一个置换类命令的版本

大写R将进入替换模式,可连续替换多个字符,直到回到正常模式

第六节第四讲:复制粘贴文本

使用v进入可视模式,然后使用操作符y复制文本,使用p粘贴文本。

第六节第五讲:设置类命令选项

输入:set  xxx可以设置xxx选项:

‘ic’ ‘ignorecase’   查找时忽略字母大小写

‘is’ ‘incsearch’    查找短语时显示部分分配

‘hls’ ‘hlsearch’    高亮显示所有的匹配短语

选项名可以用完整版本,也可以用缩略版本

禁用忽略大小写::set  noic

移除匹配项的高亮显示::nohlsearch

仅在一次查找时忽略字母大小写:\c:/ignore\c<回车>

第七节第一讲:获取帮助信息

启动帮助系统:

1.<help>键

2.<F1>键

3.help<回车> 如:输入help cmd可以找到cmd命令的帮助。

输入CTRL-W可以在窗口之间跳转

输入:q<回车>可以关闭帮助窗口

第七节第二讲:创建启动脚本

  1. 开始编辑vimic文件::edit ~/.vimic  (Unix系统)
  2. 读取vimic示例文件的内容::r $VIMRUNTIME/vimic_example.vim
  3. 保存文件::write

(获得语法高亮)

第七节第三讲:补全功能

使用ctrl-D和<TAB>可以进行命令行补全

补充:

1.确保Vim不是在以兼容模式运行::set  nocp

2.添加一个空格,以及一个已有文件名的起始部分,然后按<tab>键,会补全文件名

第二部分gcc

GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统

  • 预处理: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

前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”

GCC部分连同教材学习部分博客写在另一个博客里

第三部分gdb

基本的命令有:

  • gdb programm(启动GDB)
  • b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
  • run 开始运行程序
  • bt 打印函数调用堆栈
  • p 查看变量值
  • c 从当前断点继续运行到下一个断点
  • n 单步运行
  • s 单步运行
  • quit 退出GDB
  • 其他几个我认为应该掌握的调试命令有:
    • display 跟踪变量值的改变
    • until 跳出循环
    • finish 跳出函数
    • help 帮助


遇到的问题


1.静态库?什么是静态库?

2.开发工具和资源的位置到底放在哪?


如何解决的


查找相关博客,写的比较详细

Linux下Gcc生成和使用静态库和动态库详解

http://blog.chinaunix.net/uid-23592843-id-223539.html


其他


博客实在是太长了,分两部分写,这一部分是在实验楼实验内容。

时间: 2024-10-23 21:08:01

信息安全系统设计基础第二周学习总结(一)的相关文章

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

第一节.Linux基础 1.Linux命令 Linux中命令格式为:command [options] [arguments] 选项:是调整命令执行行为的开关,选项不同决定了命令的显示结果不同 参数:决定了命令的显示结果不同 例如:ls .中.为参数:ls -a中-a为选项 2.man命令 1 Executable programs or shell commands(普通的Linux命令) 2 System calls (系统调用,操作系统的提供的服务接口) 3 Library calls (

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

深入理解计算机系 Linux基础 一.实验说明 环境登录  无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 二.实验步骤 三种知识: 元知识:这门课程思考问题框架是什么?遇到老问题,它会怎样分析?遇到新问题,它会怎样分析? 硬知识:这门课程的主要知识点是什么?适合用思维导图组织吗? 软知识:这门课程的哪些知识点需要哪些实践环节来强化理解和记忆? 1. Linux命令 Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,

20135220谈愈敏--信息安全系统设计基础第二周学习总结

<深入理解计算机系统>实验一 在我的理解中: 元知识:思考问题的能力 硬知识:可见的知识点 软知识:实践中的经验 后面的常用命令是老师上课中讲到的. 一边看提供的材料一边在实验楼里实践,我的实验顺序如下: vim编辑器实验1234 普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等.这也是Vim启动后的默认模式. Vim强大的编辑能来自于其普通模式命令.普通模式命令往往需要一个操作符结尾.例如普通模式命令dd删除当前行,但是第一个"d&quo

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

本周,我学习了vim的使用方法. VIM是一个非常好的文本编辑器,很多专业程序员使用VIM编辑代码,VI来说,一开始就需要相当大的技能,但一旦掌握这些技能,则你将会越来越熟练,这跟五笔打字很类似.我们建议通过实践练习来学习具体来说通过VIMTUTOR来学习.只要在命令行中输入vimtutor,然后跟着教程练习就可以了. 大写“K”可以用来查找函数的帮助信息:查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page. 几个设置 :set nu 显示行

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

学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项    5 .熟练使用gdb调试技术    6. 熟悉makefile基本原理及语法规范    7. 掌握静态库和动态库的生成 内容一:vim编辑器的使用 1.vim编辑器的三种模式 Ⅰ正常模式:(按Esc或Ctrl+[进入) 左下角显示文件名或为空 Ⅱ插入模式:(按i键进入) 左下角显示--INSERT-- Ⅲ可视模式:左下角显示—V

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

知识点:一.Linux基础    这节实验的核心内容:基于搜索——学会使用:man.cheat.man-k.find(找到路径).locate(神速般的find).whereis.which(使用的命令工具装在哪儿).grep(全文搜索.正则表达式).二.VIM1.vi有三种模式:命令行模式.插入模式.底行模式. a)vim教程:比如:d 删除操作符:-w 单词(如:dw 从光标出删除至下一个单词末尾(不含第一个字符)).b)移动光标: [[ 转到上一个位于第一列的"{" ]] 转到下

信息安全系统设计基础第二周学习总结(20135213)

1.教材第一章,第七章学习:阅读并消化教材内容(有部分考试内容) 2.<嵌入式Linux应用程序开发标准教程>第三章3.1-3.5的学习(本周大部分考试内容都从这出,特别是与教材重复内容) 3.完成实验并发Blog 练习vimtutuor 至少一遍 使用vim 输入以下代码,联系使用“K”查找帮助文档: 练习gcc编译运行代码. 练习gdb调试代码 . 把上述代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so. 编写makefile,让代码编译,上述静态库和共

20135234马启扬-——信息安全系统设计基础第二周学习总结

Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(arguments) 选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同. 参数是指命令的作用对象. 2. man命令 man是manul的缩写 帮助文档 3.cheat 命令 cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序. 它提供显示Linux命令使用案例

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

1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,目前我们的实验中的终端程序是 xfce  桌面环境自带的 xfce-terminal.不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的. 在物理机系统上你 [Tab] 使用Tab键来进行命令补全,Tab键一般键盘是在字母