1. 一项工作中涉及的几个命令

    今天写了点shell脚本,在一些CentOS服务器上进行了一些操作,涉及如下命令:

    统计特定进程个数

    如统计haproxy进程的个数

    ps -e | grep haproxy | wc -l
    

    获取特定进程的pid

    如获取haproxy进程的pid

    ps -e | grep haproxy | awk '{print $1}'
    

    一对多添加ssh信任关系

    如192.168.2.1用户usernameA到192.168.2.x用户usernameB的信任关系

    1. 在192.168.2.1创建自己的公钥私钥:

      ssh-keygen -t rsa   # 提示输入时,全部留空回车。
      
    2. 拷贝192.168.2.1的公钥到192.168.2.x机器上:

      ssh-copy-id "-p 22 usernameB@192.168 …
    Tagged as : Linux 命令行
  2. 几个组合命令

    1. Debian系Linux下查找某个软件包(以indent为例):

    apt-cache search indent | awk '{if($1~/^indent$/) print $0}'
    

    APT包管理工具也提供了类似功能的命令选项:

    apt-cache pkgnames 'indent'
    

    只不过这个输出仅有包名没有简介信息。

    2. 对当前目录下的所有C源码文件使用indent进行格式化:

    ls | grep '\.c$' | xargs indent
    

    其实如下也是可以的:

    indent *.c
    

    但因为shell会对*进行展开,如果当前目录下的C源码文件数目很大时,可能会造成命令行长度过长的问题。

    Tagged as : Linux 命令行
  3. 博大精深的ps命令

    Linux命令行里如何获取所有的进程号(pid)?

    1. 第一种方法是通过ps -e或者ps aux获得所有进程的信息,然后通过管道传给grep或者awk进行数据过滤,比如

    ps -e | awk '{print $1}'
    

    2. 其实通过ps自身的选项就可以实现:

    ps -eo pid
    

    而且输出还是排好序的。

    但ps命令在输出进程信息之前先输出一行header,比如ps -e的输出header是:

    PID TTY          TIME CMD
    

    如何去除这个header呢?当然用各种过滤方法可以实现,但ps自身的选项也可以实现:

    ps -eo pid h
    

    或者

    ps -eo pid --no-headers
    
    Tagged as : Linux 命令行 工具

Page 1 / 1