Skip to content
On this page

防火墙

  1. 查看防火墙状态:firewall-cmd --state systemctl status firewalld.service

  2. 开启防火墙:systemctl start firewalld.service

  3. 开机启动防火墙: systemctl enable firewalld.service

  4. 重启防火墙:systemctl restart firewalld.service

  5. 查看防火墙是否设置了开机自启动: systemctl is-enabled firewalld.service;echo $?

  6. 关闭防火墙: systemctl stop firewalld.service

  7. 打开单独个窗口: firewall-cmd --zone=public --add-port=3306/tcp --permanent

  8. 打开20000-29999端口: firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent

    = 前后不要加空格,否则命令报错,如图所示

    --permanent 为永久生效,不加为单次有效(重启失效)

  9. 查看开启端口:netstat -ntlp firewall-cmd --list-ports

  10. 关闭端口: firewall-cmd --zone=public --remove-port=3306/tcp --permanent

  11. 查看单个端口是否打开: firewall-cmd --zone=public --query-port=3306/tcp

远程复制

scp -r 124.222.70.26:/var/lib/jenkins/workspace/medicine-institute/ruoyi-admin/target/ruoyi-admin.jar /usr/nginx/admin/ruoyi-admin.jar
scp -r 124.222.70.26:/usr/local/nginx/html/static/js/app.c1e248f5.js /usr/nginx/html/static/js/app.c1e248f5.js
scp -r 124.222.70.26:/usr/local/nginx/html/ /usr/nginx/
scp -r 124.222.70.26:/home/ruoyi/ /home/

查看系统,CPU信息

# 查看系统内核信息
uname -a

# 查看系统内核版本
cat /proc/version

# 查看当前用户环境变量
env

cat /proc/cpuinfo

# 查看有几个逻辑cpu,包括cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

# 查看有几个cpu ,每个分别是几核
cat /proc/cpuinfo | grep physical | uniq -c

# 查看当前CPU运行在32bit还是64bit模式下,如果是运行在32bit下也不代表cpu不支持64bit
getconf LONG_BIT

# 结果大于0,说明支持64bit计算,lm指long mode,支持lm则是64bit
cat /proc/cpuinfo | grep flags | grep ' lm ' wc - l

# 查看磁盘使用情况
dh -h

# 内存
cat /proc/meminfo 

# 查看内存使用情况
free -m

建立软连接

ln -s /usr/local/jdk1.8/ jdk

rpm相关

rpm -qa | greo 软件名

sshkey相关

# 创建sshkey
ssh-keygen -t rsa -C my_email@126.com

# id_rsa.pub 的内容拷贝到要控制的服务器的 home/username/.ssh/authorized_keys 中,如果没有则新建。.ssh权限为700,authorized_keys权限为600

同步服务器时间

# 查看时间
date -R
# 安装ntp
yum -y install ntp
# 同步时间
ntpdate time.nist.gov
# 设置定时更新任务
crontab -e
# 每隔10分钟,同步一次
*/10 * * * * ntpdate time.nist.gov

后台运行命令(nohup)

# 后台运行,并且有nohup.out输出
nohup xxx &

# 后台运行,不输出任何日志
nohup xxx > /dev/null &

# 后台运行,并将错误信息做标准输出到日志中
nohup xxx > out.log 2>&1 &

强制活动用户退出

# 其中TTY标识终端名称
pkill -kill -t [TTY]

查看最近登录信息列表

# 最近登录的5个账号
last -n 5

设置固定IP

ifconfig em1 192.168.1.1 netmask 255.255.255.0

添加用户,配置sudo权限

# 新增用户
useradd 用户名
passwd 用户名

# 增加sudo权限
vim /etc/sudoers
# 修改文件里面的
# root ALL=(ALL) ALL
# 用户名 ALL=(ALL) ALL

强制关闭进程名包含xxx的所有进程

ps aux | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9

vim操作

# normal模式下,g标识全局,x标识查找的内容,y表示替换后的内容
:%s/x/y/g

# normal模式下
0 # 光标移动行首(数字0)
$ # 光标移至行尾
shift + g # 跳转文件最后
gg # 跳到文件头

# 显示号
:set nu

# 去除行号
:set nonu

# 检索【xxx(检索内容)】
/xxx  # 从头检索,按n查找下一个
?xxx  # 从尾巴检索

打开只读文件,修改后需求保存时(不用切换用户即可保存的方式)

# normal模式下
:w !sudo tee %

查看磁盘,文件目录基本信息

# 查看磁盘挂载情况
mount

# 查看磁盘分区信息
df

# 查看目录及目录大小
du -H -h

# 查看当前目录下各个文件,文件夹占了多少空间,不会递归
du -sh *

压缩命令

# 压缩目录
tar czvf xxx.tar
zip -r xxx.zip

解压缩命令

tar zxvf xxx-tar

# 解压到指定文件夹
tar zxvf xxx.tar -C /xxx/yyy/

unzip xxx.zip

变更文件所属用户,用户组

chown username.userGroup xxx.log

cp、scp、mkdir

# 复制文件
cp xxx.log
# 复制并覆盖同名文件
cp -f xxx.log
# 复制文件夹
cp -r xxx(源文件夹路径) yyy(目标文件夹路径)

# 远程复制
scp -P ssh端口 username@192.168.1.2:/home/data/ /yyy(目标路径)

# 级联创建目录
mkdir -p /xxx/yyy/xxx

# 批量创建文件夹,会在test、main下都创建java、resources文件夹
mkdir -p src/{test,main}/{java,resources}

比较两个文件

diff -u 1.txt 2.txt

日志输出的字节书,可以用作性能测试

# 如果性能测试,可以每执行依次,往日志里面输出".",这样日志中的字节就是实际的性能测试运行的次数,还可以看见事实速率
tail -f xxx.log | pv -bt

检索相关

# 反向匹配,查找不包含xxx的内容
grep -V xxx

# 排除所有空行
grep -V '^pre>

# 返回结果2,则说明第二行时空行
grep -n '^$' 111.txt

# 查询以abc开头的行
grep -n "^abc" 111.txt

# 同时列出该词语出现文章的第几行
grep 'xxx' -n xxx.log

# 计算一下该字符出现的次数
grep 'xxx' -c xxx.log

检索命令

which

which用于查找并显示给定命令的绝对路径,环境变量中PATH参数也可以被查出来

语法:


which bash
-> /usr/bin/bash

find命令

# 在目录下找后缀是.mysql的文件
find /home/local -name '*.mysql' -print

# 会从/usr目录下开始往下找,找最近3天之内存取过的文件
find /usr -atime 3 -print

# 会从/usr 目录开始往下找,找最近5天之内修改过的文件
find /usr -ctime 5 -print 

# 会从/doc 目录开始往下找,找jacky用户的,文件名开头是j的文件
find /doc -user jacky -name 'j*' -print

# 会从/doc目录开始往下找,找寻文件名是ja开头或者ma开头的文件
find /doc \(-name 'ja*' -o- -name 'ma*' \) -print

# 会从/doc 目录开始往下找,找到凡是文件名结尾为bak的文件,把它删除掉。-exec选项是执行的意思。rm是删除命令,{}表示文件名,'\;'是规定的命令结尾
find /doc -name '*bak' -exec rm {} \;

网络相关

查找什么进程使用了该端口

# 安装lsof:
yum install lsof -y

lsof -i:port

获取本机ip地址

/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d 'addr:'

ss

# 显示本地打开的所有端口
ss -l
# 显示每个进程具体的socket
ss -pl
# 显示所有tcp socket
ss -t -a
# 显示所有的UDP socket
ss -u -a
# 显示所有已建立的SMTP
ss -o state established '(dport = :smpt or sport = :smtp)'
# 显示所有已建立的http连接
ss -o state established '(dport = :http or sport = :http)'
# 找出所有连接x服务器的进程
ss -x src /temp/.x11-unit/*

nc命令、tcp调试器

# 给某一个endpoint 发送TCP请求,就将data的内容发送到对端
nc 192.168.1.11 8000 < data.txt

# nc 可以当作服务器,监听某个端口号,把某一次请求的内容存储到received_data里
nc -l 8000 > received_data

# 上边监听一次,如果多次可以加上-k参数
nc -lk 8000

监控linux性能命令

top

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序, 然后回车。而大写的 R 键可以将当前的排序倒转
列名含义
PID进程id
PPID父进程id
RUSERReal user name
UID进程所有者的用户id
USER进程所有者的用户名
GROUP进程所有者的组名
TTY启动进程的终端名。不是从终端启动的进程则显示为 ?
PR优先级
NInice值。负值表示高优先级,正值表示低优先级
P最后使用的CPU,仅在多CPU环境下有意义
%CPU上次更新到现在的CPU时间占用百分比
TIME进程使用的CPU时间总计,单位秒
TIME+进程使用的CPU时间总计,单位1/100秒
%MEM进程使用的物理内存百分比
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP进程使用的虚拟内存中,被换出的大小,单位kb。
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE可执行代码占用的物理内存大小,单位kb
DATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR共享内存大小,单位kb
nFLT页面错误次数
nDRT最后一次写入到现在,被修改过的页面数。
S进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
COMMAND命令名/命令行
WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
Flags任务标志,参考 sched.h

dmesg,查看系统日志

dmesg

iostat,磁盘IO情况监控

iostat -xz 1

# r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
# await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
# avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
# %util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。
# 如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。

telnet

telnet: command not found => yum install telnet-serve ; yum install telnet.*

explame
telnet 192.168.1.4 3306

Shell文件

更改文件为可执行文件

// 将window复制到linux的文件改成linux
:set ff=unix
// 给sh变成可执行文件
chmod +x test.sh
// bash启动sh文件
bash ./test.sh

授权目录

// ubuntu普通用户,java 权限不够时
sudo chmod -R 777 /usr/local/jdk1.8.0_181

nrm安装

1、npm install -g nrm
2、nrm add local http://116.8.109.23:20119/repository/3rd_npm_group/
3、nrm ls
4、nrm use local
5、npm login
6、username输入: 
7、password输入: 
8、email输入: 自己的邮箱

更改目录所有者

// 更改文件目录所有者
sudo chown -R szxc /data/szxc/typt/avatar

更改文件读写权限

sudo chmod 777 rabbitmq_delayed_message_exchange-3.11.1.ez

window结束端口

window结束端口:
netstat -ano | findstr "8080"  =》得到pid
tasklist | findstr 31476 =》查看pid进程名称
taskkill /f /pid 31476 》结束31476的pid