Linux及Windows常用命令

Linux常用命令

gcc编译器

预处理

gcc -E hello.c -o hello.i

将源文件编译成汇编代码文件(.s格式)

gcc -Og -S mstore.c

将源文件编译成可重定位目标文件(.o格式)

gcc -Og -c mstore.c

将可重定位目标文件编译为可执行目标文件

gcc -Og -o prog main.c mstore.c

进程

查看系统上运行的所有进程

ps -ef

 查找正在运行的进程并查看状态stat字段的含义

ps aux | grep php-fpm

ubuntu查看进程端口占用情况

sudo netstat -tupan

 gdb调试

在编译的时候要加上“-g”选项才可以调试,例如:

gcc -g -o hello main.c mstore.c

开始调试可执行程序

gdb hello

显示源代码,便于设置断点

(gdb) list
(gdb) l

设置断点

(gdb) break main
(gdb) b main
(gdb) b 5

显示所有断点

(gdb) info b

运行程序,r后面可以带可执行文件的参数

(gdb) run
(gdb) r
(gdb) r hello world

单步调试(不进入函数内部)

(gdb) next
(gdb) n

单步调试(进入函数内部)

(gdb) step
(gdb) s

跳到下一个断点

(gdb) c

显示变量i的值

(gdb) p i

 调试子进程。gdb默认调试父进程,follow-fork-mode参数值默认为parent,需要设置为child。

(gdb) help set follow-fork-mode
(gdb) show follow-fork-mode
(gdb) set follow-fork-mode child

 退出正在调试的函数

(gdb) fin

 反汇编与ELF

显示可执行部分的汇编程序内容

objdump -d mstore.o

 显示ELF格式文件的信息

readelf -a main.o

vim常用操作

格式化全文代码:gg=G
跳到文档末尾:在一般模式下输入G
撤销到上一步:在一般模式下输入u
添加注释:ctrl+v进入块选择模式,上下键选中需要添加注释的位置,按大写I进入插入模式,输入注释符,按ESC退出。
取消注释:ctrl+v进入块选择模式,上下键选中需要取消注释的位置,按小写x删除注释符。
复制:按v进入可视模式,按 y 复制,按p粘贴。

软件包

显示所有已安装软件

dpkg -l

查找已安装软件

dpkg -l | grep ftp

查看软件安装的路径

dpkg -L  ftp

显示包含此软件包的所有位置

dpkg -S softwarename

显示安装路径

dpkg -L softwarename

可显示 APT 内部数据库里的多种信息

apt-cache show softearename

显示系统已知的软件包列表及其安装状态

dpkg -l softwarename

也可以用

whereis ftp

 

Windows常用命令

查看端口被哪个进程占用

netstat -ano|findstr 22
tasklist|findstr "12472"

 

参考链接:

GDB官方手册:Top (Debugging with GDB) (sourceware.org)

GDB多进程调试:GDB多进程调试 - ainingxiaoguai - 博客园 (cnblogs.com)

Linux进程状态:Linux进程状态(ps stat)详解 - 火星小编 - 博客园 (cnblogs.com)

《Linux命令行与shell脚本编程大全》学习笔记 - 蓝天,白云 - 博客园 (cnblogs.com)

 

posted @ 2023-05-25 21:04  蓝天,白云  阅读(50)  评论(0)    收藏  举报