ps 查看系统进程命令
启动进程的方式: 系统启动过程中自动启动:与终端无关的进程; 用户通过终端启动:与终端相关的进程; 选项: a:所有与终端相关的进程; x:所有与终端无关的进程; u:以用户为中心阻止进程状态信息显示;
常用组合之一:aux [root@centous1 zuoye]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 19364 1536 ? Ss 16:50 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 16:50 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 16:50 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S 16:50 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S 16:50 0:00 [stopper/0] root 6 0.0 0.0 0 0 ? S 16:50 0:00 [watchdog/0] root 7 0.0 0.0 0 0 ? S 16:50 0:00 [migration/1] root 8 0.0 0.0 0 0 ? S 16:50 0:00 [stopper/1] VSZ:虚拟内存集; RSS:Resident Size(常驻内存); STAT: R:running S:interruptale sleeping(可中断睡眠) D:uninterruptable sleeping(不可中断睡眠) T:Stopped Z:zombie(僵尸进程) +:前台进程 l:多线程进程 N:低优先级进程 <:高优先级进程 s:session leader(进程的最开头进程) -e:显示所有进程 -f:显示完整格式的进程信息 常用组合之二 -ef: -F:显示完整格式的进程信息; C:cpu utilization(cpu占用率) PSR:运行在哪颗CPU之上 -H:以层级结构显示进程的相关信息; 常用组合之三:-eFH
pgrep,pkill,top命令:
根据进程名或其他属性来查询进程或发送信号 pgrep -t terminel : 与指定的终端相关进程 -l:显示程序名 -a:显示完整格式的进程名; -p pid:显示此进程的子进程 也可以直接加字符串,查看包含字符串的进程 pidof命令: 根据进程名,取其pid top命令: -display linux process
[root@centous1 zuoye]# toptop - 22:02:39 up 5:12(运行时长), 1 user, load average(平均负载): 0.07, 0.06, 0.01(队列的长度不要超过CPU个数) Tasks(任务): 129 total, 1 running, 128 sleeping, 0 stopped, 0 zombie(僵死) Cpu(s): 0.0%us(用户空间进程占据的百分比), 0.1%sy(内核占用), 0.0%ni(用于nice调整), 99.8%id(空闲), 0.0%wa(等待IO), 0.0%hi(硬件中断), 0.1%si(软件终中断), 0.0%st(被虚拟化偷走的) Mem: 1004348k total, 192132k used, 812216k free, 21320k buffers Swap: 204796k total, 0k used, 204796k free, 85156k cached
uptime命令:显示系统时间、运行时长及平均负载; 过去一分钟、五分钟和十五分钟的平均负载; 等待运行的进程队列的长度;
htop命令;
选项: -d num:指定延迟时间间隔; -u UserName:仅显示指定用户的进程 -s COLUME: 以指定字段进行排序;子命令: l:显示选定的进程打开的文件列表 s:跟踪选定的进程系统调用; t:以层级关系显示各进程状态; a:将选定的进程绑定至某指定的CPU核心;
vmstat查看虚拟内存的使用情况;
vmstat 2:以2秒为间隔,不断刷新 vmstat 2 3 : 以2秒为间隔,刷新三次 procs: r:等待运行的进程的个数;CPU上等待运行的任务的队列长度 b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度; swpd:交换内存使用总量; buffer:用于buffer的内存总量; cache: 用于cache的内存总量; swap si:数据进入swap中的数据速率(kb/s) so:数据离开swap的速率(kb/s) io bi:从块设备读入数据到系统的速度(kb/s) bo:保存数据至块设备的速率(kb/s) system in:interrupts,中断速率; cs:context switch,上下文切换的速率;
dstat命令:
常用选项: -c 显示CPU相关信息; -d 显示磁盘的相关信息 -D sda,sdb... -g:显示page的相关的速率数据; -m:Memory的相关统计数据; -n:Lnterface的相关统计数据; -p:显示process的相关统计数据; -r:显示io请求的相关统计数据; -s:显示swapped的相关统计数据;
glances命令
内部选项; 常用选项: -b:以Byte为单位显示网上数据速率; -d:关闭磁盘I/O模块 -m:关闭mount模块; -n:关闭network模块; -t #:刷新时间间隔; -1 :每个CPU的相关数据单独显示; -o{HTML|CSV}:输出格式; -f /PATH/TO/SOMEDIR :设定输出文件的位置C/S模式下运行glances命令: 服务模式: glances -s -B IPADDR IPADDR:本机的某地址,用于监听; 客户端模式: glances -c IPADDR ipADDR :是远程服务器地址;
kill命令:
常用命令: 1)SIGHUP:无须关闭进程而让其重读配置文件; 2)SIGINT:终止正在进行的进程,相当于ctrl+c 9)SIGKILL:杀死运行中的进程 15)SIGTERM:终止运行中的进程; killall 可以把一个进程的全部进程关掉;
Liunx系统作业控制:
job:
前台作业(foregroud):通过终端启动,且启动后会一直占据终端 后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端)
如何让作业运行于后台?
(1)运行中的作业
curl+z 注意:送往后台后,作业转为停止态
(2)尚未启动的作业
#COMMAND & 注意:此类作业虽然被送往后台,但其依然与终端相关(意思是如果终端终止,那么从终端开启的后台也会终止);如果希望把送往后台的作业剥离与终端的关系:#nohup COMMEND &(转为与终端无关的模式)
作业前边有加减号的显示,“+”的意思就是可以用fg命令后便不用接参数直接调回来。“—” 不如“+”优先级高
查看所有作业:
#jobs
可实现作业控制的常用命令:
#fg[[%]JOB_number]:把指定的作业调回前台%可以省略
#bg[[%]JOB_number]:让送往后台的作业在后台继续运行 %可以省略
#kill[%JOB_number]:终止指定的作业%不能省略,因为省略了就成了进程ID号了不是作业号。
调整进程优先级: 可通过nice值调整的优先级范围:100-139 进程启动时,其nice值默认为0,其优先级是120;
nice命令; 以指定的nice值启动并运行命令 nice[option][command]参数… -n 指定nice值 注意:仅管理员可调低nice值
renice命令(调整已经启动的进程):
renlice -n -3 进程ID
查询进程优先级 ps axo pid,comm,ni,priority | grep htop
本地电子邮件服务:
smtp:slmple mail transmission protocol 只能接收邮件 pop3:post Office procotol 用来接收邮件 imap4:Internet mail access procotol 用来接收邮件 mail命令: mailx [-s 'SUBJECT'] username [@hostname](hostname如果是本地则不用写) 邮件正文的生成: (1)交互式输入:单独成行表示正文结束;curl+d提交即可; (2)通过输入重定向 (3)通过管道;
at命令
at [option]...TIME TIME: HH:MM:SS [YYY-mm-dd] noon(中午十二点),midnight(半夜十二点),teatime(下午茶时间下午四点) 常用选项: -l:查看任务队列 -f /PATH/FROM/SOMEFEIL:从指定文件中读取任务,不用交互式输入了 -d:删除(加上任务号) -c:查看指定作业的具体内容 -q QUEUE:指明队列;
注意:作业执行结果是以邮件发送给提交作业用户;
向crond提交作业的方式不同于at,他需要使用专用的配置文件,此文件有固定格式,不建议直接使用文件编辑器来编辑此文件;要使用crontab命令;
cron任务分为两类: 系统cron任务:主要用于实现系统自身的维护;用户cron任务: 命令:crontab命令
系统cron的配置格式: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
(1)每一行定义一个周期性任务: * * * * * :定义周期性时间 user-name:运行任务的用户身份 command to be executed:任务 (2)此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义变量; (3)执行结果邮件发送给MAILTO指定的用户
用户cron的配置格式: /var/spool/cron/USERNAME
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
(1)每行定义一个cron任务,共6个子弹;
(2)此处的环境变量不同于用户登录后的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;
(3)邮件发送给当前用户;
时间表示法:
(1)特定值; 给定时间点有效取值范围内的值; 注意:day of week和day of mouth不同时使用 (2)给定时间点上有效取值范围的所有值; *代表的含义:分钟、小时、天、月、星期几 示例: (1)3 * * * *:每小时执行一次;每小时的第三分钟; (2)3 4 * * 5:每周执行一次;每周5的4点3分; (3)5 6 7 * *:每月执行一次;每月的7号6点5分; (4)7 8 9 10 *:每年执行一次;每年的10月9号8点7分; (5)9 8 * *3,7:每周三和周日8点9分 (6)0 8,20 * * 3,7:没周三和周日的8点和20点 (7)0 9-18 * * 1-5:周一到周五的9-18点 (8)*/5 * * * *:每5分钟执行一次任务(指定时间点不能被步长整除时,其意义将不复存在最小时间单位为“分钟”,想完成“秒”级人物,的需要利用脚本实现); crontab命令: crontab -e:编辑任务; crontab -l:列出所有任务 crontab -r:删除所有任务;即删除 /var/spool/cron/USERNAME文件 crontab -u username:可以给别的用户定义定时任务 注意:运行结果以邮件通知给用户;如果拒绝接收邮件: (1)COMMAND > /dev/null 注意:定义COMMEND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义; 思考:某任务在指定的时间因关机未能执行,下次开机会不会执行? 不会 如果期望时间因故未能按时执行,下次开机后无论是否到了响应时间点都要执行一次,可用anacron实现;
traceroute 目标IP :可以显示从源主机到目标主机所经过的网关;
原创文章,作者:forest,如若转载,请注明出处:http://www.178linux.com/43726