第六章 软件包、服务和进程的管理

前言

每天更新一点 Linux 系统操作的命令,巩固自己的 Linux 的基础操作命令,学习 Linux 很久了,很多东西都忘的差不多了,是时候回顾回顾。

软件包管理工具

rpm

释义:由红帽公司开发的软件包安装和管理程序,可以对rpm格式的软件包进行安装、升级、卸载、校验和查询等操作
格式:rpm [选项] [安装文件]
选项:
-q 查询指定的一个或者多个软件包是否安装
-qa 显示当前系统中已安装的全部rpm软件包清单
-qi 显示软件包的名称、版本、许可协议、用途等详细信息
-ql 显示指定软件包在当前系统中安装的所有目录、文件列表
-qf 查询指定的目录或文件是由哪个软件包所产生的
-qc 显示指定软件包在当前系统中被标注为配置文件的文件清单
-ivh 安装
-Uvh 升级
-e 卸载
-p 未安装包信息
-V 校验
--import 导入公钥文件

yum

释义:软件管理命令,可以查询、下载、安装、卸载、升级本地主机和网络中其他主机的rpm包,并且能够自动查找并解决rpm包之间的依赖关系,一次性完成所有具有依赖关系rpm包的安装
格式:yum [参数]
参数:
repolist all 列出所有仓库
list 列出仓库中所有包
info [软件包名] 查看软包信息
install [软件包名] 安装
reinstall [软件包名] 重新安装
update [软件包名] 升级
remove [软件包名] 删除
clean all 清除所有仓库缓存
check-update 检查可更新的软件包
-y 直接回答工作过程中需要使用者响应的yes
search [模糊包名] 查看模糊包名的软件
grouplist 查看软件包组(groupinstall、groupremove、groupinfo含义相同)

软件仓库搭建

yum-config-manager

释义:自动生成yum源的模板文件
格式:yum-config-manager --add-repo=仓库名

编辑配置文件:/etc/yum.repos.d/仓库名.repo

[仓库名]                          //软件仓库的标示,全局唯一
name=                             //软件仓库的描述信息
baseurl=file://                   //软件仓库的位置
enabled=0/1                       //仓库是否开启:1开启 0关闭
gpgcheck=0/1                      //是否校验GPG签名:1校验 0不校验 
gpgkey=file:///etc/……             //校验文件位置  
# file://——表示本地   http://——网络   ftp://——文件传输服务器

systemd初始化进程

systemd与System V init的区别及作用

控制服务运行状态

设置服务运行环境

runlevel 查看当前系统的运行环境
systemctl get-default 查看默认的运行环境
systemctl set-default [运行级别] 设置系统下次开机的运行级别

服务运行状态关键字

Loaded 服务已被加载
enabled 将在系统启动时启动
active(running) 正在通过一个或多个进程运行
active(waiting) 运行中,但正在等待事件
static 无法启动,但可以由某一启用的单元自动启动
disabled 不会在系统启动时启动
inactive 服务未运行

服务进程监控

ss

释义:显示各类协议、各种状态的套接字信息
格式:ss [选项]
选项:
-atn 以数字方式查看所有TCP协议连接情况
-tnap 查看所有的TCP端口和使用它们的进程
-s 查看服务器当前已经连接、关闭、等待的TCP连接及连接的分类统计

ps/top

返回结果各字段含义

  • USER 启动该进程的用户
  • UID 进程所属组的用户ID
  • PID 进程在系统中的标识号
  • PPID 进程的父进程标识号
  • %CPU 占用的CPU
  • %MEM 占用的物理内存和总内存的百分比
  • TTY 进程运行的终端,?表示未知或者不需要
  • VSZ/VIRT 占用的虚拟内存(swap)的大小
  • RSS/RES 占用的固定内存(物理内存)的大小
  • COMMAND/CMD 启动该进程的命令的名称
  • TIME 实际使用CPU的时间/进程启动后占用的总CPU的时间
  • STIME 进程启动的时间
  • STAT/S 进程当前状态
  • START 启动该进程的时间
  • RPI/PR 进程的优先级,优先级越小越早被执行
  • NI 进程的友善度或者谦让度

sleep

释义:用来将目前动作延迟一段时间。
格式:sleep [数字s|m|h|d]

jobs

释义:用于显示Linux中的任务列表及任务状态,包括后台运行的任务
格式:jobs [选项] [参数]
选项:
-l 显示进程号
-p 仅任务对应的显示进程号
-n 显示任务状态的变化
-r 仅输出运行状态的任务
-s 仅输出停止状态的任务
参数:任务标识号:指定要显示的任务识别号

fg

释义:用于将后台任务(在后台运行的或者在后台挂起的任务)放到前台终端运行
格式:fg [参数]
参数:任务标识:指定要放到前台的任务标识号。

bg

释义:将处于暂停状态的后台进程恢复到运行状态
格式:bg [参数]
参数:任务标识:指定要放到前台的任务标识号。

计划任务管理

at

释义:指定一次性执行任务
格式:at [选项] [执行任务的时间] [执行任务的日期]
选项:
-m 当at工作完成后,即便没有输出信息,也会以E-mail通知用户工作已完成
-l 显示当前正在等待执行的计划任务队列(等同于atq命令)
-d [任务编号] 删除指定编号的任务(等同于atrm命令)

时间指定方式

绝对时间

HH:MM[am|pm]

相对时间

now+count time-units 从现在开始多长时间之后

模糊时间

midnight(深夜)、noon(中午)、teatime(下午茶时间)

日期指定方式

日期格式

month day(月 日)、mm/dd/yy(月/日/年)、dd.mm.yy(月.日.年)、YYYY-MM-DD(年-月-日)

模糊日期

today(今天)、tomorrow(明天)

crontab

释义:制定周期性执行的计划任务
格式:crontab [选项]
选项:
-e 针对当前用户或指定用户编辑计划任务
-u [用户名] 指定执行计划任务的用户
-l 显示当前用户或指定用户的计划任务
-r 删除当前用户或指定用户的计划任务

*       *       *   *   *           foo 
分   时   日   月   星期  命令 
#分钟0~59 
#时间0~23 
#日期1~31 
#月份1~12 
#星期0~7 0和7代表星期日 
#命令:linux命令或者用户自己写的脚本 
##“*“代表“每”,“/”代表“每隔”,“-”代表“连续取值范围”、“,”用来间隔多个取值 
##用整点时间的时候,如7:00,则分钟要写成0 
##星期可以用英文缩写:如sun、mon、tue、wed、thu、fri、sat

THE END