压缩解压
//压缩成tar格式 tar -cvf dd.tar dd.txt //解压 tar -xvf dd.tar //压缩文件把a1.txt压缩成a.tar.gz tar -zcvf a.tar.gz a1.txt(后面可以跟多个文件名,或者目录) //解压文件 tar -zxvf a.tar.gz(指定解压到某个目录下时,目录必须存在 -C 路径) //压缩 zip -r page.zip /home/ //解压 unzip -d /opt/tmp/ page.zip //不会生成外层目录压缩 zip -rD yigongcailiao_OCR.zip yigongcailiao_OCR/
磁盘空间
查看磁盘剩余空间
df -h
查看各个文件夹占用磁盘情况
du -sh * • 1
查看每个目录占用磁盘情况
du -h --max-depth=1 .
ctrl+z 、ctrl+c区别
- ctrl+c是强制中断程序的执行,进程已经终止
- ctrl+z的是将任务中止(暂停的意思)
用户可以使用fg/bg操作继续前台或后台的任务,
fg命令重新启动前台被中断的任务,
bg命令把被中断的任务放在后台执行.
lsof -i:端口号
用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000
lsof -i:8000
创建软链接
ln -s 源文件 目标文件。
ln -snf ssa-service-server.jar apps/ssa-service-latest.jar
-f --force 强行删除任何已存在的目标文件
删除的话使用rm
netstat -tunlp |grep 端口号
用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -luntp |grep 8000
netstat -luntp | grep 8000
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
netstat -antp|grep 进程号
查看进程号使用的端口
firewall
防火墙开启,开放端口,查看开放的端口
- 查看
firewall-cmd --list-ports • 1
- 开启端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent • 1
- 重启
systemctl restart firewalld.service • 1
- 关闭
systemctl stop firewalld.service • 1
- 开启开机自启动
systemctl able firewalld.service • 1
- 关闭开机自启动
systemctl disable firewalld.service • 1
vim快捷键
多行注释ctrl+v
选中多行,按下键盘(大写)“I”键,进入插入模式,把第一行修改为#
,退出编辑模式esc
- 多行解注释ctrl+v,移动关标选中所有的#然后按delete
快速查找之前敲过的指令
ctrl+r
全局替换
%s/源字符串/目的字符串/g
:%s/$releasever/7.6.1810/g • 1
文件末尾添加
cat >> /etc/sysctl.conf <<EOF vm.max_map_count=655360 EOF
whereis
这个命令可以用来查找二进制(命令)、源文件、man文件。与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所以查找的面比which要广
which
这条命令主要是用来查找系统PATH目录下的可执行文件。说白了就是查找那些我们已经安装好的可以直接执行的命令,比如
yum
查看yum可以安装的版本
yum list |grep nginx
rpm
rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”
rpm -qa | grep ruby
查看yum安装的软件的所有相关路径
rpm -ql jenkins
find查找文件
删目录
#! /bin/sh days=5 logDir=/app/autotest/file/log find $logDir -mtime +$days -type d -name \* -exec rm -rf {} \;
删文件
#!/bin/sh # 清理应用几天前的日志 days=30 logDir=$(pwd) find $logDir -mtime +$days -type f -name "*.log" -exec rm -rf {} \;
查看被杀死的进程
改i命令可以查看被杀死的进程信息,如果某个进程占用linux系统太多的内存,linux系统的自我保护机制会进行投票,分数高的进程会被杀死。
sudo dmesg -T | grep "(java)"
连接数查询
查看当前连接,注意close_wait偏高的情况,比如如下
[root@root ~]$ netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn 1354 ESTABLISHED 186 TIME_WAIT 128 SYN_SENT 101 LISTEN 56 CLOSE_WAIT 1 Foreign 1 established)
tcp的几种状态
- CLOSED状态:初始状态,表示TCP连接是“关闭的”或者“未打开的”
- LISTEN状态:表示服务端的某个端口正处于监听状态,正在等待客户端连接的到来
- SYN_SENT状态:当客户端发送SYN请求建立连接之后,客户端处于SYN_SENT状态,等待服务器发送SYN+ACK
- SYN_RCVD状态:当服务器收到来自客户端的连接请求SYN之后,服务器处于SYN_RCVD状态,在接收到SYN请求之后会向客户端回复一个SYN+ACK的确认报文
- ESTABLISED状态:当客户端回复服务器一个ACK和服务器收到该ACK(TCP最后一次握手)之后,服务器和客户端都处于该状态,表示TCP连接已经成功建立
- CLOSE_WAIT状态:当服务器发送连接断开确认ACK之后但是还没有发送自己的FIN之前的这段时间,服务器处于该状态
- TIME_WAIT状态:当客户端收到了服务器发送的FIN并且发送了自己的ACK之后,客户端处于该状态
- LAST_ACK状态:表示被动关闭的一方(比如服务器)在发送FIN之后,等待对方的ACK报文时,就处于该状态
- CLOSING状态:连接断开期间,一般是客户端发送一个FIN,然后服务器回复一个ACK,然后服务器发送完数据后再回复一个FIN,当客户端和服务器同时接受到FIN时,客户端和服务器处于CLOSING状态,也就是此时双方都正在关闭同一个连接
查看80的 netstat -nat|grep -i "80"|wc -l 统计httpd协议的连接数 ps -ef |grep httpd|wc -l 统计状态为ESTABLISHED的连接数 netstat -na|grep ESTABLISHED|wc -l
查看内存
应用程序可用内存数
应用程序可用内存系统物理内存<20%说明内存不足,需要增加内存。
free -m
查看额外
pidstat -p 进程号 -r 间隔秒数
磁盘io
查看磁盘快设备分布
iostat -xdk 2 3
- rkB/s每秒读取数据量kB;
- wkB/s每秒写入数据量kB;| I
- svctm I/O请求的平均服务时间,单位毫秒;
- await I/O请求的平均等待时间,单位毫秒;值越小,性能越好:
- util一秒中有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘;
- rkB/s、wkB/s 根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。
- svctm的值与await的值很接近,表示几乎没有I/O等待,磁盘性能好,
如果await的值远高于svctm的值,则表示I/O队列等待太长,需要优化程序或更换更快磁盘。
Linux文件传输工具
对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能
安装
yum install -y lrzsz
sz命令发送文件到本地:
- sz filename
rz命令本地上传文件到服务器:
- rz
导出内存影像文件