文章目录
- 配置java-web运行环境
- java环境配置
- tomcat环境配置
- Mysql环境配置
- Redis的环境配置
- 防火墙操作
- firewall常见基本指令
- 切换为iptables防火墙
- iptables的规则的写法
- CentOS7常用指令
- 文件和目录操作
- 查看文件内容
- 文本内容处理
- 查询操作
- 压缩、解压
- yum安装器
- 网络相关
- 系统相关
- systemctl命令
配置java-web运行环境
java环境配置
- 官网下载linux系统上jdk的安装包.tar.gz
- 在Linux的/usr/local目录下新建文件夹java
cd /usr/local
mkdir java
- 通过WinSCP或其他工具将jdk安装包上传到java文件中
- 进入java目录下
cd /usr/local/java
- 解压jdk安装包
tar xvf jdk安装包的名称
- 修改系统环境变量
vi /etc/profile
- 在/etc/profile文件末尾添加这几行,按esc退出编辑模式后,输入
:wq
保存并退出
JAVA_HOME=/usr/local/java/jdk解压出的文件夹名
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:JAVA_HOME/lib
export JAVA_HOME PATH CLASSPATH
- 重新加载,使配置生效
source /etc/profile
- 查看jdk是否安装成功输入命令
java -version
- 若成功会显示java version字样
- jdk安装完毕
tomcat环境配置
- 官网下载tomcat安装包.tar.gz
- 安装和jdk差不多,在Linux的/usr/local目录下新建文件夹tomcat
cd /usr/local
mkdir tomcat
- 进入tomcat目录下
cd /usr/local/tomcat
- 解压tomcat安装包
tar xvf tomcat安装包名称
- 为tomcat配置环境,修改系统环境变量
vi /etc/profile
#该配置是基于已经配置了jdk的基础上
JAVA_HOME=/usr/local/java/jdk解压出的文件夹名
CATALINA_HOME=/usr/local/tomcat/tomcat解压出的文件夹名称
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
CLASSPATH=.:JAVA_HOME/lib:CATALINA_HOME/lib
export JAVA_HOME CATALINA_HOME PATH CLASSPATH
- 重新加载,使配置生效
source /etc/profile
- tomcat的安装完毕
- 在
/tomcat解压出的文件夹/bin
下
- catalina.sh 用于启动和关闭tomcat服务器
- startup.sh 启动
- shutdown.sh 关闭
- 查看tomcat实时日志:
- 在
tomcat/logs
目录下:tail -f catalina.out
- 在 CentOS 7 中设置 Tomcat 开机自启动
- 假设Tomcat的安装路径为
/usr/local/tomcat/
- 1、为tomcat添加启动参数
-
catalina.sh
在执行的时候会调用同级路径下的setenv.sh
来设置额外的环境变量,因此在/usr/local/tomcat/bin
路径下创建setenv.sh
文件,内容如下:
# 在tomcat目录下面的bin目录下面创建setenv.sh文件,
# 因为catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量。
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/temp/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
- 2、编写
tomcat.service
文件
- 在
/usr/lib/systemd/system
路径下添加tomcat.service
文件,内容如下:
# 在/usr/lib/systemd/system路径下添加tomcat.service文件,内容如下:
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_221"
PIDFile=/usr/local/tomcat/temp/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 3、将 tomcat 加入服务管理
- 设置权限:
chmod 754 tomcat.service
- 启动关闭服务,设置开机启动:
# 开机启动
systemctl enable tomcat.service
# 禁止开机启动
systemctl disable tomcat.service
# 启动服务
systemctl start tomcat.service
# 查看服务
systemctl status tomcat.service
# 关闭服务
systemctl stop tomcat.service
# 重新启动
systemctl restart tomcat.service
Mysql环境配置
- 运用命令检查系统中是否存在mysql
rpm -qa | grep mysql
- 如若存在,则执行以下命令删除
-
rpm -e 软件名
这里的软件名必须包含软件的版本信息,如rpm -e mariadb-libs-5.5.52-1.el7.x86_64。一般使用此命令即可卸载成功。 -
rpm -e --nodeps 软件名
卸载不成功时使用此命令强制卸载
- 若存在,删除mysql的配置文件
- 先用
find / -name mysql
寻找出所用的配置文件,根据需求用rm -rf 文件名
来依次删除
- 删除MariaDB的文件
- 由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.
- 使用rpm 命令查找出要删除的mariadb文件:
rpm -pa | grep mariadb
- 可能的显示结果:
mariadb-libs-5.5.56-2.el7.x86_64
- 删除上面的程序:
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
- 若删除失败,则使用强制删除:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
- 安装mysql
- centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装
- mysql官网下载链接:mysql repo下载地址
- 用WinSCP或putty等其他软件将下载好的repo文件上传到CentOS的
/usr/local/mysql
文件夹下 - 安装yum repo文件并更新yum缓存:
- 在
/usr/local/mysql
文件夹下执行rpm -ivh 下载好的repo文件的文件名
- 执行结果:
- 会在
/etc/yum.repos.d/
目录下生成两个repo文件mysql-community.repo
和mysql-community-source.repo
- 更新 yum 命令:
- 先执行
yum clean all
清除缓存,在执行yum makecache
来添加缓存。
- 使用yum安装mysql
- 查看mysql yum仓库中的mysql版本:
yum repolist all | grep mysql
- 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态
- 例如:
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
- 或者可以编辑mysql repo文件,将相应版本下的enabled改成 1 即可:
cat /etc/yum.repos.d/mysql-community.repo
- 最后,安装mysql的命令:
yum install mysql-community-server
- 开启mysql服务:
systemctl start mysqld.service
- 获取初始密码来登录mysql:
- mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中
cat /var/log/mysqld.log | grep password
- 使用初始密码登录mysql:
mysql -u root -p
- 修改初始密码(必须含有数字,小写和大写字母,特殊字符):
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- 创建新用户、授权、远程登录(不要直接使用root账户登录)
- 创建用户:
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
- 授权远程登录:
GRANT ALL ON *.* TO '用户名'@'%';
- 用本地电脑客户端(sqlyog或其他)进行登录
- 若登录用户过程报plugin caching_sha2_password错误:
- 是因为MySQL8.0密码策略默认为caching_sha2_password。与5.7有所不同。
- 进入MySQL数据库使用基本数据库:
use mysql;
- 查询user表信息:
select user,host,plugin from user;
发现确实是caching_sha2_password
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| yun | % | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
- 修改的操作:
ALTER USER '用户名'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
- 再次登录即可
- 查看编码:
show variables like '%character%';
- MySQL8.0默认就是utf8mb4编码,无需更改。
- 至此 Mysql 配置完毕;
Redis的环境配置
- Redis的官方下载
- 准备:由于redis的安装需要gcc依赖,用yum安装gcc依赖:
yum install gcc
,遇到选择,输入y即可。 - 下载并解压redis安装包
- 在
/usr/local/
文件夹下执行wget wget http://download.redis.io/releases/redis-5.0.5.tar.gz
若需要其他指定版本去上文的官方下载页面寻找) - 解压:
tar -zxvf redis-5.0.5.tar.gz
- 安装:
- 安装完成后进入到解压目录:
cd redis-5.0.5
- 执行make编译Redis:
make MALLOC=libc
- 注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是
redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel
。
- 编译并安装redis:先
make MALLOC=libc
然后make install
- 直接启动redis:
- 进入redis的src目录下:
cd src
- 直接启动redis:
./redis-server
,按ctrl+c
可以退出。
- 以后台方式启动redis:
- 修改redis.conf文件:将
daemonize no
修改为daemonize yes
(在redis的安装目录中) - 指定redis.conf文件启动:
./redis-server ../redis.conf
(在redis安装目录的src下执行) - 关闭redis进程:
- 首先使用
ps -aux | grep redis
查看redis进程 - 使用kill命令杀死进程:kill -9 redis的进程pid
- 设置redis开机启动:
- 在redis安装目录下执行
./utils/install_server.sh
即可(一路按回车快速配置) - Redis服务查看、开启、关闭:
- 通过ps -ef|grep redis命令查看Redis进程
- 开启Redis服务操作通过
/etc/init.d/redis_6379 start
命令,也可通过service redis_6379 start
- 关闭Redis服务操作通过
/etc/init.d/redis_6379 stop
命令,也可通过service redis_6379 stop
、
- 注意:用脚本安装完后,要修改redis的配置文件需要在
/etc/redis
目录下的6379.conf
中修改
- redis.conf 的配置信息:
01、daemonize 如果需要在后台运行,把该项改为yes
02、pidfile 配置多个pid的地址 默认在/var/run/redis.pid
03、bind 绑定ip,设置后只接受来自该ip的请求
04、port 监听端口,默认是6379
05、loglevel 分为4个等级:debug verbose notice warning
06、logfile 用于配置log文件地址
07、databases 设置数据库个数,默认使用的数据库为0
08、save 设置redis进行数据库镜像的频率。
09、rdbcompression 在进行镜像备份时,是否进行压缩
10、dbfilename 镜像备份文件的文件名
11、Dir 数据库镜像备份的文件放置路径
12、Slaveof 设置数据库为其他数据库的从数据库
13、Masterauth 主数据库连接需要的密码验证
14、Requriepass 设置 登陆时需要使用密码
15、Maxclients 限制同时使用的客户数量
16、Maxmemory 设置redis能够使用的最大内存
17、Appendonly 开启append only模式
18、Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
19、vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
20、vm-swap-file 设置虚拟内存的交换文件路径
21、vm-max-memory 设置redis使用的最大物理内存大小
22、vm-page-size 设置虚拟内存的页大小
23、vm-pages 设置交换文件的总的page数量
24、vm-max-threads 设置VM IO同时使用的线程数量
25、Glueoutputbuf 把小的输出缓存存放在一起
26、hash-max-zipmap-entries 设置hash的临界值
27、Activerehashing 重新hash
防火墙操作
- CentOS7.x与CentOS6.x的防火墙不同
- CentOS7.x为firewall ,firewall 能够允许哪些服务可用,那些端口可用,属于更高一层的防火墙
- CentOS6.x为iptables,iptables用于过滤数据包,属于网络层防火墙
firewall常见基本指令
- 系统配置目录:
/usr/lib/firewalld/services
- 目录中存放定义好的网络服务和端口参数,系统参数,不能修改。
- 用户配置目录:
/etc/firewalld/
- 如何自定义添加端口
- 用户可以通过修改用户配置文件的方式添加端口,也可以通过命令的方式添加端口,注意:修改的内容会在/etc/firewalld/目录下的配置文件中体现。
- 命令的方式添加端口:
firewall-cmd --permanent --add-port=9527/tcp
- 参数介绍:
- firewall-cmd:是Linux提供的操作firewall的一个工具
- –permanent:表示设置为持久
- –add-port:标识添加的端口
- 修改配置文件的方式添加端口
- 修改
/etc/firewalld/zones/public.xml
- 举例:
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas.</description> <br>
<rule family="ipv4">
<!-- 开放通源ip为122.10.70.234,端口514 -->
<source address="122.10.70.234"/>
<port protocol="udp" port="514"/>
<accept/>
</rule>
<rule family="ipv4">
<!-- 开放通源ip为123.60.255.14,端口10050-10051,协议tcp -->
<source address="123.60.255.14"/>
<port protocol="tcp" port="10050-10051"/>
<accept/>
</rule>
<rule family="ipv4">
<!-- 放通任意ip访问服务器的9527端口 -->
<port protocol="tcp" port="9527"/>
<accept/>
</rule>
</zone>
- 重启、关闭、开启、firewalld.serverice 服务:
- 重启:
Service firewalld restart
或systemctl restart firewalld
- 开启:
Service firewalld start
或systemctl start firewalld
- 关闭:
Service firewalld stop
或systemctl stop firewalld
- 查看运行状态:
systemctl status firewalld
或firewall-cmd --state
- 关闭开机启动:
systemctl disable firewalld
- 打开开机启动:
systemctl enable firewalld
- 查看防火墙规则:
firewall-cmd --list-all
切换为iptables防火墙
- 若不想用firewall,可以切换或原本的iptables防火墙。
- 切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务
- 关闭firewall,禁止firewall开机启动:
service firewalld stop systemctl disable firewalld.service
- 安装iptables防火墙:
yum install iptables-services
- 编辑iptables防火墙配置:
vi /etc/sysconfig/iptables
- 举例:开放了22、80、3306端口
Firewall configuration written by system-config-firewall Manual customization of this file is not recommended.
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
- 开启iptables防火墙:
service iptables start
- 设置iptables防火墙开机启动:
systemctl enable iptables.service
iptables的规则的写法
- iptables定义规则的方式比较复杂,格式:
iptables [-t table] COMMAND chain CRETIRIA -j ACTION
- -t table :3个filter nat mangle
- COMMAND:定义如何对规则进行管理
- chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的
- CRETIRIA:指定匹配标准
- -j ACTION:指定如何进行处理
- 比如:
- 不允许172.16.0.0/24的进行访问。
iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP
- 当然你如果想拒绝的更彻底:
iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECT
- 注意:规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的。
- 其他举例:
# 允许已建立的或相关连的通行
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许本地回环接口
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许本机对外访问
-A OUTPUT -j ACCEPT
# 允许访问SSH端口,如果端口修改了可以更改相应端口号
-A INPUT -p tcp --dport 22 -j ACCEPT
# 允许访问80(HTTP)端口
-A INPUT -p tcp --dport 80 -j ACCEPT
# 允许访问FTP端口:21、20
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
# 允许访问161(SNMP)端口:
-A INPUT -p udp --dport 161 -j ACCEPT
# 禁止其他未允许的规则访问
-A INPUT -j REJECT -A FORWARD -j REJECT
- 保存并使用以下命令重启iptables:
service iptables restart
CentOS7常用指令
文件和目录操作
命令 | 作用 |
cd /home | 进入 ‘/home’ 目录 |
cd … | 返回上一级目录 |
cd …/… | 返回上两级目录 |
cd - | 返回上次所在目录 |
cp file1 file2 | 将file1复制为file2 |
cp -a dir1 dir2 | 复制一个目录 |
cp -a /tmp/dir1 . | 复制‘/tmp/dir1’目录到当前工作目录( |
ls | 查看目录中的文件 |
ls -a | 显示隐藏文件 |
ls -l | 显示详细信息 |
ls -lrt | 按时间显示文件 ( |
pwd | 显示工作目录路径 |
mkdir dir1 | 创建 ‘dir1’ 目录 |
mkdir dir1 dir2 | 同时创建两个目录 |
mkdir -p /tmp/dir1/dir2 | 创建一个目录树 |
mv dir1 dir2 | 移动/重命名一个目录 |
rm -f file1 | 删除 ‘file’ |
rm -rf dir1 | 删除 ‘dir1’ 目录及其子目录内容 |
查看文件内容
命令 | 作用 |
cat file1 | 从第一个字节开始正向查看文件内容 |
head -2 file1 | 查看 ‘file1’ 文件的头两行 |
more file1 | 查看一个长文件的内容 |
tac file1 | 从最后一行开始反向查看一个文件内容 |
tail -3 file1 | 查看一个文件的最后三行 |
vi file1 | 打开并浏览文件 |
文本内容处理
命令 | 解析 |
grep str /tmp/test | 在文件 ‘/tmp/test’ 中查找 “str” |
grep ^str /tmp/test | 在文件 ‘/tmp/test’ 中查找以 “str” 开始的行 |
grep [0-9] /tmp/test | 查找 ‘/tmp/test’ 文件中所有包含数字的行 |
grep str -r /tmp/* | 在目录 ‘/tmp’ 及其子目录中查找 “str” |
diff file1 file2 | 找出两个文件的不同处 |
sdiff file1 file2 | 以对比的方式显示两个文件的不同 |
- vi file
操作 | 解析 |
i | 进入编辑文本模式 |
Esc | 退出编辑文本模式 |
:w | 保存当前修改 |
:q | 不保存退出vi |
:wq | 保存当前修改并退出vi |
查询操作
命令 | 解析 |
find / -name file1 | 从 ‘ / ’ 开始进入根文件系统查找文件和目录 |
find / -user user1 | 查找属于用户 ‘user1’ 的文件和目录 |
find /home/user1 -name *.bin | 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件 |
find /usr/bin -type f -atime +100 | 查找在过去100天内未被使用过的执行文件 |
find /usr/bin -type f -mtime -10 | 查找在10天内被创建或者修改过的文件 |
locate *.ps | 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令 |
find -name ‘*.[ch]’ | xargs grep -E ‘expr’ | 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’ |
find -type f -print0 | xargs -r0 grep -F ‘expr’ | 在当前目录及其子目录的常规文件中查找 ‘expr’ |
find -maxdepth 1 -type f | xargs grep -F ‘expr’ | 在当前目录中查找 ‘expr’ |
压缩、解压
命令 | 解析 |
bzip2 file1 | 压缩 file1 |
bunzip2 file1.bz2 | 解压 file1.bz2 |
gzip file1 | 压缩 file1 |
gzip -9 file1 | 最大程度压缩 file1 |
gunzip file1.gz | 解压 file1.gz |
tar -cvf archive.tar file1 | 把file1打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数) |
tar -cvf archive.tar file1 dir1 | 把 file1,dir1 打包成 archive.tar |
tar -tf archive.tar | 显示一个包中的内容 |
tar -xvf archive.tar | 释放一个包 |
tar -xvf archive.tar -C /tmp | 把压缩包释放到 /tmp目录下 |
zip file1.zip file1 | 创建一个zip格式的压缩包 |
zip -r file1.zip file1 dir1 | 把文件和目录压缩成一个zip格式的压缩包 |
unzip file1.zip | 解压一个zip格式的压缩包到当前目录 |
unzip test.zip -d /tmp/ | 解压一个zip格式的压缩包到 /tmp 目录 |
yum安装器
命令 | 解析 |
yum -y install [package] | 下载并安装一个rpm包 |
yum localinstall [package.rpm] | 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系 |
yum -y update | 更新当前系统中安装的所有rpm包 |
yum update [package] | 更新一个rpm包 |
yum remove [package] | 删除一个rpm包 |
yum list | 列出当前系统中安装的所有包 |
yum search [package] | 在rpm仓库中搜寻软件包 |
yum clean [package] | 清除缓存目录(/var/cache/yum)下的软件包 |
yum clean headers | 删除所有头文件 |
yum clean all | 删除所有缓存的包和头文件 |
yum makecache | 添加缓存的包和文件 |
网络相关
命令 | 解析 |
ifconfig eth0 | 显示一个以太网卡的配置 |
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | 配置网卡的IP地址 |
ifdown eth0 | 禁用 ‘eth0’ 网络设备 |
ifup eth0 | 启用 ‘eth0’ 网络设备 |
iwconfig eth1 | 显示一个无线网卡的配置 |
iwlist scan | 显示无线网络 |
ip addr show | 显示网卡的IP地址 |
系统相关
命令 | 解析 |
su - | 切换到root权限(与su有区别) |
shutdown -h now | 关机 |
shutdown -r now | 重启 |
top | 罗列使用CPU资源最多的linux任务 (输入q退出) |
pstree | 以树状图显示程序 |
man ping | 查看参考手册(例如ping 命令) |
passwd | 修改密码 |
df -h | 显示磁盘的使用情况 |
cal -3 | 显示前一个月,当前月以及下一个月的月历 |
cal 10 1988 | 显示指定月,年的月历 |
date –date ‘1970-01-01 UTC 1427888888 seconds’ | 把一相对于1970-01-01 00:00的秒数转换成时间 |
systemctl命令
#开机运行服务:
systemctl enable *.service
#取消开机运行
systemctl disable *.service
#查看服务是否开机启动
systemctl is-enabled *.service
#启动服务
systemctl start *.service
#停止服务
systemctl stop *.service
#重启服务
systemctl restart *.service
#重新加载服务配置文件
systemctl reload *.service
#查询服务运行状态
systemctl status *.service
#查看已启动的服务列表
systemctl list-unit-files|grep enabled
#显示启动失败的服务
systemctl --failed