目录
Linux和Os、Mac、Windows一样都是操作系统。关于Linux的一些背景可以去百度看一下https://baike.baidu.com/item/Linux/27050?fr=kg_general
Linux的环境搭建方式有很多,可以直接将Linux安装在物理机上面,可以使用虚拟机搭建Linux,可以使用购买云服务器,然后利用第三方软件来连接云服务器进行Linux操作。
这里推荐大家最好还是购买云服务器,原因方便省事,价格也便宜。使用前面两种方式只能用来学习Linux的操作,若我们想将自己的web项目部署到外网上面能够让别人访问,只能通过云服务器提供的外网IP才可以。我们写的web项目在自己的电脑上,使用的都是内网IP,别人是无法根据你提供的内网IP来获取到的你的程序,因为不同的局域网内内网IP 可以是相同的,所以只有将项目部署在外网上面别人才能访问。
比如查看我这台电脑所在的内网IP和外网IP:
内网IP
外网IP
市面上的云服务器有很多,比如阿里云、腾讯云等。我们直接去网页搜索云服务器就可以了:
这是腾讯云的URL https://cloud.tencent.com/act/campus (直接在百度上搜 "腾讯云校园计划")
可以看到凭学生证就可以享受很大的优惠力度,一年才65元。点击购买的时候他可能弹出让你实名认证的情况,完成实名认证以后再完成学生认证就可以购买了。
然后会弹出让你扫码登录的界面,直接登录进去就可以
登录进去以后找到控制台然后就可以看到你购买的云服务器了:
在这个过程中若遇到一切不会的都可以询问客服,不得不说他们的执行效率很高,还会打电话给你亲自指导。
在上面最重要就是服务器的外网IP,服务器的管理员账号,一般默认是root。另一个是管理员密码,这个 初始密码一般在信箱中,然后一定一定要重置密码,不然后面无法登录Linux。
终端软件是一类工具软件,可以和远程的主机建立网络连接,从而对主机进行一些网络操作。终端软件有很多,下面主要介绍XShell。
直接去搜狗点击下载即可:
安装过程中一路next就行。
然后打开XShell的页面,在窗口中输入
ssh 服务器外网IP地址
输入正确以后它会弹出一个输入框,让你输入你的账号信息:
登录用户名一般都是root
在上面输入你刚才重置的密码
当输入成功后会弹出welcome的字段:
白色表示是一个普通文件
蓝色表示目录
绿色表示可执行文件
红色表示压缩包
[root@VM-8-15-centos /]像这样的东西在Linux中就称为命令提示符
执行不同的命令,命令提示符可能不同。
在命令提示符中@前面是第一部分,这一部分用来显示当前的用户名;
@后面是第二部分,这一部分是主机名,不同的主机,名字不一样;
空格后面是第三部分,这一部分表示当前的目录。/表示是根目录,~表示当前用户的家目录
这里先讲一下,在XShell中粘贴和复制不再使用ctrl+v、ctrl+c,而是使用ctrl+insert(复制)、shift+insert(粘贴)
功能:清屏
功能:罗列出当前目录中,都包含那些文件,这个操作就像Windouws文件资源管理器一样
语法:ls [选项] 目录或文件
示例:
可以看到在输入ls之后,什么都没有。因为是新买的服务器,上面还没有部署文件,所以啥都没有。
ls的选项有很多,只讲重要的:
-a:列出当面目录下面的所有文件,包括以.开头的隐含文件;
-l:列出文件的详细信息,就是以列表的形式来显示文件。ls -l可以被ll替换。
功能:显示当前用户所在的目录
语法:pwd
几个特殊的目录:
功能:改变工作目录,将当前工作目录改变到指定的目录下面
语法:cd 目录名
cd后面的路径可以是绝对路径,也可以是相对路径。
绝对路径就是从盘符开始的路径。在Linux中以/开始的路径就是绝对路径,比如:/home
以./或../表示相对路径,.表示当前路径,..表示当前路径的上级路径。相对路径都有一个基准路径(工作目录),在Linux中,当前所在的位置,就是工作目录,比如:
上面第一个方框里面,当前路径是/,写相对路径的时候,就是以/为基准。第二个方框里面,此时的路径就是/usr,在写相对路径的时候,就是以/usr为基准。
例如现在改变工作目录到/usr/bin,写成先对路径就是:
cd ./bin
cd中的常用命令:
功能:使用tab键来尝试补全命令,加快效率
功能:重写输入(当前目录敲错了,可以用ctrl+c来取消当前的命令)
功能:可以根据参数更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
语法:touch [选项] ...文件...
功能:写文件
向test.txt文件中写入hello:
功能:查看目标文件的内容
语法:cat [选项] [文件]
功能:创建一个目录
语法:mkdir [选项] 目录名
常用选项:
-p表示创建一个路径名称,若此时路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,也就是一次可以建立多级目录。
例如创建一个Test目录:
命令:tree
首先在Test目录下面在创建两个目录,两个目录下面分别创建两个子文件:
功能:删除文件或目录
语法:rm [选项] 目录名称/文件名称
常用选项:
-f:即使文件属性为只读,也会直接删除
-i:删除前逐一确认
-r:删除目录和目录下面的所有文件(-r表示递归)
例如删除test.txt文件和Test目录:
注意:rm -r/这个相当于将电脑的系统删除,所以千万不要尝试 。还有在删除目录的时候一定要仔细观察,比如:若想删除/目录下面的games目录,你如果写成rm -r / games的话就非常危险,因为这会将/目录也删掉了,注意/games之间没有空格。
功能:复制文件或目录
语法:cp [选项] 要复制的文件/目录 要复制到哪里
该功能可以将多个文件或目录复制到目的目录中,目的目录不存在,则会报错。
常见的选项:
-f:表示强行复制文件或目录,不论目的文件或目录是否已经存在
-i:覆盖文件之前先询问用户
-r:递归处理,将指定目录下的文件与子目录一起处理。
例如将上面的FristFile目录复制到SecondFile目录下面:
例如:将FristFile目录复制到ThreeFile目录下面,这里没有ThreeFile目录就会创建该目录:
在FristFile目录下面的text1.txt文件中写入hello linux,并将该文件覆盖到text2.txt文件中:
功能:移动或者重命名文件/目录
语法:mv [选项] 被移动的文件/目录 移动到哪里
常用的选项:
-f:如果目标文件已经存在,不会询问而是直接覆盖
-i:若目标文件已经存在,就会询问是否覆盖
例如先在Test目录下面创建一个FourFile目录,然后将SecondFile目录下面的FristFile 目录移动到FourFile目录下面:
功能:查看Linux中的命令
语法:man [选项] 命令
常用选项:
-k:根据关键字搜索联机帮助
num:只在第num章节中找
man:man表示能够看到man手册中的若干个章节及其含义
例如查看cp命令:
功能:将文件中的内容展示在屏幕上面,但是不是全部展示,看多少展示多少
语法:less [参数] 文件
常用参数:
j或者k或者方向键:表示向上向下滚动屏幕;
-N:显示或隐藏每行的行号;
q:退出
例如在/etc目录下面找一个大文件services来观察:
他这里只展示了屏幕大小的行数,若想要向上向下查看,就需要用到j或者k或者方向键;
功能:查看文件的开头
语法:head [参数] 文件
常见的参数:
-n:显示行数
例如查看/etc/services文件的前10行:
功能:查看文件的末尾
语法:tail [必要的参数] 文件
常见的参数:
-f:循环读取
-n:显示行数
例如/etc/services文件的后10行:
Linux中的vim是一个文本编辑器,既能读也能写,它就像Windows中的记事本,但是它也可以作为一个代码开发工具,它可以支持很多插件。
作为Java程序猿来说,只需要能够使用vim在服务器上进行一个简单的文件操作编辑就行了。
用法:
在/目录下面创建一个TextFile.txt文件:
但是还不能编辑,要进入编辑状态才能编辑
vim打开文件后默认是普通模式,在普通模式下按键表示一些特殊功能的快捷键,例如按下j并不是表示输入字母j,而是表示将光标下移一行。若想编辑文件,需要进入插入模式才能进行文本编辑。
按i表示进入插入模式的命令 :
在插入模式下不能保存文件,需要先回到普通模式,按ESC回到普通模式。然后在普通模式下输入:w,再按回车即可保存文件:
保存以后的文件他下面的字段会发生改变:
同样在插入模式下不能退出,要先回到普通模式后再退出。在普通模式下面输入:q,然后再按回车即可退出:
上面在编辑完文件后,可以直接按:wq同时执行保存和退出
功能:查看当前系统上运行的进程
语法:
ps aux:显示系统上所有的进程
ps aux | grep "进程名":根据进程名查询
ps aux | grep "进程id":根据进程id查询
查询3306进程id:
在使用ps的时候,通常会搭配|,|在Linux中叫做管道,功能是把前一个命令的输出作为后一个命令的输入。grep命令相当于一个字符匹配,类似于记事本中的ctrl+f功能。后面跟上的参数就是要查找的关键字。
功能:查看系统上网络的状态
语法:
netstat -anp:查看系统上的所有的网络连接
netstat -anp | grep “进程名”:根据进程名查询
netstat -anp | grep “端口号”:根据端口号查询
想要部署网站,需要先把依赖的环境搭建好,所需要的环境有:JDK、Tomcat、MySQL
首先,这些环境在Linux中都不存在,需要使用yum命令可以下载环境到Linux中。
yum是Linux中的一种包管理器,这个管理器就好比“应用商店”,可以下载一些app
yum的常用命令:
yum list | grep [软件包关键字]:功能查看软件包列表
yum install [软件包名字]:功能安装软件包
yum remove [软件包名字]:功能卸载软件包
打开jdk软件包列表:yum list | grep jdk
下载java-1.8.0-openjdk-devel.x86_64版本的jdk:yum install java-1.8.0-openjdk-devel.x86_64
验证jdk:javac
一:去Tomcat官网搜索Tomcat8版本的下载链接:
在Linux中下载Tomcat:
上面的wget就是一个下载程序。
二:解压缩
因为下载的是zip压缩包,因此需要解压缩,在Linux上通过unzip命令来解压缩:
unzipe apache-tomcat-8.5.82.zip
三:查看apache-tomcat-8.5.82的目录结构
cd apache-tomcat-8.5.82
四:启动Tomcat
打开bin目录下面的startup.sh
配置可执行权限:chmod +x *.sh
验证:
关于MySQL的下载安装,可以参考一下文章 https://zhuanlan.zhihu.com/p/49046496
部署分成两步:
把写好的web程序,打包成war包,上传到tomcat的webapps目录中
我们之前写的web程序都是在本地运行的,访问的是本地的数据库,现在web程序在云服务器上面运行,访问的就是云服务器的数据库,因此必须保证我们写的代码能够访问云服务器的数据库(IP、端口、用户名、密码都必须正确),云服务器上面的数据库中必须包含必要的表和数据。
部署程序之后,一旦出现问题,就可以去看服务器的日志:在tomcat目录下logs中,按照时间顺序(ll -lrt),最下面的日志文件就是最新的,然后使用vim打开,看一下里面是否有异常。