Linux基础命令《中》与ngix的4种安装方式

2020-07-08 00:00:00 命令 查看 安装 进程 端口

因为Linux命令(中)篇中所包含的命令不像上篇那么容易展示,所以这章还额外讲解安装nginx(一个web和代理软件)。

题外话:

大家应该经常开玩笑的说,程序员面向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开始。

首先,安装一个软件,或者开发的时候使用一个框架,后台框架也好,前端框架也好,获取资料全的地方就属官方网站中的文档(Documents)了。哦,对了,一般网站几乎都是英文的,当然也有国人翻译成对应的中文网站的,所以做运维或者做开发都需要把英文学习好,这样遇到问题才能脱离Baidu,去Google,去Stack Overflow,去查官网文档。

安装nginx有上面的4中方式,我们会逐一的讲解。

1. yum安装

1.1 默认的Yum源中是不包含Nginx的,所以我们要下载安装一个包含nginx源的地址。

rpm -ivh nginx.org/packages/cent

yum的仓库是在 /etc/yum.repos.d/文件夹下,可以到这个文件夹下检查是否加入成功。

如图 /etc/yum.repos.d/下存放的是所有的yum源,都是以.repo结尾的。Repo的内容格式这里就先不做解释了。

1.2 安装成功后,使用 yum search nginx来搜索一下看现在是否有nginx源,当然也可以使用 yum list | grep nginx,当然这里的 |(竖线)和 grep命名还都没有讲解,那就穿插着讲一下。

可以看到,yum搜索了我们刚才下载的yum源.

也可以使用 yum list | grep nginx 来查看,(如果你不懂这些基础的话,也只能看到网上说的如上用 yum search nginx来搜索的方法,懂得话就可以用这种管道加 grep的方法)

似乎这种方法看到的更加清爽和直观。

先来讲grep,grep在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 -y install nginx

那么想看yum安装的nginx都安装了哪些文件到哪些地方去,可以用下面命令(当然你安装的任何软件都可以用此方法去查看,这里指的是用yum和rpm方法安装,用yum安装的却使用rpm命令能查看,那是不是说明其实yum安装底层就是下载下来rpm包,用rpm包下载的呢) rpm -ql nginx

可以看到在 /etc 和 /usr 目录下创建文件,命令和静态页面。

/etc/nginx/nginx.conf 为nginx的配置文件

/usr/sbin/nginx 为nginx的命令

/usr/share/nginx/html/{50x.html, index.html} 分别为50x页面和index首页

启动nginx,使用 systemctl start nginx

启用以后我们要查看是否真正启动,进程在不在,端口在不在,如上 ps -ef 这个命令是查看所有运行的进程,grep nginx呢,就是grep一下nginx关键字,看下有没有和nginx相关的进程。

ss -tnlp 这个命令是用来查看端口的,即所有在本机监听的端口,这里我grep 80。Nginx的端口是80. 其实grep 80不准确的,因为我的服务器目前就启动了一个80端口,要是我启动了8080端口,或者那个进程的pid里面包含80的数字也会一并grep出来的。正确的方式是 ps -ef |grep nginx 得到进程的PID,如上nginx的主进程是 18293,其实可以看到nginx开了2个进程,一个是18293一个是18294,而18923是18294的父进程,18293是master process,18294是worker process,得到进程的PID以后,再ss -tnlp | grep PID 就可以只查看该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。 卸载命令 yum remove nginx

2. rpm包安装

rpm包安装,首先要先去下载rpm包,nginx的rpm包,随手百度一下就可以出来。

nginx.org/packages/rhel 这个是rpm包的目录,是红帽7的。

如上在你想要安装的版本上,鼠标右键复制链接地址。我们以1.16.1为例、

复制好以后,进入到服务器中使用 wget 命令去下载。

如图:系统默认是没有wget命令的,提示 command not found.

我们使用 yum -y install wget 安装wget命令。

然后 wget nginx.org/packages/rhel 下载rpm包。

后下载完成,使用 “ll” 查看下载完成的rpm包。

下载完成后,使用 rpm -ivh nginx-1.16.1-1.el7.ngx.x86_64.rpm (大家不要纠结ivh命令什么意思,记住组合就行了)

安装成功。同yum安装,使用 rpm -ql nginx来查看。

可以看到,同yum安装一样,生成的文件都一样。

继续使用 systemctl start nginx来启动,以及 ip + 端口(我们用的iP是192.168.1.30,则访问192.168.1.30:80访问)

同样,我们使用源码来安装,先删除rpm安装的nginx。命令为:rpm -e --nodeps nginx

卸载后我们再用 rpm -ql nginx 去查看安装的nginx的文件,发现已经被卸载了,所以卸载成功了

2. 源码安装

3.1进入官网下载对应版本的源码包

同样在该链接上右键,复制链接地址,然后使用wget去下载。

解压 tar xf nginx-1.17.3.tar.gz,解压后就在当前文件夹下。

安装nginx的依赖库

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

编译安装

进入nginx源码包目录,执行 ./configure --prefix=/usr/local/ --sbin-path=/usr/bin/nginx

--prefix为软件安装目录,--sbin-path 可执行文件安装路径

configure生成编译的makeFile文件,用于编译安装

安装的时候提示没有找到编译器,是因为忘记执行上面的nginx依赖库了。成功安装依赖库后继续执行。

编译安装,使用命令 make && make install

只需要坐等安装好就可以了、

启动nginx

执行上面安装可执行命令的路径 /usr/bin/nginx,使用 ps -ef | grep nginx 查看已经启动起来了。

也是同样访问 ip + 端口查看

突然注意到好像我们系统的时间和正常的时间不太一样。

当前时间是 11:47 而服务器是 23:45 ,看起来时区不一样

服务器上查看时间命令是 date

修改时区,同步标准时间

先调整时区。再同步时间。

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ntpdate us.pool.ntp.org

执行的过程中,发现没有安装 ntpdate ,随手就是一个yum安装,后date查看时间,时间也正常了。

2. Docker安装

Docker安装呢,首先就得先安装docker程序了,那假如我们是菜鸟的话,nginx都不会安装呢,还怎么安装docker,那岂不是死循环了,所以我上面先说了三种安装软件的方式,所以就不怕不会安装docker了。

我们选择一个简单的方式去安装docker。那就是yum安装了,yum安装首先要确定一下目前的yum源中是否有docker,如果没有的话,还需要自己去找一个能够安装docker的yum源。

首先不管我们的yum源有没有,先查询一下,还是上面教的两种查询yum源是否存在软件的方式,你任选其一即可。

yum search docker 和 yum list | grep docker 都可以搜的到。

那下来的事情就简单了。 yum -y install docker

安装完成以后,使用 systemctl start docker 启动docker, 使用 ps -ef | grep docker 查看

本篇文章只是简单的介绍使用docker去运行nginx,这个篇幅肯定是不能专门去讲docker的,不过后面会讲到。

那首先去搜一下docker仓库里面是否有nginx这个镜像,没有的话,还需要自己创建,不过对于nginx这种常用的东西那自然少不了。 使用 docker search nginx 来搜索。

可以看到各式各样的nginx镜像真不少。

那我们下载一个nginx的 stars多的。

我们使用 docker pull nginx 把远程镜像下载到本地

我们可以用 docker image 查看本地的镜像有没有我们刚下载下来的nginx

因为上面源码安装的时候我们没有卸载它,那个这次我们使用docker部署nginx的时候,我们换一个端口去监听,让他们同时存在。那我们就用 81端口。

在docker上面部署nginx命令:

docker run -p 81:80 -d docker.io/nginx

docker run 就是启动一个容器

-p 81:80 就是讲80端口映射到宿主机(我们这台安装docker的本机)的81端口

-d docker.io/nginx 使用我们我们上面下载下来的nginx镜像。

查看运行中的docker镜像,命令 docker ps

打开浏览器: 192.168.1.30:81 验证

到这里4种安装方式全部都讲完了,以后安装软件的时候就知道了自己想用哪一种安装了。

总结:

该篇文章使用到的命令:

rpm 安装和查看安装信息

yum yum安装命令

grep 搜索

systemctl 启动系统程序

wget 下载

tar 压缩解压命令

ntpdate 时间同步命令

docker docker的命令


喜欢小编的可关注公众号:程序猿面试大全

相关文章