命令格式
command [-options] [argument]
常用文件管理命令
-
Ctrl + C:取消命令并换行。
-
Ctrl + U:清除本行命令。
-
Tab:键可以完成命令和文件名。如果还不能完成,连续按下两次 Tab 键,会显示出匹配项列表。
-
ls:列出当前目录下的所有文件。蓝色为文件夹,白色为普通文件,绿色为可执行文件。 ls -a:显示所有文件,包括隐藏文件(以点开头的文件是隐藏文件)。 ls -l:查看当前路径下文件的读取、写入和执行权限。 ls | wc -l:查看
ls
下有多少文件。 -
pwd:显示当前路径。
-
cd XXX:进入指定的文件夹。cd -:回到改变路径之前的位置。
-
cp XXX YYY 将
XXX
文件复制为YYY
。XXX
和YYY
可以位于同一路径下。 使用 -r 参数复制整个目录或文件夹。 非当前路径重命名方法:cp a.txt ../b.txt -
mkdir XXX:创建名为
XXX
的目录(文件夹)。 使用 -p 参数创建不存在的文件夹。 -
rm XXX:删除普通文件。rm XXX -r 删除文件夹。 支持正则表达式。删除所有
.txt
类型文件:rm *.txt
删除所有文件(不包括文件夹):rm *
使用正则表达式删除所有文件夹:rm * -r
-
rmdir:从一个目录中删除一个或多个子目录项
-
mv XXX YYY 移动
XXX
文件到YYY
目录下。与 cp 命令类似,XXX
和YYY
可以位于同一路径下。 使用该命令进行重命名操作。 非当前路径移动方法:mv a.txt ../b.txt -
touch XXX 创建名为
XXX
的文件。 -
cat XXX 展示文件
XXX
中的内容。 -
在 Windows 或 Linux 上使用 Ctrl + Insert 进行复制,在 Mac 上使用 Command + C 进行复制。
-
在 Windows 或 Linux 上使用 Shift + Insert 进行粘贴,在 Mac 上使用 Command + V 进行粘贴。
-
history 查看历史输入指令。
-
tree 以树状结构显示文件目录结构。
-
man:帮助命令
-
more:会以一页一页的显示文件内容
-
less:与 more 类似,但使用 less 可以随意浏览文件
输出重定向
>
>>
>
:直接用输出覆盖原文件,>>
:则把输出追加到原文件的末尾。
tar解压文件的参数
- x:表示解压文件。
- v:可选参数,表示显示详细的解压过程。
- f:后面接需要解压的文件名。
- z:可选参数,用于解压
gzip
格式的文件。 - j:可选参数,用于解压
bzip2
格式的文件。 - C:指定解压目录,后面接目标目录。
例如,使用以下命令解压一个 tar
文件:
- tar -xvf file.tar
如果需要解压一个 gzip
格式的 tar
文件,可以使用以下命令:
- tar -xzvf file.tar.gz
Linux
查看进程运行状态的指令
- ps: ps -aux:显示所有正在运行的进程的详细信息。 ps -ef:显示所有正在运行的进程的完整信息。 ps -ef | grep:查看特定进程。 ps -u 用户名:查看特定用户的进程。
a | 显示一个终端的所有进程,除了会话引线 |
---|---|
u | 显示进程的归属用户及内存的使用情况 |
x | 显示没有控制终端的进程 |
-l | 长格式显示。显示更加详细的信息 |
-e | 显示所有进程,和-A作用一致 |
查看对应进程的端口号
ps -ef | grep 进程名 #1、先查看进程pid
netstat -nap | grep 进程pid #2、通过pid查看占用端口
查看进程树
pstree
-p
显示进程的pid
-u
显示进程的所属用户
查看内存状态
- top:用于实时监视系统的进程活动和系统资源使用情况。查看进程的
CPU
占用、内存占用、运行时间等信息。 - free:显示当前系统内存的使用情况,包括总内存、已用内存、空闲内存以及缓存和缓冲区使用的内存。
- vmstat命令:显示系统虚拟内存统计信息
- /proc/meminfo文件:提供系统内存详细信息
- pmap命令:显示进程内存映射详细信息
查看带有关键字的日志文件
- grep “关键字” 文件路径:在上述命令中,将 “关键字” 替换为要查找的实际关键字,将 “文件路径” 替换为您要搜索的日志文件的路径和名称。
- grep -i “关键字” 文件路径:执行大小写不敏感的搜索。
grep 命令常用参数
参数 | 描述 | 示例 |
---|---|---|
grep "关键字" 文件路径 | 在文件中搜索包含“关键字”的行。 | grep "error" /var/log/syslog |
-i | 大小写不敏感搜索。 | grep -i "error" /var/log/syslog |
-r | 递归搜索指定目录及其子目录中的文件。 | grep -r "error" /var/log |
-l | 仅显示包含匹配行的文件名。 | grep -l "error" /var/log/* |
-n | 显示匹配行及行号。 | grep -n "error" /var/log/syslog |
-v | 显示不包含匹配行的内容。 | grep -v "error" /var/log/syslog |
--color | 将匹配的文本高亮显示。 | grep --color "error" /var/log/syslog |
--exclude | 排除指定模式的文件。 | grep --exclude="*.log" "error" /var/log |
--exclude-dir | 排除指定目录。 | grep --exclude-dir="cache" "error" /var/log |
-A NUM | 显示匹配行及其后的NUM行。 | grep -A 2 "error" /var/log/syslog |
-B NUM | 显示匹配行及其前的NUM行。 | grep -B 2 "error" /var/log/syslog |
-C NUM | 显示匹配行及其前后的NUM行。 | grep -C 2 "error" /var/log/syslog |
修改主机名
- hostnamectl set-hostname 新主机名:请注意,您需要使用管理员权限(例如 sudo)来运行此命令。
- hostname 新主机名:同样,将 “新主机名” 替换为您要设置的新主机名,并使用管理员权限运行命令。
ping命令
参数 | 描述 | 示例 |
---|---|---|
-c 数量 | 发送指定数量的ECHO_REQUEST 包后停止。 | ping -c 4 google.com |
-i 间隔 | 设置两次ECHO_REQUEST 包之间的间隔时间(秒)。 | ping -i 2 google.com |
-t | 一直ping 指定的主机,直到手动停止(Windows)。 | ping -t google.com |
-n | 一直ping 指定的主机,直到手动停止(Unix/Linux)。 | ping -n google.com |
-s 数据包大小 | 设置发送的数据包大小。 | ping -s 1024 google.com |
-v | 提供详细的诊断信息(Windows)。 | ping -v google.com |
-D | 以SO_DEBUG 套接字选项启动ping (Unix/Linux)。 | ping -D google.com |
-R | 记录路径信息(Unix/Linux)。 | ping -R google.com |
-T | 使用IPv6 地址(Unix/Linux)。 | ping -T google.com |
-W 超时 | 设置等待响应的超时时间(秒)。 | ping -W 5 google.com |
ping 域名 | 测试与指定域名服务器的连通性。 | ping google.com |
ping IP地址 | 测试与指定IP 地址服务器的连通性。 | ping 8.8.8.8 |
GDB命令
命令 | 参数 | 描述 |
---|---|---|
gdb | <program> | 启动GDB 并加载指定的可执行文件进行调试 |
gdb | <program> <core> | 同时调试一个运行程序和core 文件 |
gdb | <program> <PID> | 指定服务程序的运行时的进程ID,GDB会自动attach上去 |
break | [file:]function | 在指定文件的函数中设置一个断点 |
break | test.c:12 | 在文件test.c 的第12行设置断点 |
break | foo if a < 100 | 设置条件断点,条件满足才停止 |
info break | 列出所有断点位置、编号 | |
delete | <breakpoint number> | 删除指定编号的断点 |
clear | 删除刚才停止处的断点 | |
disable | <breakpoint number> | 禁用指定编号的断点 |
enable | <breakpoint number> | 启用指定编号的断点 |
watch | var | 监视变量,当值变化时会输出新、旧值 |
info watch | 只列出watchpoint | |
delete | <watchpoint number> | 删除指定的watchpoint |
continue | c | 继续执行,到下一个断点或程序结束 |
step | s | 执行源码级别的单步进入操作 |
stepi | si | 执行指令级别的单步进入操作 |
next | n | 执行源码级别的单步跳过操作 |
nexti | ni | 执行指令级别的单步跳过操作 |
finish | 运行完当前函数,并返回到函数调用点 | |
return | 直接退出当前函数,不执行剩下代码块 | |
set args | <arguments> | 设置程序开始运行时的输入参数 |
show args | 展示目前的参数列表 | |
set environment | <varname> [=value] | 设置环境变量 |
show environment | [<varname>] | 查看环境变量 |
条件断点定义
条件断点是根据给定的条件在程序执行过程中暂停的断点。可以使用 break 命令并在源代码行位置后添加条件表达式来设置条件断点。
多进程调试
-
使用 attach 命令可以连接到正在运行的进程,让 GDB 托管该进程进行调试。 例如:attach pid 其中 pid 是要调试的进程的进程 ID。
-
可以使用 info inferiors 命令查看当前连接的进程列表。
-
inferior 命令用于切换当前活动进程
-
detach 命令用于从进程中分离 GDB。