什么是sed?
Sed是一个流处理编辑器,它能帮助我们自动处理文件、分析日志文件、修改配置文件等。
Stream Editor文本流编辑,sed是一一个“非交互式的"面向字符流的编辑器。能同时处理多个文件多行的内容
sed处理流程
sed [-hnV][-e<script>] [-f<script文件>] [文本文件]
sed动作可以理解为操作
示例文件如图
查找行,在文件中查找包含789的行
cat sed.test | sed -n '/789/p'
在文件中添加第三行,内容为hello world
sed -e '2a hello world' sed.test
删除行,删除2到3行
cat -n sed.test | sed -e '2,3d'
删除包含789的行
cat sed.test | sed '/789/d'
替换行,将1-2行替换为hahaha
cat -n sed.test | sed '1,2c hahaha'
查找并替换字符串,将示例文本中的Hello换成haha
sed修改文件
sed -i 's\Hello\haha\g' sed.test
什么是awk?
awk是一种编程语言,用于在linux/unix 下对文本和数据进行处理。它支持用户自定义函数和动态正则表达式等功能,是linux/unix 下的一一个强大编程工具。
awk命名来自于三位创始人Alfred Aho, Peter Weinberger,和Brian Kernighan的Family Name的首字符。
awk的处理方式
awk一次处理一行内容
awk对每行可以切片处理,空格和制表符为默认分隔符将每行切片,切开的部分再进行各种分析处理
awk格式
命令格式:
awk [选项参数] 'script' var=value file(s)
script组成:pattern {awk操作命令}
pattern:正则表达式;逻辑判断式
awk操作命令:内置函数:print() printf() getline..;
控制指令:if(){...}else{...};while(){..};
Awk内嵌参数应用
内置变量1:
内置变量2:
awk示例
以:分割,显示/etc/passwd的第一列,即用户名列
cat /etc/passwd | awk -F : '{print $1}'
显示/etc/passwd的第1列和第4列,用逗号分隔显示,所有行开始前添加列名start1, start4;最后一行添加,end1,end4
cat /etc/passwd | awk -F ':' 'BEGIN {print "start1,start4"} {print $1 "," $4} END {print "end1,end4"}'
匹配某段字符
cat /etc/passwd | awk -F : '$1 ~ /oo/'
显示/etc/passwd的前五行,显示每行的行号、列数,以及该行完整的内容
head -n5 /etc/passwd | awk -F : '{print NR " " NF " " $0}'
条件操作匹配
cat /etc/passwd | awk -F : '$3 == "0"'
这里操作符号可以用==、>、>=、<、<=、!= 都是可行
和数字比较时,将数字要用双引号""引起来,表示字符串,不加引导则表示数字
cat /etc/passwd | awk -F : '$3<="1000"'
累加前四行用户的uid
head -n4 /etc/passwd | awk -F : '{(sum=sum+$3)};END{print sum}'
流程控制类
输出第一个字段的第一个字符大于q的行
cat /etc/passwd | awk -F ':' '{if($1 > "q"){print $1}else{print "_"}}'
基本定义
原理
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的廉价和普遍,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的“解决方案包”( Solution Packages)。
Apache
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的让算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。存在可以执行代码或者系统命令的危险函数。
安装LAMP相关的安装包(yum -y install httpd/mariadb/mariadb-server/php/php-mysql)
如果安装过程出错使用:ps -ef | grep yum(查看进程)
然后找到相应的进程就行关闭:kill -9 pid(-9表示强制终止进程)
启动服务
启动httpd命令:systemctl start httpd
启动mariadb命令:systemctl start mariadb
设置httpd开机自启命令:systemctl enable httpd
设置mariadb.service开机自启命令:systemctl enable mariadb.service
访问自带的测试页面
访问127.0.0.1,默认的端口号就是80
LAMP配置文档的修改
在lamp中,所有的网站页面默认都在该目录下才能访问,默认端口号为80
cd /var/www/html
vim test1.php
<?php
phpinfo();
?>
访问测试页面
在修改默认的端口号为8080,并访问测试页面
进入/etc/httpd/conf/httpd.conf配置文件下
使用set nu显示行号
找到第42行修改端口号为8080
开放8080端口号
firewall-cmd -add-port=8080/tcp -permanent
重启httpd服务
systemctl restart httpd
使用8080端口再次访问