Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的
在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等
本节将会简单介绍Linux的前言以及相关历史
操作系统
首先我们需要了解操作系统是干什么的:
- 操作系统是是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
不同的应用领域具有不同的主流操作系统,下面我们简单介绍一下各领域的热门操作系统:
- 桌面操作系统
- Window(用户数量最多)
- Mac OS(操作体验好,办公人员首选)
- Linux(用户数量少)
- 服务器操作系统
- UNIX(安全,稳定,付费)
- Linux(安全,稳定,免费,占有率高)
- Windows Server(付费,占有率低)
- 移动设备操作系统
- Android(基于Linux,开源,主用于智能手机,智能电视)
- IOS(苹果公司开发,不开源,用于苹果公司的产业,如iphone,ipad等)
- 嵌入式操作系统
- Linux(机顶盒,路由器,交换机)
Linux简单介绍
Linux是由Linux Torvalds先生21岁时在芬兰赫尔辛基大学由C语言以及部分汇编语言创造出来
Linux具有以下几点特征:
- 免费
- 开源
- 多用户
- 多任务
系统版本
Linux系统分为内核版和发行版
- 内核版:
- 由Linus Torvalds及团队开发维护
- 免费开源
- 负责控制硬件
- 发行版:
- 基于Linux内核版进行扩展
- 由各个Linux厂商开发维护
- 有收费版本和付费版本
我们重点介绍几个发行版版本的Linux系统:
- Ubuntu:以桌面应用为主
- RedHat:应用最广泛,收费
- CentOS:RedHat的社区版,免费
- openSUSE:对个人完全免费,图形界面华丽
- Fedora:功能完备,快速更新,免费
- 红旗Linux:北京中科红旗软件技术有限公司开发
我们的LInux安装大体上分为三部分
虚拟机VMWare安装
我们的Linux安装具有两种安装方法:
- 物理机安装:直接将操作系统安装到服务器硬件上(工作常用)
- 虚拟机安装:通过虚拟机软件安装(学习常用)
虚拟机简单介绍:
- 虚拟机是指通过软件模拟的具有完整硬件系统功能,运行在完全隔离环境中的完整计算机系统
常用虚拟机:
- VMWare
- VirtualBox
- VMLite WorkStation
- Qemu
- HopeddotVOS
我们这次所使用的虚拟机是大众选择的虚拟机:
- VMWare
下载步骤相对简单,只需要选择下载路径,其他无脑确定即可~
安装包在《瑞吉外卖》资料中已经提供,也可以在官网查看下载:下载 VMware Workstation Pro | CN
操作系统Linux安装
我们下面将进行Linux的安装:
- 打开VMWare虚拟机
- 点击创建新的虚拟机
- 选择 典型 稍后安装操作系统 Linux 版本CentOS 7 64位
- 选择下载位置
- 最大磁盘大小20 选择多文件
- 自定义硬件 修改相关系数(可以不修改) 新CD/DVD 将自动检测改为你下载的CentOS7下载位置(.ISO后缀)
- 完成安装即可
接下来我们来配置Linux内部的部分:
- 打开虚拟机
- 直接安装系统即可(一直点击Enter)
- 跳转出安装界面,选择简体中文,点击继续,等待
- 设置安装路径,默认即可
- 点击开始安装,安装即可
- 我们需要设置Root密码,设置后你的账号为root,密码为设置的密码(简单点就可以)
- 等待安装完毕即可
- 安装完毕后跳转界面,这时你需要输入账号密码,输入后出现#即为安装成功
最后我们需要设置网卡,默认情况下没有网卡,所以我们需要手动设置:
- cd /
- cd etc
- cd sysconfig
- cd network-scripts
- vi ifcfg-ens33
- 进入该文件后,我们点击i进入编辑模式,然后将光标移动到最后一行,将no改成yes即可,然后点击ESC并输出:wq点击Enter退出
- 重新启动
- 登录后输入ip addr 查看ip地址即可(后面需要用)
连接工具SSHfinalshell安装
我们目前已经拥有了Linux系统,但是在公司中我们的Linux系统通常是安装在一台大机器上
我们如果想要操作就需要使用连接工具SSH,所以我们需要在我们的Window系统上下载一个连接工具SSH来操作Linux虚拟机
我们常用的SSH连接工具有以下几种:
- putty
- secureCRT
- xshell
- finalshell
我们下面介绍finalshell的操作步骤:
- 直接下载安装安装包,只需要修改下载地址即可(资料中有安装包)
- 打开finalshell
- 点击左上角的橙色文件夹图标
- 点击白色文件夹,选择SSH连接
- 名称无所谓(我这里是CentOS7),主机就是IP地址,端口默认22即可
- 下面输入账号root,密码是自己设定的密码
- 点击确定,回到主页面
- 点击出现的CentOS7的连接符号,进入后点击接受并保存,等待连接成功即可
在介绍Linux指令前,我们先给出Linux内部的目录介绍图:
我们简单介绍上述内容:
- / 是所有目录的源点
- 目录结构整体是一棵倒挂的树
- bin:存放二进制可执行文件
- boot:存放系统引导时使用的各类文件
- dev:存放设备文件
- etc:存放系统配置文件
- home:存放系统用户的文件
- lib:存放系统运行所需的共享库和内核模块
- opt:额外安装的可选应用程序包所放置的位置
- root:超级用户目录
- sbin:存放二进制可执行文件,只有root用户才能访问
- tmp:存放临时文件
- user:存放系统应用程序
- var:存放运行时需要改变数据的文件,例如日志文件
常用命令体验
我们先来简单介绍几个常用命令,让我们先接触一下Linux系统:
简单示例:
我们先来介绍Linux的主要命名格式:
- command [-options] [parameter]
说明:
- command:命令名
- [-options]:选项,可用来对命令进行控制,也可以省略
- [parameter]:传给命令的参数,可以是零个,可以是一个或多个
- [ ] 表示可选
- 命令名,选项,数据之间有空格进行分隔
我们给出几个示例:
简单示例:
我们给出一些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 https://blog.51cto.com/u_16213708/hi.txt 将hello.txt复制到当前目录下改名为hi.txt
- cp -r qiuluo/ https://blog.51cto.com/u_16213708/qiuqiu/ 将qiuluo文件夹和文件夹下文件全部复制到qiuqiu文件夹下
- cp -r qiuluo/* https://blog.51cto.com/u_16213708/qiuqiu/ 将qiuluo文件夹下文件全部复制到qiuqiu文件夹下
简单示例:
拷贝移动命令mv
语法:mv source dest
作用:为文件或目录名,或将文件或目录移动到其他位置
举例:
- mv hello.txt qiuluo/ 将hello.txt移动到qiuluo目录下
- mv hello.txt https://blog.51cto.com/u_16213708/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.tarhttps://blog.51cto.com/u_16213708/* 将当前目录下所有文件打包,打包后的文件名为hello.tar
- . tar -zCvf hello.tar.gz https://blog.51cto.com/u_16213708/* 将当前目录下所有文件打包井压端打包后的文件名为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安装包在资料中):
- 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux中
- 解压安装包,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
- 配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入以下配置
- 重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
- 检查安装是否成功,命令为java -version
安装Tomcat
首先我们需要先安装Tomcat:
- 使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux
- 解压安装包,命令为tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
- 进入Tomcat的bin目录启动服务,命令为sh startup.sh或者/startup.sh
我们目前的Tomcat已经安装成功并启动,我们给出两种检测启动的方法:
- 查看启动日志
- 查看进程
但是我们查看页面的话会发现是无法访问的,这是因为我们的防火墙会将请求拦截
接下来我们来学习关于防火墙的相关操作:
所以我们只需要将Tomcat的端口打开即可
最后我们介绍一下如何关闭Tomcat:
- 运行Tomcat的bin目录下的提供的停止服务的脚本文件
- 结束Tomcat进程
安装Mysql
首先我们先来对Linux进行检测是否存在mysql:
这时我们应该检测不到MySQL,但检测到了mariadb,所以我们需要先卸载mariadb:
然后我们上传解压mysql压缩包:
我们需要按顺序安装rpm包:
然后我们启动数据库即可:
登录数据库,查询临时密码:
然后我们就可以登录数据库进行修改:
至此我们的数据库配置完毕,我们可以到我们的Navicat中添加该数据库:
安装lrzsz
我们最后介绍最简单的安装方式Yum:
- Yum (全称为Yellow dog Updater, Modified)是-一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
- 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包
操作步骤如下:
- 搜索lrzsz安装包
- 使用yum在线下载,直接安装
最后我们来介绍两种项目部署方式
手工项目部署
手工项目部署的全部操作都需要我们手动来执行
下面我们来介绍具体步骤:
- IDEA开发并打包成jar包
- 将jar包上传至服务器
- 启动jar包
- 记得打开防火墙
到这里我们的项目就已经部署完毕了,你可以到页面进行访问查看是否部署成功
但此时我们的项目应该是独占一个屏幕,如果想要其他操作需要另开一个屏幕,此外如果关闭该屏蔽项目也会关闭
- 所以我们需要将项目改为后台执行,并将日志输出至日志文件即可:
这样项目就不会独占屏幕,同时我们就可以在hello.log中查询日志
- 停止服务
我们停止服务的方式采用原始的kill方法
至此手动部署项目介绍完毕
自动项目部署
我们的自动项目部署一般采用Shell脚本进行部署:
- 下载Git,使用Git获取资源
- 下载Maven,进行项目解压等操作
- 将资料中的Shell脚本复制到Linux中即可
至此自动项目部署基本完成
但是我们还需要注意一些内容:
- 授权问题
我们目前的权限是无法启动sh脚本的,因为sh脚本默认情况下是只具有rw(读写)权能
Linux中分为三种权能:读(r),写(w),执行(x)三种全能
调用者分为三类:文件所有者(Owner),用户组(Group),其他用户(Other User)
只有用户的所有者和超级用户Root可以修改或目录的权限
我们常使用Chmod来进行授权给用户相应的权力:
我们把权限主要分为8种:
我们采用ll查询文件时,文件前面的三层rwx就代表着各调用者类型的权限:
- 静态IP问题
我们有时重启虚拟机后,可能会导致IP更换,使原有的程序或连接器无法使用
这时我们就需要设置静态IP来处理这个问题,首先我们需要查询当前该虚拟机使用的子网(编辑+虚拟网络编辑器):
这时我们只需要进入虚拟机中修改响应文件即可:
最后只需要重新启动即可:
该篇内容到这里就结束了,希望能为你带来帮助~