2021-01-25 大数据课程笔记 day5

时间煮雨
@R星校长

Linux
cut

cut:显示切割的行数据

  • s:不显示没有分隔符的行
  • d:指定分隔符对源文件的行进行分割
  • -f 选定显示哪些列
    m-n m列到n列
    -n 第一列到n列
    m- 第m列到最后列
    n 第n列

以: 作为分隔符,切割 passwd ,输出从第 3 个字段到第 5 个字段

cut -d ":" -f 3-5  /etc/passwd

在这里插入图片描述
输出前两列内容:

cp /etc/passwd ./
cut -d ":" -f -2  passwd

在这里插入图片描述
输出字段 3 到最后一个字段
在这里插入图片描述
指定输出的分隔符:

cut -d ":" -f  3- --output-delimiter=".." passwd

在这里插入图片描述
输出第7个字段:

cut -d ":" -f 7  passwd

在这里插入图片描述
如果有的行没有分隔符,则输出会包含脏数据

echo helloworld 1>> passwd
cut -d ":" -f1 passwd

在这里插入图片描述
可以使用 -s 选项:
不打印没有分隔符的行:

cut -s -d ":" -f1  passwd

在这里插入图片描述
显示 1,3,7 列
– output-delimiter 指定输出的时候的各字符分隔符
在这里插入图片描述

sort

排序:字典序和数值序
sort:排序文件的行

  • n:按数值排序
  • r:倒序 reverse
  • t:自定义分隔符
  • k:选择排序列
  • f:忽略大小写

sort.txt

a b 1
dfdsa fdsa 15
fds fds 6
fdsa fdsa 8
fda s 9
aa dd 10
h h 11

默认字典顺序排序

sort sort.txt  

在这里插入图片描述
指定字段分隔符,按照第 2 个字段的字典顺序排序

sort -t ' ' –k 2 sort.txt

在这里插入图片描述
指定字段分隔符,按照第 3 个字段的值数值顺序排序

sort -t' ' -k 3 -n sort.txt 

在这里插入图片描述
指定字段分隔符,按照第 3 个字段的值数值倒序排序

sort -t' ' –k 3 -nr sort.txt 

在这里插入图片描述

wc

wc [选项列表]… [文件名列表]…
DESCRIPTION 描述

  • 对每个文件输出行、单词、和字节统计数,如果指定了多于一个文件则还有一个行数的总计。没有指定文件或指定的文件是 -,则读取标准输入。

  • -c, --bytes, --chars 输出字节统计数。

  • -l, --lines 输出换行符统计数。

  • -L, --max-line-length 输出最长的行的长度。

  • -w, --words 输出单词统计数。

  • –help 显示帮助并退出

  • –version 输出版本信息并退出

[root@bk1 ~]# wc sort.txt 
 7 21 66 sort.txt
[root@bk1 ~]# wc -l sort.txt 
7 sort.txt
[root@bk1 ~]# cat sort.txt | wc -l
7
[root@bk1 ~]# wc -w sort.txt
21 sort.txt
[root@bk1 ~]# wc -c sort.txt
66 sort.txt
sed

sed:行编辑器
sed [选项] ‘AddressCommand’ file…

  • -n:静默模式,不再默认显示模式空间的内容
  • -i:直接修改源文件
  • -e Script -e Script:可以同时执行多个脚本
  • -f /path/to/sed_script:执行文件中的sed脚本
  • -r:表示使用扩展正则表达式
  • d:删除符合条件的行
  • p:显示符合条件的行
  • a\string:在指定的行后追加新行,内容为string
  • \n:用于换行
  • i\string:在指定行前添加新行,内容是string
  • r file:将指定的文件内容添加到符合条件的行的位置
  • w file:将地址指定的范围内的行另存至指定文件
  • s/string1/string2/:查找并替换,默认只替换每行第一次模式匹配到的字符串
  • g:行内全局替换
  • i:忽略大小写
  • s///,s###,s@@@:用于避免字符冲突
  • () \1\2

sed:行编辑器 Address

  • 可以不指定
  • 给定范围
  • 查找指定行/str/

sed.txt

Authentication improvements when using an HTTP proxy server.
Support for POSIX-style filesystem extended attributes.
YARN's REST APIs now support write/modify operations.

第一行下插入一行

sed  "1a\hello world" sed.txt

直接修改文件

sed -i "1a\hello world" sed.txt

删除第 2 行

sed -i "2d" sed.txt

删除文档中的每一行

sed "d" sed.txt

原来的内容要打印,匹配的行要打印,找到的行会打印两次

sed "/[0-9]/p"  sed.txt

匹配行中包含 0-9 任意一个字符的行,只打印找到的行

sed -n "/[0-9]/p"  sed.txt

将 filesystem 替换为 FS

sed "s/filesystem/FS/" sed.txt

忽略大小写

sed "s/filesystem/FS/i" sed.txt

不仅忽略大小写还要行内全局替换

sed "s/filesystem/FS/gi" sed.txt
cp /etc/inittab ./

将文件中的默认运行级别改为 5

sed  "s/[0-6]/5/"  inittab

发现将所有匹配的都修改了(注意并未修改原文件),匹配访问太广了。
更精确匹配方案的写法应该为如下命令:

sed  "s/id:[0-6]:initdefault:/5/"  inittab

但是还存在问题,匹配后被修改内容问匹配出的部分,范围过大。解决办法:

反向引用

sed  "s/\(id:\)[0-6]\(:initdefault:\)/\15\2/"  inittab

分析:

sed  "s/\(id:\)[0-6]\(:initdefault:\)/\15\2/"  inittab
id:num:initdefalut:    \15\2
id:5:initdefault:

也可以写成:

sed -r  "s/(id:)[0-6](:initdefault:)/\15\2/"  inittab
./edit_inittab.sh

查找 /etc/profile 中包含 PATH 的行,将这些行写到指定的文件:hello.log 中

sed -n "/PATH/w hello.log" /etc/profile
awk
  • awk 是一个强大的文本分析工具
  • 相对于 grep 查找,sed 编辑,awk 在对数据分析并生成报告时更为强大
  • awk 把文件逐行读入,以空格制表符作为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk -F '{pattern + action}' {
    
    filenames}
  • 支持自定义分隔符
  • 支持正则表达式匹配
  • 支持自定义变量,数组 a[1] a[tom] map(key)
  • 支持内置变量
-	ARGC               命令行参数个数
-	ARGV               命令行参数排列
-	ENVIRON            支持队列中系统环境变量的使用
-	FILENAME           awk浏览的文件名
-	FNR                浏览文件的记录数
-	FS                 设置输入域分隔符,等价于命令行 -F选项
-	NF                 浏览记录的域的个数
-	NR                 已读的记录数
-	OFS                输出域分隔符
-	ORS                输出记录分隔符
-	RS                 控制记录分隔符
  • 支持函数
-	print、split、substr、sub、gsub
  • 支持流程控制语句,类C语言
-	ifwhiledo/whileforbreakcontinue

数组更像 map

只是显示 /etc/passwd 的账户:

awk -F':' '{print $1}' passwd

只是显示 /etc/passwd 的账户和账户对应的 shell , 而账户与 shell 之间以逗号分割

awk -F':' '{print $1 "," $7}' passwd

在所有行开始前添加列名 name , shell , 在最后一行添加 “shell , end”

awk -F':' 'BEGIN{print "name,shell"} {print $1 "," $7} END{print "shell,end"}' passwd

在这里插入图片描述

awk -F ":" '
   BEGIN{
	print "username,shell"
   }
   {
	print $1","$7
   }
   END{
	print "shell,end"
   }
' passwd

搜索 /etc/passwd 有 root 关键字的所有行

cp /etc/passwd ./
awk  '/root/ { print $0}'   passwd

统计 /etc/passwd 文件中,每行的行号,每行的列数,对应的完整行内容

awk -F ':' '{print NR "-" NF "-" $0}' passwd

打印第一列

逐行处理

awk -F':'  ' {  print  $1} ' passwd
cut  -d ':'  -f 1  passwd

指定字符拼接

awk -F':'  ' {  print  $1"," $7} ' passwd

制表符拼接字段

awk -F':'  ' {  print  $1"\t" $7} ' passwd

之前做点儿事情,之后做点儿事情

awk -F':'  'BEGIN{print "name\tshell"}  {print $1"\t" $7}  END{print "abdfafdsafdsa"}'  passwd

查找并打印整行

awk  ' /root/  {print $0}'  passwd

查找并截取打印某字段

awk -F ":"  ' /root/  {print $1}'  passwd

查找并打印

awk  ' /root/  {print $0,"ok"}  {print $0}'  passwd
awk -F ':'  ' /root/  {print $1,"ok"}  {print $0}'  passwd

打印已读记录数和字段个数

awk  -F':'  '{print  NR  "\t"  $0  "\t"  NF}'  passwd
awk -F ':' '{print $0 "-" NR "-" NF}' passwd

• 统计报表:合计每人1月总消费,0:manager,1:worker

Tom	 0   2020-12-11      car     3000
John	 1   2020-01-13      bike    1000
vivi	 1   2020-01-18      car     2800
Tom	 0   2020-01-20      car     2500
John	 1   2020-01-28      bike    3500
if $2 ==0
map_name_role[$1] = “manager”
else
map_name_role[$1] = “worker”

解决方案:

awk  '{
split($3, date, "-")
if (date[2] == "01") {
map_name_sala[$1]+=$5 
if($2=="0"){
map_name_role[$1]="Manager"
}else{
map_name_role[$1]="Worker"
}
}
}  
END{
for(name in map_name_sala){
print name"\t"map_name_sala[anme]"\t"map_name_role[name]
}
}'  awk.txt

在这里插入图片描述

awk '{
  split($3,date,"-")
}
END{
   for(i in date){
	print i"\t"date[i]
   }
}
' emp.txt

在这里插入图片描述

vi/vim 编辑器的使用

在这里插入图片描述

i            进入编辑模式
a           在选定字符后插入字符
o           在当前行下添加新行
O           在当前行上添加新行
I            在当前行首进入编辑模式
A           在当前行末进入编辑模式
ESC         退出编辑模式
:            末行模式
ESC,ESC       退出末行模式
ZZ             在命令模式保存并退出编辑器
:wq            保存并退出编辑器
:w             保存编辑器内容
:q!             不保存退出编辑器

移动光标
h左 j下 k上 l右

w 移动到下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或下一个单词的词首

0:绝对行首
^:行首的第一个非空白字符
$:绝对行尾

G:文档末尾
3G:第三行
gg:文档开头
ctrl-f  向下翻页       forward
ctrl-b 向上翻页       backward

删除替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符

dw      删除单词
dd      删除整行
D:删除光标所在位置到行尾

yw 复制单词
yy 复制1行
nyy 复制n行,n是数字
p 粘贴 paste

u:撤销   undo
ctrl+r:重做     操作结束后使用u退回到上次操作,则ctrl+r重做
. 重复上一步操作
set:设置
:set nu   number 显示行号
:set nonu   nunumber 取消行号的显示
:set readonly 设置只读

:/after
n,N
?向上查找
:!   执行命令

查找并替换

s/str1/str2/gi
/:临近s的第一个为边界字符:/    @    #(为了防止内容和边界字符重复,可以使用@和#做边界字符)
g:一行内全部替换
i:忽略大小写


n:行号
.:当前光标行
+n:偏移n行
$:末尾行,$-3
%:全文
:%d     删除全文
:.,$-1d   从当前行删除到倒数第二行
:.,+3d   从当前行再往下数三行删除
:.,13d   从当前行到第13行删除
用户、用户组、权限
useradd  hello 添加hello账户,家目录默认是/home/hello
passwd  hello给hello设置密码,设置之后就可以使用hello登陆了

userdel -rf bjsxt 彻底删除bjsxt用户和它的文件们
userdel -rf hello 彻底删除hello用户和它的文件们

题目:创建一个目录,让多个用户共同使用

创建目录:

root@node1 >> mkdir /opt/coworks

去除该目录的其他用户访问和执行的权限
对于文件夹,r 表示其他用户可以查看该文件夹内容,x 表示其他用户可以 cd 进来

其他用户既不能 cd 进来,也不能查看其内容

chmod o-rx coworks/   

创建组

groupadd mygrp
chmod g+w coworks/   #给coworks文件夹添加组的写的权限

将用户sxt添加到组mygrp中

usermod -a -G mygrp sxt   

-a给sxt追加一个组,-G用于指定将哪个组追加给sxt

usermod  -a -G mygrp bjsxt

可以通过id bjsxt查看bjsxt的账户组信息

更改目录所属的组

chgrp mygrp coworks/

-R表示如果 coworks 中还有其他文件或文件夹,则它们的组都改为 mygrp

chgrp -R mygrp coworks/   
或者
chown :mygrp coworks/
chown -R :mygrp coworks/

这句话表示对于 filename 这个文件,
a 表示所有用户,u 表示文件所有者,g 表示文件所在的组,o 表示其他用户
添加 / 删除 rwx 的权限,随意组合

chmod  augo  +-  rwx  filename

更改所有者
chown

dir 的 x 表示是否可以进入该目录, r 表示是否可以列出文件夹内容

创建一个目录,让多个用户共同使用

  1. 创建用户(bjsxt,sxt)
    a) useradd bjsxt
    b) useradd sxt
    c) passwd bjsxt
    d) passwd sxt
  2. 在 /opt 目录下创建 cowork 目录让 bjsxt 和 sxt 共享文件
    a) mkdir /opt/cowork
  3. 创建一个用户组:mygrp
    a) groupadd mygrp
  4. 将 /opt/cowork 的所属组修改为 mygrp
    a) chown :mygrp /opt/cowork
    b) chgrp mygrp /opt/cowork 二选一
    c) 注意:chgrp,chmod,chown 都有一个 -R 选项,用于迭代修改相关的信息
  5. 修改 /opt/cowork 的权限
    a) chmod g+w /opt/cowork
    b) rwxrwxrwx rwxr-xr-x rwx------
    c) 111111111 111101101 111000000
    d) 777 755 700
    e) chmod 644 /opt/cowork
  6. 将用户 bjsxt 和 sxt 添加到 mygrp 组中
    a) usermod -a -G mygrp bjsxt
    b) usermod -a -G mygrp sxt
  7. bjsxt和sxt创建文件需要修改文件所在的组
    a) bjsxt: touch hello.txt
    b) chgrp mygrp hello.txt
文件压缩与打包

压缩:指通过某些算法,将文件尺寸进行相应的缩小,同时不损失文件的内容。
打包:指将多个文件(或目录)合并成一个文件,方便传递或部署。

压缩文件或打包文件常见的扩展名: *.tar.gz , *.tar.bz2 ;linux 系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的,因为 linux 支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。

常见文件扩展名:

*.tar.gz  tar程序打包的文件,并且经过 gzip 的压缩  
*.tar.bz2 tar程序打包的文件,并且经过 bzip2 的压缩

TAR命令,选项与参数:

-c :建立打包文件,
-t :查看打包文件的内容含有哪些文件 
-x :解打包或解压缩的功能,可以搭配-C(大写)在特定到特定目录解开 
-j :通过bzip2的支持进行压缩/解压缩:此时文件最好为 *.tar.bz2 
-z :通过gzip的支持进行压缩/解压缩:此时文件最好为 *.tar.gz 
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来 
-f filename:-f 后面跟处理后文件的全名称(路径+文件名+后缀名) 
-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个 选项 
-p :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

注意 -c, -t, -x 不可同时出现在一串指令列中 

TAR 常用的指令组合

打包与压缩:

tar –zcv –f [/路径/]filename.tar.gz 被压缩的文件或目录
tar –jcv –f [/路径/] filename.tar.bz2 被压缩的文件或目录
练习:将 /etc 目录下的所有文件打包并压缩 /tmp/part1/tar/etc01.tar.gz   
     将 /etc 目录下的所有文件打包并压缩/tmp/part1/tar/etc02tar.bz2
  • 查询:
tar –ztv –f [/路径/] filename.tar.gz  
tar –jtv –f [/路径/] filename.tar.bz2
  • 备份:
tar –zpcv –f  [/路径/]filename.tar.gz  被备份文件或目录
tar –jpcv –f  [/路径/]filename.tar.bz2  被备份文件或目录
  • 解压到当前目录:
tar –jxv –f [/路径/] filename.tar.bz2
tar –zxv –f [/路径/] filename.tar.gz
  • 解压到指定目录:
    
tar -jxv  -f [/路径/] filename.tar.bz2 –C  指定目录
tar -zxv -f [/路径/] filename.tar.gz  -C 指定目录
  • 注意:filename 前带路径表示该路径下的,反之表示当前目录下
/etc压缩到/tmp/下etc01.tar.gz
  • 方式一:filename.tar.gz 前不带路径
[root@node1 ~]# cd /tmp/
[root@node1 tmp]# tar -zcvf etc01.tar.gz /etc/
  • 方式二:filename.tar.gz 前带路径
[root@node1 ~]# tar -zcvf /tmp/etc01.tar.gz  /etc
  • 将 /tmp/ 下 etc01.tar.gz 解压到 /tmp/ 目录下
[root@tedu ~]# cd /tmp/  #首先进入对应目录
[root@tedu tmp]# tar -zxvf  etc01.tar.gz 
  • 将 /tmp/ 下 etc01.tar.gz 解压到 /usr/ 目录下
[root@tedu tmp]# tar -zxvf  etc01.tar.gz  -C /usr
或者
[root@tedu tmp]# tar -zxvC /usr  -f  etc01.tar.gz
linux 中软件安装方式

解压、配置
三种:
源码编译安装
rpm安装
yum安装

src-build

nginx 的编译安装
安装 GCC
由于 Nginx 具有很强的可扩展性,需要使用哪些功能,只需通过 with 配置后重新编译
即可添加此功能,所以对于 Nginx 的源码安装方式是必须要掌握的。由于 Nginx 是由 C/C++语言编写的,所以对其进行编译就必须要使用相关编译器。对于C/C++语言的编译器,使用最多的是 gcc 与 gcc-c++,而这两款编译器在 CentOS6.5 中是没有安装的,所以首先要安装这两款编译器。

gcc,GNU Compiler Collection,GNU 编译器集合,其可以编译多种语言。

安装依赖库

基本的 Nginx 功能依赖于一些基本的库,在安装 Nginx 之前需要提前安装这些库。
A.pcre-devel:pcre,Perl Compatible Regular Expressions,Perl 脚本语言兼容正则表达式,为 Nginx 提供正则表达式库。
B.openssl-devel:为 Nginx 提供 SSL(安全套接字层)密码库,包含主要的密码算法、常用的密钥 和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。在安装之前需要注意,很多库具有 devel 库与非 devel 库两种。devel 库表示 development开发库,比非 devel 库会多出一些头文件、静态库、源码包等。而这些包在运行时不可能用到,但在开发时有可能用到。所以对于程序员来说,一般都是需要安装 devel 库的。不过,在 yum 安装 devel 库时,由于其依赖于非 devel 库,所以其会先自动安装非 devel 库,而后再安装 devel 库。所以真正在安装时,只需显示的安装 devel 库即可。通过以下命令可以查看到,非 devel 库也被安装了。

1、为了编译 nginx 源码

yum  install  gcc  gcc-c++ -y

2、用于支持 https 协议

yum  install  openssl  openssl-devel -y

3、解析正则表达式

yum install  pcre  pcre-devel -y

4、压缩 gzip deflate

yum  install  zlib  zlib-devel -y

nginx 下载地址:http://nginx.org/en/download.html

在这里插入图片描述
5、上传到 linux 的 /opt 目录下
6、解压

tar -zxf nginx-1.8.1.tar.gz

7、配置

[root@node1 ~]# cd /opt/nginx-1.8.1
./configure  --help查看帮助信息
./configure    ./ 相当于将当前可执行文件添加到PATH。
[root@node1 nginx-1.8.1]# ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module --error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid

8、编译
生成脚本及配置文件:make
编译步骤,根据 Makefile 文件生成相应的模块

[root@node1 nginx-1.8.1]# make

9、安装

[root@node1 nginx-1.8.1]# make install

make clean 清空上次配置的信息

[root@node1 nginx-1.8.1]# cd ../nginx
[root@node1 nginx]# ls
conf  html  logs  sbin

conf:保存 nginx 所有的配置文件,其中 nginx.conf 是 nginx 服务器的最核心最主要的配置文件,其他的 .conf 则是用来配置 nginx 相关的功能的,例如 fastcgi 功能使用的是 fastcgi.conf 和 fastcgi_params 两个文件,配置文件一般都有个样板配置文件,是文件名 .default 结尾,使用的使用将其复制为并将 default 去掉即可。
html:目录中保存了 nginx 服务器的 web 文件,但是可以更改为其他目录保存 web 文件,另外还有一个 50x 的 web 文件是默认的错误页面提示页面。
logs:用来保存 nginx 服务器的访问日志错误日志等日志,logs 目录可以放在其他路径,比如 /var/logs/nginx 里面。
sbin:保存 nginx 二进制启动脚本,可以接受不同的参数以实现不同的功能。
启动 nginx

[root@node1 conf]# cd ../sbin/
[root@node1 sbin]# ls
nginx
 [root@node1 sbin]# ./nginx

测试:浏览器地址栏中输入http://192.168.20.101/

在这里插入图片描述

出现该界面说明nginx安装成功。
Configure参数(扩展)

[root@node1 nginx-1.8.1]# ./configure --help

  --help                             print this message

  --prefix=PATH                      指定软件安装的目录
  --sbin-path=PATH                   set nginx binary pathname
  --conf-path=PATH                   set nginx.conf pathname
  --error-log-path=PATH              set error log pathname
  --pid-path=PATH                    set nginx.pid pathname
  --lock-path=PATH                   set nginx.lock pathname

  --user=USER                        set non-privileged user for
                                     worker processes
  --group=GROUP                      set non-privileged group for
                                     worker processes

  --build=NAME                       set build name
  --builddir=DIR                     set build directory

  --with-rtsig_module                enable rtsig module
  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support
  --with-ipv6                        enable IPv6 support

  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-http_spdy_module            enable ngx_http_spdy_module
  --with-http_realip_module          enable ngx_http_realip_module
  --with-http_addition_module        enable ngx_http_addition_module
  --with-http_xslt_module            enable ngx_http_xslt_module
  --with-http_image_filter_module    enable ngx_http_image_filter_module
  --with-http_geoip_module           enable ngx_http_geoip_module
  --with-http_sub_module             enable ngx_http_sub_module
  --with-http_dav_module             enable ngx_http_dav_module
  --with-http_flv_module             enable ngx_http_flv_module
  --with-http_mp4_module             enable ngx_http_mp4_module
  --with-http_gunzip_module          enable ngx_http_gunzip_module
  --with-http_gzip_static_module     enable ngx_http_gzip_static_module
  --with-http_auth_request_module    enable ngx_http_auth_request_module
  --with-http_random_index_module    enable ngx_http_random_index_module
  --with-http_secure_link_module     enable ngx_http_secure_link_module
  --with-http_degradation_module     enable ngx_http_degradation_module
  --with-http_stub_status_module     enable ngx_http_stub_status_module

  --without-http_charset_module      disable ngx_http_charset_module
  --without-http_gzip_module         disable ngx_http_gzip_module
  --without-http_ssi_module          disable ngx_http_ssi_module
  --without-http_userid_module       disable ngx_http_userid_module
  --without-http_access_module       disable ngx_http_access_module
  --without-http_auth_basic_module   disable ngx_http_auth_basic_module
  --without-http_autoindex_module    disable ngx_http_autoindex_module
  --without-http_geo_module          disable ngx_http_geo_module
  --without-http_map_module          disable ngx_http_map_module
  --without-http_split_clients_module disable ngx_http_split_clients_module
  --without-http_referer_module      disable ngx_http_referer_module
  --without-http_rewrite_module      disable ngx_http_rewrite_module
  --without-http_proxy_module        disable ngx_http_proxy_module
  --without-http_fastcgi_module      disable ngx_http_fastcgi_module
  --without-http_uwsgi_module        disable ngx_http_uwsgi_module
  --without-http_scgi_module         disable ngx_http_scgi_module
  --without-http_memcached_module    disable ngx_http_memcached_module
  --without-http_limit_conn_module   disable ngx_http_limit_conn_module
  --without-http_limit_req_module    disable ngx_http_limit_req_module
  --without-http_empty_gif_module    disable ngx_http_empty_gif_module
  --without-http_browser_module      disable ngx_http_browser_module
  --without-http_upstream_hash_module
                                     disable ngx_http_upstream_hash_module
  --without-http_upstream_ip_hash_module
                                     disable ngx_http_upstream_ip_hash_module
  --without-http_upstream_least_conn_module
                                     disable ngx_http_upstream_least_conn_module
  --without-http_upstream_keepalive_module
                                     disable ngx_http_upstream_keepalive_module

  --with-http_perl_module            enable ngx_http_perl_module
  --with-perl_modules_path=PATH      set Perl modules path
  --with-perl=PATH                   set perl binary pathname

  --http-log-path=PATH               set http access log pathname
  --http-client-body-temp-path=PATH  set path to store
                                     http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store
                                     http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store
                                     http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store
                                     http scgi temporary files

  --without-http                     disable HTTP server
  --without-http-cache               disable HTTP cache

  --with-mail                        enable POP3/IMAP4/SMTP proxy module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --without-mail_pop3_module         disable ngx_mail_pop3_module
  --without-mail_imap_module         disable ngx_mail_imap_module
  --without-mail_smtp_module         disable ngx_mail_smtp_module

  --with-google_perftools_module     enable ngx_google_perftools_module
  --with-cpp_test_module             enable ngx_cpp_test_module

  --add-module=PATH                  enable an external module

  --with-cc=PATH                     set C compiler pathname
  --with-cpp=PATH                    set C preprocessor pathname
  --with-cc-opt=OPTIONS              set additional C compiler options
  --with-ld-opt=OPTIONS              set additional linker options
  --with-cpu-opt=CPU                 build for the specified CPU, valid values:
                                     pentium, pentiumpro, pentium3, pentium4,
                                     athlon, opteron, sparc32, sparc64, ppc64

  --without-pcre                     disable PCRE library usage
  --with-pcre                        force PCRE library usage
  --with-pcre=DIR                    set path to PCRE library sources
  --with-pcre-opt=OPTIONS            set additional build options for PCRE
  --with-pcre-jit                    build PCRE with JIT compilation support

  --with-md5=DIR                     set path to md5 library sources
  --with-md5-opt=OPTIONS             set additional build options for md5
  --with-md5-asm                     use md5 assembler sources

  --with-sha1=DIR                    set path to sha1 library sources
  --with-sha1-opt=OPTIONS            set additional build options for sha1
  --with-sha1-asm                    use sha1 assembler sources

  --with-zlib=DIR                    set path to zlib library sources
  --with-zlib-opt=OPTIONS            set additional build options for zlib
  --with-zlib-asm=CPU                use zlib assembler sources optimized
                                     for the specified CPU, valid values:
                                     pentium, pentiumpro

  --with-libatomic                   force libatomic_ops library usage
  --with-libatomic=DIR               set path to libatomic_ops library sources

  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL

  --with-debug                       enable debug logging


猜你喜欢

转载自blog.csdn.net/qq_44745905/article/details/113105947