19Linux基本使用和web程序部署

Linux基本使用和web程序部署

Linux背景知识

Linux是什么

🌴 Linux和window一样是一个操作系统;

Linux发行版

🌴 Linux严格意义上来说只是一个操作系统内核,基于这个内核有很多不同的定制版本,如RedHat、CentOS;

关于Linux我们学习什么?

🌴 基础命令:为了节省资源和增加响应速度,服务器和嵌入式设备上的Linux都是通过命令行的方式进行操作的;

🌴 系统编程&网络编程:可以在Linux系统下进行编程,也可以利用Socket来进行网络编程;

🌴 部署JavaWeb项目: 我们可以将自己写的web程序、搭建的网站等发布到服务器上,这样所有人就都可以访问了;

Linux环境搭建

Linux环境搭建方式

🌴 直接装在物理机上,但是Linux的图形化操作界面并不是很好用;

🌴 使用虚拟机软件,将Linux搭建在虚拟机上;

🌴 使用Windows Subsystem for Linux,在Windows系统内集成一个Linux;

🌴 使用阿里云、腾讯云、亚马逊之类的云服务器厂商所提供的云服务器,简单方便;

申请云服务器

🌴 进入云服务器厂商的官网(阿里云、腾讯云、亚马逊等等任意一个都可以),这里我使用的是阿里云的服务器;地址是 高校学生免费算力 - 飞天加速计划 (aliyun.com)

🌴 进入之后选择注册账号;

🌴 注册账号并完成实名认证之后,可以在阿里云主页申请免费试用;

在这里插入图片描述

🌴 左边目录里的产品都可以免费试用;

在这里插入图片描述

🌴 点击“0元试用”,会弹出购买页面(0元购买,没有自动续费,无需担心),在此页面上可以选择一些参数,这里Linux版本我选择的是CentOS 7.6 64位版本;

在这里插入图片描述

🌴 购买过服务器之后,我们点击控制台,就可以看到我们的服务器信息了;

在这里插入图片描述

在这里插入图片描述

如何连接到Linux?

终端软件

🌴 终端软件是一类可以和远程服务器建立连接的工具,从而对主机进行一些操作;

🌴 常见的终端软件有:XShell、Putty、MobaXTerm、Iterm2、SecureCRT等;

下载Xshell

🌴 可以去官网下载,如果出现无法访问的情况,也可以使用腾讯软件中心进行下载;

Linux常用命令

ls

🌴 这里是字母l而不是数字1

🌴 语法:ls -字母;

🌴 ls -a :表示列出当前目录下的所有文件,包括以.开头的隐藏文件;

在这里插入图片描述

🌴 前面的.表示当前文件夹,…表示上一级文件夹;

🌴 ls -d :表示显示当前路径下的目录;

在这里插入图片描述

🌴 ls -l:表示列出文件的详细信息;

在这里插入图片描述

🌴 ls -ar:表示对目录反向排序;

在这里插入图片描述

🌴 ls -t:表示以时间排序;

在这里插入图片描述

🌴 ls -R:表示递归列出孙子目录和文件;

在这里插入图片描述

pwd

🌴 pwd:显示用户当前所在路径;

在这里插入图片描述

cd

🌴 cd 文件夹名,表示进入某个文件夹;

touch

🌴 touch 文件名;表示更新文件信息或创建一个文件;

在这里插入图片描述

mkdir

🌴 mkdir -p 1/2/3创建多级目录,1、2、3为目录名;

🌴 mkdir 目录名,创建目录;

rm

🌴 rm 文件名,表示移除(删除)该文件;

在这里插入图片描述

🌴 rm -f 文件名,不用输入‘y’直接删除;

在这里插入图片描述

🌴 rm -r 递归删除目录下的子目录和子文件(有询问是否确定删除);

🌴 rm -rf直接删除,不询问;

在这里插入图片描述

cp

🌴 cp 文件名 文件夹名,将文件复制粘贴到一个文件夹;

在这里插入图片描述

🌴 cp -r 文件夹一 文件夹二/将文件夹一重命名为文件夹三;

🌴 cp -r 文件夹1 文件夹2;表示将文件夹1复制到文件夹2中;

mv

🌴 mv 文件夹1 文件夹2 ;表示将文件夹1移动到文件夹2中;

man

🌴 man ls ;显示ls及其用法;

在这里插入图片描述

cat

🌴 cat 文件名,查看文件内容;

vim

🌴 对服务器上的文件内容进行编辑,可以使用xftp(文件传输工具),把文件从远程下载到本地,本地修改后再上传到远程主机覆盖原文件;

🌴 除了上述方法,还可以借助Linux中的文本编辑器(vi/vim);

🌴 vim 文件名,进入该文件的阅读模式,之后按CTRL加i,进入编辑模式,按esc,再输入冒号:q,不保存退出,输入冒号:wq;保存退出;

less

🌴 less 文件名,查看文件内容,但不是全部显示,而是一屏一屏地显示;

head

🌴 head 文件名,默认显示文件的前十行内容;

🌴 head -n 文件名,显示文件的n行内容;

tail

🌴 tail -n 文件名,从后往前读n行;

重定向

🌴 Linux 的很多指令, 如 cat head tail 等都是默认输出到 “标准输出” 中,也就是显示器上的. 可以通过 > 这样的符号把本来要输出到标准输出上的内容写到特定文件中, 这样的操作称为 “重定向”;

☀️ 标准输入重定向

cat < Test.java

在这里插入图片描述

⚡️ 很多小伙伴在使用cat > 命令往文件里输入内容的时候,一不小心输入错了,想要按backspace删除,却发现会出现^H这个符号,而且无法删除;

⚡️ 想要解决这个问题很简单,只需要按住CTRL+backspace就可以删除了;

⚡️ 输出完内容之后,按CTRL+D退出哦!

⚡️ 如果觉得有用的话,别忘了现在就点个赞啊!

☀️ 标准输出重定向

cat Test.java > test.java
#在test这个文件夹中,一开始并没有test.java这个文件,重定向后,会自动生成,且内容一样

在这里插入图片描述

☀️ 标准错误重定向

#假设我们尝试删除一个并不存在的文件,正常情况下肯定会报错,若使用 2> ,可以将错误信息输出到文件中而不是屏幕上
rm aaa 2> test.java

在这里插入图片描述

date

🌴 date指定时间的显示格式

date + "%YY-%m-%d %H:%M:%S"

grep

🌴 grep “想要搜索的内容” 文件名

grep "hello" Test.java

在这里插入图片描述

🌴 不仅可以在一个文件里面搜索,还可以同时在多个文件里搜索;

grep "hello" T*.java

☀️ T*表示模糊匹配;

在这里插入图片描述

PS

🌴 用于查看当前系统上运行的进程;

ps aux

netstat

netstat -a或-all #显示所有连线中的Socket

管道

🌴 管道 |:前一个进程的输出作为后一个进程的输入;

🌴 查找某个文件第五十行:

head -8 1.txt | tail -3 //表示从第8行往上数3行

Linux权限

用户操作

🌴 Linux下有两种用户:超级用户和普通用户;

🌴 超级用户的提示符是#,普通用户的提示符是$;

🌴 超级用户的权限较大,一旦使用不当,可能会造成严重的后果,所以真正在公司中不会直接使用超级用户;

创建用户

🌴 useradd 用户名;

配置密码

🌴 passwd 用户名;

切换用户

🌴 su 用户名

三种角色

🌴 一个文件的访问者可以分为三类:

☀️ 文件和文件目录的所有者:u-User

☀️ 文件和文件目录的所有者所在的组的用户:g–Group

☀️ 其他用户:o–Others

文件类型和访问权限

🌴 下面是一个文件的详细信息:

-rw-r--r-- 1 root root 101 Jun 22 17:47 Test.java
:sunny: 第一个字符“-”代表文件;

☀️ r:可读(对于文件来说)或可浏览(对于目录来说)

☀️ w:可修改(对于文件来说)或可移动删除(对于文件夹来说)

chmod修改文件权限

🌴 Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令;

🌴 chmod [参数] 权限 文件名

在这里插入图片描述

搭建Java部署环境

yum(在线安装)

认识yum

🌴 yum(yellow dog updater,Modified)是Linux下常用的一种包管理器,主要应用在Fedora,RedHat,CentOS等发行版上;

☀️ 包管理器类似于软件商店,我们可以用它下载我们想要安装的软件;

🌴 查看软件包列表

yum list| grep [软件包关键字]  #加上grep,防止罗列内容过多造成机器卡顿

🌴 安装软件包(需要管理员权限)

yum install 软件包名字

🌴 卸载软件包(需要管理员权限)

yum remove 软件包名字

🌴 注意事项

☀️ yum所有的命令必须在保证网络联通的情况下才能使用;

☀️ yum install / yum remove 必须是具备管理员权限才可以执行;

☀️ 可以使用ping www.baidu.com 来检测网络的畅通情况;

git

🌴 查看git安装包

yum list | grep git -w
#由于带git关键字的软件包很多,可以加上-w,表示全字匹配

🌴 安装git

yum install git.x86_64

🌴 git的基本使用

git clone
git add
git commit
git push

JDK

yum install java-1.8.0-openjdk.x86_64

Maven

🌴 查看Maven安装包

yum list | grep maven -w

🌴 安装Maven

yum install maven.noarch

🌴 验证Maven

mvn -v

Tomcat

🌴 由于yum源上默认的Tomcat 7 版本,比较旧了,所以我们需要手动安装Tomcat 8;

🌴 下载Tomcat压缩包

☀️ 下载路径如下:https://tomcat.apache.org/download-80.cgi

☀️ 进入网站复制想要下载的压缩包路径

在这里插入图片描述

🌴 解压缩Tomcat

unzip apache-tomcat-8.5.47.zip

🌴 修改可执行权限

cd apache-tomcat-8.5.47/bin   #版本号要修改为你的版本
chmod +x*.sh

在这里插入图片描述

🌴 启动Tomcat

sh bin/startup.sh

🌴 验证启动成功

#方法1 查看 tomcat 进程是否存在
ps aux | grep tomcat
#方法2 查看端口 8080 是否被绑定
netstat -anp | grep 8080
#方法3 使用curl 命令访问默认 demo
curl 127.0.0.1:8080

🌴 如果进程存在或者端口状态正确(LISTEN状态)或者能够访问到默认主页,说明启动成功;

🌴 Tomcat的目录结构:Linux的Tomcat目录结构和Windows完全一致;

🌴 外网访问tomcat默认demo

MySQL

🌴 安装 mariadb 服务

yum install -y mariadb-server

🌴 安装 mariadb 命令行客户端

yum install -y mariadb

🌴 安装 mariadb C library

yum install -y mariadb-libs

🌴 安装 mariadb 开发包

yum install -y mariadb-devel

🌴 更改配置

vim /etc/my.cnf.d/client.cnf

☀️ [client] 下加一行配置 default-character-set=utf8

vim /etc/my.cnf.d/mysql-clients.cnf

☀️ [mysql] 下加一行配置 default-character-set=utf8

vim /etc/my.cnf.d/server.cnf

☀️ [mysqld] 下加配置

collation-server = utf8_general_ci

init-connect=‘SET NAMES utf8’

character-set-server = utf8

sql-mode = TRADITIONAL

🌴 启动服务

systemctl start mariadb

🌴 设置服务开启自启动

systemctl enable mariadb

🌴 查看服务状态

systemctl status mariadb

在这里插入图片描述

🌴 测试连接

mysql -uroot

在这里插入图片描述

🌴 设置密码

mysql_secure_installation

在这里插入图片描述

🌴 进入MySQL

mysql -uroot -p

部署web项目到Linux

什么是部署?

🌴 把程序拷贝安装到生产环境上,这个过程称为“部署”,也叫“上线”,一旦程序部署成功,这个程序就可以被外网中的用户访问到;

🌴 通过git下载代码

#进入用户目录
cd ~
#创建目录保存项目
mkdir project
cd project
#使用git下载代码
git clone [项目链接]

🌴 数据据库建表

mysql -u[数据库用户名] -p[数据库密码] < [数据库脚本].sql

🌴 构建项目并打包

mvn package

拷贝到Tomcat中

cp [war包名字] [tomcat webapps目录]

🌴 验证

☀️ 验证账户注册登录

☀️ 验证展示博客列表

☀️ 验证新增博客

☀️ 验证展示博客内容

85026532)]

🌴 进入MySQL

mysql -uroot -p

部署web项目到Linux

什么是部署?

🌴 把程序拷贝安装到生产环境上,这个过程称为“部署”,也叫“上线”,一旦程序部署成功,这个程序就可以被外网中的用户访问到;

🌴 通过git下载代码

#进入用户目录
cd ~
#创建目录保存项目
mkdir project
cd project
#使用git下载代码
git clone [项目链接]

🌴 数据据库建表

mysql -u[数据库用户名] -p[数据库密码] < [数据库脚本].sql

🌴 构建项目并打包

mvn package

拷贝到Tomcat中

cp [war包名字] [tomcat webapps目录]

🌴 验证

☀️ 验证账户注册登录

☀️ 验证展示博客列表

☀️ 验证新增博客

☀️ 验证展示博客内容

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马孔多镇长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值