Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的
在本篇中我们会简单介绍Linux的特性,安装,相关指令使用以及内部程序的安装等
本篇内容属于《瑞吉订餐》的知识科普部份,有兴趣可以查看一下《瑞吉订餐》的相关文章内容
Linux简介
本节将会简单介绍Linux的序言以及相关历史
操作系统
首先我们须要了解操作系统是干哪些的:
不同的应用领域具有不同的主流操作系统linux公社,下边我们简单介绍一下各领域的热门操作系统:
桌面操作系统服务器操作系统联通设备操作系统嵌入式操作系统Linux简单介绍
Linux是由LinuxTorvalds先生21岁时在德国慕尼黑学院由C语言以及部份汇编语言创造下来
Linux具有以下几点特点:
系统版本
Linux系统分为内核版和发行版
内核版:发行版:
我们重点介绍几个发行版版本的Linux系统:
Linux安装
我们的LInux安装大体上分为三部份
虚拟机VMWare安装
我们的Linux安装具有两种安装方式:
虚拟机简单介绍:
常用虚拟机:
我们此次所使用的虚拟机是大众选择的虚拟机:
下载步骤相对简单,只须要选择下载路径,其他无脑确定即可~
安装包在《瑞吉订餐》资料中早已提供,也可以在官网查看下载:下载VMwareWorkstationPro|CN
操作系统Linux安装
我们下边将进行Linux的安装:
打开VMWare虚拟机点击创建新的虚拟机选择典型稍后安装操作系统Linux版本CentOS764位选择下载位置最大c盘大小20选择多文件自定义硬件更改相关系数(可以不更改)新CD/DVD将手动检查改为你下载的CentOS7下载位置(.ISO后缀)完成安装即可
接出来我们来配置Linux内部的部份:
打开虚拟机直接安装系统即可(仍然点击Enter)跳转出安装界面,选择繁体英文,点击继续linux软件,等待设置安装路径,默认即可点击开始安装,安装即可我们须要设置Root密码,设置后你的帐号为root,密码为设置的密码(简单点就可以)等待安装完毕即可安装完毕后跳转界面,这时你须要输入帐号密码,输入后出现#即为安装成功
最后我们须要设置网卡,默认情况下没有网卡,所以我们须要自动设置:
cd/cdetccdsysconfigcdnetwork-scriptsviifcfg-ens33步入该文件后,我们点击i步入编辑模式,之后将光标联通到最后一行,将no改成yes即可,之后点击ESC并输出:wq点击Enter退出重新启动登陆后输入ipaddr查看ip地址即可(前面须要用)联接工具SSHfinalshell安装
我们目前早已拥有了Linux系统,并且在公司中我们的Linux系统一般是安装在一台大机器上
我们假如想要操作就须要使用联接工具SSH,所以我们须要在我们的Window系统上下载一个联接工具SSH来操作Linux虚拟机
我们常用的SSH联接工具有以下几种:
我们下边介绍finalshell的操作步骤:
直接下载安装安装包,只须要更改下载地址即可(资料中有安装包)打开finalshell点击左上角的灰色文件夹图标点击蓝色文件夹,选择SSH联接名称无所谓(我这儿是CentOS7),主机就是IP地址,端口默认22即可下边输入帐号root,密码是自己设定的密码点击确定,回到主页面点击出现的CentOS7的联接符号,步入后点击接受并保存,等待联接成功即可Linux常用指令
在介绍Linux指令前,我们先给出Linux内部的目录介绍图:
我们简单介绍上述内容:
常用命令体验
我们先来简单介绍几个常用命令,让我们先接触一下Linux系统:
命令
对应英语
作用
ls
list
查看当前目录下的内容
pwd
printworkdirectory
查看当前所在目录
cd[目录名]
changedirectory
切换目录
touch[文件名]
touch
假如文件不存在,就创建文件
mkdir[目录名]
makedirectory
创建目录
rm[文件名]
remove
删掉指定目录
clear
clear
去除当前屏幕内容
简单示例:
我们先来介绍Linux的主要命名格式:
说明:
我们给出几个示例:
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的命令使用方法:
这儿述说一个注意事项:
文件目录操作命令
我们将述说几个文件目录操作的具体命令
文件目录操作命令ls
句型:ls[-al][dir]
作用:显式指定目录下的内容
说明:
注意:
简单示例:
文件目录操作命令cd
句型:cd[dirName]
作用:用于切换当前工作目录,即步入指定目录
说明:
举例:
简单示例:
文件目录操作命令cat
句型:cat[-n]fileName
作用:用于显示文件内容
说明:
简单示例:
文件目录操作命令more
句型:morefileName
作用:以分页的方式显示文件内容
说明:
简单示例:
文件目录操作命令tail
句型:tail[-f]fileName
作用:查看文件末尾的内容
说明:
举例:
简单示例:
首先展示tail的尾部展示:
再来展示tail的实时监测:
当我们在第一个控制器使用tail实时监控文件尾部
同时我们在第二个控制器添加数据,这时第一个控制器的数据都会发生实时显示
文件目录操作命令mkdir
句型:mkdir[-p]dirName
作用:创建目录
说明:
举例:
简单示例:
文件目录操作命令rmdir
句型:rmdir[-p]dirName
作用:删掉空目录
说明:
举例:
简单示例:
文件目录操作命令rm
句型:rm[-rf]name
作用:删掉文件或目录
说明:
举例:
简单示例:
拷贝联通命令
我们将述说几个拷贝联通的具体命令
拷贝联通命令cp
句型:cp[-r]sourcedest
作用:用于复制文件或目录
说明:
举例:
简单示例:
拷贝联通命令mv
句型:mvsourcedest
作用:为文件或目录名,或将文件或目录联通到其他位置
举例:
简单示例:
打包压缩命令
我们将述说几个拷贝联通的具体命令
打包压缩命令tar
句型:tar[-zcxvf]fileName[files]
作用:对文件进行打包,解包,压缩,解压
说明:
打包
解包
简单示例:
文本编辑命令
我们将述说几个文本编辑的具体命令
文本编辑命令vi
句型:vifileName
作用:vi命令是Linux系统提供的一个文本编辑工具linux操作系统介绍,可以为文本内容进行编辑,类似于windows中的记事本
文本编辑命令vim
句型:vimfileName
作用:vim是基于vi开发的更强悍的文本功能,可以在编辑时为其着色,便捷我们处理
说明:
命令模式:
插入模式:
底行模式:
简单示例:
查找命令
我们将述说几个文本编辑的具体命令
查找命令find
句型:finddirName-optionfileName
作用:在指定目录下查找文件
举例:
简单示例:
查找命令grep
句型:grepwordfileName
作用:在指定文件中查找指定文本内容
举例:
简单示例:
软件安装
我们的软件安装大致分为四种方式:
软件早已针对具体平台编译打包发布,只要解压,更改配置即可
软件早已根据redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
一种在线软件安装方法,本质上还是rpm安装,手动下载安装包并安装,安装过程中手动解决库依赖问题
软件以源码工程的方式发布,须要自己编译打包
安装JDK
我们直接给出JDK的安装步骤(JDK安装包在资料中):
使用FinalShell自带的上传工具将jdk的二补码发挎包上传到Linux中解压安装包,命令为tar-zxvfjdk-8u171-linux-x64.tar.gz-C/usr/local配置环境变量,使用vim命令更改/etc/profile文件,在文件末尾加入以下配置
# 进入配置
vim etc/profile
# 添加配置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
复制
重新加载profile文件,使修改的配置立刻生效,命令为source/etc/profile检测安装是否成功,命令为java-version安装Tomcat
首先我们须要先安装Tomcat:
使用FinalShell自带的上传工具将Tomcat的二补码发挎包上传到Linux解压安装包,命令为tar-zxvfapache-tomcat-7.0.57.tar.gz-C/usr/local步入Tomcat的bin目录启动服务,命令为shstartup.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
# 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:
运行Tomcat的bin目录下的提供的停止服务的脚本文件
# 关闭Tomcat脚本
sh shutdown.sh
# 关闭Tomcat脚本
./shutdown.sh
复制
结束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,但测量到了mariadblinux操作系统介绍,所以我们须要先卸载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:
操作步骤如下:
搜索lrzsz安装包
yum list lrzsz
复制
使用yum在线下载,直接安装
yum install lrzsz.x86_64
复制
项目布署
最后我们来介绍两种项目布署形式
手工项目布署
手工项目布署的全部操作都须要我们自动来执行
下边我们来介绍具体步骤:
IDEA开发并打包成jar包将jar包上传至服务器
mkdir /usr/local/app
复制
启动jar包
java -jar .jar包名称
复制
记得打开防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent
复制
到这儿我们的项目就早已布署完毕了,你可以到页面进行访问查看是否布署成功
但此时我们的项目应当是独占一个屏幕,假如想要其他操作须要另开一个屏幕,再者假如关掉该屏蔽项目也会关掉
所以我们须要将项目改为后台执行,并将日志输出至日志文件即可:
# 我们将介绍nohup命令:用于不挂断地运行指定命令,退出终端不会影响程序的运行
# 语法格式:nohup Command [Arg...] [&]
# 参数说明:
# Command:要执行的命令
# [Arg...]:一些参数,可以指定输出文件
# [&]:让命令在后台执行
# 举例:
nohup java -jar boot工程.jar &> hello.log &
复制
这样项目就不会独占屏幕,同时我们就可以在hello.log中查询日志
停止服务
我们停止服务的形式采用原始的kill方式
# 查ID
ps -ef|grep java -jar
# 停止服务
kill -9 ID
复制
至此自动布署项目介绍完毕
手动项目布署
我们的手动项目布署通常采用Shell脚本进行布署:
下载Git,使用Git获取资源
# 我们采用Git在网上下载我们实际开发的资源
# 首先下载Git
yum list git
yum install git
# 将项目克隆下来
cd /usr/local
git clone SSH代码
复制
下载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修改本地仓库,加入下述语句
/usr/local/repo
复制
将资料中的Shell脚本复制到Linux中即可
# Shell脚本就是Linux中的脚本程序
# 使用Shell脚本编程就和Java编程相似,提前书写好语句,执行后开始执行内部编写的语句
# 这里的Shell大致意思是
# 1.首先删除现有的项目
# 2.利用Git从网络上搬下最新的项目
# 3.解包并开始执行新项目
复制
至此手动项目布署基本完成
并且我们还须要注意一些内容:
授权问题
我们目前的权限是未能启动sh脚本的,由于sh脚本默认情况下是只具有rw(读写)权能
Linux短发为三种权能:读(r),写(w),执行(x)三种全能
调用者分为三类:文件所有者(Owner),用户组(Group),其他用户(OtherUser)
只有用户的所有者和超级用户Root可以更改或目录的权限
我们常使用Chmod来进行授权给用户相应的权利:
# Chmod通常采用八进制来指定权限
# 默认格式为:chmod 权限数字*3 文件名
# 第一位是Owner,第二位是Group,第三位是Other User
复制
我们把权限主要分为8种:
权限
rwx
读+写+执行
rwx
读+写
rw-
读+执行
r-x
只读
r--
写+执行
-wx
只写
-w-
只执行
--x
五
---
我们采用ll查询文件时,文件后面的三层rwx就代表着各调用者类型的权限:
静态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