1.查看进程运行状态 ps -aux | grep PID
2.显示所有进程 ps -A
3.查看内存使用情况:free -m
4.查看进程运行状态、内存使用情况:top
5.tar解压文件参数:
五选一必选参数:-x 解压;-t 查看内容;-r 向压缩归档文件末尾追加文件 -u更新原压缩包中的文件 -c 建立压缩档案;
可选参数:-z 有gzip属性;-j 有bz2属性;-Z 有compress属性;-v:显示所有过程;-0:将文件解开到标准输出;
6.文件权限怎么修改?利用chmod(change mode)指令
共有三种权限read 权值4;write权值2;execute权值1;共有三种对象owner、group、others
赋值时对方式三个一组进行累加,比如 chmod 770 test.c 770中每位就是对对应对象的权限方式累加
7.其他一些常用的Linux命令:
切换当前目录:cd
查看当前文件与目录:ls
用于分析一行信息,若有我们所要信息就将该行显示出来,常与管道命令一起使用 grep
复制命令:cp
移动文件或文件夹命令:mv
删除文件或文件夹名了:rm
查看进程情况:ps
向进程发送终止信号:kill
对文件进行打包:tar
查看文件内容:cat
查看操作系统信息(进程、CPU利用率、内存信息):top
用于显示工作目录:pwd
8.以root权限运行某个程序:
输入以下两条指令:sudo chown root app sudo chmod u+s app
9.静态库和动态库的制作和使用:
静态库的制作:gcc hello.c -c 这样就生成了libhello.a静态库
静态库的使用:gcc main.c -lhello -o staticLibrary 第三个参数-lhello代表静态库,去头去尾去掉libhello.a中的lib和.a,再加上-l 最后一个参数是要生成的文件的目标名
动态库的制作:gcc -shared -fpic hello.c -o libhello.so -shared
动态库的使用:gcc main.c -lhello -L ./ -o dynamicDepot 第三个参数和第五个参数同上,新加-L 告诉gcc编译器从-L指定路径去去找静态库 ./ 是指当前路径的意思
区别:静态库代码装载的速度很快,执行的速度略比动态库块;
动态库更省内存,可执行文件体积比静态库小很多;
静态库是在编译时加载,动态库是在运行时加载;
生成的静态链接库,windows下以.lib 为后缀 Linux下以.a为后缀;生成的动态链接库,windows下以.dll为后缀,LInux下以.so为后缀;
10.常见的GDB调试指令,什么是条件断点,多进程下如何调试
GDB调试的是可执行文件,在gcc编译时加入-g,告诉gcc在编译时加入调试信息;
gcc -g test.c -o test
GDB命令格式:
quit:退出gdb,结束调试
list:查看程序源码
list 5,10:显示5到10行代码;list test.c:5,10:显示源文件5到10行代码 list get_sum显示get_sum这个函数附近的代码 list test.c get_sum 显示这个文件中这个函数周围代码
reverse-search:字符串 用来从当前行向前查找第一个匹配的字符串
run:程序开始执行
help list/all:查看帮助信息
break:设置断点
break 7:在第七行设置断点
break get_sum:以函数名设置断点
break 行号或函数名 if 条件 :以条件表达式设置断点
watch 条件表达式:条件表达式发生变化时程序就会停下来
next:继续执行下一条语句,会把函数当作一条语句执行
step:继续执行下一条语句,会跟踪进入函数,一次一条的执行函数内的代码
条件断点:break if 条件 以条件表达式设置断点
多进程下调试:用set follow-fork-mode child 调试子进程
set follo-fork-mode parent 调试父进程