LINUX信息安全系统设计基础第二周学习总结
1 Linux命令
2 man命令
1.Terminal(终端)
Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,目前我们的实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal。不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的。
在物理机系统上你
[Tab]
使用Tab
键来进行命令补全,Tab
键一般键盘是在字母Q
旁边,这个技巧给你带来的最大的好处就是当你忘记某个命令的全称时你可以只输入它的开头的一部分然后按下Tab
键就可以得到提示或者帮助完成:
可以通过使用[Ctrl]
+[Alt]
+[F1]~[F6]
进行切换,不过在我们的在线实验环境中可能无法切换,因为特殊功能按键会被你主机系统劫持。
Ctrl+c]
想想你有没有遇到这种情况,当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误的使用了一个命令,导致在终端里出现了你无法预料的情况,比如,只有光标在闪烁无法继续输入命令,或者不停地在输出一大堆你不想要的结果。你想要立即停止并恢复到你可控的状态,那该怎么办呢。这时候你就可以使用Ctrl+c
键来强行终止当前程序(你可以放心它并不会使终端退出)。
3).学会使用通配符
也可能存在其他部分内容,但这些部分没有得到跨手册页的标准化。常见的例子包括:OPTIONS(选项),EXIT STATUS(退出状态),ENVIRONMENT(环境),BUGS(程序漏洞),FILES(文件),AUTHOR(作者),REPORTING BUGS(已知漏洞),HISTORY(历史)和COPYRIGHT(版权)。
通常 man 手册中的内容很多,你可能不太容易找到你想要的结果,不过幸运的是你可以在 man 中使用搜索,/<你要搜索的关键字>
,查找到后你可以使用n
键切换到下一个关键字所在处,shift+n
为上一个关键字所在处。使用Space
(空格键)翻页,Enter
(回车键)向下滚动一行,或者使用j
,k
(vim编辑器的移动键)进行向前向后滚动一行。按下h
键为显示使用帮助(因为man使用less作为阅读器,实为less
工具的帮助),按下q
退出。
六种模式:
1.普通模式2.插入模式3.可视模式4.选择模式5.命令行模式6.Ex模式(Ex mode)
二:进入vim模式
:set nu 显示行号
:set ai 自动缩行
:set ts=4 设置一个 TAB 键等于几个空格
移动光标
[[ 转到上一个位于第一列的"{"
]] 转到下一个位于第一列的"{"
{ 转到上一个空行
} 转到下一个空行
gd 转到当前光标所指的局部变量的定义
3.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
-
4. gdb
-
GDB最基本的命令有:
-
- gdb programm(启动GDB)
- b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
- run 开始运行程序
- bt 打印函数调用堆栈
- p 查看变量值
- c 从当前断点继续运行到下一个断点
- n 单步运行
- s 单步运行
- quit 退出GDB
应该掌握的调试命令有:
-
- display 跟踪变量值的改变
- until 跳出循环
- finish 跳出函数
- help 帮助
-
二、Makefile 使用
1.Makefile简介
makefile带来的好处就是——“自动化编译”,一但写好,只需要一个make命令,整个工程完全编译,极大的提高了软件的开发效率。make是一个命令工具,是一个及时makefile中命令的工具程序。
2.Makefile基本规则
一个Makefile文件主要含有一系列的规则,每条规则包含一下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’;一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab开头(初学者务必注意:是tab,而不是空格) 执行以上Makefile后就会自动化编译:
3.使用带宏的Makefile
Makefile还可以定义和使用宏(也称做变量),从而使其更加自动化,更加灵活,在Makefile中定义宏的格式为:
macroname = macrotext
使用宏的格式为: