Linux运维复习参考概要

一、基本概念

1、理念
(1)DevOps:对外部规范,解决问题优先,谁能解决谁就上
(2)ITIL:对内部管理流程规范
(3)ITSM:IT服务管理、变更管理、事件(故障)、问题(故障发生的原因)
2、系统运维
(1)研发:架构设计,模块分解,模块开发
(2)测试:产品测试(功能,压力,故障,代码级测试)
3、开发框架
(1)LAMP:Linux+Apache+MySQL+PHP
(2)LNMP:Linux+Nginx+MySQL+PHP
(3)LNAMPT:Linux+Nginx+Apache+MySQL+PHP+Tomcat
4、web-server:引擎、网站、app的入口,只能处理静态用户请求(图片、文字)
5、app-server(web-app):后台动态服务器,处理用户动态请求(登录等)
6、WEB架构
1、weblogic (收费)
weblogic是j2ee的应用服务器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商业软件里排名第一的容器(JSP、servlet、EJB等),并提供其他如JAVA编辑等工具,是一个综合的开发及运行环境。收费
2、tomcat (免费)
Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只实现了JSP/Servlet的相关规范,不支持EJB(硬伤啊)!不过Tomcat配合jboss和apache可以实现j2ee应用服务器功能
一般来说考虑stucts等架构tomcat就可以了,但如果考虑EJB的话,WebLogic是比较好的选择。
3、Apache (免费)
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
Nginx:反向代理、负载均衡,对用户请求处理能力高(高并发)
Linux运维复习参考概要

二、安装方式

1、命令安装
2、编译安装:解压、编译(make)、安装(make install)
编译安装就是将文件编译成二进制可执行文件(windows为.exe、linux为/user/bin)
3、二进制安装
4、rpm包、deb包安装

三、Linux常用目录

1、根目录:/
2、root目录:/root,是root用户的目录(虚拟机中表现为“~”符号)
3、boot目录:/boot,是引导启动目录

四、Nginx配置文件

1、server字段:设置监听端口,更改后必须重启nginx才能生效
2、location中的proxy-pass字段:设置访问的默认端口(反向代理)
3、DocumentRoot字段:设置网页存放目录
4、DirectionIndex字段:设置默认页面
*注:检测重启是否成看重启服务前后的进程号,不同则重启成功,否则失败。多次重启仍失败可以杀死进程,kill —9 进程号:用于杀死单个进程;pkill —kill 进程名:用于杀死一个服务

五、linux常用命令

1、查看端口
1、ss -nlt 端口号:查看端口是否开放
2、netstat -tulnp|grep 端口号:查看该端口监听情况
3、ps -ef|grep 进程号:查看该进程信息
netstat -tulmp|grep 端口号命令从左到右列的含义为:进程标记(root为主进程)、主进程端口号、该进程的父进程端口号等等
2、查看文件:list [-l] [-h] 文件名。-l表示查看详细信息,-h表示人性化显示(将容量单位自动换算成M或G)
3、拷贝:cp 源目录 目的目录
4、删除:rm -rf 文件路径
5、打包:
1、tar -c :创建打包(如果打包至同名的包会将原有包中文件覆盖)
2、tar -u:更新打包(不会覆盖,在原有文件基础上增加文件)
注:只有tar加了-z参数才是压缩文件,否则是打包文件,两者有区别
6、查看磁盘使用情况:df
7、查看磁盘剩余空间:free
8、创建文件夹:mkdir 文件夹名
9、创建文件:touch 文件名(空文件)
10、更改权限:chmod +/- 权限数字组
*关于权限数字计算:权限数字组分为三个数字,分别代表所有者、所在组、用户的权限,每个数字都含有可读、可写、可运行三种权限,作为二进制的三位数值分别为4、2、1,所以权限都有时值为7。
11、命令分隔符
(1)“;”:执行完上一语句后执行下一语句,不论结果
(2)“&&”:符号前语句执行成功时执行符号后语句
(3)“||”:符号前语句执行失败时执行符号后语句
*应用举例:创建文件夹
①rm -rf 文件夹绝对路径;mkdir 文件夹名:无论如何先删除文件夹再创建
②[[ -d 文件夹绝对路径 ]]||mkdir 文件夹名:判断文件是否存在,存在则不创建,不尊在则创建
12、基于属性的查找find(极其重要)
(1)格式
①find [文件目录] [参数] -exec 查找后指令 ;
②find [文件目录] [参数] -exec 查找后指令 +
③find [文件目录] [参数] |xargs 查找后指令
(2)结束符区别:;为覆盖式查找,每找到一个目标就执行一次语句。+为更新式,查找到所有符合条件的目标后进行整体执行语句
*注:此处如果查找后语句为tar则会影响tar包是否覆盖上一个包,;会覆盖,+不会覆盖。但配合使用tar的-u参数和;结束符也可以达到更新的目的。
(3)常用参数
①-name:根据文件名查找(可以使用通配符)
②-type:根据;诶性查找
③-size +/- 文件大小:根据大小查找(+为大于,-为小于)
④-perm -/d 权限数字组:根据权限查找,-表示查找文件,d表示查找文件夹
⑤-ctime/-mtime:根据创建/修改时间查找
⑥-exec 语句:指定查找到后将结果进行语句描述的处理
⑦-ok:执行时进行ok确认
⑧-maxdepth:深度指定(最大往下查找文件夹的层数)
(4)例句以下几句是等效的
find [文件目录] [参数] -exec tar -uvf ;
find [文件目录] [参数] -exec tar -czvf +
find [文件目录] [参数] |xargs tar -uvf
13、基于文本内容查找grep/egrep(egrep是grep的升级版,与grep -E等效)
(1)去除注释行和空行
egrep -v “$|#” 文件路径
(2)查找有某字符的文件
find /root|xargs grep -ril “字段”
14、输出内容echo
(1)echo $?:上一语句是否执行成功,结果为0则成功,非0则不成功
(2)echo 文件名|cat 显示文件名|xargs cat 显示文件内容
15、文本修改命令sed
(1)字符替换:sed ‘s/原字符/新字符/’ 文件名
(2)整行替换:sed ‘/原行内容/c新行内容/’ 文件名
(3)全局替换:sed ‘s/原内容/新内容/g’ 文件名(将所有匹配到的原内容全部替换为新内容)
(4)定位到某一行:sed -n ‘xp’ 文件名(定位到第x行)(重要)
此处的x可以使用正则表达式定位到含有正则内容的行
(5)多命令执行:sed -e 命令1 -e 命令2 文件名
16、报告生成器awk(对文本逐行扫描、不修改)(重要)
(1)处理已有文件:awk ‘{print $列号}’ 文件名
(2)处理管道输入:查找语句|awk ‘{print $列号}’
(3)处理用户输入:awk ‘{print $列号}’ 输入内容
注:多列筛选时用逗号隔开
(4)自定义分隔符:awk ‘BEGIN{FS=”输入分隔符”}{OFS=”输入分隔符”}{print KaTeX parse error: Expected 'EOF', got '}' at position 3: 列号}̲’ 注:用该语句修改过后会使默…NF为每行最后列,$0为所有列
(6)列对齐:awk ‘{print $1”\t”$2”\t”$3}’ 文件名
(7)显示行数:awk ‘{print NR”\t” $0}’ 文件名
(8)显示列数:awk ‘{print NF”\t” KaTeX parse error: Expected 'EOF', got '}' at position 2: 0}̲’ 文件名 (9)显示某列含…列==”字符”{print $0}’ 文件名
(10)声明一个临时变量(作用域为本条awk语句):awk -v 变量=值
17、文本切割cut(可以接收管道符和文件传输符)
(1)按字节切割:-b
(2)按字符切割:-c
(3)按字段切割:-f
(4)指定分隔符切割:-d”分隔符”
格式:cut [-d”分隔符”] -b/c/f 指定列 <文件名
或:上一语句结果|cut [-d”分隔符”] -b/c/f 指定列
此处指定列可以是多列,但要用逗号隔开
注:cut不会忽略空格和制表符,会将其作为分隔(cut默认分隔符为制表符),awk则会自动压缩空格和制表符
(5)在cut语句中输入制表符或换行符时应该先ctrl+v再按tab键或回车键
(6)当cut的分隔符是空格时,连续的空格中只会把第一个空格当做分隔符,剩下的空格会作为下一列字符,空格和制表符也同理会把制表符和后面的一列认为是同一个字符
18、排序sort(按ASCII码排序,从左到右读取字符,数字会认为其是ASCII码而不是数字)
参数:-r:倒序;-n:按数字排序;-t:指定分隔符;-k:指定列
19、去重复行uniq
参数:-c:去重复行时统计数量;-d:只打印连续重复的行;-u:只打印独一无二的行
20、统计文件行数:wc -l
21、锚定符:<字符>。匹配与指定字符串完全一致的字符串,即目标字符串前后均不能有其他字符才符合条件
例:123 abc123
正则:/123/ 结果:123 abc123
锚定符:<123> 结果:123
22、文件的前n行:head -n
23、最后行:
tail -n 最后n行
tail -f 一直刷新最后一行

六、标准定向、重定向

1、标准输入(stdin 0),标准输出(stdout 1)会屏显正确运行结果,标准错误(stderr 2)会屏显报错信息
注:只有语句输入错误才是标准错误,运行失败是标准输出
2、重定向
(1)标准输出重定向
①>:把标准输出重定向到新的文件(标准错误不适用,会覆盖原有文件。即只有标准输出会重定向,标准错误不会)
②>>:追加符,不会覆盖原有文件,在文件最后添加内容(不屏显)
③tee:作用类似‘>’,但tee只能从管道接收数据
④tee -a:作用类似追加符,但只从管道接收数据
*tee可以重定向到多个文件,‘>’不可以
(2)标准输入重定向
①<:把标准输入重定向到新的文件
②<<:等待用户输入,需要结束符(通常为EOF)
③tr:只处理字符而不是单行单列;只处理结果,不修改文件;只从管道接收数据(例:语句结果|tr 字符1 字符2,将字符1改为字符2,可以是正则)
④tr -s “字符”:将指定的字符压缩成一个(例1::2:::3→1:2:3)(重要)
通常配合cut使用,因为cut不能自动压缩字符,awk可以自动压缩字符
(3)标准错误重定向
&>:将标准输出和标准错误都重定向到新文件(不屏显)

七、shell脚本语法

1、shell脚本的第一行(必要):#!/bin/bash
2、第二行(不是必要):#set -x。会屏显出执行语句过程与结果
3、条件判断
if [ 条件1 ] ;then
符合1条件语句
elif [ 条件2 ] ;then
符合2条件语句
else
不符合条件语句
fi
注:中括号表示判断的时候需要括号前后都有一个空格
4、 符 号 ( 1 ) 符号 (1) 1#:统计参数个数
(2) @ : 将 参 数 组 成 数 组 ( 3 ) @:将参数组成数组 (3) @3?:判断上一语句是否执行成功
(4)$变量:取变量的值
(5) 0 : 获 取 脚 本 名 称 ( 6 ) 0:获取脚本名称 (6) 06():取子命令的结果
(7) [ ] 、 []、 [](()):取运算式的值
(8)${}:定义变量
5、循环(主要记成对的开始结束符)
(1)for循环
for i in 数组
do
语句
done
(2)while循环
while [ 条件 ];
do
语句
done
(3)switch循环
switch
case:
语句
esac
6、函数定义:function 函数名(){函数体}
调用:函数名 参数 “函数作用的语句”
7、脚本运行:bash 脚本名 参数1 参数2 ……
8、颜色码:\e[数字m $列 \e[0m或\033[数字m $列 \033[0m
其中数字决定颜色,列决定作用的地方
常用颜色数字:红为33,绿为32
口诀:反e中数m、反e中零m
9、echo -e “”:当””之间有特殊字符或需要转义时需要加-e识别,否则会当做字符串处理
10、id 用户名:判断用户是否存在
11、useradd 用户名:添加用户
12、密码|passwd --stdin 用户名:为用户添加密码(此处是两个横杠)
13、’I==$1(print 2 ) ’ : 所 有 行 中 , 如 果 该 行 的 第 一 列 等 于 I 则 打 印 这 行 的 第 二 列 14 、 2)’:所有行中,如果该行的第一列等于I则打印这行的第二列 14、 2)I14(mkpasswd -l 长度):随机生成一个指定长度的密码
15、在shell脚本里写except脚本片段(用于自动交互,其可以独立于shell脚本运行)
except -c “
except脚本语句

(1)spawn 语句:执行该语句
(2)set timeout 时间(单位是秒):设定定时器,超出时间就退出循环
(3)\”内容\” {语句}:如果出现内容则执行语句(预测上一句的运行结果)
(4)send:发送信息
注:except会将所有行中符合条件的语句都执行,因此使用时应该匹配目标行的唯一字符串

八、脚本特殊语法

1、 ( ( ) ) 、 (())、 (())[]、expr、let 运算式。这些都可以表示运算式
2、指定自动执行的时间:”0 0 1 * * 语句”(5数字分别代表分、时、日、月、周),因此这个语句是每个月第一天0时0分执行语句
3、KaTeX parse error: Expected '}', got '#' at position 2: {#̲数组名[@]}:获取数组内元素…(KaTeX parse error: Expected '}', got '#' at position 2: {#̲数组名[@]}-1):获取数组…{变量:-值}:临时赋值,仅在该语句有效(空值可赋,非空不生效,但语句可以执行)
9、 变 量 : = 值 : 永 久 赋 值 , 全 局 可 用 ( 空 值 可 赋 , 非 空 不 生 效 , 但 语 句 可 以 执 行 ) 10 、 {变量:=值}:永久赋值,全局可用(空值可赋,非空不生效,但语句可以执行) 10、 :=10{变量:+值}:临时赋值,仅在该语句有效(非空可赋,空值不生效,但语句可以执行)
11、[[ ${变量:=quit} == quit ]]:判断变量是否为空
注:公钥相当于锁谁都可以尝试打开;私钥相当于钥匙,可以开启对应的公钥
12、lastb:上次登录失败的记录
13、{}END:表示一个子命令,以END为结束符
14、a[$3]++:取第3列放入数组并记录重复次数(++为记录重复次数,–同理但为负数)

九、主机防火墙iptables(考点)

1、防火墙分类:
(1)、主机防火墙—防御–>操作系统
(2)、网络防火墙—防御–>网络(LAN局域网)
(3)、包过滤防火墙—防御–>数据包
(4)、状态监测防火墙
iptables属于主机防火墙;Juniper(硬件)、天融信属于网络防火墙;ACL属于包过滤防火墙
2、防火墙功能:检测进入、输出
3、运作流程(input)
(1)查看包的目的ip,如果不是本机ip则丢弃(开启forword时查看转发表,有则可进)
(2)查看发件人IP,便利规则链,没有拦截则可进
注:policy设置全局拒绝或接收,rule指定单个IP的拒绝或接收,一般二者配合使用,一般拒收所有IP但用rule接收部分指定IP
4、工作链:input、output
5、运作流程(output):查看目的IP。若为禁止IP则不允许发送
6、forword转发:可以进行非直连的间接发送,需要手动开启
7、规则链:逐一判断所有rules,都符合才可以进入或发出,这些rules以链式连接
8、表(从上到下检索优先级递减)
(1)raw表
(2)Mangle表
(3)NAT表:网络地址转换(影响转不转发)
(4)Filter表:过滤表(默认iptables -L)(影响是否放行)
9、规则编写方法:条件匹配→跳转→执行动作(target)
格式:iptables -A 指定表 -p 指定协议 --dport 指定端口 -j 行为
注:行为有ACCEPT(通过)、DROP(丢弃不回复)、REJECT(丢弃回复)等、DNAT(目标地址转换)、SNAT(源地址转换)
额外参数:
-d指定包的目标地址规范(判断包的目标地址是不是该值)
–to-destination指定要改成的目标地址
–to-source指定要改为的源地址

相关文章:

  • 2021-10-24
  • 2021-12-14
  • 2021-12-07
  • 2021-05-12
  • 2022-01-19
  • 2022-01-10
  • 2021-04-19
  • 2021-09-26
猜你喜欢
  • 2021-09-17
  • 2021-08-21
  • 2021-10-28
  • 2022-01-09
  • 2021-09-13
  • 2021-04-03
  • 2021-10-17
相关资源
相似解决方案