由于Linux命令(中)篇中所包含的命令不像下篇这么容易展示,所以这章还额外讲解安装nginx(一个web和代理软件)。
正题:
你们应当常常开玩笑的说linux教程,程序员面向google面向浏览器编程,这个我认为并不是哪些问题,由于这样可以防止自己造轮子,可以站在巨人的大腿上,更推动速的完成公司的开发需求以及快速排错解决问题。
每位行业都是须要一定的基础的,Linux方面也是,就好比你要学小学,初中甚至学院物理,那小时候学习的加减乘除就是基础,对于Linux运维方面,也有其基础的东西。就拿最简单的安装软件来说的,windows上的想必你们再熟悉不过了,就是简答的下一步下一步完成...再有就是红色版本的软件,通常解压开来就可以直接运行。那Linux上一般有几种安装的方法呢,通常有4种,1.yum安装(centos里面是yum,Ubuntu上则是apt-get)2.RPM安装3.源码编译4.docker安装(kubernetes简称k8s实际上也是用的docker镜像)(安装难度排行不分前后)。
若果你没有接触过也不晓得Linux下都有哪几种安装方法,领导交给你一个任务,让你去给服务器安装一个nginx,这个时侯你的第一反应,就是打开浏览器去搜索"linux安装nginx",之后才会看见各类各样的安装方法,运气好的话,找到一个很详尽的文章,一气呵成安装好,要是运气不佳的话,可能到一半还会卡主(不一定就是文章写的有问题,自身可能linux基础薄弱好多东西都不理解),之后认为是他人文章写的不对,之后接着用下一篇,直至安装成功,而且也有可能安装不成功。所以我想抒发的是Linux只要打好基础,就一点都不难,也一点都不可怕,你们感觉可怕就是面对命令行界面好多时侯就是觉得无可适从,脱离了windows的点点点。
屁话不多说了,这么就开始本节的Linux命令(下)以及nginx的安装。
那我们就从安装nginx开始。
首先命令行安装linux,安装一个软件,或则开发的时侯使用一个框架,后台框架也好,后端框架也好,获取资料最全的地方就属官方网站中的文档(Documents)了。哦,对了,通常网站几乎都是英语的,其实也有国人翻译成对应的英文网站的,所以做运维或则做开发都须要把英语学习好,这样碰到问题能够脱离Baidu,去Google,去StackOverflow,去查官网文档。
安装nginx有前面的4中方法,我们会逐一的讲解。
1.yum安装
1.1默认的Yum源中是不包含Nginx的,所以我们要下载安装一个包含nginx源的地址。
rpm-ivh/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum的库房是在/etc/yum.repos.d/文件夹下,可以到这个文件夹下检测是否加入成功。
如图/etc/yum.repos.d/下储存的是所有的yum源,都是以.repo结尾的。Repo的内容格式这儿就先不做解释了。
1.2安装成功后,使用yumsearchnginx来搜索一下看如今是否有nginx源,其实也可以使用yumlist|grepnginx,其实这儿的|(竖线)和grep命名还都没有讲解,那就穿插着讲一下。
可以看见,yum搜索了我们刚刚下载的yum源.
也可以使用yumlist|grepnginx来查看,(假如你不懂这种基础的话,也只能看见网上说的如上用yumsearchnginx来搜索的方式,懂得话就可以用这些管线加grep的方式)
虽然这些方式看见的愈发清新和直观。
先来讲grep,grep在Linux中拿来做文本搜索,例如在---------我们要是去服务器中查看一下程序执行日志的
“|”在Linux上面叫管线命令行安装linux,是拿来联接2条命名的,管线上面命名的执行结果作为管线前面命令的输入。举个反例,我们之前在”/root/movie/20190825/girls”目录下有个”qiaotank.txt”文件(不晓得的可以瞧瞧上一篇文章),我们想查看这个文件中是否包含“hello”这个字符,这么我们可以用grep"hello"/root/movie/20190825/girls/qiaotank.txt
可以看见高亮了搜索下来的”hello”,这么可以看见我们早已步入到了我搜索的文件的目录下,那是否可以不用输入这么长的绝对路径(“/root/movie/20190825/girls/qiaotank.txt”),答案肯定是可以的,我们可以步入到这个目录后使用相对路径,则查询命令使用相对路径查询为:”grep"hello"./qiaotank.txt”,要想这样使用你必须保证你就在这个”/root/movie/20190825/girls/”目录下,不晓得自己在那个目录可以使用pwd命令来查看。
”grep"hello"./qiaotank.txt”中的”./”表示当前目录,“../”表示上一级目录。
点号开头的文件是隐藏文件,想见到这2个目录,可以使用ls-la命令查看,我们就用”/root/movie/20190825/girls/”这个目录来查看:
这么yum源中有了nginx,那安装就使用yum-yinstallnginx
这么想看yum安装的nginx都安装了什么文件到什么地方去,可以用下边命令(其实你安装的任何软件都可以用此方式去查看,这儿指的是用yum和rpm方式安装,用yum安装的却使用rpm命令能查看,那是不是说明虽然yum安装底层就是下载出来rpm包,用rpm包下载的呢)rpm-qlnginx
可以看见在/etc和/usr目录下创建文件,命令和静态页面。
/etc/nginx/nginx.conf为nginx的配置文件
/usr/sbin/nginx为nginx的命令
/usr/share/nginx/html/{50x.html,index.html}分别为50x页面和index首页
启动nginx,使用systemctlstartnginx
启用之后我们要查看是否真正启动,进程在不在,端口在不在,如上ps-ef这个命令是查看所有运行的进程,grepnginx呢,就是grep一下nginx关键字,看下有没有和nginx相关的进程。
ss-tnlp这个命令是拿来查看端口的,即所有在本机窃听的端口,这儿我grep80。Nginx的端口是80.虽然grep80不确切的,由于我的服务器目前就启动了一个80端口,要是我启动了8080端口,或则那种进程的pid上面包含80的数字也会一并grep下来的。正确的方法是ps-ef|grepnginx得到进程的PID,如上nginx的主进程是18293,虽然可以看见nginx开了2个进程,一个是18293一个是18294,而18923是18294的父进程,18293是masterprocess,18294是workerprocess,得到进程的PID之后,再ss-tnlp|grepPID就可以只查看该pid对应的进程了,并且这个也不是百分之百就只会grep下来该进程。(比如nginx的进程pid是1534,而tomcat的pid是15342,那也是会一并把两个都grep下来,然而这个并不大碍,由于我们可以从grep下来的信息中一眼能看的下来那个是我们想要grep得到的)
启动之后,打开浏览器输入ip+端标语:192.168.1.30:80访问nginx的首页,也就是/usr/share/nginx/html/index.html页面。
可以看见,和页面显示内容一模一样,那就没错了。
这篇文章不会讲解nginx的配置,优化,以及代理之类的东西,会在之后的文章中专门去讲关于nginx的东西。
如上就是我们用yum的方法,成功安装了nginx,这么我们接出来使用rpm包安装。
rpm包安装之前,我们先卸载掉yum安装的nginx。卸载命令yumremovenginx
2.rpm包安装
rpm包安装,首先要先去下载rpm包,nginx的rpm包,随手百度一下就可以下来。
/packages/rhel/7/x86_64/RPMS/这个是rpm包的目录,是红帽7的。
如上在你想要安装的版本上,滑鼠右键复制链接地址。我们以1.16.1为例、
复制好之后,步入到服务器中使用wget命令去下载。
如图:系统默认是没有wget命令的,提示commandnotfound.
我们使用yum-yinstallwget安装wget命令。
之后wget/packages/rhel/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm下载rpm包。
最后下载完成,使用“ll”查看下载完成的rpm包。
下载完成后,使用rpm-ivhnginx-1.16.1-1.el7.ngx.x86_64.rpm(你们不要苦恼ivh命令哪些意思,记住组合就行了)
安装成功。同yum安装,使用rpm-qlnginx来查看。
可以看见,同yum安装一样,生成的文件都一样。
继续使用systemctlstartnginx来启动,以及ip+端口(我们用的iP是192.168.1.30,则访问192.168.1.30:80访问)
同样,我们使用源码来安装,先删掉rpm安装的nginx。命令为:rpm-e--nodepsnginx
卸载后我们再用rpm-qlnginx去查看安装的nginx的文件,发觉早已被卸载了,所以卸载成功了
2.源码安装
3.1步入官网下载对应版本的源码包
同样在该链接上右键,复制链接地址,之后使用wget去下载。
解压tarxfnginx-1.17.3.tar.gz,解压后就在当前文件夹下。
安装nginx的依赖库
yum-yinstallgccpcrepcre-develzlibzlib-developensslopenssl-devel
编译安装
步入nginx源码包目录,执行./configure--prefix=/usr/local/--sbin-path=/usr/bin/nginx
--prefix为软件安装目录,--sbin-path可执行文件安装路径
configure生成编译的makeFile文件,用于编译安装
安装的时侯提示没有找到编译器,是由于忘掉执行前面的nginx依赖库了。成功安装依赖库后继续执行。
编译安装,使用命令make&&makeinstall
只须要坐等安装好就可以了、
启动nginx
执行前面安装可执行命令的路径/usr/bin/nginx,使用ps-ef|grepnginx查看早已启动上去了。
也是同样访问ip+端口查看
忽然注意到似乎我们系统的时间和正常的时间不太一样。
当前时间是11:47而服务器是23:45,看上去时区不一样
服务器上查看时间命令是date
更改时区,同步标准时间
先调整时区。再同步时间。
cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
ntpdate
执行的过程中,发觉没有安装ntpdate,随手就是一个yum安装,最后date查看时间,时间也正常了。
2.Docker安装
Docker安装呢,首先就得先安装docker程序了,那如果我们是新手的话,nginx都不会安装呢,还如何安装docker,那岂不是死循环了,所以我前面先说了三种安装软件的形式,所以就不怕不会安装docker了。
我们选择一个简单的方法去安装docker。那就是yum安装了,yum安装首先要确定一下目前的yum源中是否有docker,假如没有的话linux,还须要自己去找一个才能安装docker的yum源。
首先不管我们的yum源有没有,先查询一下,还是里面教的两种查询yum源是否存在软件的形式,你任选其三即可。
yumsearchdocker和yumlist|grepdocker都可以搜的到。
那出来的事情就简单了。yum-yinstalldocker
安装完成之后,使用systemctlstartdocker启动docker,使用ps-ef|grepdocker查看
本篇文章只是简单的介绍使用docker去运行nginx,这个篇幅肯定是不能专门去讲docker的,不过前面会提到。
那首先去搜一下docker库房上面是否有nginx这个镜像,没有的话,还须要自己创建,不过对于nginx这些常用的东西那自然少不了。使用dockersearchnginx来搜索。
可以见到各色各样的nginx镜像真不少。
那我们下载一个nginx的stars最多的。
我们使用dockerpullnginx把远程镜像下载到本地
我们可以用dockerimage查看本地的镜像有没有我们刚下载出来的nginx
由于里面源码安装的时侯我们没有卸载它,那种此次我们使用docker布署nginx的时侯,我们换一个端口去窃听,让她们同时存在。那我们就用81端口。
在docker前面布署nginx命令:
dockerrun-p81:80-ddocker.io/nginx
dockerrun就是启动一个容器
-p81:80就是讲80端口映射到宿主机(我们这台安装docker的本机)的81端口
-ddocker.io/nginx使用我们我们里面下载出来的nginx镜像。
查看运行中的docker镜像,命令dockerps
打开浏览器:192.168.1.30:81验证
到这儿4种安装方法全部都讲完了,之后安装软件的时侯就晓得了自己想用哪一种安装了。
总结:
该篇文章使用到的命令:
rpm安装和查看安装信息
yumyum安装命令
grep搜索
systemctl启动系统程序
wget下载
tar压缩解压命令
ntpdate时间同步命令
dockerdocker的命令