zoukankan      html  css  js  c++  java
  • 补发周四的博客。对之前的知识复习了一遍,因为要闭卷考试。

    学号20145220《信息安全系统设计基础》第10周学习总结

    教材学习内容总结

    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:显示程式的版本讯息
    whereis命令

    whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
    命令格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名
    主要参数:
    -b:定位可执行文件
    -m:定位帮助文件
    -s:定位源代码文件
    -u:搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
    -B:指定搜索可执行文件的路径
    -M:指定搜索帮助文件的路径
    -S:指定搜索源代码文件的路径
    which命令

    which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。which是根据使用者所配置的PATH变量内的目录去搜寻可运行档的,所以,不同的PATH配置内容所找到的命令是不一样的。
    命令格式:which 可执行文件名称
    命令参数:
    -n:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
    -p:与-n参数相同,但此处的包括了文件的路径
    -w:指定输出时栏位的宽度
    -V:显示版本信息
    find、locate、which、whereis的区别

    which (寻找执行档) :这个指令是根据PATH这个环境变量所规范的路径,去搜寻执行档的档名,所以,重点是找出执行档而已,which 后面接的是完整档名
    whereis (寻找特定档案):搜寻linux数据库档案中所记录的东西,和locate的主要区别在于后面的参数
    locate:搜寻linux数据库档案中所记录的东西,后面直接跟档案的部分名称就行
    find:直接搜索整个硬盘
    sort命令

    将文本文件内容加以排序。可针对文本文件的内容,以行为单位来排序。
    参数:
    m:将几个排序好的文件进行合并。
    n:依照数值的大小排序
    Linux Bash中,ls . | sort 命令的功能是(显示当前目录内容并排序)
    du命令

    显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。
    参数:
    a:显示目录中个别文件的大小。
    b:显示目录或文件大小时,以byte为单位。
    c: 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
    ls命令

    显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
    参数:
    a:显示所有档案及目录
    A:同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
    t:将档案依建立时间之先后次序列出
    列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*" : ls -AF
    Linux Bash中,把ls命令显示当前目录的结果存入ls.txt的命令输出重定向命令是(ls > ls.txt)
    vi、 gcc、gdb、make的使用

    Vim六种模式

    普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。在普通模式中,进入插入模式比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
    插入模式(Insert mode):在插入模式中,可以按ESC键回到普通模式。
    可视模式(Visual mode):命令多与字母v有关,移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。
    选择模式(Select mode):这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
    命令行模式(Command line mode):在命令行模式中,执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
    Ex模式(Ex mode):这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。
    Vim常用命令总结

    插入:
    i:在当前光标处进行编辑
    a:在光标后插入编辑
    退出:
    :q!:强制退出,不保存
    :q:退出
    :wq!:强制保存并退出
    :wq:保存并退出
    :w <文件路径>:另存为
    删除:
    x:删除游标所在的字符
    dd:删除整行
    行间跳转:
    nG(n Shift+g):光标移动到第n行
    复制与粘贴:
    nyy:复制光标所在及其后的整行共n行
    p:代表粘贴至光标后
    功能设定:
    :set autoindent(ai):设置自动缩进
    :set cindent(cin):设置C语言风格缩进
    :set nu:以显示行号
    GCC编译过程

    预处理:gcc –E hello.c –o hello.i ;gcc –E调用cpp 产生预处理过的C原始程序
    编译: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 产生可执行文件
    运行: ./hello
    静态库

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

    进入gdb:
    gcc -g xxx.c -o xxx
    gdb xxx
    查看源码:
    (gdb) l:进行行号提示
    (gdb) b n:在第n行设置断点
    (gdb) r:运行代码,运行至断点处
    (gdb) n:单步运行
    (gdb) c:使程序继续往下运行,直到再次遇到断点或程序结束
    (gdb) q:退出GDB
    (gdb) watch n:在"n"设置了观察点,观察变量的变化情况
    四种断点:
    函数断点:b 函数名 条件表达式
    行断点:b 行数或函数名 条件表达式
    条件断点:b 行数或函数名 if表达式
    临时断点:tbreak 行数或函数名 条件表达式
    makefile

    功能:识别文件代码是否更新,减少编译工作量
    格式为:
    目标体:依赖文件
    [tab键]各目标体运行命令
    目标体:由make创建,通常是目标文件或可执行文件
    依赖文件:创建目标体所依赖的文件
    运行命令:创建每个目标体时需要的运行命令,必须以tab键开头。
    使用make的格式:make 目标体

    其他(感悟、思考等,可选)

    这周四的博客忘记发了,所以补发了一篇我今天复习的知识。之前的知识还有很多不懂,因为以后就要闭卷考试,所以之前的汇编的,Java的知识学的不扎实,导致自己现在学起来很是麻烦而且困难。所以我会认真复习之前学过的知识,不停的巩固自己学到的,补上没有学到的。

    参考资料

  • 相关阅读:
    预定义规则 取范围数据
    oracle table 数组的赋值方法
    java 缓存读写
    webpack
    vscode setting
    webpack babel
    共享你的vscode配置
    github API很丰富
    tips
    todo
  • 原文地址:https://www.cnblogs.com/hxf5220/p/6081910.html
Copyright © 2011-2022 走看看