点关注不迷路
目录
1进程查看
一、进程介绍
- 操作系统在执行任务时,进行资源分配的最小单位
二、查看进程 ps
1、查看当前终端运行的进程
[root@localhost ~]# ps
PID TTY TIME CMD
6762 pts/0 00:00:00 bash
6787 pts/0 00:00:00 ps
- CMD 进程名称
- PID 进程的ID
2、查看所有进程
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 190828 3760 ? Ss 09:06 0:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 09:06 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 09:06 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 09:06 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 09:06 0:00 [migration/0]
- VSZ 虚拟内存集
- 物理内存、共享内存、swap虚拟内存
- 共享内存的作用
- 进程间通信(IPC)
- RSS 物理内存集
- 进程所消耗实际的物理内存大小
- STAT 状态
- R 运行状态
- D 不可中断的睡眠
- S 可中断的睡眠
- T 停止状态
- Z 僵尸状态
- s 工作时会产生子进程
- l 工作时会产生线程
- < 高优先级的进程
- N 低优先级的进程
- + 前台进程
查看进程树
[root@localhost ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─crond
├─dbus-daemon
├─httpd───5*[httpd]
├─irqbalance
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───6*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd─┬─sshd───bash───pstree
│ └─2*[sshd───bash───vim]
停止状态的进程
[root@localhost ~]# ps aux | grep ping
root 7753 0.0 0.2 150076 2008 pts/1 S+ 11:04 0:00 ping baidu.com
root 7755 0.0 0.0 112812 976 pts/0 S+ 11:04 0:00 grep --color=auto ping
[root@localhost ~]# kill -19 7753
[root@localhost ~]# ps aux | grep ping
root 7753 0.0 0.2 150076 2008 pts/1 T 11:04 0:00 ping baidu.com
root 7757 0.0 0.0 112812 980 pts/0 S+ 11:05 0:00 grep --color=auto ping
[root@localhost ~]# kill -18 7753
[root@localhost ~]# ps aux | grep ping
root 7753 0.0 0.2 150076 2008 pts/1 S 11:04 0:00 ping baidu.com
root 7759 0.0 0.0 112812 980 pts/0 S+ 11:06 0:00 grep --color=auto ping
[root@localhost ~]#
模拟僵尸进程
[root@localhost ~]# yum install httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# ps aux | grep "httpd"
root 7776 0.4 1.2 310416 12004 ? Ss 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7777 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7778 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7779 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7780 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7781 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
root 7785 0.0 0.0 112812 980 pts/0 S+ 11:14 0:00 grep --color=auto httpd
[root@localhost ~]# kill -19 7776
[root@localhost ~]# kill -9 7780
[root@localhost ~]# ps aux | grep "http"
root 7776 0.0 1.2 310416 12004 ? Ts 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7777 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7778 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7779 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7780 0.0 0.0 0 0 ? Z 11:13 0:00 [httpd] <defunct>
apache 7781 0.0 0.6 310416 6096 ? S 11:13 0:00 /usr/sbin/httpd -DFOREGROUND
root 7788 0.0 0.0 112812 980 pts/0 S+ 11:15 0:00 grep --color=auto http
[root@localhost ~]# kill -18 7780
3、查看进程
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 47743 ep_pol 09:06 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deser
1 S root 2 0 0 80 0 - 0 kthrea 09:06 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo 09:06 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker 09:06 ? 00:00:00 [kworker/0:0H]
1 S root 7 2 0 -40 - - 0 smpboo 09:06 ? 00:00:00 [migration/0]
- PPID 父进程ID
4、获取进程的ID
[root@localhost ~]# pidof ping 7982
三、动态查看进程 top
# top
- M 按内存的占用比显示进程
- P 按CPU的占用比显示进程
- q 退出
2查看系统的运行状态
一、top
[root@localhost ~]# top
top - 13:51:58 up 4:45, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.4 us, 0.0 sy, 0.0 ni, 98.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995924 total, 690372 free, 110360 used, 195192 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 707544 avail Mem
1、查看CPU的负载
top - 13:51:58 up 4:45, 2 users, load average: 0.00, 0.01, 0.05
[root@localhost ~]# uptime
13:58:08 up 4:52, 2 users, load average: 0.00, 0.02, 0.05
- load average
- 最近1分钟、5分钟、15分钟的平均负载
- 该值不长期超过CPU的个数,说明负载正常
2、查看CPU的使用率
%Cpu(s): 1.4 us, 0.0 sy, 0.0 ni, 98.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- us 用户进程占用的CPU百分比
- sy 系统进程占用的CPU百分比
- id CPU的空闲
- wa 等待IO完成的进程所占用的CPU百分比
二、CPU
1、查看CPU的物理型号
[root@localhost ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
2、查看CPU负载
# top
# uptime
3、查看CPU使用率
# top
[root@localhost ~]# mpstat 2 4
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 07/22/2022 _x86_64_ (4 CPU)
03:16:03 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:16:05 PM all 0.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 0.00 99.88
03:16:07 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
03:16:09 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
二、内存
1、查看内存容量
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 107 574 7 291 690
Swap: 2047 0 2047
2、动态查看内存的使用情况
[root@localhost ~]# vmstat 2 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 587852 2108 295912 0 0 3 0 9 13 0 0 100 0 0
0 0 0 587852 2108 295944 0 0 0 0 48 60 0 0 100 0 0
0 0 0 587852 2108 295944 0 0 0 0 25 34 0 0 100 0 0
0 0 0 587852 2108 295944 0 0 0 0 37 51 0 0 100 0 0
三、硬盘
1、查看硬盘容量
[root@localhost ~]# df -hT
2、查看硬盘inode
# df -i
3、查看磁盘IO
[root@localhost ~]# iostat 1 3
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 07/22/2022 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.02 0.00 0.03 0.00 0.00 99.95
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.40 10.97 1.13 258438 26525
scd0 0.00 0.04 0.00 1028 0
dm-0 0.31 10.45 1.04 245990 24457
dm-1 0.00 0.10 0.00 2460 0
四、网卡
1、查看网卡IO/流量
[root@localhost ~]# sar -n DEV 2
03:47:39 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
03:47:40 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:47:40 PM ens33 7.89 10.53 0.58 1.79 0.00 0.00 0.00
3进程调度控制
一、控制进程后台运行
- 默认在前台运行
1、将命令放入后台运行
命令:nohup [命令] &
命令:nohup sleep 100 &
命令:nohub dd if=/dev/zero of=/opt/a.txt bs=10M count=900 &
2、查看后台运行的任务
命令:jobs -l
3、将后台任务调回前台运行
命令:fg 任务编号
4、将正在运行的任务放入后台,并暂停运行
命令:ctrl + z
二、通过向进程发送信号的方式
1、命令格式
命令:kill 【-信号编号/名称】PID
命令:killall 【-信号编号/名称】进程名称
2、查看信号
[root@localhost ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
3、常用信号
- 15)SUGTERM
- 正常结束进程
- 默认
- 9)SIGKILL
- 结束进程(异常)
命令:kill -9 6893
- 1)SIGUP
- 让进程重新读取配置文件
4计划任务
一、计划任务
- 一次性任务
- 周期性任务
二、一次性任务
1、前提条件
- 依赖于atd服务
[root@localhost ~]# systemctl status atd
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-07-25 10:38:47 CST; 1s ago
Main PID: 7722 (atd)
CGroup: /system.slice/atd.service
└─7722 /usr/sbin/atd -f
Jul 25 10:38:47 localhost systemd[1]: Started Job spooling tools.
2、设置一次性任务
[root@localhost ~]# at 19:45
at> mkdir /tmp/abc
at> <EOT>
- 按ctrl + d 提交任务
三、周期性任务
1、前提条件
- 依赖于crond服务
[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2022-08-25 08:44:33 CST; 11h ago
Main PID: 691 (crond)
CGroup: /system.slice/crond.service
└─691 /usr/sbin/crond -n
8月 25 08:44:33 localhost.localdomain systemd[1]: Started Comm...
8月 25 08:44:33 localhost.localdomain crond[691]: (CRON) INFO ...
8月 25 08:44:36 localhost.localdomain crond[691]: (CRON) INFO ...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#
2、设置周期性任务
#crontab -e
一、时间写法
分 时 日 月 周
每天晚上十点半 30 22 * * *
每周三上午九点 0 9 * * 3
每天上午八点半、九点半、十点半 30 8-10 * * *
每周一到周四的晚上八点 0 20 * * 1-4
每周一,三,五晚上十一点半 30 23 * * 1,3,5
每隔半个小时 */30 * * * *
上午八点到下午4点,每隔2个小时 0 8-16/2 * * *
操作得注意事项:
1、所有命令以绝对路径得方式写
2、%需要转义 \%
3、查看周期性任务
[root@localhost ~]# crontab -l
30 8-10 * * * /usr/bin/touch /tmp/$(/usr/bin/date +\%F_\%T)
[root@localhost ~]#
5Linux系统运行模式
一、运行模式
- 0
- 关机模式
- 1
- 单用户模式
- 重置root密码
- 2
- 字符模式[无网络连接]
- 3 multi-user.target
- 字符模式
- 4
- 预留模式
- 5 graphical.target
- 图形模式
- 6
- 重启模式
1、查看运行模式
# runlevel
2、切换运行模式
# init 5
[root@localhost ~]# systemctl isolate multi-user.target
[root@localhost ~]# systemctl isolate graphical.target
3、设置默认的运行模式
[root@localhost ~]# systemctl set-default multi-user.target
二、Linux系统启动过程
- BIOS加电自检
- 在硬盘的MBR查找引导记录
- 加载kernel内核
- 运行login程序