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

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

Linux命令复习

Linux中的命令格式

  • Linux中命令格式为:命令 [选项] [参数];[]表示是可选的

常用且实用命令

  • Ctrl+c :终止程序

  • :恢复之前输入过的命令,允许恢复多条

  • Tab

    • 补全
      • 命令(参数)
      • 目录
    • 提示可能要输入的信息(命令、目录等)
  • *:通配符。 eg. ls *.txt

man

  • man是manul的缩写,可以通过man man来查看man的帮助
  • -a:在所有的man帮助手册中搜索
  • -k:根据关键字搜索联机帮助,是一种模糊搜索
  • -f:关键字精确搜索,等价于whatis指令,显示给定关键字的简短描述信息
  • -P:指定内容时使用分页程序
  • -M:指定man手册搜索的路径
  • man 2 ls:会显示第二区段中的printf命令man页面,如下图
man -k key | grep key1 | grep key2 |... 语句#####
  • 非常实用的语句,可以结合多关键字查找,可以称为搜索引擎,如图:

cheat

  • cheat主要作用体现在与man命令的比较上,看完了man给出手册的所有内容,可能还是不会使用,如图:

  • 这时cheat命令就看起来非常简单明了而且实用,因为cheat命令只是举出例子告诉你使用方法,如图:

grep

  • grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

  • 命令格式:grep [options]

  • [options]主要参数:

    • -c:只输出匹配行的计数
    • -I:不区分大小写(只适用于单字符)
    • -h:查询多文件时不显示文件名
    • -l:查询多文件时只输出包含匹配字符的文件名
    • -n:显示匹配行及行号
    • -s:不显示不存在或无匹配文本的错误信息
    • -v:显示不包含匹配文本的所有行
grep -nr xxx /usr/include
  • xxx为某个宏,已知该宏保存在include文件夹中,就可以用该语句查找。如图:

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天以前
    • -type:查找某一类型的文件,诸如:b - 块设备文件,d - 目录,c - 字符设备文件,p - 管道文件,l - 符号链接文件,f - 普通文件
    • -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
    • -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
      -amin n : 在过去 n 分钟内被读取过
    • -anewer file : 比档案 file 更晚被读取过的档案
    • -atime n : 在过去 n 天过读取过的档案
    • -cmin n : 在过去 n 分钟内被修改过
    • -cnewer file :比档案 file 更新的档案
    • -ctime n : 在过去 n 天过修改过的档案
    • -empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name
    • -ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写
    • -name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写
    • -size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
    • -type c : 档案类型是 c 的档案。(一块 = 512字节)
查找大于1M的普通文件

查找最近5分钟修改的文件

Linux下C语言编程基础

vi

  • vim其实就是一种文本编辑器,区别于记事本等的特点为便于使用键盘操作,键盘操作的基础是vi的几个模式:
    • 三种常用模式:

      • 普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。在普通模式中,进入插入模式比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
      • 插入模式(Insert mode):在插入模式中,可以按ESC键回到普通模式。
      • 命令行模式(Command line mode):在命令行模式中,执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
    • 三种不常用模式:

      • 可视模式(Visual mode):命令多与字母v有关,移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。
      • 选择模式(Select mode):这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
      • Ex模式(Ex mode):这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。

命令

  • 具体的命令和快捷键非常多,这里不加赘述,可以参考以下几个资料:

gcc

  • gcc能够编译用C、C++和Object C等语言编写的程序。

编译过程

  • 编译命令:gcc hello.o –o hello:将当前目录下的hello.c文件编译成名称为hello的可执行文件,内部可以分为四步:
    • 预处理: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
  • 运行:./hello:运行可执行文件hello

高级编译

  • 在不同目录下使用gcc,具体可见Linux实验一

gdb

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 目标体

代码结构树

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

及时的总结是有效也是必要的,本周进行期中总结,重要命令都温习了一遍。

学习进度条

参考资料

posted on 2016-11-06 15:05  20145318赵一  阅读(233)  评论(1编辑  收藏  举报

导航