常用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  阅读(312)  评论(0)    收藏  举报