今天学习关于进程管理、计划任务管理以及对软件的管理
进程管理
程序与进程的关系
程序
保存在硬盘、光盘等介质中的可执行代码和数据
是静态保存的代码
进程
在CPU及内存中运行的程序代码
是动态执行的代码
父、子进程:每个进程可以创建一个或多个进程
查看进程信息
ps命令
用途:查看静态的进程统计信息
格式:ps aux
常用命令选项
a:显示当前终端下的所有进程信息
u:使用以用户为主的格式输出进程信息
x:显示当前用户在所有终端下的进程信息
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 2648 604 ? S Apr02 0:13 init [3]
root 2 0.0 0.0 0 0 ? SN Apr02 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S< Apr02 0:19 [events/0]
root 4 0.0 0.0 0 0 ? S< Apr02 0:00 [khelper]
……
ps aux 主要输出项说明
USER:用户名。
%CPU:占用CPU 时间与总时间的百分比。
%MEM:占用内存与系统内存总量的百分比。
VSZ:进程占用的虚拟内存空间,单位KB。
RSS:进程占用的内存空间,单位KB。
STAT:进程的状态。
START:进程的开始时间。
top命令
用途:查看动态的进程排名信息
[root@localhost ~]# top
top - 06:08:48 up 4 days, 6:57, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.7% sy, 0.0% ni, 97.4% id, 0.4% wa, 0.1% hi, 1.1% si
Mem: 191228k total, 171424k used, 19804k free, 19436k buffers
Swap: 265064k total, 1284k used, 263780k free, 120480k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6779 root 16 0 2536 832 668 R 3.8 0.4 0:00.04 top
1 root 16 0 2648 604 520 S 0.0 0.3 0:13.54 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
……
top选项
按P键根据CPU占用情况对进程列表进行排序
按M键根据内存占用情况进行排序
按N键根据启动时间进行排序
按h键可以获得top程序的在线帮助信息
按q键可以正常退出top程序
按k结束进程(9:强制结束进程)
按r修改优先级(NI)
使用空格键可以强制更新进程状态显示
pgrep命令
用途:根据特定条件查询进程PID信息
常用命令选项:
-l:列出进程的名称
-U:根据进程所属的用户名进行查找
-t:根据进程所在的终端进行查找
[root@localhost ~]# pgrep "init"
1
[root@localhost ~]# pgrep -l "log"
2538 syslogd
2541 klogd
3221 login
[root@localhost ~]# pgrep -l -U teacher -t tty1
27483 bash
27584 vim
终止进程的运行
Ctrl+C组合键
中断正在执行的命令
kill、killall命令
kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9 选项用于强制终止
[root@localhost ~]# pgrep -l "portmap"
2869 portmap
[root@localhost ~]# kill -9 2869
[root@localhost ~]# killall -9 vim
[1]- 已杀死 /usr/bin/vim file1
[2]- 已杀死 /usr/bin/vim file2
pkill命令
用途:根据特定条件终止相应的进程
常用命令选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
[root@localhost ~]# w | grep -v "root"
14:10:10 up 6:08, 4 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
teacher tty1 - 14:04 5:34 0.16s 0.16s -bash
hackli pts/1 173.17.17.174 14:05 4:32 0.17s 0.17s -bash
[root@localhost ~]# pkill -9 -t pts/1
[root@localhost ~]# w | grep -v "root"
14:12:22 up 6:10, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
teacher tty1 - 14:04 7:46 0.16s 0.16s -bash
进程的不同启动方式
手工启动
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
[root@localhost ~]# cp /dev/cdrom mycd.iso &
[1] 28454
调度启动
使用at命令,设置在某个特定的时间,执行一次任务
使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
进程的前后台调度
Ctrl+Z 组合键
将当前进程挂起,即调入后台并停止执行
jobs命令
查看处于后台的任务列表
fg命令
将处于后台的进程恢复到前台运行,需指定任务序号
[root@localhost ~]# jobs
[1]- Stopped cp /dev/cdrom mycd.iso
[2]+ Stopped top
[root@localhost ~]# fg 1
计划任务管理 ―― at
at命令
在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd]
atq命令
用途:查询当前设置的at任务列表
atrm命令:
用途:删除指定任务编号的at任务
格式:atrm 编号
[root@localhost ~]# service atd start
启动 atd: [确定]
[root@localhost ~]# at 23:45
at> shutdown -h now
at> <EOT>
job 1 at 2009-09-14 23:45
[root@localhost ~]# atq
1 2009-09-14 23:45 a root
计划任务管理 ―― crontab
crontab命令
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
服务脚本名称:/etc/init.d/crond
主要设置文件
全局配置文件,位于文件:/etc/crontab
用户定义的设置,位于文件:/var/spool/cron/用户名
管理cron计划任务
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
crontab任务的配置格式
时间数值的特殊表示方法
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
应用示例
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每隔2小时
0 * */3 * * 每隔3天
字段 说明
分钟 取值为从0到59之间的任意整数
小时 取值为从0到23之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从0到7之间的任意整数,0或7代表星期日
命令 要执行的命令或程序脚本
软件管理
Linux应用程序基础
应用程序与系统命令的关系
文件位置
系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中
主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行
运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
典型应用程序的目录结构
文件类型 保存目录
普通执行程序文件 /usr/bin
服务器执行程序文件和管理程序文件 /usr/sbin
应用程序配置文件 /etc
日志文件 /var/log
应用程序文档文件 /usr/share/doc
应用程序手册页文件 /usr/share/man
常见的软件包封装类型
封装类型 说明
rpm软件包 扩展名为“.rpm”
deb软件包 扩展名为“.deb”
源代码软件包 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包
包含程序的原始代码
提供安装程序的软件包 在压缩包内提供install.sh、setup等安装程序
或以“.bin”格式的单个执行文件提供
绿色免安装的软件包 在压缩包内提供已编译好的执行程序文件
解开压缩包后的文件即可直接使用
RPM包管理机制
RPM Package Manager
由Red Hat公司提出,被众多Linux发行版所采用
建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系
RPM软件包
一般命名格式:
bash-3.1-16.1.i386.rpm
图形界面中的“添加/删除软件”
依赖于YUM(Yellow dog Updater,Modified)机制
调用yum命令工具进行软件更新
使用“添加/删除软件”工具的条件
能够访问互联网中的YUM源服务器
若使用默认源,需有合法的安装序列号和服务订阅号
使用Yum
将文件放到 /etc/yum.repos.d/ 目录中,可以启用对新的第三方存储库的支持,存储库配置文件必须以.repo结尾。
配置文件示例 /etc/yum.repos.d/updates.repo
[updates] name=Red Hat Updates baseurl=ftp://instructor.example.com/pub/rhel6/Errata
enabled=1
gpgcheck=0
Yum 是一个强大的命令行工具,可用于更加灵活的管理(安装,更新,删除,查询)软件包
基本 yum 命令
1.yum help 显示使用信息
2.yum list 列出软件包
3.yum search keyword 搜索关键字
4.yum info packagename 列出软件包详细信息
5.yum install packagename 安装软件包
6.yum remove packagename 删除软件包
7.yum update packagename 升级软件包
管理 yum 组件组
1.yum grouplist 列出所有可用组
2.yum groupinfo 提供特定组的信息
3.yum groupinstall 安装软件包组
4.yum groupupdate 更新软件包组
5.yum grouperase 删除软件包组
RPM包管理命令 ―― rpm
主要功能
1. 查询RPM软件、包文件的相关信息
2. 安装、升级、卸载RPM软件包
3. 维护RPM数据库信息
查询RPM软件信息
查询已安装的RPM软件信息
格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
查询文件/目录属于哪个RPM软件
格式:rpm -qf 文件或目录名
查询未安装的RPM包文件
格式:rpm -qp[子选项] RPM包文件
用法:结合不同的子选项 完成不同查询
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
安装或升级RPM软件
格式:rpm [选项] RPM包文件...
用法:不同选项适用于不同情况
-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
卸载指定的RPM软件
格式:rpm -e 软件名
辅助选项
--force:强制安装所指定的rpm软件包
--nodeps:安装、升级或卸载软件时,忽略依赖关系
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息