shell 脚本

1
2
3
#!/bin/bash
kill -9 $(ps -ef|grep jwx-data-api|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
nohup java -jar jwx-data-api_0.0.1-SNAPSHOT.jar > log.log &

命令合集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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 -an|grep 3306 #查看某个端口
netstat -ano|findstr "8089" #windows查看某个端口
netstat -s #查看网络统计信息进程
lsof -i:8080 #根据端口查看进程,yum install lsof -y
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分区的信息
du -h --max-depth=1 #查看文件夹下每个文件大小
dmidecode -t processor | grep 'ID' #查看cpu id
cat /etc/redhat-release #查看centos版本
yum install --downloadonly --downloaddir=/root/docker docker-ce #仅下载,不安装
xfs_growfs /data #直接扩容数据盘
#查看服务器登录失败的ip和次数
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
#拷贝文件到其他服务器
scp -r jdk root@192.168.31.2:/home/fovace/
# 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下,$PWD的操作效果和`pwd`一样,此处不再演示。
scp -r jdk node2:$PWD

日志筛选查找命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#日志实时监控
tail -f spring.log

#关键字实时监控
tail -f spring.log | grep "key"
#如果没有特殊字符,可以不用引号,如果关键字有引号使用单引号和双引号配合使用

#输出匹配行以及下面5行
tail -f spring.log |grep -A 5 "key"

#输出匹配行以及上面5行
tail -f spring.log |grep -B 5 "key"

#输出匹配行以及上下5行
tail -f spring.log |grep -C 5 "key"

#日志查看
cat spring.log

#从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000

#显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
#注意两种方法的顺序

#显示最后1000行
tail -n 1000

#从1000行开始显示,显示1000行以后的
tail -n +1000

#显示前面1000行
head -n 1000

进阶篇

1
2
3
4
5
6
7
8
9
10
11
#查看从上往下匹配从5行开始到结尾
cat spring.log |grep CDATA |tail -n +5

#查看从下往上匹配5行
cat spring.log |grep CDATA |tail -n -5

#查看匹配中第5行
cat spring.log |grep "key" |tail -n +5|head -n 1

#查看匹配中的倒数第5行
cat spring.log |grep "key" |tail -n -5|head -n 1

压缩解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
一、tar
1. 创建tar压缩包:tar -cvf archive.tar file1 file2 directory
2.解压他让压缩包:tar -xvf archive.tar
3.创建tar.gz压缩包:tar -czvf archive.tar.gz file1 file2 directory
4.解压tar.gz压缩包:tar -xzvf archive.tar.gz
5.创建tar.bz2压缩包:tar -cjvf archive.tar.bz2 file1 file2 directory
6.解压tar.bz2压缩包:tar -xjvf archive.tar.bz2

二、gzip
yum install gzip -y
1.压缩文件:gzip file1 file2 directory
2.解压文件:gzip -d file1.gz

三、bzip2
yum install bzip2 -y
1.压缩文件:bzip2 file1 file2 directory
2.解压文件:bzip2 -d file1.bz2

四、zip
yum install -y unzip zip
1.压缩文件:zip -r archive.zip file1 file2 directory
2.解压文件:unzip archive.zip

五、rar
yum install rar -y
1.压缩文件:rar a archive.rar file1 file2 directory
2.解压文件:rar x archive.rar

六、7z
yum install p7zip -y
1.压缩文件:7z a archive.7z file1 file2 directory
2.解压文件:7z x archive.7z