Linux基础与Nginx基础

linux基础命令
    对文件夹(目录)操作
    对文件操作
    文件压缩相关命令
    文件权限
    补充其他命令

linux网络

nginx

一.Linux基础

(0)Linux的发展历程

1968 ,MITBell实验室、美国通用电气有限公司走到了一起,致力于开发Multics项目。到后期由于开发进度不是很
好,MITBell实验室相继离开这个项目的开发,最终导致项目搁浅。
 
1970年,Bell实验室中有一个小伙(Ken Thompson )开发了一款游戏(travel space:遨游太空),因为两个实验室
相继离开项目开发,导致他开发出来的游戏没办法运行,所以在Multics项目上重写开发,诞生了Unix
 
1973年,因为汇编语言有一个最大的局限性:对于计算机硬件过于依赖导致移植性不好,所以创造了大名鼎鼎的 C
言,并重写了Unix
 
1975年,Bell实验室允许大学使用Unix操作系统用于教学作用,而不允许用于商业用途。
 
Linux是基于Unix的开源免费的操作系统
 
Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各
种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。

分类:

根据市场需求不同,分为两个方向 :
1. 图形化界面版:注重用户体验,但目前成熟度不够。
2. 服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,是我们架设服务器的最佳选择,类似于
DOS界面
 
根据原生程度不同,分为两个方向
1. 内核版本:在Linux之父领导下的内核小组开发维护的系统内核的版本号。
2. 发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。

 

(1)远程连接工具的使用

在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等

我们使用SecureCRT客户端工具进行连接Linux操作系统,该工具是免费的图形化界面和命令行窗口集一身客户端工具。

客户端连接工具

查看ip地址:

 

(2)Linux目录结构:

* root目录:超级管理员所在的目录,用~表示

* home目录:普通用户所在的目录

* usr目录:安装用户文件所在的目录

* etc目录:Linux系统管理和配置文件所在的目录

 

(3)文件夹(目录)操作命令

 1)查看:

* 语法
		ls [参数]

* 参数解释
		-l  以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
		-a  以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录
		
* 命令
        cd /		进入根目录
        ls      	以精简形式查询当前目录下的内容
        ls -l     	以详细形式查询当前目录下的内容,d表示目录,-表示文件;此命令可以简写为ll
        ls -a    	以精简形式查询当前目录下的隐藏内容
        ls -la    	以详细形式查询当前目录下的隐藏内容,la和al都可
        clear    	清屏

2)跳转

* 语法
		cd 目录
			绝对路径
				/xxx/xxx/xxx
			相对路径
				./ 当前目录
				../ 上级目录
		
* 命令
			cd	~	当前用户目录
            cd	/	根目录
            cd 	-	上一次访问的目录
            cd	..	上一级目录
            cd		当前用户目录

3)创建

* 语法
		mkdir [参数] 目录

* 参数解释
		-p 一次性创建多级目录,如果目录存在不会覆盖
		
* 命令
        cd /			 定位于根目录
        mkdir aaa        在当前目录下创建aaa目录,相对路径
        mkdir ./bbb      在当前目录下创建bbb目录,相对路径
        mkdir /ccc       在根目录下创建ccc目录,绝对路径
        mkdir /ddd/eee	 在根目录下创建ddd目录和eee子目录

4)搜索

* 语法
		find 目录 -name '条件'
		
* 命令
        cd /
        find / -name  'b'      查询根目录下(包括子目录),名为b的目录和文件
        find / -name  'b*'     查询根目录下(包括子目录),名以b开头的目录和文件
        在Linux中,按ctrl+c     强行终止程序执行

5)修改:用来为文件或目录改名、或将文件或目录移入其它位置。

* 语法
		mv 	旧目录	 新目录

* 命令
		cd /
		mv aaa aaaa     将根目录下的aaa目录修改为aaaa

6)剪切(同样支持重命名)

* 语法
		mv 	原目录位置 	新目录的位置

* 命令
		cd /					
		mv  /aaaa /bbb       将根目录下的aaaa目录,移动到bbb目录下,在bbb目录下也叫aaaa目录
		mv  bbb  usr/bbbb    将当前目录下的bbb目录,移动到usr目录下,且修改名为bbbb	

7)复制(支持改名)

* 语法
		cp   -r	目录   目录的新位置
		
* 参数解释
		-r  递归复制,将指定目录下的文件与子目录一并处理
		
* 命令
		cd /					 定位于/目录
        cp -r  /aaa   /bbb       将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下名字为aaa
        cp -r  /aaa   /bbb/aaaa  将/目录下的aaa目录复制到/bbb目录下,且修改名为aaaa

 

8)删除

* 语法
		rmdir   [参数]	目录
		
* 参数解释
		-p 删除目录及其父目录
		
* 命令
		cd  /		 
		rmdir bbb/ccc		删除bbb目录下ccc目录
		rmdir -p bbb/ccc	删除bbb目录和ccc子目录

总结:

1. 目录查看
		ll [-a]
		
2. 目录跳转
		cd	绝对路径 [相对路径]
		
3. 创建目录
		mkdir -p 文件夹名称
		
4. 搜索
		find 指定路径 -name '关键字'
		
5. 剪切
		mv  原来位置 新位置(改名)
		
6. 复制
		cp -r 原来位置 复制后新位置(改名)

 

(4)文件操作命令

1)创建

* 语法
		touch 	文件名.扩展名
		
* 命令
        cd  /soft		 定位于/soft目录
        touch  a.java    在soft目录中创建a.java文件
        touch  b.txt     在soft目录中创建b.txt文件
        touch  c.xml     在soft目录中创建c.xml文件	

2)查看

* 语法
		cat/more/less/head/tail	文件

* 命令
		cd /soft		 
        cat a.java         查看a.java文件的最后一页内容
        more a.java        从第一页开始,按回车键换行,按空格健翻页,q退出
        less a.java        从第一页开始,按回车键换行,按空格健翻页,支持使用PgUp和PgDn翻页,q退出
        head a.java 	   查看a.java文件的前10行内容
        tail a.java		   查看a.java文件的后10行内容
        head -n 7 a.java   查看a.java文件的前7行内容
        tail -n 7 a.java   查看a.java文件的后7行内容
        
* 规则
		如果查看页面数据:cat
		如果查看多页数据:less
			回车:下一行
			空格:下一页
			PGUP:上一页
			PGDN:下一页
			q退出
		查看头部几行:head 
		查看尾部几行:tail

3)删除

* 语法
		rm   [参数]	  目录或文件
		
* 参数解释
		-r  递归处理,将指定目录下的所有文件及子目录一并处理,它会询问你,y表示是删除,n表示不删除
		-f  强制删除,它不会再询问你
		
* 命令
		cd  /soft
        rm -rf a.java      强行式删除当前目录下的a.java文件
        rm -rf ./a*        强行式删除当前目录下以a开头的所有文件
        rm -rf /           删除全部,强制删除===自杀
        

4)编辑(Vi和Vim)

linux 下的vi 是一种文字编辑器,后来的升级版本是vim。vi 分为三种模式:命令行、插入、底行模式。

* 简单使用
		vim a.java
        i 切换到插入模式
        esc 切换到命令行模式
		:wq! 保存并退出 | :q! 直接退出


* 切换到插入模式
        i 在当前位置前插入
        I 在当前行首插入
        a 在当前位置后插入
        A 在当前行尾插入
        o 在当前行之后插入一行
        O 在当前行之前插入一行

* 切换到命令行模式
		 按Esc键
		 yy	复制当前行
      	 p	粘贴
      	 dd	删除当前行
      	 G	到文件的最后一行
      	 gg	到文件的第一行  
        
* 切换到底行模式
		按 :(冒号)
		:wq	保存退出
		:q	退出vi(文件无修改的情况下)
		:q!	不保存强制退出

 

(5)文件压缩命令

windows的压缩文件的扩展名:  .zip或.rar

Linux中的打包文件扩展名:.tar

Linux中的压缩文件扩展名:.gz

Linux中打包压缩的文件扩展名:.tar.gz

1)将文件打包成压缩包

* 语法
		tar	-zcvf  打包压缩后的文件名  要打包的文件
		tar -cvf  *****.tar  a.java b.java c.xml d.txt
		tar -zcvf *****.tar.gz a.java b.java c.xml d.txt
		
* 参数解释
		-z:调用gzip压缩命令进行压缩
        -c:打包文件
        -v:显示运行过程
        -f:指定文件名
        
* 命令
		cd /soft			定位于/soft目录
        tar   -zcvf 	haha.tar.gz   a.java  b.java  c.java
        或
        tar   -zcvf		haha.tar.gz   ./*  将当前目录下的所有文件打包压缩成haha.tar.gz文件

2)解压缩包获得文件

* 语法
		tar -zxvf  压缩文件 
			解压后的文件放在当前目录中
		tar -zxvf  压缩文件 –C指定目录
			解压后的文件放入指定目录中,注意-C是大写字母C,后面不用接空格符
			
* 参数解释
		-z   自动识别压缩或解压
		-x   取出文件中的内容
		-v   输出文件清单
		-f   文件名由命令台设置
		
* 命令
		cd  /soft					定位于/soft目录
		rm -rf  ./*.java			强制式删除当前目录下所有扩展名为java的文件
		tar  -xvf  haha.tar.gz		解压haha.tar.gz这个压缩文件,里面的文件释放到当前目录下
		tar  -xvf  haha.tar.gz -C/usr/local	
                           		 解压haha.tar.gz这个压缩文件,里面的文件释放到/usr/local目录下

 

(6)文件权限命令:

Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。

* 语法
		chmod	[参数]	[<权限范围><符号><权限代号>]
		
* 参数解释
		-R 递归处理,将指定目录下的所有文件及子目录一并处理
		
* 权限范围
        u:User,即文件或目录的拥有者。 
        g:Group,即文件或目录的所属群组。 
        o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。 
        a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
        
* 符号解释
			+ 添加权限
			- 取消权限
			= 重置权限
			
* 权限代号
			r:读取权限,数字代号为"4"
    		w:写入权限,数字代号为"2"
    		x:执行或切换权限,数字代号为"1"
    		-:不具任何权限,数字代号为"0"
    		
* 命令
        chmod u+x 1.txt    给1.txt的拥有者添加执行权限,这种写法稍微有点麻烦,开发中一般使用数字代号
        chmod 755 1.txt	   给1.txt的拥有者设置读写执行权限,给所属组添加读和执行权限,给其他用户

添加			 读和执行权限
        chmod -R 777 a.txt	   给所有人添加对此文件操作的所有权限

 

(7)其他命令:

1)显示工作目录命令:

* 语法
		pwd

2)查看进程

* 语法
		ps -au:显示客户端打开的程序进程
		ps -ef:当前用户打开的程序进程
		
* 参数解释
		-a   显示所有用户通过终端启动的所有进程
		-A   显示所有进程
		-u   显示所有用户通过终端启动的所有进程详细信息
		-x   显示所有用户通过终端和非终端启动的所有进程详细信息
		-e   此参数的效果和指定"A"参数相同,显示所有程序
		-f   显示UID,PPID,C与STIME栏位

3)杀死进程

* 语法
		kill 进程号:
		kill -9 进程号:强制杀死

4)搜索(文本)

* 语法
		grep	[参数]	搜索字符串	文件名 

* 参数解释
		-i   搜索时不区分大小写,大小写不敏感
		-n   显示匹配行及行号,大小写敏感
		-v   显示不匹配行及行号,大小写敏感
		
* 命令
        cd /
        grep as 123.txt		在123.txt文件中搜索as字符串,大小写敏感,显示行		
        grep -n as 123.txt	在123.txt文件中搜索as字符串,大小写敏感,显示行及行号
        grep -v as 123.txt	在123.txt文件中搜索as字符串,大小写敏感,显示没搜索到行
        grep -i as 123.txt	在123.txt文件中搜索as字符串,大小写不敏感,显示行
        grep -ni "Q q" 123.txt	    在123.txt文件中搜索Q q字符串,大小写不敏感,显示行及行号

5)管道

* 语法
		xx | xx
		一个命令的输出用作另一个命令的输入
		
* 命令
		ls --help | more    分页查询帮助信息
		ps -au | grep system 	在ps -au的结果中,搜索字符串a

6)关机

* 语法
		poweroff

7)重启:

* 语法
		reboot

 

二.Linux网络

(1)网络(卡)服务
查看当前网络的状态,并启动和停止网络服务。

* 查看ip
		ifconfig :CentOS6版本
		ip addr  :CentOS7版本
		
* 修改网卡ip
		vim /etc/sysconfig/network-scripts/ifcfg-ens33
		
* 概要信息如下		
		DEVICE=ens33          #网卡名称
		TYPE=Ethernet         #网卡类型 以太网
		ONBOOT=yes            #是否开机就使用此网卡   在我们安装的时候都已经配置好
		BOOTPROTO=dhcp    #启动网卡时指定获取IP地址的方式
			常用取值:dhcp     (自动获取ip地址,网关,子网掩码等信息无需设置) 
			常用取值:static   (静态ip,如需要访问网络,需要自己设置ip地址等信息) 
			其他取值:none         (不指定)
            
      	IPADDR=192.168.200.133    #ip地址
		GATEWAY=192.168.200.2     #网关
		NETMASK=255.255.255.0     #子网掩码
		DNS1=8.8.8.8       # Google提供的公用DNS       

* 重启网卡服务
         systemctl status network     查看指定服务的状态
        systemctl stop network         停止指定服务
        systemctl start network        启动指定服务
        systemctl restart network      重启指定服务

 

(2)防火墙服务

防火墙类似于一个安全卫士管家,它能对你访问它人电脑,它人访问你的电脑,进行拦截并处理,有的阻止,有的放行,有的转发。

防火墙设置:

* 开启防火墙
		systemctl start firewalld
		
* 重启防火墙
		systemctl restart firewalld
		
* 关闭防火墙
		systemctl stop firewalld
		
* 设置开机启动
		systemctl enable firewalld
		
* 停止并关闭开机启动
		systemctl disable firewalld
		
* 查看防火墙状态
		systemctl status firewalld	或者 firewall-cmd --state
		
* 查看防火墙开机时是否启动
		systemctl list-unit-files | grep firewalld

端口设置:

* 添加
		firewall-cmd --zone=public --add-port=80/tcp --permanent
		
* 更新防火墙规则
		firewall-cmd --reload
		
* 查看
		firewall-cmd --zone=public --query-port=80/tcp
		firewall-cmd --zone=public --list-ports
		
* 删除
		firewall-cmd --zone=public --remove-port=80/tcp --permanent
				
* 常用端口
		8080	tomcat
		80		http协议
		443		https协议
		22		ssh远程连接
		3306	mysql
		6379	redis

 

 

三.Nginx介绍

(1)介绍
 

Nginx是一款轻量级的 Web 服务器,由俄罗斯的程序设计师伊戈尔·西索夫所开发。 Nginx性能非常优秀,官方测试能够支撑5万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。

Nginx的功能有很多,我们主要使用它来做静态资源服务器、负载均衡服务器和反向代理服务器。

(2)应用场景

静态资源服务器

部署网站的静态资源(html、css、js)

反向代理服务器

代理: 给某个对象提供一个代理对象,并由代理对象控制原对象的引用

正向代理: 对客户端进行代理

反向代理:对服务端进行代理

反向代理,就是对服务端进行代理,作为客户端,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

负载均衡服务器

负载均衡(Load Balance)意思就是将一份负载分摊到多个操作单元上进行执行

 

(3)windows安装与使用

1. 官网地址:
	http://nginx.org/

2. 绿色解压版

3. 启动:
	双击nginx.exe即可启动程序,提示放行防火墙,就消失了,其实是启动成功了

4. 访问:
	在浏览器输入:http://localhost

5. dos命令行关闭:
	 nginx.exe -s stop

(4)配置文件介绍

注意:如果修改了配置文件:需要执行命令重新加载:

nginx.exe -s reload

 

(5)Nginx 与 tomcat区别:

1. 存放的文件(资源)形式
	Nginx是http服务器,只能解析静态文件
	Tomcat是web中间件(本质上是一个servlet),能解析jsp和静态文件
	
2. 用途
	nginx可以作为反向代理服务器,负责均衡服务器,静态资源存放服务器
	tomcat能作为jsp容器使用,静态资源存放服务器
	
3. 性能
	nginx支持5W+并发,tomcat的并发只能在200-400之间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章