• 20145333 《信息安全系统设计基础》期中总结


    20145333 《信息安全系统设计基础》期中总结

    教材学习内容总结

    复习Linux常用命令

    常用命令总结

    • man -k:
      常用来搜索,结合管道使用。例句如下:

    man -k k1 | grep k2 | grep 2

    搜索同时含有k1和k2,且属于系统调用。

    最后的数字意味着帮助手册中的区段,man手册共有8个区段,最常用的是123,含义如下:

    1.Linux
    2.系统调用
    3.c语言

    但是当单独用man语句的时候,想查看其中的单独某个区段内的解释时,用法是这样的:

    man 3 printf
    即查找c语言中printf的用法。

    • grep -nr

    这条语句可以用来查找关键字,全文搜索,并且可以直接查找文件内的内容。其中:

    n:为显示行号
    r:为递归查找
    例如,如果想查找某个宏,我们已知宏保存在include文件夹中,所以可以使用下列语句:

    grep -nr XXX /usr/include(XXX为所要找的宏)

    • cheat

    cheat是非常好用的“打小抄”搜索工具,能够方便的告诉你你想要的内容。

    • sort命令

    将文本文件内容加以排序。可针对文本文件的内容,以行为单位来排序。
    参数:

    m:将几个排序好的文件进行合并。
    n:依照数值的大小排序
    Linux Bash中,ls . | sort 命令的功能是(显示当前目录内容并排序)

    常用工具

    • vim

    vim是一种非常好用的编辑器,总共有六种基本模式,最常用的是普通模式、插入模式和命令行模式。需要熟悉这三种模式之间的切换方式:

    普通→插入: i 或 a 
    插入→普通: Esc 或 Ctrl + [
    普通→命令行: :
    命令行→普通:Esc 或 Ctrl + [
    

    常用的进入、保存和退出指令:

    进入:vim 文件名
    保存:命令行模式 :w
    退出:命令行模式 :q
    

    常用动作:

    删除:dd删除整行
    复制:yy复制整行
    粘贴:p
    
    • gcc

    常用选项

    -c  只编译不链接,生成目标文件.o
    -S  只编译不汇编,生成汇编代码
    -E  只进行预编译,不做其他处理
    -g  在可执行程序中包含标准调试信息
    -o file 将file文件指定为输出文件
    -v  打印出编译器内部编译各过程的命令行信息和编译器的版本
    -I dir  在头文件的搜索路径列表中添加dir目录
    

    编译过程

    预处理: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**   创建可执行目标文件
    

    -o后面是接的你给生成的文件指定的名字,如果不指定,则默认为a.out

    在命令行上运行这个可执行目标文件需要输入它的名字:

    ./a.out
    其中./代表当前目录。

    • gdb

    注意:使用GCC编译时要加“-g”参数,然后才能够用gdb调试

    GDB最基本的命令有:

    gdb programm(启动GDB)
    l   查看所载入的文件
    b   设断点
    info b  查看断点情况
    run 开始运行程序
    bt  打印函数调用堆栈
    p   查看变量值
    c   从当前断点继续运行到下一个断点
    n   单步运行(不进入)
    s   单步运行(进入)
    quit 退出GDB
    

    四种断点:

    1.行断点
    b [行数或函数名] <条件表达式>
    2.函数断点
    b [函数名] <条件表达式>
    3.条件断点
    b [行数或函数名] <if表达式>
    4.临时断点
    tbreak [行数或函数名] <条件表达式>
    
    • 静态库

    静态库是一系列的目标文件(.o文件)的归档文件((lib+name).a文 件);链接阶段,选择静态库,后缀名为“.a”;选择动态库,后缀名为“.so”。
    静态链接库的生成:gcc -c 文件名.c ar rcsv libxxx.a xxx.o
    静态库的使用:gcc -o 文件名 文件名.c -L. -lxxx//链接到静态库
    注意:
    -L:在库文件的搜索路径列表中添加dir目录
    -l:在头文件的搜索路径列表中添加dir目录

    • 共享库

    共享库的生成:
    gcc -fPIC -c xxx.c
    gcc -shared -o libxxx.so xxx.o
    共享库的使用:gcc -o main main.c -L. -lxxx
    注册共享库的方法:将库文件直接复制到/lib或者/usr/lib目录下: cp (lib+name).so /lib

    收获

    本学期学习Linux有很多收获的,学到了在Linux中使用命令行来完成一些操作,并且真正对于git有了了解和使用,发现git确实很好用,对于上传的每个代码都可以做详细的注释,在以后的使用中会更加方便。

    不足

    对于Linux的一些基本命令还不是很熟悉,这些东西不经常用很容易忘掉,还有就是书上的内容很多时候每章的后半部分都是草草略过,毕竟想要把每章100多页的东西完全理解透彻还是需要一定时间的。

    课程的建议和意见

    我觉得学了半学期让我最有收获的还是前两周我做的缓冲区溢出实验,虽然刚开始做这个实验时还是具有一定的目的性的,但是做到后面时我确实对这个实验产生了很大的兴趣,越做越觉得这个东西学起来很有意思,最后,不仅让我了解了掌握了关于这个实验方面的知识,还在做实验的过程中不断的复习了很多Linux的基本操作,所以我觉得实践才是最好的学习方法。但是,我认为老师在给同学们布置实验时应该给出大概的实验过程和有关的一些资料,让同学们从资料中去了解学习,然后根据给出的大概过程去不断地完善,最后不仅能很大概率的做出实验,还不会让同学们觉得只有一个题目而不知从何下手。

  • 相关阅读:
    jq focus 在火狐(Firefox)下无效
    将自己的项目上传到github保管
    $(window).height(),在火狐下面获取的高度并不是可视区域的高度
    [转载]跨域iframe高度自适应
    用css改变默认的checkbox样式
    js,jq新增元素 ,on绑定事件无效
    xshell配色Solarized Dark
    记一次给公司服务器装第二块硬盘的经历
    【shell编程基础3】shell编程的组合应用之二:管道及其命令
    【shell编程基础2】shell组合应用之一:重定向和逻辑
  • 原文地址:https://www.cnblogs.com/rx719523850/p/6036857.html
Copyright © 2020-2023  润新知