开发环境搭建(掌握)
1 Xshell 和 Xftp 工具
( 1 )下载和安装方式
- 下载地址:https://www.netsarang.com/zh/
- 安装方式:直接一路点击下一步即可,安装过程选择免费版。
( 2 )使用方式
( 3 )网络模式设置
- 设置网络连接模式为NAT模式,如下图:
( 4 )修改配置文件
- 使用root用户打开/etc/sysconfig/network-scripts/ifcfg-eno16777736文件,添加内容如下:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.72.128
GATEWAY=192.168.72.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
( 5 )配置文件生效
使用命令使得配置文件生效:
service network restart
2 JDK 的下载和安装
( 1 )下载和安装方式
- 下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
- 安装方式:将下载好的jdk安装包通过Xftp工具传输到CentOS系统中,使用tar命令解压即可。
(2)配置环境变量
- 使用root用户打开配置文件/etc/profile,向文件末尾追加内容如下:
export JAVA_HOME=/usr/javajdk
export PATH=$JAVA_HOME/bin:$PATH
- 保存退出后让文件生效并验证是否配置成功
source /etc/profile
javac -version
3 Tomcat 的下载和安装
( 1 )下载和安装方式
- 下载地址:https://tomcat.apache.org/download-80.cgi
- 安装方式:将下载好的Tomcat安装包通过Xftp工具传输到CentOS系统中,使用tar命令解压即可。
( 2 )启动和关闭方式
startup.sh
shutdown.sh
( 3 )开放防火墙端口
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 开启8080端口(暂时开通)
( 4 )配置环境变量
- 使用root用户打开配置文件/etc/profile,向文件末尾追加内容。
export CATALINA_HOME=/usr/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
- 保存退出后让文件生效并验证是否配置成功
source /etc/profile
startup.sh
( 5 )发布 Web 项目
- 将Web项目打成war包,通过Xftp工具将war包放在tomcat/webapp目录并启动
- 这里我碰到了一个问题,也就是可以访问到tomcat主页 但是访问不到项目,检查了好久,是jdk版本不一致。记录下来 以此为戒
4 Mysql 的下载和安装
( 1 )下载 Mysql 的 repo 源
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
( 2 )安装 rpm 包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
( 3 )安装 Mysql
yum install mysql-server
查看是否安装mysql
rpm -qa | grep mysql
( 4 )启动服务
service mysqld start
( 5 )查看服务状态
systemctl status mysqld
( 6 )使用 root 用户登录
mysql -u root
查看mysql密码
grep password /var/log/mysqld.log
( 7 )修改临时密码
alter user 'root'@'localhost' identified by 'CCaa@123456';
5 图形化界面访问数据库
( 1 )使用 SQLyog 工具
- 启动图形化界面工具SQLyog连接虚拟机中Mysql数据库,如下图:
( 2 )解决方案
- 使用root权限登录数据库后选择mysql库
mysql -u root -p
use mysql;
- 查看mysql库中的user表的host值后修改为通配符%
select host from user where user='root';
update user set host='%' where user='root';
flush privileges;
- 查看修改结果并重新测试
select user,host from user;
碰到问题:出现2003 Can't connect to mysql server on ip(0)错误
原因是:防火墙端口没开 使用命令开启防火墙端口即可连接
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
Shell 编程(熟悉)
1 基本概念
- Shell是一个命令行解释器,可以接收应用程序或用户命令,然后访问操作系统内核。
- Shell是一个功能相当强大的编程语言,易编写、易调试、灵活性强;
2 编写第一个程序
- 使用vi工具创建xxx.sh的文件。
- 以#!/bin/bash开头并编写代码后保存。
3 执行 Shell 程序的方式
- 方式一:./文件名,此方式需要执行权限。
- 方式二:/bin/bash 文件名,此方式不需要执行权限。
- 方式三:sh 文件名
4 变量的定义
( 1 )语法格式
- 定义变量:变量=值
- 撤销变量:unset 变量
#!/bin/bash
name=zhangfei #定义一个名字为name的变量,=两边不能有空格
echo $name #打印变量name的数值
#unset name #撤销name的定义
#echo $name #打印为空
#show='My Self!' # 若变量值中有空格 则使用单引号或双引号。但双引号中可以取出变量的数值
show="My Self!$name"
echo $show
( 2 )定义规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
- 不能使用bash里的关键字。
- 中间不能有空格,可以有下划线。
- 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
- 变量的值如果有空格,需要使用双引号或单引号括起来。
5 常用运算符
( 1 )算术运算符
运算符 | 说明 | 举例 |
+ | 加法 | expr $a + $b 结果为 30。 |
- | 减法 | expr $a - $b 结果为 10。 |
* | 乘法 | expr $a \* $b 结果为 200。因*号会按特殊字符处理所以前面要加 \*进行乘法操作 |
/ | 除法 | expr $a / $b 结果为 2。 |
% | 取余 | expr $a % $b 结果为 0。 |
= | 赋值 | a = $b 将变量b 赋值给a |
== | 相等,用于比较两个数字,相同则返回true | [$a == $b] 返回false |
!= | 不相等,用于比较两个数字,不相同则返回true | [$a != $b] 返回true |
以加法代码示例:三种方法
#!/bin/bash
#定义两个变量
ia=5
ib=2
#打印两个变量的数值
echo "ia=$ia"
echo "ib=$ib"
#实现加法运算 要求+两边必须用空格
echo `expr $ia + $ib`
#使用其它方式实现加法运算
ic=$[$ia+$ib]
echo $ic;
id=$((ia+ib))
echo $id
(2)关系运算符
运算符 | 说明 | 英文 | 举例 |
-eq | 检测两个数是否相等,相等返回true | equal | [$a -eq $b] 返回false |
-ne | 检测两个数是否不相等,不相等返回true | not equal | [$a -ne $b] 返回true |
-gt | 检测左边的数是否大于右边的,如果是,则返回true | greater than | [$a -gt $b] 返回false |
-lt | 检测左边的数是否小于右边的,如果是,则返回true | less than | [$a -lt $b] 返回true |
-ge | 检测左边的数是否大于等于右边的,如果是,则返回true | Greater than or equal to | [$a -ge $b] 返回false |
-le | 检测左边的数是否小于等于右边的,如果是,则返回true | Less than or equal to | [$a -le $b] 返回true |
6 流程控制语句
( 1 ) if 判断(条件成立执行then代码 否则执行else下代码)
if [ 条件判断式 ]
then
程序
fi
示例代码:
#!/bin/bash
#定义一个变量用于描述考试成绩
score=60
echo $score
#使用if判断给出及格或者不及格的提示信息
if [ $score -gt 60 ]
then
echo "恭喜您考试通过了!"
elif [ $score -eq 60 ]
then
echo "60分万岁,多一分浪费!"
else
echo "下学期来补考吧"
fi
(2)case语句
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
示例代码:
#!/bin/bash
#提示用户输入1 ~ 4之间的整数并记录到变量中
echo "请输入1 ~ 4之间的整数:"
read num #表示读取一个整数放到变量num中
#使用case语句进行批评和打印
case $num in
1) echo "你选择了1号业务"
;;
2) echo "你选择了2号业务"
;;
3) echo "你选择了3号业务"
;;
4) echo "你选择了4号业务"
;;
*) echo "你没有选择1~4之间的业务"
;;
esac
效果:
(3)for循环
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
示例代码:
#!/bin/bash
#定义一个变量负责记录累加和
sum=0
#使用for循环计算1~100之间的累加和并记录到上述变量中
for(( i=1;i<=100;i++ ))
do
sum=$[$sum+$i]
done
#打印变量的数值
echo $sum
(4)while循环
while [ 条件判断式 ]
do
程序
done
示例代码:
#!/bin/bash
#使用while循环实现1~100之间的累加和
#定义两个变量分别记录累加和与初始值
sum=0
i=1
#使用while循环
while [ $i -le 100 ]
do
sum=$[$sum+$i]
i=$[$i+1]
done
#打印结果
echo $sum
7 函数
[ function ] funname[()]
{
Action;
[return int;]
}
funname
代码示例
#!/bin/bash
#定义一个函数负责计算两个输入数据的和并打印
function sum()
{
s=$[$1+$2]
echo $s
}
#提示用户输入两个数据
read -p "input num1:" num1
read -p "input num2:" num2
#调用函数
sum $num1 $num2
效果: