Linux基础命令(136-150)

目录:

  1. rpm RPM软件包管理命令
  2. yum linux包管理器
  3. kill 结束进程
  4. killall命令 使用进程的名称来杀死进程
  5. pkill 可以杀掉指定名字的进程
  6. pstree 把进程已树状结构列出
  7. ps 显示当前运行的进程
  8. pidof 根据进程名,取其pid
  9. top 实时显示系统中各个进程的资源占用情况
  10. htop命令
  11. vmstat 显示系统中各个进程的资源占用情况
  12. glances 实时显示系统中各个进程的资源占用情况
  13. dstat 实时显示系统中各个进程的资源占用情况
  14. fpm 简易的rpm打包软件
  15. 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

回到目录

发布了180 篇原创文章 · 获赞 10 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览