常用命令速查表
Linux系统
ls
:用于列出当前目录下的所有文件,ls -l
可以显示详细信息pwd
:能够列出当前所在的目录cd DIR
:可以切换到DIR
目录,在Linux中, 每个目录中都至少包含两个目录,.
指向该目录自身,..
指向它的上级目录,文件系统的根是/
touch NEWFILE
:可以创建一个内容为空的新文件NEWFILE
,若NEWFILE
已存在,其内容不会丢失cp SOURCE DEST
:可以将SOURCE
文件复制为DEST
文件;如果DEST
是一个目录,则将SOURCE
文件复制到该目录下mv SOURCE DEST
:可以将SOURCE
文件重命名为DEST
文件;如果DEST
是一个目录,则将SOURCE
文件移动到该目录下mkdir DIR
:能够创建一个DIR
目录rm FILE
:能够删除FILE
文件; 如果使用r
选项则可以递归删除一个目录。删除后的文件无法恢复,使用时请谨慎man
:可以查看命令的帮助 例如man ls
可以查看ls
命令的使用方法;灵活应用man
和互联网搜索,可以快速学习新的命令./程序名
:运行可执行文件。如果你在 x86_64 的 Linux 操作系统上通过gcc hello.c
生成了一个 elf 格式的可执行文件a.out
,你可以通过./a.out
运行这个程序
推荐Linux入门教程。
TMUX 终端复用器
tmux
:打开tmux
模式tmux
模式下操作Ctrl+b
:一切操作的先导键,之后的命令被识别成tmux
的默认命令 下面的所有命令都是以这个快捷键开头Shift+5 = %
:将当前会话横向分割成为两个Shift+' = "
:将当前会话纵向分割成为两个Shift+o = O
:切换到下一个会话Shift+x = X
:删除当前会话Shift+w = W
:查看所有会话
更多操作请参见 cheatsheet 或 STFW。
GDB 调试器
Linux 平台下最常用的一款程序调试器。本说明仅简单介绍一些常用的指令,其他操作可以STFM或者查看相关文档。 对于print
大法而言,其在相对较多情况下是极为有用的,在细粒度的调试上有所不足,就比如说当编译器出现段错误的时候,此时使用gdb
来进行调试,并且切换栈帧,找到出错的地方相对比较方便。
配置
gdb
相关:file
: 使用filename作为要调试的程序。它是为了它的符号和纯粹记忆的内容而阅读的。symbol-file
:从文件filename读取符号表信息。必要时搜索PATH。使用file命令从同一个文件中获取符号表和要运行的程序。add-symbol-file
:从文件文件名中读取附加符号表信息。当filename被动态加载(通过其他方式)到正在运行的程序中时,可以使用此命令。target remote :26000
:连接本地端口26000的qemu。
程序运行:
b(breakpoint)
:添加断点b 函数名
b 文件名:行号
b 地址
d(delete)
:删除断点info
:显示一些有关于正在调试程序的一般指令info mem
:显示内存区域属性info reg
:显示部分寄存器info all-registers
:显示全部寄存器info breakpoint
:显示当前的所有断点
watchpoint
:添加监视点bt
:查看当前调用栈frame number
:切换当前调用栈layout name
:更改当前 TUI 窗口显示的内容。{next, prev, src, asm, split, regs}c(continue)
s(step)
:单步执行, 进入下一行的函数调用中n(next)
:单步执行, 不进入函数调用p(print expr)
p/x
:打印十六进制
Ctrl+C
:暂停执行Ctrl+D
: 退出gdb
推荐的帮助说明有cheat sheet 和 Debugging with GDB 还有 gdb常用指令。
QEMU 模拟器
纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,但是由于其基于软件实现,而非硬件,因此效率相对较低。
Ctrl+A x
:退出qemu
Ctrl+A c
:打开qemu monitor console,
可以执行一些命令查看当前模拟机器的运行状态,控制虚拟机的各个方面。info mem
:列出活动虚拟内存映射info registers
:列出CPU寄存器
就本课程的内容来说,其提供的支持实际上不如gdb
提供的方便,更多信息可见文档。
最后更新于