进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体。都有自己的地址空间,并占用一定的系统资源。
用来静态显示系统中进程的命令。
ps aux
ps -le
a 显示一个终端所有进程,处理绘画引线
u 显示进程的归属用户及内存的使用情况
x 显示没有控制终端的进程
top [选项]
-d [秒数]:指定top命令每个几秒更新。
-b:使用批处理模式输出。一般和“-n”选项合用,用于把top命令重定向到文件名
-n [次数]:指定top命令执行的次数。
-p:指定PID。只查看某个PID的进程
-s:使top在安全模式运行,避免在交互模式中出现错误
-u [用户名]:只监听某个用户的进程
?或h:显示交互模式的帮助
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
T:按照CPU的积累运算时间排序,即TIME项排序
统计信息区:
前五行是当前系统情况整体的统计信息区。下面我们看每一行信息的具体意义。
第一行:任务队列信息,同 uptime 命令的执行结果
第二行:Tasks — 任务(进程)
第三行:cpu状态信息
5.9%us:用户空间占用CPU的百分比。
3.4% sy:内核空间占用CPU的百分比。
0.0% ni:改变过优先级的进程占用CPU的百分比
90.4% id:空闲CPU百分比
0.0% wa:IO等待占用CPU的百分比
0.0% hi:硬中断(Hardware IRQ)占用CPU的百分比
0.2% si:软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
32949016k total:物理内存总量
14411180k used:使用中的内存总量
18537836k free:空闲内存总量
169884k buffers:缓存的内存量
第五行:swap交换分区信息
32764556k total:交换区总量
0k used:使用的交换区总量
32764556k free:空闲交换区总量
3612636k cached:缓冲的交换区总量
七行以下:各进程(任务)的状态监控
pstree [选项]
-p:显示进程的PID
-u:显示进程的所属用户
kill -l
或man 7 signal
来查询。 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
1)SIGHUP 重启
9)SIGKILL 强制终止
kill [信号] PID
使用进程名结束进程,通常用于杀死一类进程
killall [选项] [信号] 进程名
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
pkill
命令和killall
命令赔偿类似,也是按照进程名来杀死进程。
pkill [选项] [信号] 进程名
选项:
-t [终端号]:按照终端号踢出用户
ctrl+c
来终止,只能使用fg/bg
来调用工作在命令后加“空格&”,将命令放入后台执行。
在命令执行过程中按ctrl+z键,后台将会在后台暂停。
jobs [选项]
选项:
-l:显示工作的PID号
fg %工作号
注:%号可以省略,但是注意工作号和PID的区别
bg %工作号
/etc/rc.local
文件中,让系统在启动时执行这个后台程序。nohup
命令nohup [命令] &
vmstat [刷新延时单位秒] [刷新次数]
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 357072 24492 309140 0 0 198 46 115 104 2 4 92 2 0
0 0 0 357188 24492 309168 0 0 0 0 59 92 0 0 100 0 0
0 0 0 357188 24492 309168 0 0 0 0 38 57 0 0 100 0 0
输出信息:
procs:进程信息字段
memory:内存信息字段,单位KB
swap:交换分区的信息字段,单位KB
io:磁盘读写信息字段,单位块
system:系统信息字段
cpu:cpu信息字段
dmesg | grep cpu
dmesg | grep eth0
free [选项]
-b:以字节为单位显示
-k:以KB为单位显示(默认)
-m:以MB为单位显示
-g:以GB为单位显示
-h:根据大小添加的单位
total used free shared buff/cache available
Mem: 1.8G 1.1G 77M 1.7M 604M 531M
Swap: 0B 0B 0B
输出信息
cpu信息保存在/proc/cpuinfo
中
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
stepping : 4
microcode : 0x1
cpu MHz : 2500.008
cache size : 33792 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 spec_ctrl intel_stibp
bogomips : 5000.01
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
w
19:46:56 up 44 days, 11:17, 1 user, load average: 0.16, 0.11, 0.13
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 xxx.xxx.xxx.xxx 19:21 0.00s 0.02s 0.00s w
查看系统中已经登录的用户
who
root pts/0 2020-05-08 19:21 (xxx.xxx.xxx.xxx)
显示系统的启动时间和平均负载,即top
命令的第一行
uptime
19:56:01 up 44 days, 11:26, 1 user, load average: 0.45, 0.15, 0.14
uname
命令查看
uname [选项]
-a:查看系统所有相关信息
-r:查看内核版本
-s:查看内核名称
使用file
命令判断当前系统位数
file /bin/ls
[root@localhost ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
使用lsb_release -a
查看当前Linux
系统的发行版本
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.7.1908 (Core)
Release: 7.7.1908
Codename: Core
at
服务管理与访问控制
at
命令需要atd
服务的支持
atd
服务状态service atd status
atd服务启动后,at命令才可以正常使用。at访问控制文件为/etc/at.allow文件(白名单)和/etc/at.deny文件(黑名单)
at
命令使用at [选项] [时间]
-m:当at工作完成后,无论是否命令有输出,都用email通知执行at命令的用户
-c [工作号]:显示该at工作的实际内容
时间:
HH:MM
HH:MM YYY-MM-DD
HH:MM[am|pm] [month] [date]
HH:MM[am|pm] + [minutes|hours|days|weeks]:在指定的时间基础上加多久执行
[root@localhost study]# at now + 1 minutes
at> /root/study/hello.sh >> /root/study/hello.txt
at> <EOT> # 使用ctrl+d保存任务
job 3 at 2020-05-10 12:34
at -c [工作号]
......
${SHELL:-/bin/sh} << 'marcinDELIMITER732e1540'
/root/study/hello.sh >> hello.txt
at
定时任务atq
2 2020-05-10 12:24 a root
atrm [工作号]
crond
服务管理与访问控制
crontab
命令需要crond
服务支持。
service crond status
同at命令,
/etc/cron.allow
白名单,/etc/cron.deny
黑名单
crontab
设置crontab [选项]
-e:编辑定时任务
-l:查询任务
-r:删除当前用户所有任务
-u [用户名]:修改或删除其他用户的任务,只有root用户可用
crontab -e
* * * * * [需要执行的任务]
“*”分别表示:
1、一小时当中的第几分钟,0~59
2、一天中的第几小时,0~23
3、一个月中的第几天,1~31
4、一年中的第几月,1~12
5、一周当中的星期几,0~7,(0和7都表示星期日)
*:表示任意时间
,:表示不连续的时间
-:表示连续的时间范围
*/n:表示内个多久执行一次
- 月份的天数需小于29
- 不要同时设置星期和天数,只要满足星期或天数中的一个条件任务就会执行
定时任务(cron)
不会在关机时执行,anacron
就是用来解决这个问题的。anacron
会使用一天、七天、一个月作为检测周期,用来判断是否有定时任务在关机时没有执行。/var/spool/anacron/
目录中保存着anacron
上次执行的时间,anacron
会去读取这些文件中的时间,然后和当前时间做比较,若两个时间的差值超过了anacron
的指定时间,就说明定时任务漏掉了没有执行,这时anacron
就会执行漏掉的定时任务。
anacron
配置文件vim /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 最大随机延迟
RANDOM_DELAY=45
# 可以执行的时间范围
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
执行过程