常用linux命令

~

  1. 查看进程树

     ptree -p | grep httpd    
    
  2. 获取指定名称的进程并杀掉

     #!/bin/bash
     if [ ! -n "$1" ] ;then
       echo "Please enter a keyword!"
       exit
     else
       NAME=$1
       echo "You are looking up $NAME"
     fi
     echo my pid=$$
    
     # 获取指定程序的PID
     # 方法一
     # grep -v 表示不匹配,这里是过滤掉结果中的grep命
     # $$表示子shell进程的PID,也要过滤掉
     # $PPID子进程的父进程ID
     # $UID当前用户ID
     # bash内置变量可以参考man bash
     # ID=`ps -ef | grep "$NAME" | grep -v grep | grep -v "$$" | awk '{print $2}'`
     # 方法二
     ID=`pgrep "$NAME"`
     # 其他
     # egrep可以一次查找多个字符,例如:ps -ef | egrep "redis|rabbit"
    
     echo ID=$ID
     echo "--------------"
     for id in $ID
     do
       # kill -9 
       echo $id
     done
     echo "--------------"
    
  3. ls显示文件大小带上单位

     ls -l
     # use a long listing format
     
     ls -lh
     # -h, --human-readable
     #      with -l, print sizes in human readable format (e.g., 1K 234M 2G)
     
     ls -l --block-size=k
     ls -l --block-size=m
     ls -l --block-size=g
    
  4. 查看磁盘空间

     # 磁盘
     df -hl
     
     # 查看目录大小
     du -bs dir_name
     
     # 查看当前目录大小
     du -sh *
     
     # 查看当前目录下各文件大小
     du -sh /*
    
  5. top命令详解

  6. 计算列表平均值

    cat nohup.out | awk -F ' ' '{sum+=$3} END {print "Average=",sum/NR}'
    
  7. linux下通过命令编译、执行java程序

    java -cp ./lib/fastjson-1.2.29.jar MyClass.java
    java -classpath .:/usr/java/jdk1.7.0_79/lib:./lib/fastjson-1.2.29.jar MyClass.java
    # -cp与-classpath是一个意义,它们只能指定具体的jar包,不能指定目录或者通配符。
    # 如果要指定目录,需要使用-Djava.ext.dirs,但是-Djava.ext.dirs默认是加载jre/lib/ext下的jar包的,所以为了避免加载了自定义指定的jar包而导致jre自带的jar不加载,可以这么使用:
    java -Djava.ext.dirs=./plugin:$JAVA_HOME/jre/lib/ext -classpath .:/usr/java/jdk1.7.0_79/lib:./lib/fastjson-1.2.29.jar MyClass.java
    # 注意linux使用冒号“:”分割,windows使用分号“;”分割
    
  8. 查看TCP

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    
  9. 下载文件并支持断点续传

    curl -C - -O https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
    # 注意 -C 和 -O之间有一个 - 符号
    
  10. 批量清理maven拉取失败导致无法更新的jar包

    MVN_ROOT="/d/Users/user1/.m2/repository"
    JARS=(
        org.openclover:clover-maven-plugin:4.3.1
        com.github.spotbugs:spotbugs-maven-plugin:4.0.0
    )
    
    echo start clean jar - ${#JARS[@]}.
    
    for JAR in ${JARS[@]}; do
      echo processing $JAR
      GROUP=`echo $JAR | awk -F':' '{print $1}'`
      GROUP_DIR=`echo ${GROUP//\./\/}`
    
      cd $MVN_ROOT
      ARTIFACT=`echo $JAR | awk -F':' '{print $2"/"$3}'`
      FULL_PATH=$MVN_ROOT"/"$GROUP_DIR"/"$ARTIFACT
      echo $FULL_PATH
    
      cd $FULL_PATH
      rm -rf *
      echo $FULL_PATH"/*" removed
    
      echo
    done
    
    echo all done
    
  11. 一些命令

    uname -a # 查看内核/操作系统/CPU信息的linux系统信息
    head -n l /etc/issue # 查看操作系统版本
    cat /proc/cpuinfo # 查看CPU信息
    hostname # 查看计算机名的linux系统信息命令
    lspci -tv # 列出所有PCI设备
    lsusb -tv # 列出所有USB设备的linux系统信息命令
    lsmod # 列出加载的内核模块
    env # 查看环境变量资源
    free -m # 查看内存使用量和交换区使用量
    df -h # 查看各分区使用情况
    du -sh # 查看指定目录的大小
    grep MemTotal /proc/meminfo # 查看内存总量
    grep MemFree /proc/meminfo # 查看空闲内存量
    uptime # 查看系统运行时间、用户数、负载
    cat /proc/loadavg # 查看系统负载磁盘和分区
    mount | column -t # 查看挂接的分区状态
    fdisk -l # 查看所有分区
    swapon -s # 查看所有交换分区
    hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
    dmesg | grep IDE # 查看启动时IDE设备检测状况网络
    ifconfig # 查看所有网络接口的属性
    iptables -L # 查看防火墙设置
    route -n # 查看路由表
    netstat -lntp # 查看所有监听端口
    netstat -antp # 查看所有已经建立的连接
    netstat -s # 查看网络统计信息进程
    ps -ef # 查看所有进程
    top # 实时显示进程状态用户
    w # 查看活动用户
    id # 查看指定用户信息
    last # 查看用户登录日志
    cut -d: -f1 /etc/passwd # 查看系统所有用户
    cut -d: -f1 /etc/group # 查看系统所有组
    crontab -l # 查看当前用户的计划任务服务
    chkconfig –list # 列出所有系统服务
    chkconfig –list | grep on # 列出所有启动的系统服务程序
    rpm -qa # 查看所有安装的软件包
    cat /proc/cpuinfo :查看CPU相关参数的linux系统命令
    cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令
    cat /proc/meminfo :查看linux系统内存信息的linux系统命令
    cat /proc/version :查看版本,类似uname -r
    cat /proc/ioports :查看设备io端口
    cat /proc/interrupts :查看中断
    cat /proc/pci :查看pci设备的信息
    cat /proc/swaps :查看所有swap分区的信息

posted @ 2017-09-22 00:59  liqipeng  阅读(277)  评论(0编辑  收藏  举报