目录结构
操作系统:操作系统是管理软硬件资源,并为用户提供与计算机交互的一种软件。
可执行文件的文件格式
Linux EIF
Windows PE
/boot : 系统内核及开机用到的文件
/bin : 命令,即可执行程序存放的地点
/etc : 系统的配置文件和子目录
/dev :设备文件存放地点
/home :普通用户的家目录
/lib :库文件存放地点
/mnt :临时挂载点
/root :管理员家目录
/proc : 虚拟的目录,内存中进程的信息映射到该目录下
/usr :放置不长变动的可分享的内容,如系统默认安装的软件
/var :常发生变动性的文件,如邮件内容,登陆文件
/tmp : 正在执行的程序临时存放文件的目录
文件类型
- 普通文件
d 目录文件
p 管道文件
l 0链接文件
c,b 设备文件
s 套接字文件
文件权限
r : 读权限 4
w: 写权限 2
x: 执行权限 1
-:没有权限 0
例
修改权限:
文字设定法: chmod u+x a.c 让a.c具备了执行权限
数字设定法: chmod 744 a.c 让其属主具有读、写、执行权限,同组具有读权限,其它具有读权限
命令
cd : 切换目录 cd / :切换到根目录 cd - :返切换之前的位置 cd … : 返回上一层
pwd: 显示当前目录,即当前在目录树中的位置
ls: 查看文件与目录,默认显示当前目录下有哪些文件
touch: 创建普通文件
mkdir: 创建目录文件
rm:删除普通文件 rm -r 删除目录文件
tail tail -f filename 查看日志文件特别方便
ps -L 显示线程的 id
top 查看某个进程(线程)在那个处理器上运行 (需要设置 f j )
taskset 指定某个进程(线程)在那个处理器上执行
netstat 查看tcp连接状态, 接收/发送缓冲区的数据 查看进程使用的端口号
tcpdump 经典的抓包工具
lsof 列出系统当前打开文件描述符的工具 lsof -p pid 显示某个进程打开的文件
strace 跟踪系统调用 strace -p pid
ltrace 跟踪库函数 ltrace -p pid (线程id)
ipcs 查看进程间通信的 共享内存 消息队列 信号量 的使用情况
ldd 查看可执行程序使用了那些共享库
gdb 调试程序 编译程序要加参数
-g 使其增加调试信息 l 显示代码 n 单步执行 b +行号/函数名 加断点
info break 查看断点信息 delete 删除断点 bt 显示函数调用栈关系
r 运行程序 p 打印 s 进入函数 finish 跳出函数 q 退出
跟踪子进程 1) set follow-fork-mode child
2) attach + pid
跟踪线程 1) info threads查看哪些线程可以调试
2) thread id 切换到指定线程
3) set scheduler-locking
编译程序
预编译: gcc -E main.c -o main.i
编译: gcc -S main.i -o main.s
汇编: gcc -c main.s -o main.o
链接:gcc -o main main.o