Linux复习笔记:06.常用工具
大约 10 分钟
常用工具
ping 命令
语法格式
ping [-c num] ip或主机名
选项说明
-c
检查次数,不提供该选项则不限次数。
示例
root@ubuntu2204:~# ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=46 time=49.9 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=46 time=49.8 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=46 time=49.6 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=4 ttl=46 time=49.8 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=5 ttl=46 time=49.6 ms
^C
--- baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 49.614/49.743/49.871/0.099 ms
wget命令
非交互式文件下载器
语法格式
wget [-b] url
选项说明
-b
可选,后台下载(background),日志会写入到当前目录的wget-log
示例
root@ubuntu2204:~# wget -b http://www.baidu.com/
Continuing in background, pid 9267.
Output will be written to ‘wget-log’.
root@ubuntu2204:~# tail -f wget-log
Resolving www.baidu.com (www.baidu.com)... 103.235.46.96, 103.235.47.188
Connecting to www.baidu.com (www.baidu.com)|103.235.46.96|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’
0K .. 100% 394M=0s
2024-11-24 22:05:50 (394 MB/s) - ‘index.html’ saved [2381/2381]
^C
root@ubuntu2204:~# cat index.html
<!DOCTYPE html>
<!--STATUS OK-->
<html>
略
</html>
root@ubuntu2204:~#
curl命令
可发送http请求,可用于下载文件、获取信息等。
语法格式
curl [-O] url
语法格式
-O --remote-name
输出到文件(以url资源名作为文件名)-o --output <file>
输出到指定文件
示例
root@ubuntu2204:~# curl https://dingdingdang.online -o 1.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 70475 100 70475 0 0 2457k 0 --:--:-- --:--:-- --:--:-- 2457k
root@ubuntu2204:~# ls
1.html
root@ubuntu2204:~# curl -O https://dingdingdang.online/index.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 70475 100 70475 0 0 2457k 0 --:--:-- --:--:-- --:--:-- 2457k
root@ubuntu2204:~# ls
1.html index.html
scp命令
语法
scp [-r] src dist
选项说明
-r
递归拷贝
参数说明
- src 源文件
- dist 目标文件
远程路径格式
user@host:path
# 示例1:
pi@192.168.1.1:~/dir/
# 示例2:
pi@192.168.1.1:/root/pi/dir/
scp免密拷贝/ssh免密登录
最终目的:cat ~/.ssh/id_rsa.pub >> pi@192.168.1.1:~/.ssh/authorized_keys
# 生成rsa公私钥(如果没有)
$ ssh-keygen -t rsa
# 上传公钥
$ scp ~/.ssh/id_rsa.pub pi@192.168.1.1:~/
# 登录远程主机
$ ssh dyg@dingdingdang.online
# 附加公钥
dyg@ubuntu2204:~# cat id_rsa.pub >> .ssh/authorized_keys
# 如果ssh目录不存在
# mkdir .ssh
# chmod 700 .ssh
# chmod 644 .ssh/id_rsa.pub .ssh/authorized_keys
# chmod 600 .ssh/id_rsa
案例
# #####################################
scp -r ./dir/ pi@192.168.1.1:~/dir/
scp -r pi@192.168.1.1:~/dir/ ./dir/
# #####################################
scp -r ./dir hostA:`pwd`/dir
scp -r ./dir hostB:${PWD}/dir
# #####################################
ssh-copy-id命令
作用
将本地公钥文件
~/.ssh/id_rsa.pub
拷贝到远程服务器~/.ssh/authorized_keys
语法
ssh-copy-id [-i identity_file] [user@]hostname
nmap命令
安装
apt -y install nmap
语法
nmap ip地址
示例1
root@ubuntu2204:~# nmap baidu.com
Starting Nmap 7.80 ( https://nmap.org ) at 2024-11-24 22:43 CST
Nmap scan report for baidu.com (110.242.68.66)
Host is up (0.045s latency).
Other addresses for baidu.com (not scanned): 39.156.66.10
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 5.01 seconds
root@ubuntu2204:~#
示例2
root@ubuntu2204:~# nmap 0.0.0.0
Starting Nmap 7.80 ( https://nmap.org ) at 2024-11-24 22:45 CST
Nmap scan report for 0.0.0.0
Host is up (0.000016s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
2000/tcp open cisco-sccp
Nmap done: 1 IP address (1 host up) scanned in 4.82 seconds
netstat命令
语法
netstat [-anp] | grep 端口
选项说明
a, --all
display all sockets (default: connected)-n, --numeric
don't resolve names(默认会把80、443解析成http、https)-p, --programs
display PID/Program name for sockets
示例
root@ubuntu2204:~# netstat -anp |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 910/nginx: master p
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 910/nginx: master p
unix 3 [ ] STREAM CONNECTED 22660 910/nginx: master p
unix 3 [ ] STREAM CONNECTED 22658 910/nginx: master p
unix 3 [ ] STREAM CONNECTED 22659 910/nginx: master p
unix 3 [ ] STREAM CONNECTED 22661 910/nginx: master p
root@ubuntu2204:~#
进程管理
ps命令
语法
ps [-aux]
选项说明
-a
all with tty, except session leaders-u
user-oriented format-x
processes without controlling ttys-e
show the environment after command-f
full-format, including command lines
输出格式
- USER 用户id
- PID 进程id
- CPU CPU占用率
- MEM Memory占用率
- TTY 启动此进程的终端序号
?
表示非终端启动 - TIME 启动时间
root@ubuntu2204:~# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
nginx 911 0.0 0.3 10496 7340 ? S 19:33 0:00 nginx: worker process
示例1
root@ubuntu2204:~# ps -aux |grep nginx
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 910 0.0 0.0 8908 940 ? Ss 19:33 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 911 0.0 0.3 10496 7340 ? S 19:33 0:00 nginx: worker process
nginx 912 0.0 0.3 10620 7528 ? S 19:33 0:00 nginx: worker process
示例2
root@ubuntu2204:~# ps -auxf |grep nginx
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 910 0.0 0.0 8908 940 ? Ss 19:33 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 911 0.0 0.3 10772 7600 ? S 19:33 0:01 \_ nginx: worker process
nginx 912 0.0 0.3 10736 7528 ? S 19:33 0:00 \_ nginx: worker process
kill命令
语法
kill [-9] pid
选项说明
-s <signal name>
-n signal number
-9
强制关闭进程-n 9
强制关闭进程
-l
列出signal name
和signal number
的对应关系
示例
root@ubuntu2204:~# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
2) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
1) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
2) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
3) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
4) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
5) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
6) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
7) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
8) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
9) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
10) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
11) SIGRTMAX-1 64) SIGRTMAX
常用信号
- SIGTERM(kill默认信号)
- 信号值为15
- SIGTERM是一个终止信号,用于请求进程优雅地退出,允许进程在终止前进行清理工作,如保存进度和释放资源。
- SIGKILL
- 信号值为9,
- 表示强制立即停止进程,不允许进程进行任何清理工作,可能会导致数据丢失。
- 在某些情况下,如果SIGTERM无效,可以使用SIGKILL信号强制终止进程。
示例1
Terminated表示 进程自己体面的走了
# 终端1
admin@ubuntu2204:~$ tail -f log.txt
123
Terminated
# 终端2
admin@ubuntu2204:~$ ps -auxf |grep tail
admin 17988 0.0 0.0 8900 732 pts/1 S+ 23:38 0:00 | \_ grep --color=auto tail
admin 17909 0.0 0.0 8112 532 pts/0 S+ 23:38 0:00 \_ tail -f log.txt
admin@ubuntu2204:~$ kill -9 17909
示例2
Killed表示 进程被体面的走了
# 终端1
admin@ubuntu2204:~$ tail -f log.txt
123
Killed
# 终端2
admin@ubuntu2204:~$ ps -auxf |grep tail
admin 18300 0.0 0.0 8900 668 pts/1 S+ 23:40 0:00 | \_ grep --color=auto tail
admin 18221 0.0 0.0 8112 528 pts/0 S+ 23:40 0:00 \_ tail -f log.txt
admin@ubuntu2204:~$ kill -9 18221
系统状态监控
top命令
- 可用于查看CPU、内存使用情况
- 查看系统资源占用
语法
# 默认每五秒刷新一次
top [-d secs] [-u user] [-p pid]
选项说明
-d secs
每多少秒刷新一次,默认5秒-u user
指定用户-p pid(s)
指定pid(s),逗号分隔-c
显示完整进程路径-b
以非交互非全屏输出,可重定向到文件-i
不显示闲置(idle)或无用进程
交互模式
h
显示交互模式帮助信息M
按内存使用率排序P
按CPU使用率排序T
按时间使用率排序
输出格式说明
# [命令名称]-[系统时间] up [运行时间], [登录用户数] users, load average: [1、5、15]分钟负载
top - 23:53:51 up 4:20, 2 users, load average: 0.00, 0.00, 0.00
# Tasks:[进程数]total, [运行数]running, [睡眠数]sleeping, [停止数]stopped, [僵尸进程数]zombie
Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie
# CPU使用率 [用户进程CPU使用率]us [系统进程CPU使用率]sy [高优先级进程CPU使用率]ni,[空闲CPU率]id,[IO等待CPU率]wa,[硬件中断率]hi,[软件中断率]si,[强制等待占用率]st
%Cpu(s): 3.5 us, 3.5 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
# 物理内存 [总大小]total [空闲]free [使用]used [缓存占用]buff/cache
MiB Mem : 1884.3 total, 277.3 free, 188.1 used, 1419.0 buff/cache
# 虚拟内存 [总大小]total [空闲]free [使用]used [缓存占用]buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1510.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
表头说明
- PID 进程id
- USER 进程所属用户
- PR 进程优先级,越小越高
- NI 正数低优先级,负数高优先级
- VIRT 虚拟内存使用量(KB)
- RES 物理内存使用量(KB)
- SHR 共享内存使用量(KB)
- S 状态(S休眠、R运行、Z僵死、N负数优先级、I空闲)
- %CPU CPU使用率
- %MEM 内存使用率
- TIME+ 使用CPU总时间(单位10ms)
- COMMAND 进程名
示例1
admin@ubuntu2204:~$ top -d 1 -p 1,2,3
top - 23:53:51 up 4:20, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.5 us, 3.5 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1884.3 total, 277.3 free, 188.1 used, 1419.0 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1510.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 103016 12676 8508 S 0.0 0.7 0:03.93 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
示例2
admin@ubuntu2204:~$ top -d 1 -u nginx
top - 23:54:52 up 4:21, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 121 total, 1 running, 120 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.0 us, 3.0 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1884.3 total, 276.0 free, 189.1 used, 1419.2 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1509.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
911 nginx 20 0 10772 7600 5188 S 0.0 0.4 0:01.29 nginx
912 nginx 20 0 10736 7528 5188 S 0.0 0.4 0:00.12 nginx
df命令
磁盘使用情况查看
语法
df [-h]
选项说明
-h, --human-readable
以更易阅读的单位显示数值
示例
admin@ubuntu2204:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 915M 0 915M 0% /dev
tmpfs 189M 972K 188M 1% /run
/dev/vda1 59G 13G 45G 22% /
tmpfs 943M 0 943M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 943M 0 943M 0% /sys/fs/cgroup
/dev/loop2 67M 67M 0 100% /snap/core24/609
/dev/loop1 53M 53M 0 100% /snap/certbot/4193
/dev/loop0 53M 53M 0 100% /snap/certbot/4182
/dev/loop3 39M 39M 0 100% /snap/snapd/21759
/dev/loop4 64M 64M 0 100% /snap/core20/2434
/dev/loop5 45M 45M 0 100% /snap/snapd/22991
/dev/loop6 64M 64M 0 100% /snap/core20/2379
tmpfs 189M 0 189M 0% /run/user/1000
iostat命令
查看CPU 磁盘相关信息
语法
iostat [-x] [num1] [num2]
选项说明
-x
显示更多信息- num1 刷新间隔 不填则 num1=1 num2=1
- num2 刷新次数 不填则无限
-c
:显示CPU使用情况。-d
:显示磁盘使用情况。-N
:显示磁盘阵列(LVM)信息。-n
:显示NFS使用情况。-k
:以KB为单位显示。-m
:以MB为单位显示。-t
:报告每秒向终端读取和写入的字符数和CPU的信息。-V
:显示版本信息。-x
:显示详细信息。-p
:显示磁盘和分区的情况。
iostat命令的输出结果分析:
CPU属性值说明:
- %user:CPU处在用户模式下的时间百分比。
- %nice:CPU处在带NICE值的用户模式下的时间百分比。
- %system:CPU处在系统模式下的时间百分比。
- %iowait:CPU等待输入输出完成时间的百分比。
- %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
- %idle:CPU空闲时间百分比。
磁盘属性值说明:
- tps:每秒钟发送到的I/O请求数。
- kB_read/s:每秒读取的block数。
- kB_wrtn/s:每秒写入的block数。
- kB_read:读入的block总数。
- kB_wrtn:写入的block总数。
示例
admin@ubuntu2204:~$ iostat
Linux 5.4.0-47-generic (ubuntu2204) 11/25/2024 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.49 0.00 0.29 0.02 0.00 99.20
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
loop0 0.01 0.03 0.00 0.00 479 0 0
loop1 0.01 0.03 0.00 0.00 482 0 0
loop2 0.01 0.06 0.00 0.00 1204 0 0
loop3 0.74 0.75 0.00 0.00 14296 0 0
loop4 0.01 0.03 0.00 0.00 532 0 0
loop5 0.00 0.02 0.00 0.00 343 0 0
loop6 0.01 0.03 0.00 0.00 534 0 0
loop7 0.00 0.00 0.00 0.00 4 0 0
vda 3.68 64.74 16.65 0.00 1232855 316993 0
sar命令
查看网络相关统计信息
语法
sar -n DEV num1 num2
选项说明
-n
查看网络 DEV表示查看网络接口- num1 查看(采样)间隔,不填则查看1次
- num2 查看(采样)次数,不填则无限
- -u: 显示CPU利用率,包括用户态、系统态和空闲态的CPU时间比例。
- -d: 显示硬盘使用报告。
- -v: 显示进程、索引节点、文件和锁表状态。
- -b: 显示缓冲区使用情况。
- -g: 显示串口I/O的情况。
- -c: 显示系统调用情况。
- -R: 显示进程的活动情况。
- -y: 显示终端设备活动情况。
- -w: 显示系统交换活动情况。
示例
admin@ubuntu2204:~$ sudo sar -n DEV 1 1
Linux 5.4.0-47-generic (ubuntu2204) 11/25/2024 _x86_64_ (2 CPU)
01:00:45 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
01:00:46 AM eth0 37.00 30.00 5.18 10.11 0.00 0.00 0.00 0.00
01:00:46 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: eth0 37.00 30.00 5.18 10.11 0.00 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
admin@ubuntu2204:~$