目录
1、文件管理:
2、权限管理
3、进程管理
4、系统管理
5、用户管理命令
6、网络通讯
7、关机/重启
8、文件压缩
9、线程操作:
10、gdb调试
补充:
cd +路径 改变当前工作目录 路径可以为绝对路径或者相对路径
ls 显示当前目录下的文件 touch 新建普通文件
rm 删除普通文件 mkdir 新建目录文件
rmdir 删除空目录 rm -r 删除非空目录
cp 拷贝普通文件 cp -r 拷贝目录文件
mv 移动(剪切)文件 chmod 修改文件权限
chown 修改文件属主 chgrp 修改文件组用户
pwd 显示当前工作目录绝对路径 find查找文件
vim 文本编辑器 wc 统计数目
n1 显示文件内容和行号 umask 显示/设置文件的缺省权限
whereis:搜索命令所在目录及帮助文档路径
more less head tail cat 查看文件内容
文件权限的划分:
rw-(文件属主--u) rw-(同组文件--g) r--(其他文件--o)
r 读权限
w 写权限
x 可执行权限(普通文件)或者能否进入权限(目录)
修改文件权限的命令:chmod
(1)字符修改法:
chmod u/g/o/a +/-/= r filename
w
x
rw
rx
wx
rwx
如:chmod u+x main.c 给main.c文件的属主加上读写权限
chmod g-w main.c 给main.c文件的同组用户去掉写权限
chmod u+w,g-r,o=r main.c 给main.c文件的属主加上写权限,同组用户去掉读权限,将其他用户的权限设置为只读
(2)数字修改法
r:4 w:2 x:1
如:chmod 664 main.c 将main.c文件的权限设置为属主可读可写,同组用户可读可写,其他用户可读
ps 显示进程信息 kill pid 结束进程
kill -stop pid 挂起进程 kill -9 pid 强制结束进程
jobs 显示后台和挂起的进程任务 & 在后台运行进程
bg 任务号 将挂起的进程放到后台执行
fg 任务号 将挂起或后台的进程放到前台执行
pstree 以树状图显示进程
top 动态显示进程信息以及系统运行统计信息
free 显示系统运行统计信息 --- 内存 buffers/cache Swap
ipcs -s / -q / -m 分别显示系统的信号量、消息队列、共享内存
ipcs -s / -q / -m id 根据id分别删除信号量、消息队列、共享内存
lsof 列出当前系统打开的所有文件描述符
mpstat 实时监测多处理器系统上的每个CPU使用情况
vmstat 实时输出系统各个资源的使用情况
useradd / adduser newname 添加一个新用户newname
参数: -g 执行新用户的主组
-G 将新用户添加到副组
-s 指定新用户默认使用的shell终端
-d 指定新用户登录默认进入的目录
passwd username 修改用户密码
userdel username 删除用户
ping 测试网络连通性
ifconfig / ip 显示或设置网络设备
netstat / ss 显示网络相关信息
service 管理系统运行的服务器
mail 查看、发送电子邮件
write 给用户发信息
(1)系统运行级别:(root用户可以通过init命令修改运行级别)
0 关机
1 单用户模式
2 不带网络的多用户模式
3 完全的多用户模式,优先进入字符界面
4 未定义
5 x11 --- 图形界面模式
6 重启
(2)关机 / 重启命令
init 0 关机(root用户才能运行)
init 6 重启(root用户才能运行)
halt 立即关机 poweroff 立即关机
shutdown 立即关机 reboot 立即重启
(1)tar 打包 + gzip 压缩 ---> 生成 .tar.gz 压缩包
(2)tar 直接压缩 ---> 生成 .tgz 压缩包
参数:
c 创建新文件
f 指定目标为文件而不是设备
v 显示详细过程
t 只显示包中内容,而不真正释放
x 释放文件
z GNU版本新添加的,完成压缩工作
以上两个方式可以相互混用,通过tar压缩的文件gzip也可以解压,通过gzip压缩的文件tar也可以解压
ps 默认查看当前终端中运行的进程
Ps -eLf 带上参数 L 可以查看正在运行的线程 id
Top 系统监测工具
Top -H 显示应用程序的每个线程信息
Top fj 显示进程或线程在那个 cpu 上运行
(1)release版本
release版本为发行版本,是提供给用户使用的版本。用gcc默认生成的就是release版本
首先将源代码编译、链接生成debug版本的可执行文件,然后通过‘gdb debug版本的可执行文件名’进入调试模式
a)单进程、但线程基础调试命令
l 显示main函数所在的文件的源代码
list filename:num 显示filename文件num行上下的源代码
b linenum 给指定行添加断点
b funname 给指定函数的第一有效行添加一个断点
info break 显示断点信息
delete 断点号 删除指定断点
disable 断点号 将断点设定为无效的
如果不加断点号,将所有断点设置为无效
enable 断点号 将断点设置为有效的
如果不加断点号,将所有断点设置为有效
r(run) 运行 / 启动程序
n(next) 单步执行 / 下一步
c(continue) 继续执行,直接执行到下一个端点处
s 进入将要被调用的函数中执行
finish 退出 / 跳出函数
q 退出调试
p val 打印变量val的值
p &val 打印变量val的地址
p a+b 打印表达式的值
p arr(数组名) 打印数组所有元素的值
p *parr@len 用指向数组的指针打印数组所有元素的值
x /nfu addr 打印addr表示的内存存储值
n:是一个正整数,表示显示内存的长度
f:表示显示的格式,x 十六进制; d 十进制; o 八进制
t 二进制; c 字符; f 浮点数
u:表示从当前地址向后请求的字节数,默认4bytes,可以指定:
b 单字节 h 双字节 w 四字节 g 八字节
display 自动显示,参数和p命令一样
info display 显示自动显示信息
undisplay + 自动显示编号 删除指定的自动显示
ptype val 显示变量类型
bt 显示函数调用栈
b)多进程调试命令
(gdb)set follow-fork-mode mode
mode 可以选择parent或者child,即:选择调试那个进程
注意:未被选择的进程会直接执行结束
c)多线程调试命令
a)利用info thread查看线程信息
b)thread id 调试目标id指定的线程
c)set scheduler-locking off | on | step:
“off”表示不锁定任何线程;
“on”只有当前被调试的线程继续执行;
“step”在单步执行的时候,只有当前线程会执行;
1、set follow-fork-modechild 跟踪子进程
2、attach pid 选择跟踪那个子进程
3、infothreads 显示可调式线程信息
4. ldd main 查看某个程序使用了那些共享库
5. nm main 查看二进制目标文件中的符号表,即方法名,逻辑地址等。
6. objdump 可查看二进制目标文件的构成
7. strace 跟踪程序执行过程中都使用了那些系统调用
8. Ltrace 跟踪程序执行过程中使用了那些库函数
9. ipcs 查看系统当前 信号量 共享内存 消息队列的用使用情况
10. netstat (重重点) 可查看 tcp 连接状态 某个进程使用那个端口 查看发送缓冲区,接收缓冲区中的数据字节数
11. Lsof 可以查看某个进程打开了那些文件
12. Mpstat 查看多个多处理器使用情况 Mpstat -P cpu 编号 可查看某个处理器核心的使用情况
13. Tcpdump 网络抓包工具
14. Vmstat 可实时输出系统各种资源的使用情况,如 内存 cpu i/o 等
15. Ifstat (下载安装)网路流量监测工具
16. nc 快速构建一个网络连接,可以服务端运行,也可作为客户端。也能扫描某个端口
是否打开
17. Sar 收集系统性能信息
18. free 系统内存使用情况
19. Slabtop 实时显示系统如何分配各种缓存,及缓存的使用情况
20. Time 测试程序执行的性能。如实际运行时间, 用户态运行时间 内核态运行时间
21. iostat 显示磁盘 io 子系统信息统计情况
22. ifconfig 查看 ip
23. ethtool 显示以太网设备统计信息及配置信息
24. iptraf (yum 需要自己安装) 实时网络监测工具
25. ip 命令 网络设备信息统计及配置
26. watch 命令 周期采用样 某个命令的执行情况
27. taskset 设置某个进程在那个 cpu 上运行