项目部署-Linux&华为云
1. 课程介绍
- Linux简介; (了解)
- 虚拟机软件; (掌握)
- Centos安装; (掌握)
- Linux常用命令; (掌握)
2. 为什么需要Linux
- 程序开发完成之后需要部署到服务器,这样用户才能通过服务器访问到我们的程序。比如我们的第一个项目;
- 而在当今主流的三大系统(windows、linux、macOS)中,linux常被当成硬件服务器来使用;
3. Linux简介
3.1. 什么是Linux?
- 和windows操作系统类似,Linux是一套性能稳定的多用户网络操作系统;
3.2. Linux的优点
- 源代码开放:任何人都可以获取到Linux源代码探索学习;
- 稳定性和高效性:你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,甚至一两年不重启,因为它继承了Unix卓越的稳定性和高效性;
- 可靠的安全性、稳定性能:其安全性相比其他系统也要安全很多,基本不需要安装杀毒软件;
- 多用户多任务:Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰。当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统;
- 对硬件配置要求低:最低128M内存就可以运行;
3.3. 常见的Linux系统
- Rpm系(使用Red Hat(红帽子)的软件库管理系统):
- Redhat 红帽,收费,技术支持强大,资料完善,系统稳定安全;
- Fedora 被红帽赞助,适合个人使用,免费;
- Centos 被红帽收购,免费,系统稳定安全,很多公司在用;
- Dpkg系 (package manager for Debian):
- Debian 很多公司在用,基于ubuntu(乌班图);
- Ubuntu 基于debian的发行版,比较最受欢迎的免费操作系统,界面强大。比较适合个人用户;
- Pear os 基于Ubuntu,仿macos;
- 国产linux系统:
- 红旗Linux,真正的国产linux系统,2014年公司解散后被收购
3.4. 小结
- Linux是一个操作系统,有很多发行版本;
- 服务器:centos、redhat、Ubuntu等;
4. 虚拟机安装
4.1. 引入
- Linux需要在一台电脑上进行安装,获得一台电脑的方式有很多,比如网上或者实体店购买。当然现在有了更加便宜的解决方案,那就是借助虚拟机软件,使用虚拟机软件可以模拟出计算机,从而可以在上面安装任何的操作系统,大大节约了成本;
4.2. 常见的虚拟机软件
- vmware:虚拟机软件中的1,特点:模拟完善、有商业授权、收费软件(序列号),内存大;
- virtualbox:原来的sun公司,现属于Oracle,免费开源,更新及时,体积小,内存优化,兼容性不是特别好;
- virtual PC 微软的免费产品:仅支持windows系统(微软官方说只支持windows,其实别的系统也可以安装)现已停止更新;
- Hyper:微软最新的虚拟机软件;
4.3. 安装vmware
可能问题:安装完成后不能看到屏幕,即红蜘蛛控屏出现问题;
分析原因:红蜘蛛客户端使用了vmware的虚拟网卡作为网卡了,而该网卡的Ip和教师机不在同一网段;
解决方法:
- 重新启动红蜘蛛客户端;
- 先把虚拟网卡禁用,在启动红蜘蛛客户端;
4.4. vmware常用操作
4.4.1. 全局配置虚拟机(Linux系统)存储位置
- vmware是一个虚拟机软件,在Vmware上可以新建不同的虚拟机,而虚拟机是作为宿主机的一个文件而存在的,默认Vmware是安装在C盘,而虚拟机又安装在vmware目录下面的,也就是说虚拟机是在系统盘(C盘),如果宿主机重新安装系统,会导致C盘被格式化,就会让已经安装好的虚拟机被格式化了。所以需要修改虚拟机存储位置,来规避这个问题;
- 修改虚拟机的默认位置(也可以在安装时修改):管理----->全局设定------>常规;
4.4.2. 虚拟机操作
- 创建虚拟机
- 导入、导出:可以把已经安装好的虚拟机导出,以后需要时再导入
- 备份、还原
注意:初学者配置快照非常重要,如果linux中软件安装失败了,可以恢复到指定的快照版本再来一次,否则删除不干净需要重新安装lunux,非常麻烦;
5. CentOs安装
5.1. CentOs是什么
- CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版(红帽子)之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件;
- CentOS就是一个红帽系列的开源免费的可以用做服务器的Linux系统;
- 此系统需要在wmware(虚拟机软件)中先新建一个虚拟机,然后再虚拟机中安装CentOS;
5.2. 虚拟一台裸机
5.3. 配置虚拟裸机
5.4. Centos7系统安装过程
注意:点击会进入Linux系统(鼠标消失),按住Ctrl+Alt退出(鼠标出现)
- 选择第一个是不检测安装(直接回车):
注意:由于分辨率的原因,下面的继续按钮可能显示不出来,可以虚拟机(M)--设置(前提要先关闭客户机)--显示器中--指定监视器设置--将分辨率调小一点,然后再继续安装;
- 选择-中文:
- 确定软件安装源和软件选择:
- 默认是最小安装的,这里可以选择带有桌面的选择这种模式,选择图示:
- 选择分区 - 自动
- 开启网络配置:
- 之后选择开启以太网,图示:
- 设置root密码
- 创建用户
注意:这里建议还是新建一个自己定义的用户,如果不新建,在进入系统时还是会进入欢迎页面【gnome-initial-setup】新建用户,步骤反而繁琐;
注意:密码设置太简单,会有警告,可以忽略,点两次完成即可忽略警告,继续执行;
- 安装完成后重启之后,第一次我们需要初始设置,如图示:
- 点击未接受许可安装:
- 到该界面,选择同意:
- 点击完成后图示:
- 鼠标下滑,拉动横向滚动条至末尾:
- 点击完成安装等待到图示:
- 点击未列出:到登录页面
- 输入root用户名点击
注意:后续操作建议使用root操作,root拥有最大权限,用其他用户登录,某些操作会受限;
- 下一步输入密码
- 点击登录
5.5. 安装完成后配置
5.5.1. 备份系统
5.5.2. 网络介绍
安装时候可以关闭网络,防止网络更新,当然你们不能上外网可以忽略:
vmware的提供了四种网络接入模式,它们分别是:
- Nat网络地址转换模式(NAT,Network Address Translation)
- 只能单向访问,虚拟机可以通过网络访问到宿主机,宿主机无法通过网络访问到虚拟机;
- 如果linux上的ip地址是自动获取的,是可以通过宿主机访问虚拟机的,但是要保证linux的ip地址网段和宿主机的虚拟网卡的网段一致;
- 只要宿主机可以联网,那么虚拟机就可以联网,因为net方式联网是依靠宿主机的ip;
- Net方式的ip地址是由虚拟网卡分配的;
- Bridged Adapter 桥接模式
- 可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问;
- 桥接模式的ip地址是由路由器分配的;如果宿主机能联网,虚拟机不一定能联网,如果宿主机不能联网,虚拟机也可以联网;
- Internal 内部网络模式
- Host-only Adapter 主机模式
注:宿主机,就是提供给虚拟机环境的主机。这里指的就是我们的windows系统主机;
6. CentOS软件安装
6.1. 解压源码包文件安装
特点:这种安装方式解压即安装,有的软件需要配置下环境变量(例如JDK的安装需要配置环境变量),卸载时只需要将解压包删除即可;
命令:tar -zxvf 压缩包名(后缀为.tar.gz)
例如:将jdk的tar.gz包解压到指定文件夹:
6.2. RPM包安装
特点:这种安装方式,软件包会自动配置jdk的环境变量,不用手动配置。也是最方便快捷的一种方式
命令:
rpm -qa 软件名称 :查询软件是否被安装
rpm -ivh 软件包路径 需要安装的包文件 : rpm –ivh xxx.rpm
rpm -e --nodeps 需要卸载的软件包 : 卸载软件(--nodeps 忽略依赖关系并继续操作)
rpm -qa | grep 查询名称 :利用管道模糊查询软件安装情况:
例如: rpm -qa | grep java 检测系统自带的jdk安装包
参数说明:rpm [选项] [参数]
-a:查询所有软件包
-e:删除指定的软件包
-f<文件>:查询拥有指定文件的套件;
-h或--hash:显示进度信息 ,以#显示进度
-i:显示包的详细信息
-i<软件包>或--install<软件包>:安装指定的软件包
-l:显示包的文件列表
-p:查询指定的RPM包
-q:使用询问模式
-U<软件包>或--upgrade<软件包>:升级指定的程序包
-v:显示指令执行详细过程
-vv:详细显示指令执行过程,便于排错
例子:
注:rpm命令 功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。
ivh都是rpm命令的参数,可以从rpm --help里找到说明。 意思是安装显示安装进度--install--verbose--hash
-i:表示安装(install)
-v:显示详细过程
-h: 以#显示进度
6.3. yum在线安装
特点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题;
缺点:安装过程中,rpm包依赖性太强;
yum命令:
- 查询:
- yumlist --查询所有可用软件包列表
- yum search 关键字 --搜索服务器上所有和关键字相关的包
- 安装:
- yum -y install 包名 (-y 自动回答yes)
- yum安装只写包名即可! eg:yum -y install gcc --c语言编译器
- 升级/卸载
- 升级:yum -y update 包名
- 卸载:yum -y remove 包名
7. 命令执行方式
7.1. 引入
- Linux最开始是没有图形界面的,都是通过命令操作。后面为了方便操作一些版本的操作系统把常用的操作封装图形操作,这样我们可以使用图形界面操作Linux。但并且不是所有的功能都有图形界面的,有的操作必须得命令完成。并且一般服务器都是不安装图形界面;
- Linux操作命令分两种:本地终端执行和远程终端执行
7.2. 本地终端
类似于windows下面的cmd;
7.2.1. 打开本地终端-必须在电脑旁边
在桌面右键 -- 【代开终端(E)】 -- 打开终端开始操作 -- 可以在终端右键【配置文件首选项(P)】 -- 可以设置配色方案:
7.2.2. 简单使用
- 查看IP:Linux(ifconfig)、windows(ipconfig)
- 结束当前执行命令:ctrl +C
- 清屏:clear
- 查看命令的使用方法:help
注:如果Linux处理休眠状态:按下回车键和ESC键或者EXIT重新登录
7.3. 远程访问Linux
7.3.1. 引入
- 虽然可以通过本地终端,访问linux,但是有的时候服务器不在咱们身边。需要远程连接并操作。
- 要想远程访问Linux,需要通过SSH(英文全称Secure Shell,是一种安全的协议),也是用于远程登入的。既然是远处登入工具,那么就需要有一台主机作为客户端,另一台主机作为服务器端。且在客户端上面必须要有能够远处登入的软件工具才行;
即:服务端有ssh的支持,客户端需要有连接linux的客户端软件;
7.3.2. SSH服务端的验证
- 客户端远程访问服务端必须通过SSH服务(安全协议)才行;
- CentOS中默认安装了SSH服务,可以通过以下指令验证:(在本地终端执行)
[root@localhost ~]# ps -ef|grep ssh
|
提示:看到有进程号6294说明ssh服务正在运行;
思考:如要在windows中连接linux,使用什么软件呢?
7.3.3. SSH客户端的安装
- 常见的SSH客户端软件有SecureCRT、Xshell、Putty等,一般用于Windows客户端计算机;
- 远程终端软件:
- 远程登入:xshell、putty等(远程连接,类似windows远程桌面)
- 文件上传、下载:xftp、winscp等(文件上传)
- xshell和xftp都是xmanager的组件,所以只需要安装xmanager就ok就能搞定了。当然有的公司不一定用到这些工具;
- putty远程连接和winscp远程上传和下载:
- Putty安装:绿色版,不需要安装,直接解压缩就ok
- Winscp安装:傻瓜式安装,直接安装就ok
putty使用:
Winscp使用:
- xshell远程连接和xftp远程上传和下载:和putty和winscp大同小异(略)
注意:在windows中安装完xmanager之后,xshell和xftp都会有的;
注:xshell终端中文乱码问题解决:
注:在外观中可以选择大小;
7.3.4. CentOS防火墙操作
- 远程访问linux时,需要关闭防火墙,否则访问linux上的tomcat,mysql等服务可能会失败;
查看防火墙状态: systemctl status firewalld.service(绿的running表示防火墙开启)
执行关闭命令(立即关闭 - 立即生效): systemctl stop firewalld.service
再次执行查看防火墙命令:systemctl status firewalld.service
执行开机禁用防火墙自启命令(永久关闭 - 重启生效): systemctl disable firewalld.service
开启防火墙:systemctl start firewalld.service
8. Linux命令
8.1. 常用命令
- 查看当前所在目录(用处:拷贝目录到一些配置文件):pwd
- 切换目录(需要到特定的目录执行命令):cd 目录名
- 文件名和目录名称补全:Tab
- 查看目录文件信息:
- ls //列出文件信息
- ls -l //以详细信息方式列出文件信息
- ls –a //列出所有文件和文件夹,包含隐藏文件
- ls -al //以详细信息方式列出所有文件信息,包含隐藏文件
- ls 目录名 //查看该目录的文件信息
- ll //等于ls -l
- 查看当前用户:
- whoami //查看当前操作用户
- who am i //查看当前登录用户(有可能是有多个的)的信息
- 查找命令:
- 最强大的搜索命令:find 查找各种文件的命令
- 在文件资料中查找文件:locate
- 搜索命令所在的目录及别名信息:which
- 搜索命令所在的目录及帮助文档路径:whereis
- 切换用户:
- su 用户名:切换用户
- su root:普通用户切到root用户,需要输入密码;
- su itsource:切换到itsource的用户
- exit //注销当前用户,返回前一用户
8.2. 文件相关命令
- 在学习文件相关命令之前,我们先来看一Linux的文件系统;
8.2.1. 文件系统
- Linux有个基本思想:一切都是文件。就是系统中的所有都可以归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。而这些文件是以一定的结构组织的;
- linux系统的目录结构是一个以/(根目录)为根节点的树形结构:
- 系统目录介绍
/bin 存放二进制可执行文件(命令),所有用户都可以使用
/sbin 存放二进制可执行文件,只有root用户可以使用
/boot 系统启动需要的核心文件
/dev 设备文件
/home 用户的主目录,每一个非root用户都会在home有一个为用户名的文件夹
/lib 系统共享动态链接库
/mnt 挂载目录,通常挂载到该目录下
/etc 存放系统配置文件目录
/etc/passswd 用户信息文件
/etc/group 用户组信息文件
/var 用来存放常态性变动的文件,经常发生变化的文件。比如缓存、登录文件,mysql数据库文件等
/tmp 临时目录,用来存放临时文件
/proc 虚拟目录,是内存的映射,可以访问到内存中的系统信息
/sys 和proc类似,存放和内核相关的信息和数据
/root root用户的主目录
/usr 存放应用程序和文件(类似于windows的system32、program files目录)
/usr/local/src 所有应用程序包都放这儿
/usr/local/ 所有的应用程序都安装在这个目录。
/usr/bin、/usr/sbin:这是对/bin、/sbin的一个补充
注:
/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32
/usr/local:用户级的程序目录,可以理解为C:/Program Files/,用户自己编译的软件默认会安装到这个目录下;
/opt:用户级的程序目录,可以理解为D:/Program Files/,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可
- 一般跟系统有关的程序或软件或需要进行配置的程序安装到/usr/local中(jdk,tomcat等),安装包可以放在/usr/local/src中;
- 一般第三方与系统不是很挂钩的软件放在/opt中,安装包也可以放在这里;
8.2.2. 目录相关命令
- 相对路径和绝对路径:
- 绝对路径:以/(根目录)开头的路径(例如:/home、/etc/passwd)
- 相对路径:以./开头的路径,很多时候./可以省略(指相对于当前路径):
- ./表示当前目录(可以省略)./usr/loccal/=usr/local
- ../表示上一级目录
注:路径的最后一个斜杠可以省略
- 创建目录:
- mkdir 目录名 //创建一个目录
- mkdir -p 目录1/目录2/目录3 //递归创建目录
- 删除目录:rm -rf 路径 //可以删除文件和目录 -r(递归) -f(暴力)
- 移动目录/修改文件名:mv dir1 dir2 如果dir2不存在,将dir1目录名修改为dir2(重命名),否则将dir1目录移动到dir2中;
- 复制目录:
- cp -rf dir1 dir2 //将dir1复制一份到dir2目录(包含目录内容一起复制)
- cp -rf dir1/* dir2 //直接复制内容(非常重要)
- 打包和解压:
- tar -czvf tom.tar.gz tom -- 打包
- tar -xzvf tom.tar.gz-C /usr/local -- 解包
- 参数:
-c 创建一个新的tar文件 -t 参看压缩文件内容
-v 显示运行过程信息 -j 调用bzip2压缩命令执行压缩
-f 指定文件名称 -C 指定需要解压到的目录
-z 调用gzip压缩命令执行压缩
-x 解开tar文件
8.2.3. 文件相关命令
- 创建文件:touch 文件路径 //创建一个空白文件
- 查看文件内容:cat //将文件内容直接显示出来
- 打开文件、保存、关闭文件(vi命令模式下使用)
vim
vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器,如果文件已修改请使用下面的命令 ,q(quit)
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件
注意:按i(insert)进入编辑,按Ctrl + C 退出编辑,退出编辑输入:wq退出编辑器
小结:
我们学习了一些常用命令和文件相关命令,其实Linux还有有很多命令,不用死记硬背。会使用一些常用的就ok,用到时查看命令文档。或者网上搜索;
注意:在linux中Ctrl+s表示锁住屏幕,按住Ctrl+q解除锁定;
9. 课程总结
9.1. 重点
- Linux安装;
- Linux命令执行方式;
- Linux命令;
9.2. 难点
- Linux安装;
- Linux命令执行方式;
- Linux命令;
9.3. 如何掌握
- 查看文档;
- 多写多练,不要光看;
9.4. 排错技巧
10. 常见问题
10.1. 虚拟机卸载
注意:虚拟机卸载需要通过控制面板卸载,建议不要装C盘,卸载时也比较方便;如果卸载不干净,重新装的时候会出现问题;
其他问题:参考resources中的linux安装问题文件夹,里面有解决方案:
问题1:Xshell不能连上linux系统
问题2:
问题3:在安装vm10的时候安装时出现需要更新,或版本不兼容时,可以安装vm15
11. 课后练习
- Linux安装;
- Linux命令;
12. 面试题
- Linux常见命令:使用到的命令(例如:创建目录,磁盘使用情况,编辑文件,切换目录等15个)
13. 扩展知识或课外阅读推荐(可选)
13.1. 扩展知识
13.2. 课外阅读
A053_项目部署_Linux介绍_CentOS
原文:https://www.cnblogs.com/mingruifeng/p/14907574.html