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


    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:/ignorec<回车>

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

    启动帮助系统:

    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

    其他

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

  • 相关阅读:
    汇编笔记
    PHP笔记——SOAP
    Eclipse 插件资源地址记录
    使用SetWindowLong修改窗口样式
    C++ builder 剪贴板Clipboard使用
    c++ builder 实现右键选择节点实现方式
    c++ builder 使listview获得焦点并选择第一个节点
    c++ builder 2009 启用codeguard 检测内存泄漏
    c++ builder 2009如何生成独立运行exe
    WPF编程学习——样式
  • 原文地址:https://www.cnblogs.com/suzhengsheng/p/4842737.html
Copyright © 2020-2023  润新知