目录:
- rpm RPM软件包管理命令
- yum linux包管理器
- kill 结束进程
- killall命令 使用进程的名称来杀死进程
- pkill 可以杀掉指定名字的进程
- pstree 把进程已树状结构列出
- ps 显示当前运行的进程
- pidof 根据进程名,取其pid
- top 实时显示系统中各个进程的资源占用情况
- htop命令
- vmstat 显示系统中各个进程的资源占用情况
- glances 实时显示系统中各个进程的资源占用情况
- dstat 实时显示系统中各个进程的资源占用情况
- fpm 简易的rpm打包软件
- ulimit 用来限制系统用户对shell资源的访问
rpm RPM软件包管理命令
Rpm包的命名格式:
redis-3.0.2-1.centos7.x64.rpm
3.0.2-1是版本号
Centos7是适用于哪个平台
x64是32位还是64位系统
主要选项:
-a 查看所有软件包
-f 查看指定文件的软件包
-q 使用询问模式,当遇到任何问题时。Rpm会先询问用户
-l 显示软件包的文件列表
–nodeps 忽略软件包的依赖关系强行安装
-e 删除指定的软件包
–force 忽略软件包及文件的冲突
-h 软件包安装时列出标记
-v 打印输出
-U 升级指定的软件包
-i 安装软件包
-c 查询指定的程序提供的配置文件
-i 程序包相关的信息,版本号,大小,所属的包组等
-d 查询指定的帮助文档
-R 查询指定包的依赖关系
–replacepkgs 重新安装
–noslgnature 不检查包签名信息,不检查来源合法性
–nodigest 不检查包完整性信息
–force 强制升级
–allmatches 卸载所有匹配指定名称的程序包的各版本
–whatrequires 查询指定的命令或者文件被哪个包所依赖
示例:
-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl: 列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的 RPM软件包,查找丢失的文件[View Lost];
-e:删除包
rpm -q samba //查询程序是否安装
rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm //指定安装目录
rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm //用来检查依赖关系;并不是真正的安装;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本
rpm -qa | grep httpd #[搜索指定rpm包是否安装]--all搜索*httpd*
rpm -ql httpd #[搜索rpm包]--list所有文件安装目录
rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div #[抽出文件]
rpm -ivh file.rpm #[安装新的rpm]--install--verbose--hash
rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
rpm -Uvh file.rpm #[升级一个rpm]--upgrade
rpm -e file.rpm #[删除一个rpm包]--erase
rpm -ivh --aid *.rpm #--aid参数解决RPM包循环依赖的问题
rpm -qf $(which inotifywait) #查找命令所在的软件包
rpm -ivh --replacepkgs 安装包 #重新安装
yum linux包管理器
主要选项:
-y(当安装过程提示选择全部为"yes")
--nogpgcheck 禁止进行gpg check
-q 静默模式
--disablerepo=repoidglob 临时禁用此处指定的repo
--enablerepo=repoidglob 临时启用此处指定的repo
--noplugins 禁用所有插件
显示仓库列表:repolist [all|enabled|disabled]
显示程序包:list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...]
安装程序包:install package1 [package2] [...]
reinstall package1 [package2] [...] (重新安装)
升级程序包:update [package1] [package2] [...]
downgrade package1 [package2] [...] (降级)
检查可用升级:check-update
卸载程序包:remove | erase package1 [package2] [...]
查看程序包information:info [...]
查看指定的特性(可以是某文件)是由哪个程序包所提供:provides | whatprovides feature1 [feature2] [...]
清理本地缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
搜索:search string1 [string2] [...] 以指定的关键字搜索程序包名及summary信息;
查看指定包所依赖的关系:deplist package1 [package2] [...]
查看yum的事务历史:yum history
[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
注意:yum -y update 升级所有包同时也升级软件和系统内核
yum -y upgrade 只升级所有包,不升级软件和系统内核
示例:
yum -y install tree
怎么使用YUM命令升级所有RPM软件包?
yum update
怎么使用YUM命令升级单个RPM软件包
yum update 软件名称
使用YUM安装RPM软件包
yum install 软件名称
yum repolist 查看当前系统使用的源
yum list 查看yum源所有已安装的和未安装的包
yum grouplist 列出所有安装过的和未安装的套件
yum provides COMMAND
kill 结束进程
但是后面只能加上pid进程的号码
常用信号:
1 无须关闭进程而让其重读配置文件
2 终止正在运行的进程,相当于Ctrl+c
3 退出正在运行的进程
9 杀死运行中的进程(慎用)
15 终止运行中的进程
18 继续
19 暂停
示例:
kill 3268
kill -9 pid 很危险,无论这个进程是否存在,都会杀死
killall命令 使用进程的名称来杀死进程
示例:
killall rsync
pkill 可以杀掉指定名字的进程
还可以根据各种属性杀掉进程(进程名可以不是全名,但必须是唯一)
示例:
pkill rsync
pkill rsyn
pstree 把进程已树状结构列出
示例:
[root@localhost ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─abrt-dbus───3*[{abrt-dbus}]
。。。
ps 显示当前运行的进程
主要选项:
a 所有与终端相关的进程
x 所有与终端无关的进程
u 以用户为中心组织进程状态信息显示
o 自定义要显示的字段列表,以逗号分隔
常用的field:pid,ni,pri,psr,pcpu,stat,comm,tty,ppid
-e 显示所有进程
-f 显示完整格式的进程信息
-F 显示更加完整格式的进程信息
-H 以层级结构显示进程的相关信息
示例:
常用组合之一:aux
常用组合之二:-ef
常用组合之三:-eFH
常用组合之四:-eo或者axo
pidof 根据进程名,取其pid
示例:
[root@localhost ~]# pidof sshd
31021 4555
top 实时显示系统中各个进程的资源占用情况
主要选项:
-d 指定刷新时间间隔,默认为3秒
-b 以批次方式显示
-n 显示多少批次
示例:
top显示,按q退出
top -b -n 1
htop命令
注意:htop是一个新的命令,所以linux系统中是没有,需要yum install htop -y,但是yum之前,需要更新一下epol源wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
主要选项:
-d 指定延迟时间间隔
-u 仅显示指定用户的进程
-s 以指定字段进行排序
示例:
vmstat 显示系统中各个进程的资源占用情况
主要选项:
-s 显示内存统计数据
示例:
[root@db02 ~]# vmstat 2 #每隔两秒进行一次监控
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 451020 64936 23864 148060 0 2 3 2 16 64 0 0 100 0 0
vmstat每一列的解释:
procs:
r:等待运行的进程的个数。CPU上等待运行的任务的队列长度
b:处于不可中断睡眠态的进程个数,被阻塞的任务队列的长度
memory:
swpd:交换内存使用总量
free:空闲的物理内存总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
swap:
si:数据进入swap中的数据速率
so:数据离开swap的速率
lo:
bi:从块设备读入数据到系统的速度
bo:保存数据至块设备的速率
system:
in:中断速率
cs:上下文,切换的速率
cpu:
us:user space
sy:system
id:idle
wa:wait
st:stolen
glances 实时显示系统中各个进程的资源占用情况
pip install psutil
pip install glances
主要选项:
-b 以byte为单位显示网上数据速率
-d 关闭磁盘I/O模块
-m 关闭mount模块
-n 关闭network模块
-t 刷新时间间隔
-1 每个cpu的相关数据单独显示
-o 输出格式
-f 设定输出文件的保存目录
dstat 实时显示系统中各个进程的资源占用情况
每秒刷新
主要选项:
-c 显示cpu的相关信息
-d 显示磁盘的相关信息
-g 显示page相关的统计数据
-m 显示内存的相关统计数据
-n 显示网络的相关统计数据
-p 显示进程的相关统计数据
-r 显示io请求的相关的统计数据
-s 显示swqpped的相关统计数据
–tcp
–udp
–raw
–socket
–top-cpu 显示最占用cpu的进程
–top-io 显示最占用io的进程
–top-mem 显示最占用内存的进程
–top-lantency 显示延迟最大的进程
示例:
fpm 简易的rpm打包软件
主要选项:
-s 指定源类型
-t 指定目标类型
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径
-d 指定依赖于哪些包
-f 第二次打包时如果有同名安装包存在,则覆盖
-p 输出的安装包的目录,不想放在当前目录下就需要指定
-post-install 软件包安装完成之后所要运行的脚本
-pre-install 软件包安装完成之前所要运行的脚本
-post-uninstall 软件包卸载完成之后所要运行的脚本
-pre-uninstall 软件包卸载完成之前所要运行的脚本
示例:
fpm -s dir -t rpm -n nginx -v 1.6.3 -d 'pcre-devel,openssl-devel' --post-install /sercer/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/
ulimit 用来限制系统用户对shell资源的访问
命令介绍:
如果不懂什么意思,下面一段内容可以帮助你理解: 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。 而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大 小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联 系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。 ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。 作为临时限制,ulimit 可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他 shell 会话。而对于长期的固定限制,ulimit 命令语句又可以被添加到由登录 shell 读取的文件中,作用于特定的 shell 用户。
主要参数:
-a:显示目前资源限制的设定;
-H:设定资源的硬性限制,也就是管理员所设下的限制;
-n <文件数目>:指定同一时间最多可开启的文件数;
-S:设定资源的弹性限制;
示例:
ulimit -SHn 65535