常用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 formatls -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分区的信息

浙公网安备 33010602011771号