Linux学习笔记(12)

2022/1/10 7:06:49

本文主要是介绍Linux学习笔记(12),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

系统管理(续)

nice命令和renice命令

nice 命令可以给要启动的进程赋予 NI 值,但是不能修改已运行进程的 NI 值。
nice -n -5 service httpd start 
ps -le |grep"httpd"| grep -v grep

renice 命令可以在进程运行时修改其 NI 值,从而调整优先级。
renice [优先级] PID
renice -10 2125

目前一般用不到设置进程的优先级,因为目前cpu运行很快,对程序运行影响较小。

进程间通信及其含义

通常关闭软件是通过关闭软件程序来实现,我们也可以通过进程的方式来关闭软件。

Linux系统中可识别的信号较多,常用的有:

1SIGHUP该信号让进程立即关闭.然后重新读取配置文件之后重启
2SIGINT程序中止信号,用于中止前台进程。相当于输出 Ctrl+C 快捷键
8SIGFPE在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误
9SIGKILL用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。般用于强制中止进程
14SIGALRM时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号
15SIGTERM正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 9
18SIGCONT该信号可以让暂停的进程恢复执行。本信号不能被阻断
19SIGSTOP该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断

kill命令:终止进程 

kill 命令只是用来向进程发送一个信号,进程接受信号后才会进行相关操作,若是忽略信号,则不能对进程进行操作。(说明kill命令不能直接杀死进程)

kill [信号] PID
0	EXIT 	程序退出时收到该信息。
1	HUP	挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2	INT	表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3	QUIT	退出。
9	KILL	杀死进程,即强制结束进程。
11	SEGV 	段错误。
15	TERM	正常结束进程,是 kill 命令的默认信号。
-1 重启进程

例子
使用 ps 或 top查询进程 
kill -1 1234
kill 0 1111

killall命令:终止特定的一类进程

killall [选项] [信号] 进程名
-i:交互式,询问是否要杀死某个进程;
-I:忽略进程名的大小写

 pkill命令:终止进程

pkill [信号] 进程名
0	EXIT 	程序退出时收到该信息。
1	HUP	挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2	INT	表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3	QUIT	退出。
9	KILL	杀死进程,即强制结束进程。
11	SEGV 	段错误。
15	TERM	正常结束进程,是 kill 命令的默认信号。

Linux工作管理

工作管理指的是单个登录终端同时管理多个工作的行为,其实就是在一个终端执行多个不同的操作。

例如:我在当前终端正在 vi 一个文件,在不停止 vi 的情况下,如果我想在同一个终端执行其他的命令,就应该把 vi 命令放入后台,然后再执行其他命令。把命令放入后台,然后把命令恢复到前台,或者让命令恢复到后台执行,这些管理操作就是工作管理。

进程放在后台运行命令( &和ctrl+z)

一种是在命令后面加入空格& 另一种是命令执行过程中按ctrl+z快捷键

  jobs命令:查看当前终端放入后台的工作

jobs[选项]
-l(L 的小写)列出进程的 PID 号。
-n	只列出上次发出通知后改变了状态的进程。
-p	只列出进程的 PID 号。
-r	只列出运行中的进程。
-s	只列出已停止的进程

 fg命令:把后台命令恢复在前台执行 

fg %工作号
fg将带有+的后台恢复到前台
fg % 1
fg % 2

bg命令:把后台暂停的工作恢复到后台执行

bg % 工作号

bg 1
bg 2

可以将ctrl+z暂停在后台的程序恢复到前台进行工作

 nohup 命令的作用就是离开操作终端时让后台工作且命令也能够正确地在后台执行

nohup [命令] &
这里的‘&’表示此命令会在终端后台工作;反之,如果没有‘&’,则表示此命令会在终端前台工作。

 


at命令:定时执行任务  

at 命令的访问控制是依靠 /etc/at.allow(白名单)和 /etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:

  1. 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。
  2. 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。
  3. 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

  /etc/at.allow文件的优先级高于 /etc/at.deny

at [选项] [时间]
-m	当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。
-c 工作标识号	显示该 at 工作的实际内容。
-t 时间	在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。
-d	删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。
-l	列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。
-f 脚本文件	指定所要提交的脚本文件。
使用Ctrl+D快捷键保存at任务

HH:MM	比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
Midnight(midnight)	代表 12:00 AM(也就是 00:00)。
Noon(noon)	代表 12:00 PM(相当于 12:00)。
Teatime(teatime)	代表 4:00 PM(相当于 16:00)。
英文月名 日期 年份	比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
MMDDYY、MM/DD/YY、MM.DD.YY	比如 011518 表示 2018 年 1 月 15 号。
now+时间	以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。

 

两分钟后执行成功了!

crontab命令:循环执行定时任务

crontab [选项] [file]
-u user	用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo
用户的 crontab 服务,此选项一般有 root 用户来运行。
-e	编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l	显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r 	从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。 
-i	在删除用户的 crontab 文件时,给确认提示。

crontab -e 会打开类似vim文本编辑器,语法格式自行百度即可

每个五分钟向/root/qcj/test文件中写入11

 



这篇关于Linux学习笔记(12)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程