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


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

    教材学习内容总结

    一:三种常用模式的切换

    ·vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或者Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。

    ·普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。

    ·命令行模式中输入wq回车后保存并退出vim。

    二:进入vim

    使用vim命令进入vim界面

    ·vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名。 打开Xfce终端,输入 vim practice.txt
    ·进入命令行模式后输入:e 文件路径 同样可以打开相应文件。

    游标移动

    ·在进入vim后,按下i键进入插入模式。输入文本信息:

    ·按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。

    h	左
    l	右(小写L)
    j	下
    k	上
    w	移动到下一个单词
    b	移动到上一个单词
    

    三、进入插入模式

    进入插入模式

    命令	说明
    i	在当前光标处进行编辑
    I	在行首插入
    A	在行末插入
    a	在光标后插入编辑
    o	在当前行后插入一个新行
    O	在当前行前插入一个新行
    cw	替换从光标所在位置后到一个单词结尾的字符
    

    四、保存文档

    ·.命令行模式下保存文档:从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其它路径下

    五、退出vim

    1.命令行模式下退出vim

    ·从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑

    ·其它几种退出方式:

    命令	说明
    :q!	强制退出,不保存
    :q	退出
    :wq!	强制保存并退出
    :w <文件路径>	另存为
    :saveas 文件路径	另存为
    :x	保存并退出
    :wq	保存并退出
    

    2.普通模式下退出vim

    ·普通模式下输入Shift+zz即可保存退出vim

    六、删除文本

    1.普通模式下删除vim文本信息

    ·进入普通模式,使用下列命令可以进行文本快速删除:

    命令	说明
    x	删除游标所在的字符
    X	删除游标所在前一个字符
    Delete	同x
    dd	删除整行
    dw	删除一个单词(不适用中文)
    d$或D	删除至行尾
    d^	删除至行首
    dG	删除到文档结尾处
    d1G	删至文档首部
    

    ·除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:2dd表示一次删除2行

    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

    查看源文件可以用od 命令 : od -tc -tx1 hello.c

    ·Linux的可执行文件并没有像 Windows 那样有明显的.exe后缀名, 只需向其分配x(可执行)权限即可 sudo chmod u+x excutefile
    ·作为Linux程序员,我们可以让gcc在编译的任何阶段结束,以便检查或使用该阶段的输出(这个很重要)

    GDB

    查询用法:在 gdb 命令行界面,使用 (gdb) help command 可以查看命令的用法。

    1.gdb programm(启动GDB)
    2.b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
    3.run 开始运行程序
    4.bt 打印函数调用堆栈
    5.p 查看变量值
    6.c 从当前断点继续运行到下一个断点
    7.n 单步运行
    8.s 单步运行
    9.quit 退出GDB

    Makefile的使用

    首先$ vim Makefile

    test: prog.o code.o
            gcc prog.o code.o -o test
    prog.o: prog.c code.h
            gcc -c prog.c -o prog.o
    code.o: code.c code.h
            gcc -c code.c -o code.o
    clean:
            rm -f *.o test
    

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

    问题1:在学习实验楼关于Makefile的应用时,运行prog发现有错:

    解决方法:原来是程序里多打了一个“)”,所以程序无法进行编译,改正程序以后就可以运行了:

    问题2:运行实验楼的程序出现下面的错误:

    解决方法:

    问题3:运行main:时发现div.c的结果和预期不符:

    解决方法:暂时不知道是什么问题,看了一下div.c 的程序代码是正确的,所以应该不是代码的问题,这个问题仍然在解决中………………

    补充:除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
    gcc -c add.c sub.c mul.c div.c
    ar rcvs libmymath.a add.o sub.o mul.o div.o

    gcc main.c -o main -L. -lmymath (or gcc main.c ./libmymath.a -o main)

    除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?(4分)
    gcc -fPIC -c add.c sub.c mul.c div.c
    gcc -shared -o libmymath.so add.o sub.o mul.o div.o

    gcc -o main main.c -L. -lmymath

    libmymath.so 要拷贝到/lib or /usr/lib

    代码托管中的问题和解决过程

    问题1:公钥生成以后打开http://git.oschina.net/profile网页,标题栏不能为空:

    解决过程1:标题栏可以随意输入。

    问题2:连接失败:

    解决方法2:参考了这两个博客20145212罗天晨20145215卢肖明:

    问题3:代码推送失败:

    解决过程3:

    本周代码托管截图代码托管连接

    学习进度条

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

    参考资料

  • 相关阅读:
    ACM成长之路
    洛谷P1047 校门外的树
    洛谷P1046 陶陶摘苹果
    2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 F题
    图论:POJ2186-Popular Cows (求强连通分量)
    DFS:POJ1562-Oil Deposits(求连通块个数)
    DFS:POJ3620-Avoid The Lakes(求最基本的联通块)
    map函数的应用:UVa156-Ananagrams
    set的应用:UVa10815-Andy's First Dictionary
    水题:UVa253-Cube painting
  • 原文地址:https://www.cnblogs.com/20145223ymy/p/5905810.html
Copyright © 2020-2023  润新知