一、安装centos7

首先安装VM虚拟机,安装centos7
  VM10网盘下载地址:链接:VM下载地址 提取码:z3px;
  centos下载地址:centos下载
  VM和centos7的教程可以自行百度,在此仅提供两个网址;
  VM安装教程:安装教程(上方VM压缩包内带了序列号);
  centos7安装教程:centos安装

二、安装jdk/tomcat/nginx/mysql

(1)jdk安装

  • 1.首先查看系统自带的jdk。命令: rpm -qa | grep java
    打对号的四个就是系统自带的
    在这里插入图片描述
  • 删除自带的jdk。命令: rpm -e --nodeps XXXX
    通过截图可以看出已经被删除
    在这里插入图片描述
  • 创建jdk安装目录(该/usr/java 目录是空的,在该目录下打开终端,运行下载jdk的命令)。命令:mkdir -p /usr/java/
  • 命令下载jdk包 (需要联网,下载也需要点时间)
       本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-8u131-linux-x64.tar.gz。 命令:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
       注意:如果上面wget命令不能用,报错:-bash: wget: command not found。执行一下该命令(安装依赖包) yum -y install wget
       注意 : 记住需要加上:–no-check-certificate --no-cookies --header “Cookie: oraclelicense=accept-securebackup-cookie” 这段是为了避开用户验证用的
  • 解压tar -zxvf jdk-8u131-linux-x64.tar.gz
  • 配置环境变量 vim /etc/profile
    在最后一行添加
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 退出文件,保存 按Esc键 输入:wq 保存并退出
  • 让配置文件生效 source /etc/profile
  • 查看是否配置成功 java -version
    在这里插入图片描述
  • 若打开另一终端无法使用命令 需要配置永久环境变量,修改etc目录下的bashrc文件,在最前面添加
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后使用source /etc/bashrc然后永久环境变量就可以生效啦

(2)tomcat安装

第一步: 下载Tomcat8压缩包(虚拟机浏览器下载的文件在)
在这里插入图片描述
第二步:找见下载的压缩包,一般在Downloads中,解压tar zxvf apache-tomcat-8.5.50.tar.gz

(3)nginx安装

  • 安装gccyum install gcc-c++
  • 安装PCRE库:yum install -y pcre pcre-devel
  • 安装zlib库:yum install -y zlib zlib-devel
  • 安装openssl:yum install -y openssl openssl-devel
  • 下载源码包https://nginx.org/
    在这里插入图片描述
    在这里插入图片描述
    选择stable version(最新稳定版)
  • 解压 tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-stream --with-http_ssl_module --with-file-aio --with-http_realip_module --with-threads --with-http_v2_module
make
make install
  • 查看版本,进入nginx下的sbin目录,输入命令./nginx -v
    在这里插入图片描述

(4)mysql安装

https://editor.csdn.net/md/?articleId=106424624

三、linux命令(目前大概用过的)

  1. 右键打开终端默认在root目录下
  2. 进入该目录下某一目录:cd XXX/
  3. 进入某一目录:cd /XXX/XXX/XXX(绝对路径)
  4. 返回上一级目录:cd …
  5. 返回root目录:cd
  6. 列出目录内容:ls
  7. 创建文件:touch XXX
  8. 删除文件:rm XXXX
  9. 创建目录:mkdir XXXX(创建单级目录)|mkdir -p XXX/XXX/XXX(创建多级目录)
  10. 删除目录:rm -r XXX(有提示信息是否删除) rm -rf XXXX(无提示信息,直接删除)
  11. 移动当前文件夹下的所有文件到上一级目录:mv * …/
  12. 将文件a.txt重命名为b.txt:mv a.txt b.txt
  13. 将a文件移动到当前文件夹下的b目录:mv a b/
  14. 将a文件移动到其他文件夹下的b目录:mv a /XXX/XXX/b/(此目录为绝对路径)
  15. yum被锁时解决办法:rm -f /var/run/yum.pid
  16. 解压tar.gz命令:tar -zxvf FileName.tar.gz
  17. 压缩tar.gz命令:tar -zcvf FileName.tar.gz DirName
  18. 解压.zip 命令:unzip FileName.zip
  19. 压缩.zip 命令:zip FileName.zip DirName
  20. 启用网卡命令:ifconfig ens33 up
    禁用网卡的命令:ifconfig ens33 down
  21. 防火墙状态查询:systemctl status firewalld.service
    防火墙状态关闭:systemctl stop firewalld.service
    禁止防火墙服务器:systemctl disable firewalld.service
  22. 查看应用是否安装:rpm -qa|grep XXXXX
  23. 查看应用位置:which XXXX
  24. 查找文件位置:find / -name xxx
  25. 查看文件内容:cat XXXX
  26. 查看文件内容,可完全显示:more XXXX
  27. 查看文件的前多少行:head -number XXXX
  28. 查看文件的后多少行:tail -number XXXX
    • 文件的rwx权限:
      r:可以执行catch、more等读操作。
      w:修改文件的内容等写操作,但是不代表你可以把这个文件删除。
      x:对文件进行执行操作。
    • 目录的rwx权限:
      r:可读操作,可以列出目录的内容,比如ls命令。
      w:表示可以在目录下创建或删除文件的权限。
      x:表示可以进入这个目录(基本上所以的目录都会有rx权限)。
  29. 修改文件/目录权限
    chmod [{ugo}{±=}{rwx}] [文件或目录]
    chmod [mode=421] [文件目录]
    例子:chmod g+w filename
    chmod 761 filename
  30. 根据文件名查找文件位置:find [搜索范围路径] -name 【文件名称】
  31. 显示当前所在位置:pwd

四、tomcat

(1)tomcat相关命令

  1. 开启:./startup.sh
  2. 关闭:./shutdown.sh
  3. 查看进程:ps -ef|grep tomcat
  4. 杀死进程:kill -9 进程号
  5. 准确获取tomcat进程号:ps -ef |grep tomcat|grep -v grep |awk ‘{print $2}’
    (grep -v 意为不包括;上述语句的意思是查找除了grep下的所有信息;awk '{print $2}'意为取第二个字段输出)

(2)tomcat相关知识点

1、部署多个tomcat

(一)、修改环境变量 修改/etc/profile文件
	##########first tomcat###########
	CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5.50
	CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.50
	TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.50
	export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
	##########first tomcat############
	##########second tomcat##########
	CATALINA_2_BASE=/usr/local/tomcat-8081/apache-tomcat-8.5.50
	CATALINA_2_HOME=/usr/local/tomcat-8081/apache-tomcat-8.5.50
	TOMCAT_2_HOME=/usr/local/tomcat-8081/apache-tomcat-8.5.50
	export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
	##########second tomcat##########
(二)、修改tomcat/conf/server.xml文件(修改地方)
	(1)修改关闭监听端口 将<Server port="8005" shutdown="SHUTDOWN">改为 <Server port="9005" shutdown="SHUTDOWN"> 也可以改为其他的,但是不用冲突就可以
	(2)<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
	改为<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
	 也可以改为其他的,但是不用冲突就可以
	(3)最后还要修改<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />改为<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
	 也可以改为其他的,但是不用冲突就可以
(三)、修改tomcat/bin中的catalina.sh文件添加运行目录
	找到***# OS specific support. $var must be set to either true or false***在下面增加如下代码
	export CATALINA_BASE=$CATALINA_2_BASE
	export CATALINA_HOME=$CATALINA_2_HOME
	$CATALINA_2_BASE根据第1步中的第二个tomcat配置而定。就是第1步中定义变量,在这里使用,所以名称一定要相同,也可以改成其他的自己定,保持相同就可以

2、tomcat上部署应用

(一)、idea打war包

参考博客 https://blog.csdn.net/c851204293/article/details/90517870

(二)、war部署到tomcat
 1. war部署到tomcat先将war放置tomcat的webapps路径下
 2. 然后修改conf文件夹下的service.xml文件
<Context docBase="" path="/" reloadable="true" privileged="true"/>
path 是虚拟路径;
docBase 是应用程序的物理路径;
privileged 设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet;
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,可以在不重起tomcat的情况下,自动装载改变后的应用程序,实现热部署;

五、nginx

(1)、nginx命令

  1. 查看nginx命令:ps -ef|grep nginx
  2. 在/usr/local/nginx/sbin 下(/usr/local/nginx这是我nginx的安装目录,) 开启:./nginx
  3. 关闭:
    从容停止:kill -quit 进程号
    快速停止:kill -term 进程号 或 kill -int 进程号
    强制停止:pkil -9 nginx
  4. 重新载入配置文件:在/usr/local/nginx/sbin 下./nginx -s reload
  5. 重启 Nginx:./nginx -s reopen
  6. 停止 Nginx:./nginx -s stop
  7. 查看版本号,在/usr/local/nginx/sbin 下,./nginx -v
  8. 检查配置文件nginx.conf的正确性命令:./nginx -t

(2)、nginx相关知识点

(一)、nginx连接tomcat
1.修改配置文件:cd /usr/local/nginx/conf/ 编辑nginx.conf文件
	server { 
		listen 80; //监听80端口
		server_name zsq.test.com; 
		location / {
	    		root   html;
            		index  index.html index.htm;
	    		proxy_pass http://zsq.test.com:8080;
        	}
	}
	 server {
		listen 80; 
		server_name zsq.test1.com; 

		location / {
	    		root   html;
            		index  index.html index.htm;
	    		proxy_pass http://zsq.test1.com:8081;
        	}
	}
2.修改/etc/hosts文件
	ip地址 zsq.test.com

六、shell脚本

  1. #!/bin/sh (shell脚本第一行要写)
  2. echo相当于输出 例子:echo “this is example” (echo后面要加空格),将此命令保存至test.sh,运行该脚本前需要先是脚本具有执行权限,chmod +x ./test.sh;运行脚本:./test.sh
#!/bin/sh
echo "this is example"
  1. 定义变量:my_name=“aaa”(变量名和等号之间不能有空格)
命名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
  1. 使用变量,在变量名前面加美元符号即可。
#!/bin/sh
 my_name="aaa"
 echo $my_name
 echo ${my_name}

变量名外面的花括号是可选的,加不加都行,最好加上。

  1. 只读变量,使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
#!/bin/sh
myName="aaa"
readonly myName
  1. 删除变量,使用 unset 命令可以删除变量。
#!/bin/sh
myUrl="aaa"
unset myUrl
echo $myUrl

该脚本不会有输出

  1. 单引号:单引号内的字符串会原样输出,单引号字符串中的变量无效。单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
  2. 双引号:双引号里可以有变量,双引号里可以出现转义字符
  3. 传递参数:引用菜鸟教程
  4. 运算符:引用菜鸟教程
  5. if else(if后的条件每个符号或变量数字间都需要加空格,否则运行会报错,结尾要加一个if倒过来写fi) [ xx ]
#!/bin/sh
if [ 1 -eq 1 ]
then 
	echo "aaaaa"
else
	echo "bbb"
fi

输出aaaaa

  1. if elif else(else if写法为elif)(此脚本需要传递参数,判断所传参数是否为文件夹,文件,或者均不是)
#!/bin/sh
if [ -d $1 ]
        then
        echo "is a directory!"
elif [ -f $1 ]
        then
        echo "is a file!"
else
        echo "error!"
fi

更多运算符参考:引用菜鸟教程

  1. 输入/输出重定向:引用菜鸟教程
  2. 下载gitlab代码
git clone -b master(分支) http://用户名:密码@使用http的克隆url 代码要下载的位置;
  1. \cp -r和cp -r的区别,加上""不需要提示是否覆盖
  2. maven打包:mvn clean package -Dmaven.test.skip=true (-Dmaven.test.skip=true表示JUnit测试用例不编译也不执行)
  3. sshpass 指定密码远程 ssh 到服务器 或者 scp 发送文件到服务器:sshpass -p [password] scp [xxx文件] root@[port]:[url]

七、mysql

  • 启动mysql:service mysqld start
  • 关闭mysql:service mysqld stop
  • 重启mysql:service mysqld restart
  • mysql运行状态:service mysqld status或systemctl status mysqld.service
  • 修改密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘xxxxxx’;
  • 进入mysql命令行:mysql -uroot -p,然后输入密码

(1)、查找锁表

锁定表:lock table 表名 read;
解锁表:unlock tables;
show OPEN TABLES where In_use > 0;

(2)、查找慢sql

(1)在/etc/my.cnf 下的[mysqld]中修改
slow_query_log = on
slow-query-log-file = /var/log/mysql/test_slow_sql.log
long_query_time = 1
test_slow_sql.log文件不手动添加。
重启mysql
(2)查看一下当前的慢查询是否开启,以及慢查询所规定的时间,以及慢查询语句的log文件:
show variables like ‘slow_query_log’;
show variables like ‘slow_query_log_file’;
show variables like ‘long_query_time’;

(3)、mysql备份方式

  • 先创建mysqlback.sh脚本,脚本内写如下内容
#!/bin/bash
	#数据库IP
	dbserver='127.0.0.1'
	#数据库用户名
	dbuser='root'
	#数据密码
	dbpasswd='xxxxx'
	#数据库,如有多个库用空格分开
	dbname='xxxxx'
	#备份时间
	backtime=`date +%Y%m%d`
	#备份输出日志路径
	logpath='/home/backup/'


	echo "################## ${backtime} #############################" 
	echo "开始备份" 
	#日志记录头部
	echo "" >> ${logpath}/mysqlback.log
	echo "-------------------------------------------------" >> ${logpath}/mysqlback.log
	echo "备份时间为${backtime},备份数据库表 ${dbname} 开始" >> ${logpath}/mysqlback.log
	#正式备份数据库
	for table in $dbname; do
	source=`mysqldump -h ${dbserver} -u ${dbuser} -p${dbpasswd} ${table} > ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqlback.log;
	#备份成功以下操作
	if [ "$?" == 0 ];then
	cd $logpath
	#为节约硬盘空间,将数据库压缩
	tar zcf ${table}${backtime}.tar.gz ${backtime}.sql > /dev/null
	#删除原始文件,只留压缩后文件
	rm -f ${logpath}/${backtime}.sql
	#删除七天前备份,也就是只保存7天内的备份
	find $logpath -name "*.tar.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
	echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqlback.log
	else
	#备份失败则进行以下操作
	echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqlback.log
	fi
	done
	echo "完成备份"
	echo "################## ${backtime} #############################"
  • 添加定时任务
    crontab -e 59 23 * * * /home/backup/mysqlbak.sh(每天23.59运行脚本备份数据库)
Logo

更多推荐