• 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
    
    • 1

    在这里插入图片描述

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

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

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

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

    ☀️ 标准输出重定向

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

    在这里插入图片描述

    ☀️ 标准错误重定向

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

    在这里插入图片描述

    date

    🌴 date指定时间的显示格式

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

    grep

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

    grep "hello" Test.java
    
    • 1

    在这里插入图片描述

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

    grep "hello" T*.java
    
    • 1

    ☀️ T*表示模糊匹配;

    在这里插入图片描述

    PS

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

    ps aux
    
    • 1

    netstat

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

    管道

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

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

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

    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,防止罗列内容过多造成机器卡顿
    
    • 1

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

    yum install 软件包名字
    
    • 1

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

    yum remove 软件包名字
    
    • 1

    🌴 注意事项

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

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

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

    git

    🌴 查看git安装包

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

    🌴 安装git

    yum install git.x86_64
    
    • 1

    🌴 git的基本使用

    git clone
    git add
    git commit
    git push
    
    • 1
    • 2
    • 3
    • 4

    JDK

    yum install java-1.8.0-openjdk.x86_64
    
    • 1

    Maven

    🌴 查看Maven安装包

    yum list | grep maven -w
    
    • 1

    🌴 安装Maven

    yum install maven.noarch
    
    • 1

    🌴 验证Maven

    mvn -v
    
    • 1

    Tomcat

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

    🌴 下载Tomcat压缩包

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

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

    在这里插入图片描述

    🌴 解压缩Tomcat

    unzip apache-tomcat-8.5.47.zip
    
    • 1

    🌴 修改可执行权限

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

    在这里插入图片描述

    🌴 启动Tomcat

    sh bin/startup.sh
    
    • 1

    🌴 验证启动成功

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

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

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

    🌴 外网访问tomcat默认demo

    MySQL

    🌴 安装 mariadb 服务

    yum install -y mariadb-server
    
    • 1

    🌴 安装 mariadb 命令行客户端

    yum install -y mariadb
    
    • 1

    🌴 安装 mariadb C library

    yum install -y mariadb-libs
    
    • 1

    🌴 安装 mariadb 开发包

    yum install -y mariadb-devel
    
    • 1

    🌴 更改配置

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

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

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

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

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

    ☀️ [mysqld] 下加配置

    collation-server = utf8_general_ci

    init-connect=‘SET NAMES utf8’

    character-set-server = utf8

    sql-mode = TRADITIONAL

    🌴 启动服务

    systemctl start mariadb
    
    • 1

    🌴 设置服务开启自启动

    systemctl enable mariadb
    
    • 1

    🌴 查看服务状态

    systemctl status mariadb
    
    • 1

    在这里插入图片描述

    🌴 测试连接

    mysql -uroot
    
    • 1

    在这里插入图片描述

    🌴 设置密码

    mysql_secure_installation
    
    • 1

    在这里插入图片描述

    🌴 进入MySQL

    mysql -uroot -p
    
    • 1

    部署web项目到Linux

    什么是部署?

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

    🌴 通过git下载代码

    #进入用户目录
    cd ~
    #创建目录保存项目
    mkdir project
    cd project
    #使用git下载代码
    git clone [项目链接]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    🌴 数据据库建表

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

    🌴 构建项目并打包

    mvn package
    
    • 1

    拷贝到Tomcat中

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

    🌴 验证

    ☀️ 验证账户注册登录

    ☀️ 验证展示博客列表

    ☀️ 验证新增博客

    ☀️ 验证展示博客内容

    85026532)]

    🌴 进入MySQL

    mysql -uroot -p
    
    • 1

    部署web项目到Linux

    什么是部署?

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

    🌴 通过git下载代码

    #进入用户目录
    cd ~
    #创建目录保存项目
    mkdir project
    cd project
    #使用git下载代码
    git clone [项目链接]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    🌴 数据据库建表

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

    🌴 构建项目并打包

    mvn package
    
    • 1

    拷贝到Tomcat中

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

    🌴 验证

    ☀️ 验证账户注册登录

    ☀️ 验证展示博客列表

    ☀️ 验证新增博客

    ☀️ 验证展示博客内容

  • 相关阅读:
    论文解读(PairNorm)《PairNorm: Tackling Oversmoothing in GNNs》
    Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机
    正则表达式
    深入分析MySQL索引与磁盘读取原理
    html常用标签
    antd——使用a-tree组件实现 检索+自动展开+自定义增删改查功能——技能提升
    如何自学java怎么入门?我有秒招
    机器学习特征工程之-数据预处理-1
    HTTP协议笔记
    从零开始的Socket编程 一
  • 原文地址:https://blog.csdn.net/m0_60266328/article/details/125453903