Linux基础之进程与服务

4-1.Linux中的进程
进程:已经启动的可执行程序的运行实例
PID 进程的ID
PPID 父进程的ID
ps 显示当前进程状态
-aux: 列出所有进程
-ef: 列出所有进程
-l: 列出和当前用户有关的进程
-u 用户:查看某一用户的进程状态

·top: 查看实时进程

R 该进程正在运行或等待运行
S 正在休眠但可以被唤醒
D 正在休眠,而且不能被唤醒,如果该进程被中断,可能会导致设备的异常状态
K 正在休眠,而且不能被唤醒,该进程可以被中断
T 进程停止,可以恢复
T 正在被调试的进程
Z 子进程在退出时向父进程发出信号,出PID外,所有资源全部释放
X 父进程获取了子进程的结构,子进程可以完全释放,该状态进程中是看不到的

	
进程优先级
1、<高优先级
2、n 低优先级
3、s 包含子进程
4、+ 位于后台的进程组

ps -aux参数解释
1、%CPU 占用CPU使用率
2、%MEM 占用的记忆体使用率
3、VSZ 占用的虚拟记忆体大小
4、RSS 占用的记忆体大小
5、TTY 终端的次要装置号码
6、STAT 该进程的状态
7、START 行程开始时间
8、TIME 执行时间
9、COMMAND 所执行的指令

4-2.Linux中的会话和作业

进程:Linux自身运行的独立的程序
交互进程:由一个shell启动的进程,可以在前、后台运行
批处理进程:是一个进程序列,和终端没有联系
监控进程(守护进程):Linux系统启动时,启动的进程,并且在后台运行
	
作业:一个正在执行的进程,而且作业可以包含一个或多个进程
作业控制:空难根治正在运行的进程的行为。如:挂起一个进程,等一会儿再执行。这样也好就可以在多个作业之间切换


&命令:在命令后面使用该符号,可以让命令在后台执行
jobs:可以查看正在后台运行的作业
	-l:列出作业号和PID
	-r:列出仅在后台运行的作业
	-s:列出暂停的作业
sleep x 延迟x秒
	案例:date;sleep 5;date
ctrl+c 终断
ctrl+z 挂起


fg %:%作业编号,将后台的命令调到前台来继续执行,不能再放回到后台
bg %:将后台暂停的命令继续执行,将前端送到后台
ps -j:显示当前作业进程信息
	TGID:线程组ID号
	SID:会话ID号


终断进程 kill:
	kill -l:显示可以传递给Linux的所有信号
		kill +编号控制进程
	kill -9 PID:强制杀死一个进程
	kill -15 PID:正常的方式终止一个进程
	kill -2:和ctrl+c的操作是一样的

4-3.Linux中的服务控制

systemd 是所有进程的父进程
systemctl:用户管理各种类型的systemd对象,这些对象称为:单元
	常用单元:.service(服务单元) .socket(套接字) .path(路径单元)
	
	例如:systemctl status sshd.service
	loaded单元单元配置文件处理    active(running正在运行、exited配置成功、waiting运行中,但正在等待事件)
	inactive不运行   enable开机自启动   disabled开机不启动    static无法启动,但可以通过某一个已经启动的单元来启动

	
	控制服务命令:
		start 在系统中启动一项服务
		stop 等待程序处理完毕后再stop
		restart 直接关闭程序,再开启
		reload 重新加载配置文件,进程PID不会变
		enable 设置开机自启
		disable 关闭开机自启
		status 查看某一单元的状态		

ssh:是一个协议    sshd:是一个进程   在协议后加d就是进程

4-4.Linux中的日志

日志:用于系统审核和故障排除
日志文件保存在/var/log目录中

/var/log/messages消息记录的日志
	 secure安全和身份验证的消息和日志
	 maillog与邮件服务器相关的日志
	 cron与定期执行任务相关的日志文件
	 boot/log记录和系统启动有关的日志
例:tail -f /var/log/secure //显示最后10行,如果有新的内容加入,那么会继续输出

4-5.Linux中的打包和压缩

打包程序:tar
有重名即覆盖
	c:创建文档
	t:列出文档内容
	x:提取文档
	f filename:要操作的存档的文件名
	v:详细信息
	例如:tar cf a.tar /etc/tmp/ 把tmp下的文件打包成a.tar(后缀名.tar可有可无)
	
    	      tar tf a.tar 查看a.tar下的内容

压缩程序:
	tar支持三种不同的压缩方式:
		gzip:压缩速度最快,应用最广泛
		bzip2:压缩成的存档文件小
		xz:最新的方式,提供最佳的压缩率,压缩至最小,但速度慢
			
		z用于gzip压缩:filename.tar.gz
		j用于bzip2压缩:filename.tar.bz2
		J用于xz压缩:filename.tar.xz
	
	解压缩:
		tar xf a.tar.bz2 解压a.tar.bz2压缩包

4-6.Linux中的计划作业–cron

cron:是一个进程,可以让linux周期性的执行一个命令
crontab:是一个命令,可以设置linux周期性的执行某一个命令
	-u 设置某一个用户的周期性工作--root权限
	-e 设置crontab的工作内容
	-l 查阅crontab的工作内容
	-r 移除所有的crontab的工作内容
		若只移除一项,就用e去编辑


crontab的格式:
	一行代表一个任务
	minute   hour   day   month   week   command
	分钟     小时   日期   月份    星期几  要执行的命令	
	0-59     0-23   1-31   1-12   0-7     

	特殊符号代表含义
		*:任何时刻都接受的意思,代表任何时候
		,:分隔字段
		-:代表一段时间范围
		/n:n代表数字,也就是每隔n单位间隔的意思
	
	例如:15,30,45 * * * * command代表每月每日每小时的15/30/45分的时候执行命令
	      10 7-10 * * * command代表的是每月每日的7点到10点的10分执行命令
	      /5(*/10) * * * * command带表每月每日每隔5分钟执行一次命令

例题:每天晚上10点提示用户去睡觉
      0 10 * * * go to sleep
      每分钟,查看/var/log/cron日志文件有没有发生过变化
	tail /var/log/cron

当使用者使用crontab这个命令来创建工作排程之后,该项工作就会记录到/var/spool/cron/里去。而且是以账号来作为判别的
lewis用户使用 crontab 后, 他的工作会被纪录到/var/spool/cron/lewis中。另外,cron 运行的每一项工作都会被纪录到/var/log/cron这个日志文件中.

?
crond服务每分钟检测一次,所以 cron 会每分钟去读取一次/etc/crontab与/var/spool/cron里面的数据内容 ,因此,只要你编辑完/etc/crontab这个文件,并且将他储存之后,那么 cron 的配置就自动的会来运行了。

如果你修改完的crontab或者添加的crontab没有马上的执行起来,那么你可以用systemctl restart crond.service重启

4-7.输入输出重定向

>file 标准输出重定向到文件-覆盖
>>file	标准输出重定向到文件-追加
2> 标准错误重定向到文件-覆盖
2>> 标准输出重定向到文件-追加
2>/dev/null 标准错误重定向到回收站(清空,删除)
&>file 标准输出和标准错误重定向到文件-覆盖
>>file 2>&1 标准输出和标准错误重定向到文件-追加

配合计划任务
	*/1 * * * * date >> /tmp/abc

管道符:|
	作用:
		1、承上启下:把上一个指令的输出作为下一个指令的输入来执行
		2、搭配grep字符实现过滤功能
	例如:ps aux | grep cron > abc

4-8.Linux中的通配符

通配符:由shell进行解析,一般用于匹配文件名
正则表达式:是一个字符匹配标准,可以匹配文本中的内容。一些命令工具按此标准实现字符匹配(如grep、sed等)。一般用于匹配文件中的内容

常用通配符:
	* 匹配任意多个字符
	? 匹配任意一个字符
	[...] 匹配中括号内出现的任意一个字符
	[!...] 不匹配中括号内出现的任意一个字符

4-9.Linux中的正则表达式

字符匹配:
	. 匹配任意单个字符  cat abc | grep c.t
	* 匹配其前面一个在字符出现任意次  cat abc | grep c*
	? 匹配其前面的字符1次或0次
	+ 匹配其前面一个字符出现至少一次(在扩展正则表达式中)

位置匹配:
	^ 锚定行首
	$ 锚定行尾
	\<或\b 锚定词首,其后面的任意字符必须作为单词首部出现
	\>或\b 锚定词尾,其前面的任意字符必须作为单词尾部出现
	\B 非单词的开头或结尾
	^$ 空白行
	\ 通常用于打开或关闭后续字符的特殊含义

特殊类字符:
	[:alnum:] 任何字母和数字
	[:alpha:] 任何字母
	[:cntrl:] 控制字符
	[:digit:] 任何数字
	[:graph:] 匹配打印字符
	[:lower:] 小写字母
	[:print:] 可打印字符
	[:punct:] 标点符号
	[:space:] 空白字符
	[:upper:] 大写字母
	[:xdigit:] 任何16进制的数字

分组:
	(ab)* 匹配ab这个分组出现任意次
	\1 引用第一个左边以及与之对应的右边所包括的所有内容  同理:\2,\3...

4-10.Linux中的查找与替换

grep 只能查找文件中的内容
sed 可以查找,然后替换或插入想要的内容
	a 新增 在目前的下一行
	d 删除
	i 插入 在新一行的上一行
	p 列印
	s 取代

例题:
	1、删除/tmp/abc文件中的第2至5行的内容
		sed '2,5d' /tmp/abc 
	2、在第2行后面添加123456这一行
		sed '2a 123456' /tmp/abc
	3、在文件的最后一行的前面添加123456 
		sed '$i 123456' /tmp/abc  //利用正则表达式锚定行尾
	4、将文件中的cat全部替换成dog
		sed 's/cat/dog/' /tmp/abc

sed不会对原文件进行修改,若要修改加-i

4-11.Linux中的find

用法:find [路径] [命令参数] [表达式]
	-name"文件名" 查找指定名称的文件
	-user 用户名  查找指定用户拥有的文件
	-group 组名   查找指定组拥有的文件
	-mtime n      查找在N天前被修改过的文件
	-atime n      查找在N天前被访问过的文件

	-type d/f/b/l/p 查找指定类型的文件
	-empty 查找为空的文件
	-size 按容量大小查找
	-perm mode 查找指定属性的文件
	-exec command{} \; 查找指定的文件并执行指定的命令
	-newer 文件名  查找比指定文件新的文件

例题:
	1、目录/var下查找所有3天内被修改过的文件
		find /var -mtime -3 
	2、目录/var下查找所有3天前被修改过的文件
		find /var -mtime +3
	3、在/var目录下查找大于5M的文件
		find /var -size +5M     小于5M用-5M
	4、在/var目录下查找大于2M的文件的详细信息
		find /var -size +2M -exec ls  -l {} \;
	5、将/var下大于5M的文件及目录拷贝到/tmp/abc下
		find /var -size +5M -exec cp -ar {} /tmp/abc \;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值