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
文件类型和访问权限
🌴 下面是一个文件的详细信息:
☀️ 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目录]
🌴 验证
☀️ 验证账户注册登录
☀️ 验证展示博客列表
☀️ 验证新增博客
☀️ 验证展示博客内容