• 20145317《信息安全系统设计基础》第八周复习总结 1


    20145317信息安全系统设计基础》第八周复习总结1

    教材学习内容总结

    Ubuntu下常用快捷键

    • Ctrl+Alt+T: 打开终端
    • Ctrl+D: 键盘输入结束或退出终端
    • Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行
    • Ctrl+C: 中断程序运行
    • Ctrl+Z: 将当前程序放到后台运行,恢复到前台为命令fg
    • Ctrl+A: 将光标移至输入行头,相当于Home键
    • Ctrl+E: 将光标移至输入行末,相当于End键
    • Ctrl+K: 删除从光标所在位置到行末
    • Ctrl+Shift+T: 新建标签页
    • Alt+数字N: 终端中切换到第N个标签页
    • Alt+Backspace: 向前删除一个单词
    • Tab: 终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成
    • 上下键盘: 切换命令历史,刚输入一个很长的命令,按上键就可以恢复
    • Shift+PgUp: 将终端显示向上滚动
    • Shift+PgDn: 将终端显示向下滚动

    man命令

    man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

    • -a:在所有的man帮助手册中搜索
    • -k:根据关键字搜索联机帮助,是一种模糊搜索
    • -f:关键字精确搜索,等价于whatis指令,显示给定关键字的简短描述信息
    • -P:指定内容时使用分页程序
    • -M:指定man手册搜索的路径

    cheat命令

    cheat命令:告诉你一个命令如何使用。它没有提供其他额外多余的信息,只通过使用实例告诉你一个命令如何使用。

    find命令

    find命令:用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    命令格式:find pathname -options [-print -exec -ok ...]

    其中:

    • pathname:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
    • print:find命令将匹配的文件输出到标准输出
    • exec:find命令对匹配的文件执行该参数所给出的shell命令,相应命令的形式为'command' { } ;,注意{ }和;之间的空格
    • ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

    常用选项:

    • name:按照文件名查找文件
    • perm:按照文件权限来查找文件
    • mtime -n +n:按照文件的更改时间来查找文件, n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
    • newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件
    • type:查找某一类型的文件,诸如:b 块设备文件,d 目录,c 字符设备文件,p 管道文件,l 符号链接文件,f 普通文件
    • size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
    • depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

    locate命令

    locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

    命令格式:locate [选择参数] [样式]

    命令参数:

    • e:将排除在寻找的范围之外
    • 1:如果是1则启动安全模式,在安全模式下,使用者不会看到权限无法看到的档案。这会使速度减慢,因为 locate必须至实际的档案系统中取得档案的权限资料
    • f:将特定的档案系统排除在外,例如我们没有到必要把proc档案系统中的档案放在资料库中
    • q:安静模式,不会显示任何错误讯息
    • n:至多显示 n个输出
    • r:使用正规运算式 做寻找的条件
    • o:指定资料库存的名称
    • d:指定资料库的路径
    • h:显示辅助讯息
    • V:显示程式的版本讯息

    gcc

    1. 预处理阶段:头文件和宏定义,—E可以让gcc在预处理结束之后停止编译过程,因此可以看到预处理的过程。一般格式为:gcc [选项] 要编译的文件 [选项] 目标文件 gcc -E hello.c -o hello.i
    2. 编译阶段:gcc将代码翻译成汇编语言,使用选项-S只进行编译而不进行汇编,结果生成汇编代码。gcc -S hello.i -o hello.s
    3. 汇编阶段:将.s文件转成目标文件,使用选项-c可以看到汇编代码转换为二进制目标代码。gcc -c hello.s -o hello.o
    4. 链接阶段:默认搜索链接到libc.so.6函数库当中,调用库文件中已经实现的函数。

    静态库与共享库

    静态库是一系列的目标文件(.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

    注册共享库的方法:

    • 修改/etc/ld.so.conf文件
    • 修改LD_LIBRARY_PATH环境变量
    • 将库文件直接复制到/lib或者/usr/lib目录下:cp (lib+name).so /lib

    gdb

    主要操作:

    • 查看文件:l
    • 设置断点:在b后加入相对应的行号。如b 6
    • 查看断点情况:设置完断点后键入info b,在gdb中可以设置多个断点。bt查询调用函数的情况
    • 运行代码:默认从首行开始运行代码,键入rr+行号:从该行号开始运行
    • 查看变量值:p变量。例:p n
    • 单步运行:nss会进入函数,n不会进入函数
    • 恢复程序运行:c
    • 帮助信息:h

    断点的设置方法:

    • 函数:``b 文件名.c:函数名
    • 行:b 行数
    • 条件:b 行数 if 表达式(例如:b 9 if == 12)
    • 临时:tb [文件名:]行号或函数名 <条件表达式>

    makefile

    Makefile基本写法:test(目标文件): prog.o code.o(依赖文件列表)
    tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)

    使用宏的Makefile:定义宏宏名=原变量,使用宏的格式(宏名)

      • gcc -c code.c -o code.o
      • gcc -c prog.c -o prog.o
      • gcc prog.o code.o -o test
  • 相关阅读:
    《Java大学教程》—第12章 案例研究--第2部分
    《Java大学教程》—第11章 案例研究--第1部分
    《Java大学教程》—第10章 图形和事件驱动程序
    《Java大学教程》—第8章 通过继承扩展类
    《Java大学教程》—第7章 类的实现
    《Java大学教程》—第6章 类和对象
    《Java大学教程》—第5章 数组
    《Java大学教程》—第4章 方法的实现
    spring_01概念及案例
    MyEclipse中jsp编码设置
  • 原文地址:https://www.cnblogs.com/5317p/p/6028780.html
Copyright © 2020-2023  润新知