软件相关
使用阿里云开源镜像
备份旧的配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
并替换部分字段(非阿里云机器需要做)
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
生成缓存
yum makecache
rpm
查看软件是否安装
rpm -qa | grep 软件名
查看软件安装路径
rpm -ql 软件名
安装软件
rpm -ivh 软件包
卸载软件
rpm -e --nodeps 软件包
yum
查看软件是否安装
yum list installed | grep 软件名
查看软件是否已安装以及相关软件包
yum list 软件包*
查看yum源软件包版本等信息
yum info 软件包
本地查找不到时
yum search 软件包*
安装软件
yum install 软件包
卸载软件
yum remove 软件包
软件依赖
yum deplist 软件包
repo源文件位置
cd /etc/yum.repos.d
进程相关
进程信息排序
top
查看进程信息
ps 进程id
进入进程运行信息文件夹
/proc/进程id
查看进程源文件位置,其中”exe ->”指向的就是源文件位置
ls -la /proc/进程id
强制终止进程
kill -9 进程id
查看端口占用
netstat -ntlp | grep 端口号/程序名
后台运行任务
nohup 任务命令 > log.txt &
查看任务运行情况
ps -ef | grep 任务命令 | grep -v grep
系统相关
- 查看历史启动时间
last reboot
ssh端口修改
编辑配置文件
vi /etc/ssh/sshd_config
找到 #Port 22 一行,去除 # 号,并将 22 改为新的端口
防火墙开放新端口
重启sshd服务
systemctl restart sshd
使用fail2ban
yum 安装
yum install fail2ban
自定义配置
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
26vi /etc/fail2ban/jail.local
[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 127.0.0.1/8
logencoding=utf-8
# 客户端主机被禁止的时长(秒)
bantime = 36000
# 查找失败次数的时长(秒)
findtime = 36000
# 客户端主机被禁止前允许失败的次数
maxretry = 3
# 一分钟内ssh密码错误3次禁止2小时
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
# Debian 系的发行版
logpath = /var/log/auth.log
# Red Hat 系的发行版
logpath = /var/log/secure
maxretry = 3
findtime = 60
bantime = 7200重启服务
systemctl restart fail2ban
测试是否服务正常运行
fail2ban-client ping
Server replied: pong
开机启动
systemctl enable fail2ban
版本查看
fail2ban-client version
查看sshd状态
fail2ban-client status sshd
防火墙相关
查看防火墙状态
systemctl status firewalld
查看开放的所有端口及协议
firewall-cmd --zone=public --list-ports
查看指定端口是否已开放
firewall-cmd --query-port=端口号/协议(tcp/udp)
永久开放指定端口号
firewall-cmd --permanent --add-port=端口号/协议(tcp/udp)
success表示成功
永久移除指定端口号
firewall-cmd --permanent --remove-port=端口号/协议(tcp/udp)
重新载入防火墙配置(修改规则后,须执行此命令)
firewall-cmd --reload
文件相关
创建文件夹
mkdir 文件加名称
递归删除文件夹
rm -rf 文件夹路径
创建文件
touch 文件名
查看文件
cat 文件名
删除文件
rm -f 文件名
添加可执行权限
chmod +x 文件夹或文件
删除可执行权限
chmod -x 文件夹或文件
vi相关
打开文件
vi 文件路径
进入insert模式
按i键
进入command模式
按esc键
强制保存文件,并退出vi
:wq!
不保存文件,退出vi
:q!
保存文件但不退出vi
:w!
将修改另外保存到file中,不退出vi
:w file
放弃所有修改,从上次保存文件开始再编辑
:e!
硬盘与文件系统
查看硬盘label(别名)
blkid
查看硬盘大小
lsblk
查看分区信息
fdisk -l
查看硬盘占用
df -h
查看文件夹占用空间
du -sh
查看文件夹及下级文件占用空间(参数–max-depth用来指定深入目录的层数)
du -h --mxa-depth=1
刷新DNS缓存
yum -y install nscd
systemctl start nscd
nscd -i hosts
无线网络配置
安装 nmcli 工具
yum install NetworkManager*
重启网络服务
systemctl restart NetworkManager
查看网卡别名和网卡信息
nmcli
将无限网卡加入托管(命名可能不是wlp1s0)
nmcli dev set wlp1s0
开启wifi
nmcli r wifi on
扫描wifi
nmcli dev wifi
连接ssid
nmcli --ask dev wifi connect SSID_NAME
查看网卡状态
nmcli dev status
网卡命名规则
en: eethernet 以太网-双绞线 wl: wirelessLAN 无线网卡 ww:WAN广域网 串行线缆 o:on-board 板载网卡 s: hotplug 热插拔 p:PCI接口 N:序号或者ID
替换openjdk
从Oracle官网下载rpm安装包
用rpm命令安装jkd
rpm -ivh 安装包名称.rpm
使用update-alternative配置java
update-alternatives --config java
update-alternatives --config javac
查看当前jdk版本
java -version
javac -version
查看jdk位置
which java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
配置环境变量
vim /etc/profile
在末尾添加以下内容
1
2
3
4export JAVA_HOME="上面输出的路径,截止到jdk目录"
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH更新profile
source /etc/profile
测试javahome
echo $JAVA_HOME
使用tar.gz方式安装jdk
从Oracle官网下载tar.gz安装包
解压tar.gz
tar -zxvf jdk-xxx.tar.gz
配置环境变量
vim /etc/profile
在末尾添加以下内容
1
2
3
4export JAVA_HOME="上面输出的路径,截止到jdk目录"
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH更新profile
source /etc/profile
测试javahome
echo $JAVA_HOME
处理javax.net.ssl.SSLHandshakeException: No appropriate protocol错误
https://blog.csdn.net/mmm333zzz/article/details/121656330
https://stackoverflow.com/questions/38205947/sslhandshakeexception-no-appropriate-protocol#
安装debug版本jdk,以支持更多命令yum install -y java-1.8.0-openjdk-devel && yum install -y java-1.8.0-openjdk-debuginfo --enablerepo=*debug*
进程莫名停止,没异常信息
查看message信息,是否内存不足被杀了
cat /var/log/message
解决方法:添加交换分区
创建交换分区
dd if=/dev/zero of=/usr/swap bs=1M count=2048 #在/usr目录下创建2g的文件swap,文件的大小是count的大小乘以bs大小
mkswap /usr/swap #把新建的文件做成swap分区
swapon /usr/swap #启用交换分区
设置开机自动挂载
vi /etc/fstab
/usr/swap swap swap defaults 0 0
查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成10或者30
cat /proc/sys/vm/swappiness
sysctl -w vm.swappiness=10
这里需要简单说明下,在Linux系统中,可以通过查看/proc/sys/vm/swappiness内容的值来确定系统对SWAP分区的使用原则。当swappiness内容的值为0时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用SWAP分区。当swappiness内容的值为100时,表示积极地使用SWAP分区,并且把内存中的数据及时地置换到SWAP分区。注:若想永久修改,则编辑/etc/sysctl.conf文件
我们这里设置的30,就表示当物理内存少于30%时便使用交换分区。
关闭交换分区
swapoff /usr/swap
最重要一点,java项目不建议启用交换分区