进程:已启动可执行程序的运行实例
PID:每一个进程都存在唯一的ID
PPID:父进程的ID
任何一个进程都可以创建一个子进程
在redhat7以上,所有进程的父进程systemd,在redhat5,6中,所有进程的父进程init
显示当前进程 ps
bash 代表当前命令行进程
-aux 列出所有进程
-ef 列出所有进程
-I 显示和当前用户有关的进程
-u 查看某一用户的进程状态
top 查看实时进程
示例:
进程中的状态
R 该进程正在运行或者等待运行
S 正在休眠但可以被唤醒
D 正在休眠,且不能被唤醒,该进程被中断,可能会损坏设备
K 正在休眠,而且不可以被唤醒,该进程可以被中断
T 进程被停止,但是可以通过其他进程来进行恢复
T 正在被调试的进程
Z子进程退出时向父进程发出信号,除PID外,所有资源被释放
X 父进程获取子进程的结构,子进程可以完全释放,该状态进程时看不到的
%CPU代表占用率
%MEN 占用记忆体使用率
VSZ 占用虚拟记忆体大小
RSS 占用记忆体大小
TTY 中断次要装置号码
STAT 该进程状态
START 该进程开始时间
TIME 该进程执行时间
COMMAND 所执行的命令
进程优先级
< 高优先级
N 低优先级
s 包含子进程
+ 位于后台进程组
交互进程:由一个shell启动的进程,可以在前台运行,也可以在后台运行
批处理进程:是一个批处理进程,和终端没有联系
监控进程(守护进程):Linux启动时,启动的进程,并在后台运行
作业:一个正在执行的过程,一个作业可以包括多个进程
作业控制:控制正在运行的进程的行为& 可以让进程在后台执行
jobs 可以查看后台正运行的进程
示例1:
示例2:
终端的进程在后台是查看不到的
示例3:加上& 后台运行此进程
示例4:
-l 显示后台所有的进程,并显示PID
-r 显示后台正运行的进程
-s 显示后台暂停的进程
fg将后台命令调到前台执行:fg 作业号 (将其调回前台后不可调回去,但可以挂起 ctrl+z)
bg将后台暂替的命令继续执行: bg 作业号
ps -j 显示当前作业的信息
linux中断进程
信号:传递给linux进程的操作
kill -l 显示可以传递给linux进程的所有信号
常用:
kill -9 PID 杀死一个进程 (强制)
kill -15 PID 正常的方式终止一个进程
kill -2 可以ctrl+c的操作是一样的
控制服务和守护进程
systemd是所有进程的父进程
systemdctrl:用于管理各种类型的systemd对象,这些对象称为单元。常用的单元:.service .socket .path
ssh是一个协议,sshd是一个进程
loaded:单元配置文件以处理
active(running):正在运行
active(wating)运行中,但正在等待时间
active(exited)配置成功
inactive:不运行
enable:开机自启 disable(不允许开机自启)
static:无法启动,但可以通过一个已启动的单元来启动
systemctl
start 系统中启动一项服务
stop 等待程序处理完毕后再stop
restart 直接关闭程序在自启
reload 重新加载配置文件,暂停进程,等配置文件加载完毕后继续执行,PID不变
enable 开机自启
disable 禁止开机自启
status查看某一单元的状态
linux中的日志
日志:用于系统审核和故障排除
日志文件都保存在/var/log目录中
在redhat7中,系统日志消息都是由两个服务负责处理 systemd-journald和rsyslogd
/var/log/messages 大多数系统日志消息
/var/log/secure 安全和身份验证的消息和错误日志
/var/log/maillog 与邮件服务器相关的日志
/var/log/cron 与顶起执行任务相关的日志
/var/log/boot/log 记录和系统启动相关的日志
许多程序都是用syslog协议将时间记录到系统,每一个日志都会更具消息类型和严重性分类
linux中的打包和压缩
打包程序:tar
c 创建文档
t 列出存档内容
x 提取文档
f 要错做的文档文件名
v 详细信息
注意事项:
选项之前不加-
创建之前请检查重命名文件
要是tar可以打包选定的文件,执行tat命令的用户必须能够读取这些文件
示例:在linux中文件后缀名毫无意义,我们加上.tar的后缀只是为了方便管理员阅读
tar支持三种不同的压缩方式:
gzip:压缩速度最快,历史悠久,应用广泛
bzip2:压缩成的存档文件小,可用性不如gzip
xz:最新的方式,提供最佳的压缩率
实际环境中3种情况都肯遇到,所以创建不一样的格式归档文件就有自己的选项
z 用于gzip压缩:fileName.tar.gz
j 用于bzip2压缩: fileName.tar.bz2
J 用于xz压缩: fileName.tar.xz
示例:
解压:
linux中的计划作业 cron
cron:是一个进程,可以让linux周期性的执行某一命令
crontab是一个命令,可以设置linux周期性的执行某一命令
-u 设置某一用户周期性工作 root权限
-e 编辑crontab的工作内容
-l 查询crontab工作内容
-r 移除所有crontab工作内容
crontab格式:
示例:
当你发现创建计划任务,而并没有按照预期的执行 输入:systemctl restart crond.service 重启。
、
输入输出重定向:
示例:
覆盖 >
追加>>
错误输出:
输出到回收站:
正确和错误指令输出到同一文件:
示例:定时任务,每隔一分钟输出日期到指定目录
管道符 |
把上一个指令的输出作为下一个指令的输入来执行
搭配 grep 字符实现过滤功能
过滤进程
输出重定向
正则表达式和通配符
常用通配符:
* 匹配任意多个字符
?匹配任意一个字符
[......] 匹配括号内出现的任意字符
[!......]匹配括号内未出现的任意字符
示例:
linux中的查找与替换
sed
a 新增 a后面可以接字符串,这些字符串会出现在下一行中
d 删除
i 插入 i后面可以接字符串,这些字符串会出现在上一行中
p 打印
s 取代,可以直接进行取代工作
示例:
删除第一到第二行内容:
在第三行后面添加123456
在最后一行的前面插入abcd
以上的修改都不会对原文件起作用,若要修改原文件加上参数 -i 即可
查找语句find
-name 查找指定名称的文件
-user 查找指定用户拥有的文件
-group 查找指定组拥有的文件
-mtime n 查找n天前修改的文件
-atime n 查找n天前被访问的文件
示例:
查找/var目录下 3天内被修改的文件
查找/var目录下2天内被访问的文件(只显示头10行)
查找/var目录下大于20M的文件
将/var目录下大于80M的文件复制到/tmp/a/目录下,保留文件和文件夹属性
举报/反馈