一篇文章带你了解服务器操作系统——Linux简单入门

news/2024/5/9 16:18:00/文章来源:https://www.cnblogs.com/qiuluoyuweiliang/p/16827033.html

一篇文章带你了解服务器操作系统——Linux简单入门

Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的

在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等

本篇内容属于《瑞吉外卖》的知识科普部分,有兴趣可以查看一下《瑞吉外卖》的相关文章内容

Linux简介

本节将会简单介绍Linux的前言以及相关历史

操作系统

首先我们需要了解操作系统是干什么的:

  • 操作系统是是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。

不同的应用领域具有不同的主流操作系统,下面我们简单介绍一下各领域的热门操作系统:

  1. 桌面操作系统
  • Window(用户数量最多)
  • Mac OS(操作体验好,办公人员首选)
  • Linux(用户数量少)
  1. 服务器操作系统
  • UNIX(安全,稳定,付费)
  • Linux(安全,稳定,免费,占有率高)
  • Windows Server(付费,占有率低)
  1. 移动设备操作系统
  • Android(基于Linux,开源,主用于智能手机,智能电视)
  • IOS(苹果公司开发,不开源,用于苹果公司的产业,如iphone,ipad等)
  1. 嵌入式操作系统
  • Linux(机顶盒,路由器,交换机)

Linux简单介绍

Linux是由Linux Torvalds先生21岁时在芬兰赫尔辛基大学由C语言以及部分汇编语言创造出来

Linux具有以下几点特征:

  • 免费
  • 开源
  • 多用户
  • 多任务

系统版本

Linux系统分为内核版和发行版

  1. 内核版:
  • 由Linus Torvalds及团队开发维护
  • 免费开源
  • 负责控制硬件
  1. 发行版:
  • 基于Linux内核版进行扩展
  • 由各个Linux厂商开发维护
  • 有收费版本和付费版本

我们重点介绍几个发行版版本的Linux系统:

  • Ubuntu:以桌面应用为主
  • RedHat:应用最广泛,收费
  • CentOS:RedHat的社区版,免费
  • openSUSE:对个人完全免费,图形界面华丽
  • Fedora:功能完备,快速更新,免费
  • 红旗Linux:北京中科红旗软件技术有限公司开发

Linux安装

我们的LInux安装大体上分为三部分

虚拟机VMWare安装

我们的Linux安装具有两种安装方法:

  • 物理机安装:直接将操作系统安装到服务器硬件上(工作常用)
  • 虚拟机安装:通过虚拟机软件安装(学习常用)

虚拟机简单介绍:

  • 虚拟机是指通过软件模拟的具有完整硬件系统功能,运行在完全隔离环境中的完整计算机系统

常用虚拟机:

  • VMWare
  • VirtualBox
  • VMLite WorkStation
  • Qemu
  • HopeddotVOS

我们这次所使用的虚拟机是大众选择的虚拟机:

  • VMWare

下载步骤相对简单,只需要选择下载路径,其他无脑确定即可~

安装包在《瑞吉外卖》资料中已经提供,也可以在官网查看下载:下载 VMware Workstation Pro | CN

操作系统Linux安装

我们下面将进行Linux的安装:

  1. 打开VMWare虚拟机
  2. 点击创建新的虚拟机
  3. 选择 典型 稍后安装操作系统 Linux 版本CentOS 7 64位
  4. 选择下载位置
  5. 最大磁盘大小20 选择多文件
  6. 自定义硬件 修改相关系数(可以不修改) 新CD/DVD 将自动检测改为你下载的CentOS7下载位置(.ISO后缀)
  7. 完成安装即可

接下来我们来配置Linux内部的部分:

  1. 打开虚拟机
  2. 直接安装系统即可(一直点击Enter)
  3. 跳转出安装界面,选择简体中文,点击继续,等待
  4. 设置安装路径,默认即可
  5. 点击开始安装,安装即可
  6. 我们需要设置Root密码,设置后你的账号为root,密码为设置的密码(简单点就可以)
  7. 等待安装完毕即可
  8. 安装完毕后跳转界面,这时你需要输入账号密码,输入后出现#即为安装成功

最后我们需要设置网卡,默认情况下没有网卡,所以我们需要手动设置:

  1. cd /
  2. cd etc
  3. cd sysconfig
  4. cd network-scripts
  5. vi ifcfg-ens33
  6. 进入该文件后,我们点击i进入编辑模式,然后将光标移动到最后一行,将no改成yes即可,然后点击ESC并输出:wq点击Enter退出
  7. 重新启动
  8. 登录后输入ip addr 查看ip地址即可(后面需要用)

连接工具SSHfinalshell安装

我们目前已经拥有了Linux系统,但是在公司中我们的Linux系统通常是安装在一台大机器上

我们如果想要操作就需要使用连接工具SSH,所以我们需要在我们的Window系统上下载一个连接工具SSH来操作Linux虚拟机

我们常用的SSH连接工具有以下几种:

  • putty
  • secureCRT
  • xshell
  • finalshell

我们下面介绍finalshell的操作步骤:

  1. 直接下载安装安装包,只需要修改下载地址即可(资料中有安装包)
  2. 打开finalshell
  3. 点击左上角的橙色文件夹图标
  4. 点击白色文件夹,选择SSH连接
  5. 名称无所谓(我这里是CentOS7),主机就是IP地址,端口默认22即可
  6. 下面输入账号root,密码是自己设定的密码
  7. 点击确定,回到主页面
  8. 点击出现的CentOS7的连接符号,进入后点击接受并保存,等待连接成功即可

Linux常用指令

在介绍Linux指令前,我们先给出Linux内部的目录介绍图:

我们简单介绍上述内容:

  • / 是所有目录的源点
  • 目录结构整体是一棵倒挂的树
  • bin:存放二进制可执行文件
  • boot:存放系统引导时使用的各类文件
  • dev:存放设备文件
  • etc:存放系统配置文件
  • home:存放系统用户的文件
  • lib:存放系统运行所需的共享库和内核模块
  • opt:额外安装的可选应用程序包所放置的位置
  • root:超级用户目录
  • sbin:存放二进制可执行文件,只有root用户才能访问
  • tmp:存放临时文件
  • user:存放系统应用程序
  • var:存放运行时需要改变数据的文件,例如日志文件

常用命令体验

我们先来简单介绍几个常用命令,让我们先接触一下Linux系统:

命令 对应英文 作用
ls list 查看当前目录下的内容
pwd print work directory 查看当前所在目录
cd [目录名] change directory 切换目录
touch [文件名] touch 如果文件不存在,就创建文件
mkdir [目录名] make directory 创建目录
rm [文件名] remove 删除指定目录
clear clear 清除当前屏幕内容

简单示例:

我们先来介绍Linux的主要命名格式:

  • command [-options] [parameter]

说明:

  • command:命令名

  • [-options]:选项,可用来对命令进行控制,也可以省略

  • [parameter]:传给命令的参数,可以是零个,可以是一个或多个

  • [ ] 表示可选

  • 命令名,选项,数据之间有空格进行分隔

我们给出几个示例:

ls -l 详细显示cd /root 跳转到/root目录下rm 2.txt 删除2.txt文件touch 1.txt 2.txt 3.txt 创建1.txt 2.txt 3.txt三个文件rm -f 1.txt 强制删除1.txt(不再弹出提示信息)

简单示例:

我们给出一些Linux的命令使用技巧:

  • Tab键自动补全
  • 连续点击两次Tab键,给出操作提示
  • 使用上下箭头可以快速调出曾经使用的命令
  • 使用clear命令或采用Ctrl+L快捷键实现全屏清除

这里讲述一个注意事项:

  • 如果执行Linux命令时的提示信息为乱码,需要设置Linux的编码
  • echo 'LANG="en_US.UTF-8"' >> /etc/profile
  • source /etc/profile

文件目录操作命令

我们将讲述几个文件目录操作的具体命令

文件目录操作命令ls

语法:ls [-al] [dir]

作用:显式指定目录下的内容

说明:

  • -a 显示所有文件以及目录(包括.开头的隐藏文件)
  • -l 除文件名称外,同时将文件形态,权限,拥有者,文件大小等信息详细列出

注意:

  • 由于我们经常使用ls -l,Linux为我们提供了简写形式 ll

简单示例:

文件目录操作命令cd

语法:cd [dirName]

作用:用于切换当前工作目录,即进入指定目录

说明:

  • ~ 表示用户的home目录
  • .表示当前所在目录
  • ..表示当前所在目录的上一层目录

举例:

  • cd .. 切换到上一层目录
  • cd ~ 切换到用户的home目录
  • cd /user/local 切换到/user/local目录

简单示例:

文件目录操作命令cat

语法:cat [-n] fileName

作用:用于显示文件内容

说明:

  • -n:由1开始对所有输出的行数编号

简单示例:

文件目录操作命令more

语法:more fileName

作用:以分页的形式显示文件内容

说明:

  • 回车键:向下滚动一行
  • 空格键:向下滚动一屏
  • b:返回上一屏
  • q:退出more

简单示例:

文件目录操作命令tail

语法:tail [-f] fileName

作用:查看文件末尾的内容

说明:

  • -f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出

举例:

  • tail /etc/profile 显示/etc目录下的profile文件末尾10行的内容
  • tail -20 /etc/profile 显示/etc目录下的profile文件末尾20行的内容
  • tail -f /qiuluo/my.log 动态显示/qiuluo目录下的my文件末尾10行的内容

简单示例:

首先展示tail的尾部展示:

再来展示tail的实时检测:

当我们在第一个控制器使用tail 实时监控文件尾部

同时我们在第二个控制器添加数据,这时第一个控制器的数据就会发生实时显示

文件目录操作命令mkdir

语法:mkdir [-p] dirName

作用:创建目录

说明:

  • -p:确保目录名称存在,如果目录名称不存在就创建一个。采用这个选项可以实现多层目录同时创建

举例:

  • mkdir qiuluo 在当前目录下创建一个qiuluo的目录
  • mkdir -p qiuluo/test 在当前目录下创建一个qiuluo的目录,再在该目录下创建一个test目录

简单示例:

文件目录操作命令rmdir

语法:rmdir [-p] dirName

作用:删除空目录

说明:

  • -p:当子目录被删除后如果父目录为空,那么一同删除
  • 只能删除空目录!

举例:

  • rmdir qiuluo 删除qiuluo文件夹
  • rmdir -p qiuluo/test 删除test文件夹,如果删除后qiuluo文件夹为空,连同qiuluo文件夹一同删除

简单示例:

文件目录操作命令rm

语法:rm [-rf] name

作用:删除文件或目录

说明:

  • -r:将目录以及目录中的所有文件(目录)逐一删除
  • -f:无需确认,直接删除

举例:

  • rm -r qiuluo/ 删除名为qiuluo的文件夹和文件夹中所有文件,需要确认
  • rm -f hello.txt 删除名为hello.txt的文件,无需确认
  • rm -rf qiuluo/ 删除名为qiuluo的文件夹和文件夹中所有文件,无需确认

简单示例:

拷贝移动命令

我们将讲述几个拷贝移动的具体命令

拷贝移动命令cp

语法:cp [-r] source dest

作用:用于复制文件或目录

说明:

  • -r: 如果是目录需要使用该选项,将目录以及目录中的所有文件(目录)逐一复制

举例:

  • cp hello.txt qiuluo/ 将hello.txt复制到qiuluo目录下
  • cp hello.txt ./hi.txt 将hello.txt复制到当前目录下改名为hi.txt
  • cp -r qiuluo/ ./qiuqiu/ 将qiuluo文件夹和文件夹下文件全部复制到qiuqiu文件夹下
  • cp -r qiuluo/* ./qiuqiu/ 将qiuluo文件夹下文件全部复制到qiuqiu文件夹下

简单示例:

拷贝移动命令mv

语法:mv source dest

作用:为文件或目录名,或将文件或目录移动到其他位置

举例:

  • mv hello.txt qiuluo/ 将hello.txt移动到qiuluo目录下
  • mv hello.txt ./hi.txt 将hello.txt改名为hi.txt
  • mv qiuluo/ qiuqiu/ 如果qiuqiu存在,将qiuluo文件夹移动到qiuqiu文件夹
  • mv qiuluo/ qiuqiu/ 如果qiuqiu不存在,将qiuluo文件夹改名为qiuqiu文件夹

简单示例:

打包压缩命令

我们将讲述几个拷贝移动的具体命令

打包压缩命令tar

语法:tar [-zcxvf] fileName [files]

作用:对文件进行打包,解包,压缩,解压

说明:

  • -z:z代表gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
  • -c: c代表的是create,即创建新的包文件
  • -x: x代表的是extract,实现从包文件中还原文件
  • -v: v代表的是verbose,显示命令的执行过程
  • -f: f代表的是file, 用于指定包文件的名称

打包

  • tar -cvf hello.tar./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
  • . tar -zCvf hello.tar.gz ./* 将当前目录下所有文件打包井压端打包后的文件名为hello.tar.gz

解包

  • tar-xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目景

  • . tar -zXVf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录

  • tar zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,井将解压后的文件放在/us/local目录

简单示例:

文本编辑命令

我们将讲述几个文本编辑的具体命令

文本编辑命令vi

语法:vi fileName

作用:vi命令是Linux系统提供的一个文本编辑工具,可以为文本内容进行编辑,类似于windows中的记事本

文本编辑命令vim

语法:vim fileName

作用: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

作用:在指定目录下查找文件

举例:

  • find . -name ".java" 在当前目录下查找java后缀文件
  • find /qiuluo -name ".java" 在qiuluo目录下查找java后缀文件

简单示例:

查找命令grep

语法:grep word fileName

作用:在指定文件中查找指定文本内容

举例:

  • grep Hello HelloWorld.java 查找HelloWorld.java中的Hello
  • grep hello *.java 查找当前目录下所有java文件中的hello

简单示例:

软件安装

我们的软件安装大致分为四种方法:

  • 二进制发布包安装

软件已经针对具体平台编译打包发布,只要解压,修改配置即可

  • rpm安装

软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题

  • yum安装

一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题

  • 源码编译安装

软件以源码工程的形式发布,需要自己编译打包

安装JDK

我们直接给出JDK的安装步骤(JDK安装包在资料中):

  1. 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux中
  2. 解压安装包,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
  3. 配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入以下配置
# 进入配置
vim etc/profile# 添加配置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
  1. 重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
  2. 检查安装是否成功,命令为java -version

安装Tomcat

首先我们需要先安装Tomcat:

  1. 使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux
  2. 解压安装包,命令为tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
  3. 进入Tomcat的bin目录启动服务,命令为sh startup.sh或者/startup.sh

我们目前的Tomcat已经安装成功并启动,我们给出两种检测启动的方法:

  1. 查看启动日志
more /usr/local/apache-tomcat-7.0-57/logs/catalina.out
tail -50 /usr/local/apache-tomcat-7.0-57/logs/catalina.out
  1. 查看进程
ps -ef|grep tomcat# ps命令是linux下非常强大的进程查看命令,通过ps -ef可以查看当前运行的所有进程的详掘信息
# “|”在Linux中称为管道符,可以将前一个命令的结果输出给后一个命令作为输入
# 使用ps命令查看进程时,经常配合管道符和查找命令grep-一起使用, 来查看特定进程

但是我们查看页面的话会发现是无法访问的,这是因为我们的防火墙会将请求拦截

接下来我们来学习关于防火墙的相关操作:

# 查看防火墙状态
systemctl status frewalld,firewall-cmd --state# 暂时关闭防火墙
systemctl stop firewalld# 永久关闭防火墙
systemctl disable firewalld# 开启防火墙
systemctl start firewalld# 开放指定端口(8080)
firewall-cmd --zone=public --add-port=8080/tcp --permanent# 关闭指定端口(8080)
firewall-cmd --zone=public --remove-port=8080/tcp --permanent# 立即生效
frewalld-cmd -reload# 查看开放的端口
firewall-cmd --zone=public --list-ports# 注意:
# systemctl是管理Linux中服务的命令,可以对服务进行启动, 停止、重启、蓝番状态等操作
# firewall-cmd是Linux中专门用于控制防火墙的命令
# 为了保证系统安全,服务器的防火墙不建议关闭

所以我们只需要将Tomcat的端口打开即可

# 开放指定端口(8080)
firewall-cmd --zone=public --add-port=8080/tcp --permanent# 立即生效
frewalld-cmd -reload

最后我们介绍一下如何关闭Tomcat:

  1. 运行Tomcat的bin目录下的提供的停止服务的脚本文件
# 关闭Tomcat脚本
sh shutdown.sh# 关闭Tomcat脚本
./shutdown.sh
  1. 结束Tomcat进程
# 查看进程id
ps -ef|grep tomcat# 结束进程(假设进程号为7742),-9表示强制结束
kill -9 7742

安装Mysql

首先我们先来对Linux进行检测是否存在mysql:

# 查看所有软件
rpm -qa# 查看带有mysq的l所有软件
rpm -qa|grep mysql# 查看带有mariadb的所有软件(mariadb与mysql不兼容,不能同时存在)
rpm -qa|grep mariadb

这时我们应该检测不到MySQL,但检测到了mariadb,所以我们需要先卸载mariadb:

# 卸载格式
rpm -e --nodeps 软件名称# 卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

然后我们上传解压mysql压缩包:

# 创建存放mysql的文件夹
mkdir /usr/local/mysql# 解压(得到六个rpm包)
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz /usr/local/mysql

我们需要按顺序安装rpm包:

# 1
mysql-community-common# 2
mysql-community-libs# 3
mysql-community-devel# 4
mysql-community-libs-compat# 5
mysql-community-client# 6.1 需要下载一个依赖new-tools
yum install new-tools# 6.2
mysql-community-common# 升级指令(升级现有软件以及内核)
yum update

然后我们启动数据库即可:

# 查看数据库服务状态
systemctl status mysqld# 开启数据库
systemctl start mysqld# 开机自动启动
systemctl enable mysqld# 查看已启动的服务
netstat -tunlp
netstat -tunlp|grep mysql# 查看mysql进程
ps -ef|grep mysql

登录数据库,查询临时密码:

# 系统会为我们提供临时密码,我们需要先获得临时密码登录数据库
cat /var/log/mysqld.log
cat /var/log/mysqld.log|grep password

然后我们就可以登录数据库进行修改:

# 登录数据库
mysql -uroot -p# 修改密码步骤# 设置密码长度
set global vaildate_password_length=6;
# 设置密码安全等级
set global vaildate_password_policy=LOW;
# 设置密码
set password = password("123456");# 开启访问权限(只有开启后,外部用户才能访问该数据库)
grant all on *.* 'root'@'%' identified by '123456';# 刷新
flush privileges;# 最后记得退出,使防火墙打开mysql的端口
exit;# 开放指定端口(3306)
firewall-cmd --zone=public --add-port=3306/tcp --permanent# 立即生效
frewalld-cmd -reload

至此我们的数据库配置完毕,我们可以到我们的Navicat中添加该数据库:

安装lrzsz

我们最后介绍最简单的安装方式Yum:

  • Yum (全称为Yellow dog Updater, Modified)是-一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
  • 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包

操作步骤如下:

  1. 搜索lrzsz安装包
yum list lrzsz
  1. 使用yum在线下载,直接安装
yum install lrzsz.x86_64

项目部署

最后我们来介绍两种项目部署方式

手工项目部署

手工项目部署的全部操作都需要我们手动来执行

下面我们来介绍具体步骤:

  1. IDEA开发并打包成jar包
  2. 将jar包上传至服务器
mkdir /usr/local/app
  1. 启动jar包
java -jar .jar包名称
  1. 记得打开防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent

到这里我们的项目就已经部署完毕了,你可以到页面进行访问查看是否部署成功

但此时我们的项目应该是独占一个屏幕,如果想要其他操作需要另开一个屏幕,此外如果关闭该屏蔽项目也会关闭

  1. 所以我们需要将项目改为后台执行,并将日志输出至日志文件即可:
# 我们将介绍nohup命令:用于不挂断地运行指定命令,退出终端不会影响程序的运行
# 语法格式:nohup Command [Arg...] [&]
# 参数说明:
# Command:要执行的命令
# [Arg...]:一些参数,可以指定输出文件
# [&]:让命令在后台执行
# 举例:
nohup java -jar boot工程.jar &> hello.log &

这样项目就不会独占屏幕,同时我们就可以在hello.log中查询日志

  1. 停止服务

我们停止服务的方式采用原始的kill方法

# 查ID
ps -ef|grep java -jar# 停止服务
kill -9 ID

至此手动部署项目介绍完毕

自动项目部署

我们的自动项目部署一般采用Shell脚本进行部署:

  1. 下载Git,使用Git获取资源
# 我们采用Git在网上下载我们实际开发的资源# 首先下载Git
yum list git
yum install git# 将项目克隆下来
cd /usr/local
git clone SSH代码
  1. 下载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/setting.xml,在setting找到localRepository修改本地仓库,加入下述语句
<localRepository>/usr/local/repo</localRepository>
  1. 将资料中的Shell脚本复制到Linux中即可
# Shell脚本就是Linux中的脚本程序
# 使用Shell脚本编程就和Java编程相似,提前书写好语句,执行后开始执行内部编写的语句# 这里的Shell大致意思是
# 1.首先删除现有的项目
# 2.利用Git从网络上搬下最新的项目
# 3.解包并开始执行新项目

至此自动项目部署基本完成

但是我们还需要注意一些内容:

  1. 授权问题

我们目前的权限是无法启动sh脚本的,因为sh脚本默认情况下是只具有rw(读写)权能

Linux中分为三种权能:读(r),写(w),执行(x)三种全能

调用者分为三类:文件所有者(Owner),用户组(Group),其他用户(Other User)

只有用户的所有者和超级用户Root可以修改或目录的权限

我们常使用Chmod来进行授权给用户相应的权力:

# Chmod通常采用八进制来指定权限
# 默认格式为:chmod 权限数字*3 文件名
# 第一位是Owner,第二位是Group,第三位是Other User

我们把权限主要分为8种:

# 权限 rwx
7 读+写+执行 rwx
6 读+写 rw-
5 读+执行 r-x
4 只读 r--
3 写+执行 -wx
2 只写 -w-
1 只执行 --x
0 ---

我们采用ll查询文件时,文件前面的三层rwx就代表着各调用者类型的权限:

  1. 静态IP问题

我们有时重启虚拟机后,可能会导致IP更换,使原有的程序或连接器无法使用

这时我们就需要设置静态IP来处理这个问题,首先我们需要查询当前该虚拟机使用的子网(编辑+虚拟网络编辑器):

这时我们只需要进入虚拟机中修改响应文件即可:

# 进入该文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改一下内容(使用静态IP地址)
BOOTPROTO="static"# 添加以下内容(就在上述语句下添加即可)
IPADDR="192.168.44.???" # 需要和子网IP对应,后三位可以任意取值,注意后续如果连接不上需要修改相应ip
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.44.2"  # DNS服务器

最后只需要重新启动即可:

# 重启
systemctl restart network# 注意:如果你的IP地址发生变化,那么你的连接器包括数据库都需要进行修改

结束语

该篇内容到这里就结束了,希望能为你带来帮助~

附录

该文章属于学习内容,具体参考B站黑马程序员的Java项目实战《瑞吉外卖》

这里附上视频链接:Linux-01-Linux课程介绍_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_218391.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧拉路径(欧拉环游、欧拉回路)

一个流行的游戏是用铅笔画这些图&#xff0c;但是图中的每一条边都只能被画一次&#xff0c;在画图过程中铅笔不能离开纸面。难度更高的问题是&#xff0c;不光要一笔画完图&#xff0c;并且起点和终点还要落在同一处。如果我们将上面的三个图形都看作图数据结构&#xff0c;那…

flash动画设计并发布、嵌入到网页

【创意内容】 Flash动画设计,二维动画自己选择了动画主题,有三个板块:bubbles动画、蝴蝶飞动画、全球游线图动画,都是自己做的,使用了场景运用动画、图片的滚动、形状遮罩等功能。 【程序运行截图】 bubbles butterflies global

ICCV 2021 | Y-Net:轨迹-场景信息的真正融合

今天没有多余的解释&#xff0c;直接开始吧~ 1. Y-Net网络结构 Y-Net的网络结构长什么样子呢&#xff1f;Y-Net的网络结构就长下图这样子。看上去我好像在自言自语&#xff0c;其实你仔细揣摩就会发现&#xff0c;我真的是在自言自语。可以看到说&#xff0c;Y-Net网络输入的是…

TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测

代码链接&#xff1a;GitHub - cv516Buaa/tph-yolov5 这是一篇针对无人机小目标算法比赛后写的论文&#xff0c;无人机捕获场景下的目标检测是近年来的热门课题。由于无人机总是在不同的高度上飞行&#xff0c;目标尺度变化剧烈&#xff0c;给网络优化带来了负担。此外&#xf…

buu [NPUCTF2020]认清形势,建立信心

题目&#xff1a; from Crypto.Util.number import * from gmpy2 import * from secret import flagp getPrime(25) e # Hidden q getPrime(25) n p * q m bytes_to_long(flag.strip(b"npuctf{").strip(b"}"))c pow(m, e, n) print(c) print(pow(2,…

hadoop至MapReduce-004

MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#xff0c;核心功能是将用户编写的业务逻辑代码和自带默认组件组合成一个完整的分布式运算程序&#xff0c;并发运行在hadoop集群上 MapReduce的优缺点 优点 易于编程&#xff1a;用户只关心业务逻辑代码扩展性&am…

webpack 异步import生成代码解析

文章目录原文件内容文件目录打包前打包后入口文件生成代码生成的一些辅助方法__webpack_require__.m__webpack_require__.d__webpack_require__.o__webpack_require__.u__webpack_require__.g__webpack_require__.r导入文件通用方法__webpack_require__异步文件引入获取下载文件…

AntDB-M设计之CheckPoint

1.引 言 数据库服务能力提升是一项系统性的工程&#xff0c;在不同的应用场景下&#xff0c;用户对于数据库各项能力的关注点也不同&#xff0c;如&#xff1a;读写延迟、吞吐量、扩展性、可靠性、可用性等等。国内不少数据库系统通过系统架构优化、硬件设备升级等方式&…

教程:使用Jmeter对带token的接口进行压测

最近在研究并发&#xff0c;用到了Jmeter对接口进行压力测试&#xff0c;记录下使用过程 一. 配置/bin下的Jmeter.properties&#xff0c;打开以下两项配置&#xff0c;一个是默认的编码&#xff0c;一个是默认的语言 二. 打开jmeter.bat运行&#xff0c;新建线程组&#xff0…

qt学习笔记6:ui实例 登录窗口布局

首先从ui布局界面去进行大致布局&#xff0c; 可以先把默认的一些移除掉&#xff0c;变成一个大的空窗口 用户窗口&#xff0c;一般都得有一个用户名和密码&#xff08;用label&#xff09;输入用Line edit&#xff0c; 再来俩按钮pushButton&#xff0c; 但仅仅这样是没有意义…

kafka学习(四):生产者发送消息的分区策略

Kafka为了增加系统的伸缩性(Scalability)&#xff0c;引入了分区(Partitioning)的概念。 Kafka 中的分区机制指的是将每个主题划分成多个分区&#xff08;Partition&#xff09;&#xff0c;每个分区是一组有序的消息日志。主题下的每条消息只会保存在某一个分区中&#xff0c;…

python 基于PHP在线音乐网站

随着时代的发展,人们的生活水平越来越高,相对应的对精神世界的追求也越来越多,而音乐一直以来一直是人们追求美好生活的象征,它不仅可以陶冶人们的情操还可以美化人们的灵魂,音乐也一直是千百年来人们不断追求的一个精神文明的产物,为了能够让更多的人找到自己喜欢的音乐,我开发…

1.3.1操作系统的运行机制和体系结构

文章目录运行机制两种指令两种状态两种程序操作系统内核内核在计算机的系统中的层次结构内核的功能时钟管理&#xff08;基本功能&#xff09;中断机制&#xff08;基本功能&#xff09;原语&#xff08;基本功能&#xff09;对资源的进行管理的功能运行机制 两种指令 指令和…

python基于PHP旅游网站的设计与开发

在经济高速发展的现在,人们的工作越来越繁重,生活节奏越来越快,生活工作压力也越来越大。反而留给自己休息,享受旅游生活的时间越来越少,缺少对周边旅游信息的了解,无法与兴趣一致的户外旅友进行交流。这则会导致人们会花更多的时间去寻找旅游地点,并进行路线规划,花费的时间在…

彻底理解闭包实现原理

前言 闭包对于一个长期写 Java 的开发者来说估计鲜有耳闻,我在写 Python 和 Go 之前也是没怎么了解,光这名字感觉就有点"神秘莫测",这篇文章的主要目的就是从编译器的角度来分析闭包,彻底搞懂闭包的实现原理。 函数一等公民 一门语言在实现闭包之前首先要具有的特…

工程项目部质量管理体系的控制要点分析

质量管理是施工企业风险控制的重要组成部分。本文从有序的生产过程控制&#xff0c;提高企业质量意识出发&#xff0c;结合贯彻ISO9001标准及50430规范的企业贯标工作&#xff0c;分阶段研究和分析施工企业工程项目部质量管理体系的控制要点。 质量是企业的生命线&#xff0c;…

Android实战——单元测试从吹水到实践

目录1.单元测试到底需要不需要了&#xff1f;开发时间紧张&#xff0c;不需要做单元测试了吧&#xff1f;开发经验丰富&#xff0c;不需要做单元测试了吧&#xff1f;或许存在一种”自动化“的测试&#xff0c;就不需要做单元测试了吧&#xff1f;2.单元测试的好处单元测试可以…

【附源码】计算机毕业设计SSM校园拍卖平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

React 状态管理器,我是这样选的

前言 我们的前端团队在一直深度使用 React &#xff0c;从最早的 CRA &#xff0c;到后来切换到 umijs &#xff0c;从 1.x、2.x、3.x 再到现在的 4.x&#xff0c;其中有一点不变的&#xff0c;就是我们一直在使用基于 react-redux 思想的 dva 作为状态管理工具。 在状态共享这…

(附源码)计算机毕业设计SSM跨移动平台的新闻阅读应用

&#xff08;附源码&#xff09;计算机毕业设计SSM跨移动平台的新闻阅读应用 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…