@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语言
- if、while、do/while、for、break、continue
数组更像 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 表示是否可以列出文件夹内容
创建一个目录,让多个用户共同使用
- 创建用户(bjsxt,sxt)
a) useradd bjsxt
b) useradd sxt
c) passwd bjsxt
d) passwd sxt - 在 /opt 目录下创建 cowork 目录让 bjsxt 和 sxt 共享文件
a) mkdir /opt/cowork - 创建一个用户组:mygrp
a) groupadd mygrp - 将 /opt/cowork 的所属组修改为 mygrp
a) chown :mygrp /opt/cowork
b) chgrp mygrp /opt/cowork 二选一
c) 注意:chgrp,chmod,chown 都有一个 -R 选项,用于迭代修改相关的信息 - 修改 /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 - 将用户 bjsxt 和 sxt 添加到 mygrp 组中
a) usermod -a -G mygrp bjsxt
b) usermod -a -G mygrp sxt - 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