Linux 操作系统(常用命令软件安装,项目手动部署shell 自动化部署)
Posted 二师弟&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 操作系统(常用命令软件安装,项目手动部署shell 自动化部署)相关的知识,希望对你有一定的参考价值。
Linux 操作系统
不同领域的主流操作系统
桌面操作系统:
windows(用户数量最多)、
Mac OS(操作体验好,办公人士首选)、
Linux(用户数量少)
服务器操作系统:
UNIX(安全、稳定、收费)、
Linux(安全、稳定、免费、占用率高)、
Windows Server(付费、占用率低)
移动设备操作系统:
android(基于Linux、开源,主要用于智能手机、平板电脑和智能电视)
ios(苹果公司开发,不开源,用于苹果公司的产品,例如:iPhone、iPad)
嵌入式操作系统:
Linux(机顶盒、路由器、交换机)
1. 环境搭建
Linux 安装:
安装方式:
1.物理机安装方式(直接将操作系统安装到服务器硬件上)
2. 虚拟机安装(通过虚拟机软件安装)
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。
常用的虚拟机软件:
VMWare
VirtualBox
VMLite WorkStation
Qemu
HopeddotVOS
网卡设置
ip addr 查看服务器地址
安装 SSH 连接工具
2. 常用命令
1. ls 查看当前目录下的内容
ll 或者 ls -al / ls -a -l;用法相同,查看当前目录或者文件信息
2. pwd 查看当前所在目录
3. cd 切换目录
4. touch 如果文件不存在,新建文件
touch hello.txt 创建文件 hello.txt
5. mkdir -p dirname
-p :确保目录名称存在,不存在就创建一个,通过此选项,可以实现多层目录同时创建.
mkdir -p a/test 在工作目录下的a 目录中建立一个test 的子目录,如果a 目录不存在,就新创建一个
6. rm 删除指定文件(rm -rf 文件/目录)
rmdir:删除空目录
rmdir -p a :当子目录被删除后父目录为空目录的话,则一并删除.
7. cat -n filename
8. more filename 作用:以分页的形式显示文件内容
9. tail -f filename 动态读取文件末尾内容并展示,通常用于日志文件的内容输出
拷贝移动命令:
cp -r source dest
-r : 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
eg:
cp hello.txt a/ 将hello.txt 复制到a目录中
cp hello.txt ./hi.txt 将hello.txt 复制到当前目录,并改名为hi.txt
cp -r a/ ./b/ 将a目录和目录下的所有文件复制到b目录下
cp -r a/* ./b/ 将a目录下所有文件复制到b目录下
移动命令:mv
mv source desk
eg:
mv hello.txt hi.txt 将hello.txt 改名hi.txt
mv hi.txt a/ 将文件hi.txt 移动到a 目录中
mv hi.txt a/hello.txt 将 hi.txt 移动到 a 目录中,并改名 hello.txt
mv a/ b/ 如果 b 目录不存在,将a 目录改名为b目录
mv a/ b/ 如果 b 目录存在,将 a 目录移动到 b 目录中
打包压缩命令:
tar : 对文件进行打包、解压、压缩、解包
语法: tar -zcxvf fileName files
包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz 表示打包的同时还进行了压缩
-z :z代表的是gzip ,通过gzip 命令处理文件,gzip 可以对文件压缩或者解压
-c : c代表的是create ,即创建新的包文件
-x : x 代表的是extract,实现从包文件中还原文件。
-v: v代表的是verbose ,显示命令的执行过程。
-f: f 代表的是file,用于指定包文件的名称。
-cvf 打包
-zcvf 打包并压缩
-xvf 解包
-zxcvf 解压
tar -zxvf hello.tar.gz -C /usr/local 将hello,tar.gz 文件进行解压,并将解压后的文件放在/usr/local
文本编辑命令vi/vim:
vi 文件名
vim 文件名
首先安装:
yum install vim
安装vim
vim 在进行文本编辑的时候共分为三种模式,
命令模式:可以查看文件内容,移动光标(上下左右箭头、gg(文件开头)、G(文件末尾))
通过vim 命令打开文件后,默认进入命令模式
另外两种模式需要首先进入命令模式,才能进入彼此
插入模式:
插入模式可以对文件内容进行编辑
在命令模式下按下[i,a,o]任意一个,可以进入插入模式,进入插入模式后,下方会出现[insert]字样
在插入模式下按下[ESC]键,回到命令模式
底行模式
底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
在命令模式下按下[:,/]任意一个,可以进入底行模式
通过 / 方式进入底行模式后,可以对文件内容进行查找
通过 : 方式进入底行模式后,可以输入 wq(保存并退出)、q!(不保存退出)、set nu (显示行号)
查找命令:
find :在指定目录下查找文件
find dirName -option fileName
eg:
find -name "*.java" 在当前目录及其子目录下查找.java 结尾的文件
find /a -name "*.java" 在/a目录及其子目录下查找.java 结尾的文件
grep :从指定文件中查找指定的文本内容
grep word fileName
eg:
grep Hello HelloWorld.java 查找HelloWorld.java 文件中出现的 Hello 字符串的位置
grep hello *.java 查找当前目录中所有.java 结尾的文件中包含hello 字符串的位置
3. 安装软件
1. 软件安装的方式
二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可
rpm 安装:软件已经按照 redhat 的包管理规范进行打包,使用 rpm 命令进行安装,不能自行解决库依赖问题。
yum 安装:一种在线软件安装方式,本质上还是 rpm 安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
源码编译安装:软件源码工程形式发布,需要自己编译打包
2. 安装 jdk
二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可:操作如下
tar -zxvf 压缩文件 -C 指定解压路径 (解压)
配置文件:etc/profile中修改
配置完毕,重新加载命令:source /etc/profile
java -version
3. 安装tomcat
二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可:操作如下
上传,解压
进入启动服务目录,启动命令
sh startup.sh 或者 ./startup.sh
验证Tomcat 启动是否成功,有多种方式:
查看启动日志:
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out
查看进程 ps -ef|grep tomcat
注意:
1. ps 命令是Linux 下非常强大的进程查看命令,
通过 ps -ef 可以查看当前运行的所有进程的详细信息
2. "|" 在 Linux 中称为 管道符,可以将前一个命令的结果输出给后一个命令作为输入
3. 使用 ps 命令查看进程时,经常配合管道符和查找命令 grep 一起使用,来查看特定进程
防火墙操作:
查看防火墙状态(systemctl status firewalld、firewall-cmd-state)
暂时关闭防火墙(systemctl stop firewalld)
永久关闭防火墙(systemctl disable firewalld)
开启防火墙(systemctl start firewalld)
开放指定端口(firewall-cmd-zone=public --add-port=8080/tcp --permanent)
关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
立即生效(firewall-cmd --reload)
查看开放的端口(firewall-cmd --zone=public --list-ports)
注意:
1. systemctl 是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
2. firewall-cmd 是Linux 中专门用于控制防火墙的命令
3. 为了保证系统安全,服务器的防火墙不建议关闭.
停止Tomcat 服务的方式:
运行Tomcat 的bin 目录中提供的停止服务的脚本文件 shutdown,sh
sh shutdown.sh
./shutdown.sh
结束 Tomcat 进程
查看Tomcat进程,获取进程id
ps -ef | grep tomcat
执行命令结束进程 : kill -9 7742
注意:
kill 命令 是Linux 提供的用于结束进程的命令,-9表示强制关闭
4. 安装mysql
1. 检测当前系统中是否安装 Mysql 数据库
RPM(Red-Hat Package Manager)RPM软件包管理器,是红帽Linux 用于管理和安装软件的工具
rpm -qa 查询当前系统中安装的所有软件
rpm -qa | grep mysql 查询当前系统中安装的名称带有mysql 的软件
rpm -qa | grep mariadb 查询当前系统中安装的名称带有Mariadb 软件
如果当前系统已经安装MySQL数据库,安装将失败.CentOS7自带mariadb ,与mysql 数据库冲突
卸载软件:
rpm -e --nodeps 软件名称
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x87_64
启动MySQL命令
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysql服务
说明:
可以设置开机时启动mysql服务,避免每次开机启动mysql
systemctl enable mysqld 开机启动mysql服务
netstat -tunlp 查看已经启动的服务
netstat -tunlp | grep mysql
ps -ef | grep mysql 查看mysql进程
登录mysql数据库,查阅临时密码
cat /var/log/mysqld.log 查看文件内容
cat /var/log/mysqld.log | grep password 查看文件内容中包含password的行信息
登录MySQL,修改密码,开放访问权限
mysql -uroot -p 登录mysql(使用临时密码登录)
#修改密码
set global validate_password_length=4; 设置密码长度最低位数
set global validate_password_policy=LOW; 设置密码安全等级低,便于密码可以修改成root
set password = password('root'); 设置密码为root
#开启访问权限
grant all on *.* to 'root’@'%' identified by 'root';
flush privilenges;
5. 安装lrzsz(用于文件上传与文件下载的工具)
搜索lrzsz安装包,命令为:
yum list lrzsz
使用yum 命令在线安装,命令为 yum install lrzsz.x86_64
安装完毕,可以使用 rz 命令进行上传
注意:
yum(全称为 Yellow dog updater,Modified) 是一个在Fedora 和 RedHat 以及 CenOS 中的Shell 前端软件包管理器,基于RPM 包管理,能够从指定的服务器自动下载RPM 包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
RPM(Red-Hat Package Manager)RPM软件包管理器,是红帽Linux 用于管理和安装软件的工具,安装mysql 顺序需要注意
4. 项目部署
手工部署:
通过 shell 脚本自动部署项目
1. 安装Git
yum list git
yum install git版本
2. 使用git克隆代码
cd /usr/local
git clone 远程仓库地址
3. 安装 maven ,将maven安装包上传到Linux ,在Linux 中安装maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
vim /etc/profile 修改配置文件,加入如下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml 修改配置如下:
<localRepository>/usr/local/repo</localRepository>
把项目名修改成自己的项目
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=项目名
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk 'print $2'`
if [ $tpid ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk 'print $2'`
if [ $tpid ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/项目路径
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar 项目包-1.0-SNAPSHOT.jar &> 项目.log &
echo 项目启动完成
为用户授权
chmod(英文全拼:change mode) 命令是控制用户对文件的权限的命令
Linux 的权限分为:读(r)、写(W)、执行(x)三种权限
Linux 的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其他用户(Other Users)
只有文件的所有者和超级用户可以修改文件或者目录的权限
要执行 Shell 脚本需要有对此脚本文件的执行权限,如果没有则不能执行
用户权限设置
虚拟机设置静态ip
以上是关于Linux 操作系统(常用命令软件安装,项目手动部署shell 自动化部署)的主要内容,如果未能解决你的问题,请参考以下文章