常用linux命令
~
-
查看进程树
ptree -p | grep httpd
-
获取指定名称的进程并杀掉
#!/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 "--------------"
-
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
-
查看磁盘空间
# 磁盘 df -hl # 查看目录大小 du -bs dir_name # 查看当前目录大小 du -sh * # 查看当前目录下各文件大小 du -sh /*
-
计算列表平均值
cat nohup.out | awk -F ' ' '{sum+=$3} END {print "Average=",sum/NR}'
-
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使用分号“;”分割
-
查看TCP
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
-
下载文件并支持断点续传
curl -C - -O https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz # 注意 -C 和 -O之间有一个 - 符号
-
批量清理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
-
一些命令
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分区的信息