zoukankan      html  css  js  c++  java
  • Linux 中同名进程的查杀

    长久一段时间没有做任何工作总结了,如果用工作忙来敷衍那是欺骗自己,承认这一段时间拒绝进步了。

     

    在系统运维中,有许多同名进程需要kill是常有的事情,

    image

    数一下battle这个进程的数量

    [root@HDSG-4dtime-S2 ~]# netstat -ltpun | grep battle | wc -l
    16

    数量有16个之多,如果需要手工kill,则得一个个kill PID && kill PID

    没错,我之前就是这么做的,感觉有点累。

    先记录一下有用的几个命令:

    联系到这个命令:这里深恶痛绝一下那些在文本中即使用tab又使用空格的二货。

    第一个:cut

    cut [选项] 文件名
     
    选项:
     
    -f 列数值:  想提取的第几列
    -d 分隔符: 按照指定的分隔符对文件中的内容进行切割列

    看下效果:

    原始文本内容如下:

    [root@HDSG-4dtime-S2 ~]# cat demo.format 
    tmpfs   /dev/dev        tmpfs
    devpts  /dev/dev        devpts
    sysfs   /sys/dev        sysfs
    proc    /proc/dev       proc

    取出第一列的内容

    [root@HDSG-4dtime-S2 ~]# cut -f 1 demo.format 
    tmpfs
    devpts
    sysfs
    proc

    对第二列进行分割在取dev这三个字母这一列

    [root@HDSG-4dtime-S2 ~]# cut -f 2 demo.format | cut -d '/' -f 3
    dev
    dev
    dev
    dev

    注意:cut命令只能在以tab作为分隔符的文本中切割列有效,你要是切割看着像好几列的文本中基本都会得到整个文本,就像这样

    [root@HDSG-4dtime-S2 ~]# df -h [显示出来多完美的一个列表]
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1       20G  5.8G   13G  31% /
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    /dev/xvdb1       99G   23G   71G  25% /data
    [root@HDSG-4dtime-S2 ~]# df -h | cut -f 5 [但是你切割第五列的时候却事与愿违]
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1       20G  5.8G   13G  31% /
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    /dev/xvdb1       99G   23G   71G  25% /data
     
    想到用参数-d进行分割:这里呵呵一下,这个是不靠谱的,结果是这样
    image 
    结果是空白列。所以这里想用cut实现目的已经有点困难了。
     
     

    第二个:printf

    image

    输出类型有 s 字符串型,i 整型,f 浮点型,其中n 和m的意义看上表

    用于显示输出格式的呢?

    有下表这些:

    image

    下面有些个例子很好解释了用法:

    image

    [root@HDSG-4dtime-S2 ~]# printf '%s' 1 2 3 4 5 6
    123456[root@HDSG-4dtime-S2 ~]# printf '%s %s %s' 1 2 3 4 5 6
    1 2 34 5 6[root@HDSG-4dtime-S2 ~]# printf '%s %s %s	' 1 2 3 4 5 6
    1 2 3   4 5 6   [root@HDSG-4dtime-S2 ~]# printf '%s %s %s
    ' 1 2 3 4 5 6
    1 2 3
    4 5 6
    [root@HDSG-4dtime-S2 ~]# 

    最后一个命令就是神器 : awk

    awk是一门编程语言来着,这里说下最简单的用法

    image

    还是回到最初杀进程的目的:

    image

    我们要显示出第七列 并切割出第七列前的数字列

    image

    到这里 这列数字扔给 xargs 然后kill掉就over了。

  • 相关阅读:
    【转】虚拟机 NAT网络设置
    [转载]应用 Valgrind 发现 Linux 程序的内存问题
    Visual Studio 代码格式化插件(等号自动对齐、注释自动对齐等)
    【转】链接任意目录下库文件(解决错误“/usr/bin/ld: cannot find -lxxx”
    C语言实现封装、继承和多态
    美国专利搜索网站
    【转】基于OCS实现高速缓存
    【转】防止网页被搜索引擎、爬虫和网页采集器收录或克隆复制的方法汇总
    [转]机器学习和计算机视觉----数学基础
    [转]机器学习与数据挖掘的学习路线图
  • 原文地址:https://www.cnblogs.com/logon/p/3970807.html
Copyright © 2011-2022 走看看