利用grep,cut,awk处理一些文本的简记 Linux

先来案例一波:

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。


假设我们有一段需要处理的文本内容如下所示(数量几万行,手工别说了,先使用替换命令将|替换成空格):

[email protected]:cory0212
[email protected]:morris409
[email protected]:marigold
[email protected]:jeffrey2
[email protected]:123q123q | 
[email protected]:dinosaur52197 | 
[email protected]:goblue20 | 
[email protected]:Recon1234 | 
[email protected]:32gunz32 | Premium
[email protected]:happily1 | 
[email protected]:susana123 | 
[email protected]:silvia231106 | Standard
[email protected]:hockey30 | 
[email protected]:KtnM990175 | Basic
[email protected]:arturs2000 | 

我们需要从上面这段文本里面提取分离出邮箱和冒号后面竖线|之间的这两部分.如何操作呢?

首先  提取邮箱,我们可以使用grep来配合正则表达式直接提取邮箱,邮箱提取很简单.只需要一条命令:

grep -E -o '([a-zA-Z0-9_\-\.\+]+)*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}' xxx.txt  >> goodmail.txt



注:说明一下,使用 grep 的 -o 和 -E 选项进行正则的精确匹配,其中 -o 表示“only-matching”,即“仅匹配”之意。光用它不够,配合 -E 选项使用扩展正则表达式则威力巨大。哈哈,精准,迅速.快狠准!(命令中的xxx.txt问需要处理的文本,>> 表示追加到后面的 goodmail.txt,如果没有则自动创建此文件,如果需要使用grep)命令多次提取同一类型的字符,请使用单大于符号 > ,表示覆盖.写这些,纯粹是为了小白,我自己就是-_-|)

那么,,我们使用cut 来提取邮箱,也很容易的,先来看看cut命令的介绍:


cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
(1)其语法格式为:
cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]
使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数 -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

在这里,我们只需要一条命令就可以搞定提取邮箱了,直接提取冒号前面的就行,冒号就是界定符.

cut -d ':' -f 1 xxx.txt >> goodmail.txt

那如何提取邮箱后面的字符呢?


cut -d ':' -f 2 xxx.txt >> goodpwd_bad.txt

说明一下,但是没有第二个冒号,那么cut命令发现没有第二个冒号,那么就会使用默认的换行符,即在第一个冒号后的第一个换行符,那么邮箱后面的就取到了.但是因为这个文本并不是标准格式化的,后面还有一些 类似下面的格式 两个单词之间有空格,而我们只需要前面第一个部分.

frdbcgl9676  Standard
archie2002  
beaver92  Premium
bethany7  Standard
webbera1  
thunder00

这就简单了,在次在此基础上进行cut操作即可:

cut -d ' ' -f 1 goodpwd_bad.txt  > goodpwd.txt
#注意,两个单引号之间是个空格,并非就是两个单引号凑一起.

如果用awk来处理,稍稍复杂,这需要你会计算两个字符之间的长度,对于像我这种的不规则的,很不好下手...下面简单的举个例子:

echo abcdefghelloword | awk -v head="ab" -v tail="fg" '{print substr($0, index($0,head)+length(head),index($0,tail)-index($0,head)-length(head))}'
#以上关键是计算出开头标记"ab",和结束标记"fg" 在字符串中的位置
#执行结果就是
#cde

其实这三个命令grep,cut,awk,通常是配合管道|和sed命令联合使用,很强大.这就是为啥linux处理文件速度比windows快!

下面附上一些参考文章的链接:


  • 理解cut,awk,sort三个命令的分隔符选项: http://blog.csdn.net/u011341352/article/details/52910749
  • 多空格&多制表符文本之cut域分割终极方案 : https://sanwen8.cn/p/267AXa4.html
  • linux之cut用法: http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html
  • shell脚本抽取文本文件中指定字符串的方法:sed+grep方法、awk+grep方法(必要时可以联合sed以及grep)、grep+cut方法: http://blog.csdn.net/menlinshuangxi/article/details/7979504
  • linux grep命令详解: http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html
  • 使用 grep 的 -o 和 -E 选项进行正则的精确匹配: http://blog.sina.com.cn/s/blog_7e9efc570101adbv.html



Mrxn 发布于 2017-3-30 16:39

帮忙“翻墙”上外网赚钱最高罚1.5万-看Google回归要多久 业界新闻

01 (那些网上卖vpn的现在是不是都非法了,还敢卖呀?不怕被抓起来了?)

今天,Google 翻译在 Android 和 iOS 上更新至 5.8 版本,新版本的Google 翻译 App 增加了英语与韩语间的转即时相机翻译功能,具体是什么样子呢?我们看下面这个图。

0.gif

当然这都不是重点,重点是此次版本更新优化了中国用户的体验,也就是从现在开始你可以使用 Google 翻译了,不管你的手机是安卓还是苹果,都可以在应用商城或 Appstore 中下载 Google 翻译。

也许你还在用百度翻译、有道翻译,可能你还在比较百度翻译和有道翻译之间哪个好哪个不好,从现在开始不用再考虑了。对于同一条英文语句,以下是三个平台翻译的结果。

0.jpg

点击查看原图

02

3月27日,重庆政府公众信息网发布了修订后的《重庆市公安机关网络监管行政处罚裁量基准》

对故意输入计算机病毒、有害数据的,初次违法,未实际危害计算机系统安全的,处以警告。个人违法所得 5000 元以上、单位违法所得15000 元以上,不够刑事处罚的,没收违法所得,并处以违法所得 2至 3 倍的罚款;构成犯罪的,依法追究刑事责任。

帮忙“查资料”上外网赚钱最高罚 1.5 万

违法行为:擅自建立、使用非法定信道进行国际联网;接入网络未通过互联网络接入国际联网;未经许可从事国际联网经营业务;未经批准擅自进行国际联网;未通过接入网络进行国际联网;未经接入单位同意接入接入网络;未办理登记手续接入接入网络。

也就是说从今以后,在重庆不管通过何种途径访问 Google 等墙外网站的行为都构成犯罪;

重庆也成为第一承认信息封锁墙存在的官方机构。(终于有官方承认了-_-|手动滑稽)

从2015年8月份开始,开源查资料项目以及查资料软件比如 GoAgent、Shadowsocks、曲径、红杏等等不断被约谈,最终的结局无疑都是删除 GitHub,停止服务,到如今的重庆的明文禁止查资料规定。大陆一直不遗余的建设“中国特色的内联网”。


另一方面,从去年的 Google 开放 Google 中国开发者网站,到今天的的 Google 翻译回归,Google 不断地尝试进入大陆,Facebook 等墙外大厂也正积极尝试与大陆交涉,但是大陆依然没有任何打破信息墙的意思。

3.开网吧不登记身份证最高罚5000元 


违法行为:向上网消费者提供直接接入互联网的计算机;未建立上网服务营业场所巡查制度;不制止、不举报上网消费者违法行为;未按规定核对、登记上网消费者有效身份证件;未按规定记录上网信息;对未按规定保存上网消费者登记内容、记录备份;擅自修改、删除上网消费者登记内容、记录备份;上网服务经营单位未依法办理变更登记注册事项、终止经营手续、备案等违法行为。

  处罚措施:初次实施,尚未造成危害后果或社会影响的,给予警告,并处5000元以下罚款。

  因实施上述违法行为被公安机关行政处罚后又实施同种行为的,给予警告,并处5000元以上10000元以下罚款;实施上述违法行为,且符合相关规定,属情节严重,给予警告,并处10000元以上15000元以下罚款,责令停业整顿;停业整顿后再次违反的,建议文化部门吊销《网络文化经营许可证》。

4.违规经营国际互联网络业务最高罚1.5万


违规经营国际互联网络业务,不以盈利为目的,初次实施上述违法行为,给予警告;以盈利为目的实施上述违法行为,违法所得在5000元以下的,给予警告,可以并处5000元以下罚款,同时没收违法所得;以盈利为目的实施上述违法行为,违法所得在5000元以上10000元以下的,给予警告,可以并处5000元以上10000元以下罚款,同时没收违法所得;以盈利为目的实施上述违法行为,违法所得在10000元以上或因实施上述违法行为被公安机关行政处罚后又实施同种行为的,给予警告,并处10000元以上15000元以下罚款,同时没收违法所得。





也许,墙倒还有很长时间;

也许,Google 很难做到真正的回归。

不过,人呐,总要有个盼头啊。



Mrxn 发布于 2017-3-29 21:47

centos开启ssh密钥登录总结 Linux


centos开启SSH密钥登录相信大家都会吧,而且很多的一键脚本都会配备,比如wdlinux面板的一件安装包都会配备而且支持自定义修改SSH端口,和一键生成密钥,很方便的,但是我们有时候没有必要安装这些一键脚本(比如内存小,不是用来做web服务的等等原因就不细说了);比如我们只是在梯子服务器上安装呢?这就需要我们自己手动了.博主我呢也经常折腾linux服务器,自己的或朋友的,今天抽时间写这篇文章,把我配置SSH密钥过程中遇到的坑都一一道来,

一来是做个总结,二来是方便后人^^.不要再往坑了跳了!跳了的也能尽快出坑!(此处应有掌声 -_-|)

先来看配置SSH的步骤

大致分为以下下几步:

  • 本地使用xshell软件生成公钥(不推荐linux端生成,照顾小白)
  • 使用非常著名方便小巧的运维工具--lrzsz(点我传送)--来上传公钥到服务端
  • 服务端常规配置(会附上详细的步骤shell操作代码)
  • 本文的重点--常见的坑的排除,解决方法(附上几种出错的情况以及解决办法)

1.本地使用xshell软件生成公钥:

  • 在xshell的工具栏里面找到 工具-新建用户密钥向导 如下图所示: 


  • 新建用户密钥生成向导.jpg


  • *密钥类型推荐使用RSA,密钥长度为2048的,即软件推荐的默认长度. 建议使用2048位密钥长度.jpg


  • 然后下一步,等待自动生成公钥对,公钥对生成.jpg
  • 然后下一步,给用户密钥设置一个密码,如下图所示,设置密码,即使别人拿到你得密钥也没法用,双重保险. 密钥加密.jpg


  • 然后点击下一步到公钥注册界面,选择公钥格式: SSH2-OpenSSH(因为现在大多数的linux的SSH都支持2.0保护方式,而且更保险.),然后,如下图所示保存为文件,在弹出的窗口,选择一个地方保存公钥 .pub 文件, 默认是id_rsa_2048.pub,方便自己查找的一个地方,比如桌面.导出公钥.jpg

2.SSH登录服务器,把id_rsa_2048.pub上传到服务器上并注册公钥,配置SSH

  • 上传可以参考我这篇文章 lrzsz(点我传送) ,如果安装好了lrzsz,只需要一条命即可把pub文件上传到服务器,输入:rz 然后在弹出的窗口选择上传的文件即可,如果出现报错,暂时关闭防火墙即可.
  • 其实使用sftp也可以在xshell里直接传文件,但是我不常用没有做,抱歉,但是教程网上有的,搜索一下即可.

3.服务端注册公钥.pub文件到系统,并分配好权限,权限没设置好后面登录会出问题的,这就是其中的一个坑,很多人都被坑过...具体步骤如下代码 :

就是把id_rsa_2048.pub的内容替换到/root/.ssh/下: 
[[email protected] ~]# ls -a 
.            ..         id_rsa_2048.pub
[[email protected] ~]# mkdir .ssh
[[email protected] ~]# chmod 700 .ssh/
[[email protected] ~]# cd .ssh/
[[email protected] .ssh]# cat ../id_rsa_2048.pub > ./authorized_keys
[[email protected] .ssh]# ls
authorized_keys
[[email protected] .ssh]# chmod 600 authorized_keys
[[email protected] ~]# diff id_rsa_2048.pub .ssh/authorized_keys 
[[email protected] ~]#
最后的diff命令来比较两个文件,确保文件内容相同。

4.接下来配置server的ssh服务(/etc/ssh/sshd_config)只允许使用密钥登录不允许口令登录(小提示:sshd重启完先不要关闭当前的ssh链接,以防万一):

[[email protected]~]:# vi /etc/ssh/sshd_config
#然后在vi界面用i来insert修改,找个空,回车一下,粘贴下面的代码
PasswordAuthentication no                    # 不允许口令登录
PubkeyAuthentication yes                     # 使用key登录
AuthorizedKeysFile .ssh/authorized_keys      # key的名字
#然后Esc,输入冒号:wq,保存退出
service sshd restart   #重启ssh服务

现在暂时不修改端口,不然修改完端口很多童鞋就直接exit了,就GG了,因为很多人的iptables规则没有设置就退出了,结果就进不去了,要是vps有控制台还好,可以通过控制台的VNC修改配置文件.要是没有就麻烦了.

这时候,xshell新开一个窗口,输入你的服务器IP,端口,默认22,然后回车链接,在弹出的对话框输入用户名,root,然后选择public key,在用户密钥里选择刚刚生成的那个,默认名字是id_rsa_2048,然后在下面输入刚刚设置的密钥密码,登录,看是否正常,如果正常登录,就OK了,然后就可以去修改端口,修改防火墙了:

修改端口,直接,vi /etc/ssh/sshd_config,增加一行,Port  3211 #端口请随意,但要记住.

然后防火墙增加一条规则允许 32211端口链接,命令大概如下,具体的请自行酌情修改:

iptables -A INPUT -p tcp --dport 3211 -j ACCEPT   /*允许包从3211端口进入*/
iptables -A OUTPUT -p tcp --sport 3211 -m state --state ESTABLISHED -j ACCEPT  /*允许从3211端口进入的包返回*/
service iptables save   /*保存配置*/
service iptables restart  /*重启iptables*/

下面说一下常见的坑(错误),如何爬出来:

  1. 配置完,使用密钥登录时,提示:所选用户密钥未在远程主机上注册.请再试一次.所选用户密钥未在远程主机上注册.请再试一次..jpg

这时候,请先检查存放authorized_keys的文件的权限,是否为600或者是644,如果不知道怎么看,那就直接执行下面的命令一次好了:


chmod 600 .ssh/authorized_keys 即可或者 644 也行. #600权限即-rw-------

注:执行这些命令的前提是,默认你是root账户,且在root目录下.如果不是,请自行调整用户和目录.不懂得可以留言/论/发邮件.


然后再次登录,成功就不说了,没成功请继续往下看:

没成功就请查看登录日志,具体的命令如下(centos为例,其他的linux目录可能不一样,请注意):

cat /var/log/secure

如果出现如图所示的 xxx because account is locked :


这种有可能是用户被锁定了,于是查看状态 准备解锁用户,命令如下:
pam_tally2 --user root  #root为你需要登录的账号
pam_tally2 -r -u root   #root为你需要登录的账号

通过pam_tally2 --user 指令发现没有锁定,都是0,
[[email protected]~]# pam_tally2 --user root
Login           Failures Latest failure     From
root                0    
[[email protected]~]# pam_tally2 -r -u root
Login           Failures Latest failure     From
root                0    
那就有可能是sshd没开启PAM 
修改/etc/ssh/sshd_config 配置后 ,再次登录测试,应该能解决问题

       2.如果按照上面这些修改完还是登录不进去,并且查看日志,大概内容如下:

Mar 29 01:36:12 localhost sshd[2645]: Received disconnect from 192.123.123.123: 11: Bye Bye
Mar 29 01:49:48 localhost sshd[2031]: Received signal 15; terminating.
Mar 29 01:49:48 localhost sshd[2704]: Server listening on 0.0.0.0 port 22.
Mar 29 01:49:48 localhost sshd[2704]: Server listening on :: port 22.
Mar 29 01:50:12 localhost sshd[2707]: Received disconnect from 192.123.123.123: 0: 
Mar 29 01:50:43 localhost sshd[2784]: Received disconnect from 192.123.123.123: 0: 
Mar 29 01:52:21 localhost sshd[2812]: Received disconnect from 192.123.123.123: 0: 

出错的是直接就断开了连接,并且没有任何错误提示,请检查服务器的selinuxiptables是否开启,iptables前面讲过,开放想相应端口,

如果还是连接不上,那就检查selinux, 使用下面的代码检查selinux 是否开启 :

查看SELinux状态:
1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status:                 enabled
2、getenforce                 ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0                  ##设置SELinux 成为permissive模式
                              ##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可  #reboot

目前就写这么多,欢迎补充,交流!

我们下次再会.


Mrxn 发布于 2017-3-29 16:39

MySQL order by 排序小计 技术文章

在使用 MySQL 排序的时候,

我想把 考号(字段 kh) 里面从左数第三个(包含第三个)取两个数为 11 的所有结果的 分数(字段 fs)进行 降序排列,可是我用order by出现这样的结果:
前面的有比较小的值(越小不应该在最后么),后面才是按照降序排列的(数据有几千条)...很尴尬, 同样,我如果用升序排列,则前面的是按照升序的排序的,可是最后的几行就不是的...最后的几行有比较小的分数(不应该是越到最后越是最大的分数么),特么真是太尴尬...

MySQL 代码如下:

SELECT kh, xm, fs FROM score WHERE SUBSTRING(kh, 3, 2) = '11' ORDER BY fs DESC


出现类似如下图的结果(这是使用降序的时候),请问该如何写 MySQL 语句?

图

解决办法:我发现我的 FS 字段是 varchar 的 我改成 int 整形在排序也对了,你说的使用 ORDER BY abs(fs) desc 也可以..我不知道 ABS(X)这个函数...


Mrxn 发布于 2017-3-28 15:34

IDM6.28+patch+油猴脚本+百度网盘下载助手脚本 破解软件

哇,在TG上看到很多人说百度网盘下载慢...可是看看我的...20M的带宽可以跑满啊,2.7M/s:

QQ截图20170324185214.png

我这里推荐IDM,配合油猴插件和百度网盘下载助手来实现高速下载百度网盘的东西:

  • IDM长期在更新维护
  • 油猴插件方便快捷
  • 使用IDM配置代理可以实现下载国外的资源,比如Googledrive的东西,就如下图:点击查看原图
  • 速度还是可以接近带宽最大值的,我这里下载谷歌云盘的速度是2.46M/s .
  • 使用IDM是所有的宽带地区都适合,因为有的ISP服务商会限制迅雷,QQ旋风这类bt下载软件,基本上没有速度
  • 免费啊...迅雷这些不开VIP也不咋的..
  • 我没得写的了,,凑凑数,哈哈

下面说一下使用方法,首先下载我准备好的压缩包,里面包括IDM6.28原版安装程序,油猴插件,百度网盘下载助手js脚本:

下载链接:https://pan.lanzou.com/1013883 链接: https://pan.baidu.com/s/1skMiOd3 密码: e935

下载后,解压,首先安装IDM,直接双击打开,一路next下一步,安装完成,不用管它.

然后把补丁程序:\IDM6.28+patch+油猴脚本\Internet Download Manager 6.28\Patch\idm.6.x.x.update.11-patch-REiS.exe复制到IDM的安装路径里,

IDM默认的路径是:C:\Program Files (x86)\Internet Download Manager.(如果你有自己选择的安装路径,就把补丁程序复制到相应文件夹)

然后直接打开补丁程序,点击Patch,在弹出的输入框输入firstname,随便输入,比如,Mrxn,接着第二个弹出框lastname,输入net,然后就完事...

成功的话会在补丁程序现对话框出现 PATCHING DONE字样,关闭补丁程序即可.

原版的IDM是没有中文语言包的,请自行把压缩包里的 中文语言包.zip解压后,复制里面的4个文件到IDM的安装目录文件夹的languages里.

默认路径是:C:\Program Files (x86)\Internet Download Manager\Languages,然后打开IDM就可以了.2017-03-27-49.jpg



下面说一下油猴脚本和百度网盘助手的使用方法:


首先你的浏览器必须是chrome内核的,比如chrome浏览器,360极速浏览器这内的,不然是不能安装这个插件的.

  1. 把Tampermonkey文件夹下的extension_4_2_7.crx拖拽到你得浏览器里面,不会的就搜索吧,浏览器这么多,一个个说太累..
  2. 安装好Tampermonkey插件后,打开插件,导入脚本,具体的教程可以参考这里http://jingyan.baidu.com/article/e73e26c088875424adb6a7b6.html 
  3. 然后在百度网盘下载的右边就会有 下载助手 ,点击它,在下拉框选择 显示链接,然后直接点击 或者是 鼠标右键选择 IDM下载即可.  33.gif

注:IDM及其补丁是国外小哥制作的,网址:https://mhktricks.net/idm/

不懂得可以留言/评论.


Mrxn 发布于 2017-3-27 09:57

漏洞练习平台总结 渗透测试

漏洞及渗透练习平台:

WebGoat漏洞练习环境

https://github.com/WebGoat/WebGoat

https://github.com/WebGoat/WebGoat-Legacy

Damn Vulnerable Web Application(漏洞练习平台)

https://github.com/RandomStorm/DVWA


数据库注入练习平台  

https://github.com/Audi-1/sqli-labs


用node编写的漏洞练习平台,like OWASP Node Goat

https://github.com/cr0hn/vulnerable-node


花式扫描器 :

端口扫描器Nmap

https://github.com/nmap/nmap


本地网络扫描器

https://github.com/SkyLined/LocalNetworkScanner


子域名扫描器

https://github.com/lijiejie/subDomainsBrute


漏洞路由扫描器

https://github.com/jh00nbr/Routerhunter-2.0


迷你批量信息泄漏扫描脚本

https://github.com/lijiejie/BBScan


Waf类型检测工具

https://github.com/EnableSecurity/wafw00f


信息搜集工具 :

社工插件,可查找以email、phone、username的注册的所有网站账号信息

https://github.com/n0tr00t/Sreg


Github信息搜集,可实时扫描查询git最新上传有关邮箱账号密码信息

https://github.com/sea-god/gitscan


github Repo信息搜集工具

https://github.com/metac0rtex/GitHarvester


WEB:

webshell大合集

https://github.com/tennc/webshell


渗透以及web攻击脚本

https://github.com/brianwrf/hackUtils


web渗透小工具大合集

https://github.com/rootphantomer/hack_tools_for_me


XSS数据接收平台

https://github.com/firesunCN/BlueLotus_XSSReceiver


XSS与CSRF工具

https://github.com/evilcos/xssor


Short for command injection exploiter,web向命令注入检测工具

https://github.com/stasinopoulos/commix


数据库注入工具

https://github.com/sqlmapproject/sqlmap


Web代理,通过加载sqlmap api进行sqli实时检测

https://github.com/zt2/sqli-hunter


新版中国菜刀

https://github.com/Chora10/Cknife


.git泄露利用EXP

https://github.com/lijiejie/GitHack


浏览器攻击框架

https://github.com/beefproject/beef


自动化绕过WAF脚本

https://github.com/khalilbijjou/WAFNinja


http命令行客户端,可以从命令行构造发送各种http请求(类似于Curl)

https://github.com/jkbrzt/httpie


浏览器调试利器

https://github.com/firebug/firebug


一款开源WAF

https://github.com/SpiderLabs/ModSecurity


windows域渗透工具:

windows渗透神器

https://github.com/gentilkiwi/mimikatz


Powershell渗透库合集

https://github.com/PowerShellMafia/PowerSploit


Powershell tools合集

https://github.com/clymb3r/PowerShell


Fuzz:

Web向Fuzz工具

https://github.com/xmendez/wfuzz


HTTP暴力破解,撞库攻击脚本

https://github.com/lijiejie/htpwdScan


漏洞利用及攻击框架:

msf

https://github.com/rapid7/metasploit-framework


Poc调用框架,可加载Pocsuite,Tangscan,Beebeeto等

https://github.com/erevus-cn/pocscan


Pocsuite

https://github.com/knownsec/Pocsuite


Beebeeto

https://github.com/n0tr00t/Beebeeto-framework


漏洞POC&EXP:

ExploitDB官方git版本

https://github.com/offensive-security/exploit-database


php漏洞代码分析

https://github.com/80vul/phpcodz


Simple test for CVE-2016-2107

https://github.com/FiloSottile/CVE-2016-2107


CVE-2015-7547 POC

https://github.com/fjserna/CVE-2015-7547


JAVA反序列化POC生成工具

https://github.com/frohoff/ysoserial


JAVA反序列化EXP

https://github.com/foxglovesec/JavaUnserializeExploits


Jenkins CommonCollections EXP

https://github.com/CaledoniaProject/jenkins-cli-exploit


CVE-2015-2426 EXP (windows内核提权)

https://github.com/vlad902/hacking-team-windows-kernel-lpe


use docker to show web attack(php本地文件包含结合phpinfo getshell 以及ssrf结合curl的利用演示)

https://github.com/hxer/vulnapp


php7缓存覆写漏洞Demo及相关工具

https://github.com/GoSecure/php7-opcache-override


XcodeGhost木马样本

https://github.com/XcodeGhostSource/XcodeGhost


中间人攻击及钓鱼

中间人攻击框架

https://github.com/secretsquirrel/the-backdoor-factory

https://github.com/secretsquirrel/BDFProxy

https://github.com/byt3bl33d3r/MITMf


Inject code, jam wifi, and spy on wifi users

https://github.com/DanMcInerney/LANs.py


可扩展的中间人代理工具

https://github.com/intrepidusgroup/mallory


wifi钓鱼

https://github.com/sophron/wifiphisher


密码破解:

密码破解工具

https://github.com/shinnok/johnny


本地存储的各类密码提取利器

https://github.com/AlessandroZ/LaZagne


二进制及代码分析工具:

二进制分析工具

https://github.com/devttys0/binwalk


系统扫描器,用于寻找程序和库然后收集他们的依赖关系,链接等信息

https://github.com/quarkslab/binmap


rp++ is a full-cpp written tool that aims to find ROP sequences in PE/Elf/Mach-O (doesn't support the FAT binaries) x86/x64 binaries.

https://github.com/0vercl0k/rp


Windows Exploit Development工具

https://github.com/lillypad/badger


二进制静态分析工具(python)

https://github.com/bdcht/amoco


Python Exploit Development Assistance for GDB

https://github.com/longld/peda


对BillGates Linux Botnet系木马活动的监控工具

https://github.com/ValdikSS/billgates-botnet-tracker


木马配置参数提取工具

https://github.com/kevthehermit/RATDecoders


Shellphish编写的二进制分析工具(CTF向)

https://github.com/angr/angr


针对python的静态代码分析工具

https://github.com/yinwang0/pysonar2


一个自动化的脚本(shell)分析工具,用来给出警告和建议

https://github.com/koalaman/shellcheck


基于AST变换的简易Javascript反混淆辅助工具

https://github.com/ChiChou/etacsufbo


EXP编写框架及工具:

二进制EXP编写工具

https://github.com/t00sh/rop-tool


CTF Pwn 类题目脚本编写框架

https://github.com/Gallopsled/pwntools


an easy-to-use io library for pwning development

https://github.com/zTrix/zio


跨平台注入工具( Inject JavaScript to explore native apps on Windows, Mac, Linux, iOS and Android.)

https://github.com/frida/frida


隐写:

隐写检测工具

https://github.com/abeluck/stegdetect


各类安全资料:

域渗透教程

https://github.com/l3m0n/pentest_study


python security教程(原文链接http://www.primalsecurity.net/tutorials/python-tutorials/)

https://github.com/smartFlash/pySecurity


data_hacking合集

https://github.com/ClickSecurity/data_hacking


mobile-security-wiki

https://github.com/exploitprotocol/mobile-security-wiki


书籍《reverse-engineering-for-beginners》

https://github.com/veficos/reverse-engineering-for-beginners


一些信息安全标准及设备配置

https://github.com/luyg24/IT_security


APT相关笔记

https://github.com/kbandla/APTnotes


Kcon资料

https://github.com/knownsec/KCon


ctf及黑客资源合集

https://github.com/bt3gl/My-Gray-Hacker-Resources


ctf和安全工具大合集

https://github.com/zardus/ctf-tools


《DO NOT FUCK WITH A HACKER》

https://github.com/citypw/DNFWAH


各类CTF资源

近年ctf writeup大全

https://github.com/ctfs/write-ups-2016

https://github.com/ctfs/write-ups-2015

https://github.com/ctfs/write-ups-2014


fbctf竞赛平台Demo

https://github.com/facebook/fbctf


ctf Resources

https://github.com/ctfs/resources


各类编程资源:

大礼包(什么都有)

https://github.com/bayandin/awesome-awesomeness


bash-handbook

https://github.com/denysdovhan/bash-handbook


python资源大全

https://github.com/jobbole/awesome-python-cn


git学习资料

https://github.com/xirong/my-git


安卓开源代码解析

https://github.com/android-cn/android-open-project-analysis


python框架,库,资源大合集

https://github.com/vinta/awesome-python


JS 正则表达式库(用于简化构造复杂的JS正则表达式)

https://github.com/VerbalExpressions/JSVerbalExpressions


Python:

python 正则表达式库(用于简化构造复杂的python正则表达式)

https://github.com/VerbalExpressions/PythonVerbalExpressions


python任务管理以及命令执行库

https://github.com/pyinvoke/invoke


python exe打包库

https://github.com/pyinstaller/pyinstaller


py3 爬虫框架

https://github.com/orf/cyborg


一个提供底层接口数据包编程和网络协议支持的python库

https://github.com/CoreSecurity/impacket


python requests 库

https://github.com/kennethreitz/requests


python 实用工具合集

https://github.com/mahmoud/boltons


python爬虫系统

https://github.com/binux/pyspider


ctf向 python工具包

https://github.com/P1kachu/v0lt


科学上网:

科学上网工具

https://github.com/XX-net/XX-Net


福利:

微信自动抢红包动态库


https://github.com/east520/AutoGetRedEnv


微信抢红包插件(安卓版)

https://github.com/geeeeeeeeek/WeChatLuckyMoney

神器

https://github.com/yangyangwithgnu/hardseed


Mrxn 发布于 2017-3-26 16:37

现在的VPN已经不适合用来科学上网了,shadowsocks/R也该检点点 墙外世界

这段时间不时的有朋友说QQ群被封了,网上各个角落也在流传各种说法,这是从上次工信部的发文以来的执行结果,先看新华网的这篇文章(废话开始):


工信部严管VPN提速,北京商报记者调查发现,在iOS与安卓的手机应用商城中,VPN App种类多样,可以畅游海外多国。不过,“查资料”系违法行为,监管力度不断加大背后,VPN App不断上锁。依附VPN App获得流量的游戏应用、广告等也被泼冷水。

  VPN App乱象丛生

  “查资料”属于违法行为,所谓的查资料软件并没有获得电信主管部门批准。国内“查资料”用户众多,根据市场研究机构Global WebIndex的调查研究估测,中国的VPN用户可能多达9000万。这也让一些游走在灰色地带的查资料软件默默赚钱。

  “查资料”软件又叫VPN软件。北京商报记者在手机应用商城输入VPN,下拉菜单中出现了不少“查资料”软件,有VPN、5VPN、Snap VPN、极速安全VPN、蝙蝠VPN、绿豆VPN、VPN333、快喵等。

  打开Snap VPN App后,页面显示有Free(免费)和VIP(会员)两种连接模式,分为美国、德国、荷兰、印度、新加坡、加拿大、英国七条线,VIP需要用户每月支付5.99美元,相较免费模式有更快的网速、不受限制的数据、没有广告达人。北京商报记者在连接美国线免费模式后,成功登录Facebook,但后台自动下载了几个手机应用,如果不安装到手机上隔几分钟就会推出一次广告,最终将Snap VPN卸载后才停止推送广告。

  融合网CEO吴纯勇指出,VPN软件商相当于某些做第三方服务的企业,通过私自架设服务器,利用公网网络,通过软件、硬件等设备,把国内与国外对应服务器进行互连互通,使相应的用户能够获取信息。

  据了解,VPN一年使用费用约为60-100美元左右。电脑或手机用户可以通过特制软件获得加密链接,浏览在国内被屏蔽的外国网站内容。这些被封锁的网站包括社交平台Facebook、Twitter、视频网站YouTube、谷歌公司提供的网页搜索、邮箱等服务。

  在论坛和贴吧等地方,有网友推荐了几款“查资料”工具。比如,加速精灵是一家稳定运营三年的老牌VPN商,目前主营美国、中国香港、日本、中国台湾、德国、韩国的高速线路,支持电脑各种系统、手机安卓、iOS,可流畅观看YouTube 1080P高清视频,手机号码注册即送24小时VIP体验,同时提供永久免费试用线路。鱼跃是一款浏览器插件,可以稳定秒开YouTube、Facebook、Twitter、Google、instagram等海量国外网站,拥有中国香港、美国、日本、德国、英国、新加坡、加拿大、韩国、法国等多国超高带宽服务器。鱼跃拥有智能、一直和关闭三个主模式,在特有的智能模式下打开国外网站时会默认查资料,而在访问国内网站时候则不查资料,跟国内一样正常浏览,这样避免在看国内网站时也查资料会导致访问速度过慢,从而实现智能查资料。

  不过,有技术人员指出,发送与接收的数据会通过VPN服务提供商的机器,用户的账号、密码信用卡信息等有被VPN服务提供商看到的风险。

  灰色地带不再

  工信部发布的《工业和信息化部关于清理规范互联网网络接入服务市场的通知》指出,近年来,网络信息技术日新月异,云计算、大数据等应用蓬勃发展,我国互联网网络接入服务市场面临难得的发展机遇,但无序发展的苗头也随之显现,亟须整治规范。为进一步规范市场秩序,强化网络信息安全管理,促进互联网行业健康有序发展,工信部决定自发布通知日起至2018年3月31日,在全国范围内对互联网网络接入服务市场开展清理规范工作。

  工信部要求各基础电信企业、互联网网络接入服务企业对网络基础设施和IP地址、带宽等网络接入资源的使用情况进行全面自查,未经电信主管部门批准,不得自行建立或租用专线(含虚拟专用网络VPN)等其他信道开展跨境经营活动,基础电信企业向用户出租的国际专线,应集中建立用户档案,向用户明确使用用途仅供其内部办公专用,不得用于连接境内外的数据中心或业务平台开展电信业务经营活动。

  不少业内人士认为,这意味着一直以来用虚拟私人网络(VPN)来“查资料”的监管灰色地带将被曝光取缔。国内不少网民都已掌握一些“查资料”技能,绕过相应的IP封锁、内容过滤、域名劫持、流量限制等,实现对网络内容的访问。

  生存空间渐窄

  事实上,中国对于“查资料”这一现象并不是第一次进行监管。2015年初,有报道称,部分中国内地用户反映无法正常使用国外的VPN服务。与此同时,关于VPN服务涨价的消息也开始传出。据了解,“防火长城”开始屏蔽外国VPN服务。VPN供应商Astrill已通知用户,由于“防火长城”的升级,使用IPSec、L2TP/IPSec和PPTP协议的设备无法访问它的服务,“受影响的主要是iOS设备”。

  之后,另一家VPN服务商VPN Tech Runo称,从2014年12月31日开始,它的很多IP地址已被屏蔽,部分地区使用L2TP协议的用户也连接不了它的服务器。此外,免费VPN服务商fqrouter在当月正式宣布关闭其VPN服务。

  当时,就外界纷传的中国封杀部分VPN一事,工信部通信发展司司长闻库发声说,“在中国发展互联网一定要按照中国的法律法规来进行,一些不良信息应该按照中国法律进行监管,所以,随着互联网的发展,新的情况出现一定会有新的监管措施跟上”。

  中国网络空间战略研究所所长秦安也为“防火长城”指出,事关网络空间主权,中国当然不能对这些服务视而不见。

  有公安局网警透露,对于使用者来说,如果只是浏览没有不良信息的网页,一般不会被追究责任;如果是复制扩散有违法内容的帖子,一旦被查获,将承担相应的法律责任。

  多位律师认为根据法律原则性规定,浏览被禁止的网页应该涉嫌违法,但如何处罚则要视具体情节及危害程度而定。如果只是自己浏览没有散布,那么情节轻微,一般不会受罚。如果提供“查资料”服务,肯定违法了,比如买家借此浏览色情网页,则卖家涉嫌构成传播淫秽物品罪。

  也有律师指出,《计算机信息网络国际互联网安全保护管理办法》第5条规定,任何单位和个人不得利用国际互联网制作、复制、查阅和传播下列信息:煽动抗拒、破坏宪法和法律、行政法规实施的;煽动颠覆国家政权,推翻社会主义制度的;煽动分裂国家、破坏国家统一的;捏造或者歪曲事实,散布谣言,扰乱社会秩序等。 境外网页上的言论缺乏管理,一旦浏览到了,那就已经违反了这条规定。

  除了以上规定之外,对提供“查资料”服务的卖家而言,《互联网信息服务管理办法》 规定的惩罚措施更重。第4条规定:“国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。”第19条规定:“违反本办法的规定,未取得经营许可证,擅自从事经营性互联网信息服务,或者超出许可的项目提供服务的,由省、自治区、直辖市电信管理机构责令限期改正,有违法所得的,没收违法所得,处违法所得3倍以上5倍以下的罚款;没有违法所得或者违法所得不足5万元的,处10万元以上100万元以下的罚款;情节严重的,责令关闭网站。”

  在业内人士看来,虽然相关部门一直都对“查资料”有所监管,但这种监管时断时续,要求严的时候就封一阵,要求不严的时候各种查资料工具就会再次兴起,以前的各个监管部门只是将这项任务当成职能之一,但不是专属职能,所以监管一直有所疏漏,2014年国家成立了网信办,相当于有了专职机构来管理,监管力度也加大了,未来这些“查资料”工具将很难存活。(废话结束)



      再来看看这段时间被封的QQ群:

shit.jpgshit2.jpg

可以看出,这些群的图标都是小飞机,群号大部分都是XX科学上网,好好学习,这种,管制时间,鹅厂的人一看,不封你封谁....

真正的想要隐藏,你就的普通,懂吧,比如取名为,某某公司策划部,项目部,某级某班,某校学生会,某地某班家长群,这种的群多如牛毛,只要没人举报,谁封你?

当然,有个前提,不要在群里开车,和谈论政治,如果要干这些,请上telegram,whatsapp,这类稍微比鹅厂这些保险点的社交工具.

当然,目前GFW的能力随着技术的进步升级,审计能力也更强大,大部分地区的pptp/l2tp/ipesc已经被ISP的防火墙或者是NAT设备所过滤.目前尚还稳定的工具还是 shadowsocks/R,因为它是私人协议,只要协议不破,基本上是安全的,但是不要异想天开的觉得我挂了代理就无法无天了,洋葱TOR隐藏那么深还不是被发现,以至于丝绸之路都被连窝端....

使用这些代理工具你看看外面的世界,不做过分的事情,放心,没事的.随便翻....至于怎么搭建这些东西,网上的教程多得是...请自行Google...

今天就到这,我也不知道写些啥,先这样,希望我的读者朋友们,你们好好保护自己吧...在这个局域网/internet里,能保全自己就不错了.

我们下回见.


Mrxn 发布于 2017-3-25 12:00

LInux远程文件传输效率工具-lrzsz Linux

相信作为linux运维的童鞋们都会遇到这么一个问题,那就是当你使用xshell或者SecureCRT,你会发现,想在自己本地和服务器进行文件传输是一件很麻烦的事情,当然,你会说可以使用ftp可以用sftp,但是这些方式太麻烦了,我也经常为这些问题困扰,好消息是,我刚刚发现了一个有趣的工具:lrzsz。

       lrzsz:是一个开源工具,可以目前可以在xshell 和SecureCRT中使用,OS测试过centos和debian

        website:http://www.gnu.org/software/lrzsz/

        目前最新版本是:lrzsz-0.12.20.tar.gz


下面以centos为例:

一、安装

yum -y install lrzsz     #就是这么简单

#如果你是debian可以需要用下面的指令安装:
apt-get -y install lrzsz
        

当然,你也可以到官网上下载最新的源码包,编译安装,步骤也很简单,下面我就简单把代码列出来:
wget 
tar xf  lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
#当前目录下有个INSTALL,详细讲述了如果安装
./configure && make && sudo make install     #如果你不需要特别自定义,这条指令就够了
echo $?    # 如果结果是0,就表示你安装成功了

二、使用

sz命令发送文件到本地:

sz filename

rz命令本地上传文件到服务器:

rz        #执行该命令后,在弹出框中选择要上传的文件即可。


Mrxn 发布于 2017-3-20 23:17

error while loading shared libraries: libsodium.so.18: cannot open shared Linux

昨晚在部署环境编译pureFTP的时候,报错:

error while loading shared libraries: libsodium.so.18: cannot open shared

百度,Google一阵总算找到解决方法:

首先确认libsodium.so.18在你得系统里是否存在,直接一行命令就搞定:

cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

/lib

/usr/lib

/usr/lib64

/usr/local/lib

或者是下面的find命令:

find / -name "libsodium.so.18" ,我的系统返回的是存在的,一般的系统都存在的....

/usr/lib/libsodium.so.18 ...那既然存在好报错,那就软连接到另一个 libsodium.so 上,具体命令如下:

ln -sf /usr/lib/libsodium.so /usr/lib/libsodium.so.18

提示:开始没有加f参数,失败,File exists ,加上f强制软连接.OK

最后一定要记得

ldconfig

是配置生效,再去编译一般就OK啦,不对再继续找原因.

注:参考链接--

http://www.jb51.net/LINUXjishu/268747.html


下面记录一下.使用acme.sh安装ssl证书时需要注意的,按照作者的步骤clone或者wget,curl且运行完脚本后,请reboot一下vps,

不然你执行acme.sh --可能会提示找不到命令,如果不重启,也可以,切换到acme.sh的安装目录,

cd /root/.acme.sh/ ,然后执行, ./acme.sh --参数 .推荐重启一下,方便.

如果在安装证书过程中出错,Verifying invalid这类的最好就换一种方式验证域名.作者那里有提到.

在安装证书前,域名切记不要被Google或者是火狐报毒...不然是不能通过的,不能颁发证书的.更多的使用方法去作者的github主页看,很详细.


Mrxn 发布于 2017-3-20 15:16

nessus Error (500): Activation failed的解决办法 安全工具

nessus的大名我就不多做介绍了,玩的人自然懂.今天给新机器安装的时候,到注册哪一步,输入发到邮箱的激活码,却提示我,nessus Error (500): Activation failed.

Google了一下,没有,但是在官方的论坛找到了Error (500): Failed to launch scan的解答,然后,怀着姑且试一试的心态,成功了,所以在此小记一下,希望可以帮到需要的人.下面先说激活码的获得步骤,呵,这是老生常谈的,我也还是记一下,就当笔记吧.

直接访问这个网址注册,即可在邮箱收到激活码:http://www.tenable.com/products/nessus-home

PS:全程最好使用代理,VPN,最好是美国的IP,使用国内的IP有可能会收不到激活码或者是注册失败.

PPS:邮箱推荐使用gmail邮箱.

最后就是这篇文章的主题,解决注册码输入提示错误的问题.

打开cmd. 执行一下命令(前提是你是默认安装路径没有改,请酌情注意路径/修改) 

cd c:\program files\tenable\nessus

net stop "tenable nessus"

nessuscli update --all

我执行第二条 net stop命令时,报错,11111.png


这时候再回到输入激活码的那个页面,刷新一下,再次输入激活码,OK...成功进入自动升级配置界面,慢慢等待吧,第一次时间很长的,嗯,很长,几分钟-_-,全程VPN会快些.毕竟他的更新服务器在国外....当然插件这些可以离线手动更新.

22222.png

下面贴上Error (500): Failed to launch scan的解决办法:

Try these commands.


Windows:

Open CMD as admin

cd c:\program files\tenable\nessus

net stop "tenable nessus"

nessuscli update --all

nessusd -R

net start "tenable nessus


Linux:

Open a root shell/command prompt window.

cd /opt/nessus/sbin

service nessusd stop

./nessuscli update --all

./nessusd -R

service nessusd start


When you run the nessuscli update --all and gets an error, you need to reset their activation code and run the command 'nessuscli fetch --register <Activation-code-here>' after stopping Nessus

参考链接: https://community.tenable.com/thread/10242



Mrxn 发布于 2017-3-18 17:53

Linux Find 命令精通指南(转) Linux

简单介绍这一无处不在的命令的强大的方面以及混乱的方面。

2008 年 7 月发布

Linux find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用 find 命令,您不但可以找到具这些属性任意组合的文件,还可以对它找到的文件执行操作。

本文的目的是,通过概述 find 命令的用途和潜能,简化该命令的学习和使用。同时,它将针对 find 命令的某些最强大但最混乱的方面提供一个基本的指南和参考。

[注意:本文使用的 find 版本是 GNU 版本,因此,某些细节可能与其他版本的 find 有所不同。]

基本格式

开始之前,我们先来看一下 find 命令的基本结构:

find   start_directory  test  options   criteria_to_match
action_to_perform_on_results

在以下命令中, find 将开始在当前目录(用“.”表示)中查找任何扩展名为“java”的文件:

find . -name  "*.java"  

下面是该命令所找到的命令的缩略清单:

find . -name  "*.java"
./REGEXPvalidate/src/oracle/otnsamples/plsql/ConnectionManager.java
./REGEXPvalidate/src/oracle/otnsamples/plsql/DBManager.java
..

[注意:如果您从本文剪切并粘贴来运行该 find 命令,您可能需要使用自己的键盘替换双引号 (“”) 才能得出正确的结果。]

以下命令将执行相同的操作。在这两种情况下,您都需要对通配符进行转义以确保它传递到 find 命令并且不由 shell 解释。因此,请将您的搜索字符串放到引号里,或者在它前面加上反斜线:

find . -name  \*.java

尽管 find 的所有参数均为可选,但是如果您未指定从哪里开始搜索,搜索默认将在当前目录中开始。如果您不指定要匹配的测试连接、选项或值,您的结果将不完整或者无区别。 
  
运行以下三个 find 命令将得出同样的结果 — 当前目录和所有子目录中的所有文件(包括隐藏文件)的完整清单:

find 
find .
find . -print

这类似于运行一个带 -la 选项的 ls 命令。如果您希望上述命令的输出包含完整的路径名(或许是为了备份),您将需要指定起始目录的完整路径:

find /home/bluher -name \*.java
/home/bluher/plsql/REGEXPvalidate/src/oracle/otnsamples/plsql/ConnectionManager.java
/home/bluher/plsql/REGEXPvalidate/src/oracle/otnsamples/plsql/DBManager.java/
...

您还可以在搜索字符串中指定多个起始目录。如果以具有相应权限的用户身份运行,以下命令将下到 /usr、/home /tmp 目录查找所有 jar 文件:

find /usr /home  /tmp -name "*.jar"

但是,如果您没有相应的权限,您在开始浏览许多系统目录时将生成错误消息。以下是一个示例:

find:  /tmp/orbit-root: Permission denied

您可以通过附加您的搜索字符串来避免混乱的输出,如下所示:

find /usr /home  /tmp -name "*.jar" 2>/dev/null

这会将所有错误消息发送到空文件,因此提供清理器输出。

默认情况下,find 是区分大小写的。对于不区分大小写的 find,将 -iname 测试替换为 -name 测试。

find downloads  -iname "*.gif"
downloads/.xvpics/Calendar05_enlarged.gif
downloads/lcmgcfexsmall.GIF

除文件名外,您还可以按类型搜索文件。例如,您可以使用以下命令查找一个目录中的所有子目录:

find . -type d         

您可以使用以下命令查找您的/usr 目录中的所有符号链接:

find /usr -type l

这可能会列出 3,000 多个链接。以下的任何一个命令使用根权限运行都将列出 /usr 目录中的链接以及它所指向的文件:

# find /usr/bin  -type l  -name "z*" -exec ls  -l {} \;
lrwxrwxrwx 1 root  root 8 Dec 12 23:17 /usr/bin/zsh -> /bin/zsh
lrwxrwxrwx 1 root  root 5 Dec 12 23:17 /usr/bin/zless -> zmore
lrwxrwxrwx 1 root  root 9 Dec 12 23:17 /usr/bin/zcat -> /bin/zcat
find /usr/bin -type  l  -name "z*" -ls

但是,第二个更短的命令将列出更多的文件,以及目录和 inode 信息:在本文后面的部分中,我们将讨论 -exec 和 -ls 操作的用法。

其他 find 可以找到的文件类型包括:

• b — 块(缓存)特殊 
• c — 字符(未缓存)特殊 
• p — 命名管道 (FIFO) 
• s — 套接字

使用根作为 find 命令的起点会极大地降低系统的速度。如果您必须运行这样一个命令,您可以在非高峰时段或晚上运行它。您可以使用以下语法将输出重定向到一个文件:

find  /   -print > masterfilelist.out

如果您错误地输入一个 find 命令,生成大量不必要的输出,只需按 CTRL-C 中断该命令,这将停止最近执行的命令。

在具多个文件系统的企业网络上,限制 find 查找的文件也是一个特别好用的方法。尽可能多地使用选项和测试以减少系统上的负载。用于此目的的两个最有用的选项是 -xdev 和 -mount。它们通过阻止 find 下到其他文件系统(如 MS-DOS、CD-ROM 或 AFS)上的目录中缩短了搜索范围。这将搜索限制为同一类型的文件系统作为起始目录。

如果运行 mount 命令,双引导系统上的用户可以使用这些选项。假设涉及 Windows 分区,您可以使用类似以下的命令安装它:

mount -t vfat  /dev/sda1 /mnt/msdos

您使用的实际命令取决于您的系统设置。您可以通过运行 df 或执行以下命令验证该分区已安装:

find /mnt/msdos  -name "*.txt" 2> /dev/null

您应该看到 MS Windows 分区上列出了很多的文件。现在,运行以下带 -mount 或 -xdev 选项的命令:

find / -name  "*.txt" -mount 2> /dev/null

或者

find / -name  "*.txt" -xdev 2> /dev/null

还可以使用 -fstype 测试明确告知 find 在哪个文件系统中查找,如以下示例中所示:

find / -name  "*.txt" -fstype vfat 2> /dev/null

查找时间

find 命令有几个用于根据您系统的时间戳搜索文件的选项。这些时间戳包括

 mtime  文件内容上次修改时间 
 atime — 文件被读取或访问的时间 
 ctime — 文件状态变化时间

mtime 和 atime 的含义都是很容易理解的,而 ctime 则需要更多的解释。由于 inode 维护着每个文件上的元数据,因此,如果与文件有关的元数据发生变化,则 inode 数据也将变化。这可能是由一系列操作引起的,包括创建到文件的符号链接、更改文件权限或移动了文件等。由于在这些情况下,文件内容不会被读取或修改,因此 mtime 和 atime 不会改变,但 ctime 将发生变化。

这些时间选项都需要与一个值 n 结合使用,指定为 -n、n 或 +n

• -n 返回项小于 n 
• +n 返回项大于 n 
• n 返回项正好与 n 相等

下面,我们来看几个例子,以便于理解。以下命令将查找在最近 1 小时内修改的所有文件:

find . -mtime -1
./plsql/FORALLSample
./plsql/RegExpDNASample
/plsql/RegExpSample

用 1 取代 -1 运行同一命令将查找恰好在 1 小时以前修改的所有文件:

find . -mtime 1

上述命令不会生成任何结果,因为它要求完全吻合。以下命令查找 1 个多小时以前修改的所有文件:

find . -mtime +1

默认情况下,-mtime、-atime 和 -ctime 指的是最近 24 小时。但是,如果它们前面加上了开始时间选项,则 24 小时的周期将从当日的开始时间算起。您还可以使用 mmin、amin 和 cmin 查找在不到 1 小时的时间内变化了的时间戳。

如果您在登录到您的帐户后立即运行以下命令,您将找到在不到 1 分钟以前读取的所有文件:

find . -amin -1
./.bashrc
/.bash_history
./.xauthj5FCx1

应该注意的是,使用 find 命令查找文件本身将更改该文件的访问时间作为其元数据的一部分。

您还可以使用 -newer、-anewer 和 –cnewer 选项查找已修改或访问过的文件与特定的文件比较。这类似于 -mtime、-atime 和 –ctime。 
  
• -newer 指内容最近被修改的文件 
• -anewer 指最近被读取过的文件 
• -cnewer 指状态最近发生变化的文件

要查找您的主目录中自上一个 tar 文件以来以某种方式编辑过的所有文件,使用以下命令:

find . -newer  backup.tar.gz

按大小查找文件

-size 选项查找满足指定的大小条件的文件。要查找所有大于 5MB 的用户文件,使用

find / -size  +5000000c 2> /dev/null
/var/log/lastlog
/var/log/cups/access_log.4
/var/spool/mail/bluher

结尾的“c”以字节为单位报告我们的结果。默认情况下,find 以 512 字节块的数量报告大小。如果我们将“c”替换为“k”,我们还会看到以千字节的数量报告的结果,如果使用“w”,则会看到以两字节字的数量报告的结果。

-size 选项经常用于搜索所有零字节文件并将它们移至 /tmp/zerobyte 文件夹。以下命令恰好可以完成这一任务:

find test -type f  -size 0 -exec mv {} /tmp/zerobyte \;

-exec 操作允许 find 在它遇到的文件上执行任何 shell 命令。在本文的后面部分,您将看到其用法的更多示例。大括号允许移动每个空文件。

选项 -empty 还可用于查找空文件:

find test -empty        
test/foo
test/test

按权限和所有者查找

要监视您的系统安全离不开 find 命令。您可以使用符号或八进制表示法查找面向广大用户开放的文件,如下所示:

find . -type f  -perm a=rwx -exec ls -l {} \;

或者

find . -type f  -perm 777 -exec ls -l {} \;
-rwxrwxrwx 1 bluher  users 0 May 24 14:14 ./test.txt

在这一部分中,在上面和下面的命令中,我们使用了 -exec ls -l 操作,因此,您可以看到返回的文件的实际权限。以下命令将查找可由“other”和组写入的文件:

find plsql -type f  -perm -ug=rw -exec ls -l {} \; 2>/dev/null

或者

find plsql -type f  -perm -220 -exec ls -l {} \; 2>/dev/null 
-rw-rw-rw- 1 bluher users 4303  Jun  7   2004 plsql/FORALLSample/doc/otn_new.css
-rw-rw-rw- 1 bluher users 10286 Jan  12  2005  plsql/FORALLSample/doc/readme.html
-rw-rw-rw- 1 bluher users 22647 Jan  12  2005  plsql/FORALLSample/src/config.sql
..

下一个命令将查找由用户、组或二者共同写入的文件:  

find plsql -type f  -perm /ug=rw -exec ls -l {} \; 2>/dev/null, or,
find plsql -type f  -perm /220 -exec ls -l {} \; 2>/dev/null 
-rw-r--r-- 1 bluher users 21473  May  3 16:02 plsql/regexpvalidate.zip
-rw-rw-rw- 1 bluher users 4303  Jun  7   2004 plsql/FORALLSample/doc/otn_new.css
-rw-rw-rw- 1 bluher users 10286 Jan  12  2005  plsql/FORALLSample/doc/readme.html
-rw-rw-rw- 1 bluher users 22647 Jan  12  2005  plsql/FORALLSample/src/config.sql

您可能会看到以下命令在 Web 和较早的手册中引用过:

find . -perm +220  -exec ls -l {} \; 2> /dev/null

+ 符号的作用与 / 符号相同,但是现在新版 GNU findutils 中不支持使用该符号。

要查找您的系统上所有人都可以写入的所有文件,使用以下命令:

find / -wholename  '/proc' -prune  -o  -type f -perm -0002 -exec ls -l {} \;
-rw-rw-rw- 1 bluher users 4303  Jun  7   2004/home/bluher/plsql/FORALLSample/doc/otn_new.css
-rw-rw-rw- 1 bluher users 10286 Jan  12  2005  /home/bluher/plsql/FORALLSample/doc/readme.html
...

第 4 个权限将在稍后进行讨论,但最后一个字段中的“2”是文件权限中的“other”字段,也称为写入位。我们在权限模式 0002 前面使用了破折号,以指明我们希望看到为 other 设置了写权限的文件,无论其他权限设置为什么。

上述命令还引入了三个新概念。针对文件模式“/proc”使用 -wholename 测试,如果该模式已找到,-prune 可防止 find 下到该目录中。布尔类型“-o”使 find 可以针对其他目录处理该命令的其余部分。由于每个表达式之间有一个假设的隐式 and 运算符 (-a),因此,如果左侧的表达式计算结果为 false, and 之后的表达式将不进行计算;因此需要 -o 运算符。Find 还支持布尔类型 -not、!,就像使用括号强行优先一样。

系统管理员经常使用 find 通过用户或组的名称或 ID 搜索特定用户或组的常规文件:

[root] $  find / -type f -user bluher -exec ls -ls {}  \;

下面是这样一个命令的高度精简的输出示例:

4 -rw-r--r-- 1 bluher users 48  May  1 03:09  /home/bluher/public_html/.directory
4 -rw-r--r-- 1 bluher users 925  May  1 03:09 /home/bluher/.profile

您还可以使用 find 按组查找文件:

[root] $ find /  -type f -group users
find / -type d -gid  100

该命令将列出由 ID 为 100 的组拥有的目录。要找到相应的 uid 或 gid,您可以针对 /etc/passwd 或 /etc/group 文件运行 more 或 cat 命令。

除了查找特定已知用户和组的文件外,您还会发现它对于查找没有这些信息的文件也很有用。下一个命令将识别未列在 /etc/passwd 或 /etc/group 文件中的文件:

find / -nouser -o  -nogroup

上述命令可能不会在您的系统上生成实际的结果。但是,它可用于识别或许在经常移动后没有用户或组的文件。

好了,现在我们可以解决本部分开始时提到的格外重要的权限了。

SGID 和 SUID 是特殊访问权限标志,可以分配给基于 UNIX 的操作系统上的文件和目录。设置它们是为了允许访问计算机系统的普通用户使用临时提升的权限执行二进制可执行文件。

find /  \( -perm -2000 -o -perm -4000 \) -ls
167901   12 -rwsr-xr-x   1 root     root         9340 Jun 16  2006 /usr/bin/rsh
167334   12 -rwxr-sr-x   1 root     tty         10532 May  4  2007 /usr/bin/wall

在上述命令中,您可以看到转义括号的使用。您还可以看到权限的不同。第一个文件设置了 SGID 权限,第二个文件设置了 SUID 权限。上述命令中的最后的操作与带 -exec ls -dils 操作的 find 效果类似。

控制 find

与 Linux 中的许多命令不同,find 不需要 -r 或 -R 选项即可下到子目录中。它默认情况下就这样操作。但是,有时您可能希望限制这一行为。因此,选项 -depth、-maxdepth 和 -mindepth 以及操作 -prune 就派上用场了。

我们已经看到了 -prune 是多么有用,下面让我们来看看 -depth、-maxdepth 和 -mindepth 选项。

-maxdepth 和 -mindepth 选项允许您指定您希望 find 搜索深入到目录树的哪一级别。如果您希望 find 只在目录的一个级别中查找,您可以使用 maxdepth 选项。

通过运行以下命令在目录树的前三个级别中查找日志文件,您可以看到 -maxdepth 的效果。使用该选项较之不使用该选项所生成的输出要少得多。

find / -maxdepth 3  -name "*log"

您还可以让 find 在至少下至目录树三个级别的目录中查找:

find / -mindepth 3  -name "*log"

-depth 选项确保先在一个目录中进行查找,然后才在其子目录中进行查找。以下命令提供了一个示例:

find -name "*test*" -depth
./test/test
./test
./localbin/test
./localbin/test_shell_var
./localbin/test.txt
./test2/test/test
./test2/test
./test2

find 世界

我们已经看过了 find 命令的一些更加有用以及有点难懂的功能,但是 find 还可以执行更多的任务。例如,有多个选项可以使 find 与较低的 UNIX 版本和其他操作系统相兼容并允许您执行打印输出到多个文件等操作。阅读本文后,您现在已经有了理解 find 参考指南的背景,我鼓励您深入研究这一强大、有用的工具。

原文:http://www.oracle.com/technetwork/cn/topics/calish-find-096463-zhs.html

标签: 分享 Linux find

Mrxn 发布于 2017-3-17 17:08

利用chrome的console控制台自动刷新网页 杂七杂八

timeout=prompt("Set timeout ");
current=location.href;
if(timeout>0)
setTimeout('reload()',1000*timeout);
else
location.replace(current);
function reload(){
setTimeout('reload()',1000*timeout);
fr4me='<frameset cols=\'*\'>\n<frame src=\''+current+'\'/>';
fr4me+='</frameset>';
with(document){write(fr4me);void(close())};
}



利用chrome的console控制台自动刷新网页,偶尔需要这个功能,不需要使用插件,太臃肿...


Mrxn 发布于 2017-3-16 14:18

314互联网造假大会,在315前夕顺利召开 杂七杂八

今日开炮  在座各位互联网公司

话题领域  虚假信息/数据/营销等


互联网洋葱日报今天为您播报315前夕,纯属虚构的314互联网造价大会,下面请看前方记者发来的实时文字直播。



PART 1

开幕



腾讯:各位亲爱的同行们!

百度:各位亲爱的网友们!大家——
腾讯、百度:晚上好!



腾讯想来我已经是第二十年主持这场行业盛会了,真是受之愧啊!

百度:今年我则以杀人不偿命的优异表现,临时代替了前辈淘宝的主持人工作,还望腾讯多多指点!

腾讯:哪里哪里,现在后生可畏啊!

百度:不敢不敢,您这两天不是才上线“腾讯优品”嘛!台下的网易,我叫你一声你敢答应吗?



腾讯:今年啊,我们的活动要迎接新的科技浪潮。

百度:没错,映客直播将全力支持本次大会。

腾讯:确保有超过26亿中国人同时在线观看。



PART 2

节目:绕口令



腾讯:那么一如既往,我给大家暖暖场。

百度:哦?您带来了什么节目?

腾讯:给大家说一段绕口令《我的发家史》

百度:鼓掌!



腾讯:当里个当,当里个当,腾讯产品怎么样?今天给你讲一讲,二十年来那辉煌,全都要靠抄得爽……


QICQ抄ICQ;腾讯游戏平台抄联众游戏平台;QQ音乐抄酷狗音乐;搜吧抄百度贴吧;QQ网购抄淘宝;腾讯CF抄CS;QQ飞车抄跑跑卡丁车;QQ直播抄PPLive;QQ医生抄360;QQ软件管理抄360管家;QQ旋风抄网际快车;QQ输入法抄搜狗输入法;QQ影音抄暴风影音;soso 问问抄百度知道;QQ浏览器抄遨游浏览器;QQ词典抄金山词霸;腾讯微博抄新浪微博;QQ校友抄人人网;QQ网址导航抄好123;QQ对战平台抄浩方;QQ堂抄泡泡堂;QQ三国抄冒险岛;QQ西游抄梦幻西游;QQ炫舞抄劲舞团;QQ寻仙抄诛仙;植物精灵大战格格巫抄植物大战僵尸;抢车位抄争车位;QQ农场抄开心农场;QQ鱼塘抄欢乐鱼塘……最重要的当然是微信抄……



百度:且慢,微信抄了谁我们稍后揭晓!


PART 3

颁奖:最佳PPT设计奖



腾讯:好,那我们进入颁奖环节。

百度:首先请看大屏幕!今天屏幕上的PPT就是由我们的第一位大奖得主设计的。

腾讯:有请法拉第未来和易到用车两位颁奖人上台。



法拉第未来:他为梦想窒息!

易到用车:他为套现疯狂!

法拉第未来、易到用车:他就是我们资金链濒临断裂的第一推手!
法拉第未来:他就是世界上最伟大的PPT设计师——
易到用车:乐视先生!



乐视:谢谢!谢谢大家!特别谢谢台下长江商学院的各位同学,以及在会场外摇旗呐喊的供应商们。当然我最要感谢的是台下的乐视会员们,请大声告诉我你们的心声好吗?

台下乐视会员:乐事薯片我操你妈!退钱!

乐视:还有呢?
台下乐视会员:亚冠我操你妈!退钱!
乐视:好的,谢谢大家!我先去房产中介了,大家吃好喝好!



PART 4

颁奖:杀人无形奖



腾讯:下面这个奖项要颁给我今天的搭档。

百度:没错就是我。

腾讯:有请莆田系作为颁奖人上台。



莆田系:曾经有一位叫“魏则西”的年轻人站在我面前,问我滑膜肉瘤病能不能治。当时我就念了两句诗,叫“百度一下,你就知道!”。



百度:所以这个奖项,我从内心深处也要颁给我的好基友莆田系么么哒!

腾讯:让我们为这样坚实的友谊鼓掌!

百度:您和搜狗的友谊也值得称赞呐!您看当初《搜狗名医上线》的时候,说得多么冠冕堂皇啊!现在看,前两天我们因为虚假医疗信息被上海市工商局罚了2万巨款,他们被罚了1万巨款,紧随其后让我都有压力啊!

腾讯:年轻人嘛!放手一搏!我先预付工商局100万罚款好了!



PART 5

颁奖:能说会道奖



腾讯:其实说到生死这个话题啊,我觉得高手在民间。

百度:可不是嘛,接下来这个奖就要颁给一个深圳人。

腾讯:有请小铜人P2P上台为罗尔颁奖。



小铜人:有人把这次事件定性为营销,我不敢苟同。这是一个父亲用文字倾吐最深刻的慈爱,这是一个男人用智慧承担最沉重的责任,这是一个作家用能力换取最正义的回报,这是一个P2P公司用策略实现最成功的转化……

罗尔:谢谢!可以闭嘴了。谢谢小铜人的慷慨陈词!谢谢我女儿罗一笑!我的新书已经发布了!请大家多多支持!很快我就能在深圳买更多房!



腾讯:当然,这件事也离不开我们的大力支持。

百度:是的,被明令禁止的宗教色彩募捐能发展到这个程度,要多感谢腾讯的装聋作哑。



中场表演

魔术:携程在手



携程:为大家表演“携程在手,说不走就不走。”的节目,请大家用热情的“操你妈”为我加油!


(哔——)


PART 6

颁奖:过河拆桥奖



腾讯:然后这个奖项呢,我个人也是非常自豪的。

百度:噢?怎么说?

腾讯:这就让现在假的优步上台,给滴滴出行朗读颁奖词吧。



优步:Hi everybody, I'm youbu. 作为一家 international 的企业,I 完全 show respect for didi.他们太 dick 了,太 smart 了,我肛不过他们。By the way,我们的 team 都是实习生组成的,毕竟 have no time to play with didi.  So, 补贴形式 is over. 让我们重归于good, 兼并!合作!together 涨价!


滴滴出行:Absofuckinglutely,去你妈的优惠,去你妈的抵用。我们就是出租车溢价调度平台,我们的最终使命是让老年人打不到车,消灭老年人,消灭老龄化!



腾讯:Oh my God 多么崇高的理想多么远见的运营思维啊!

百度:佩服佩服,回头自动驾驶多多合作!

滴滴出行:额……



PART 7

颁奖:最佳新人奖



腾讯:这个奖项啊,头一回出现两家公司来领。

百度:不是吧!

腾讯:事情是这样的,共享担车现在不是很火嘛!这两家公司表现其实都不错,目前都说自己是市场第一。

百度:这个确实不好讲,毕竟你说按保证金吸收量算还是车辆规模算呢?

腾讯:所以都要多多鼓励,你看摩拜单车都已经进工商局企业异常名录了。

百度:那两位就互相颁奖吧!



摩拜单车:我们第一,服不服!

ofo:我们第一,服不服!

台下小鸣单车:我们第二,服不服!

台下优拜单车:我们第二,服不服!

台下卡拉单车:操你妈的莆田人!



PART 8

颁奖:专业碰瓷奖



腾讯:哎,我说百度啊,去年的苹果发布会你看了没?

百度:看了看了,肾7嘛不是。

腾讯:所以接下来的这个奖项得奖的人还真不少。

百度:是吗?

腾讯:你看,发布会那天乐视说苹果抄袭他们取消3.5毫米耳机接口,魅族说摄像头比他们凸出……哪像一加手机那个傻逼,还出来辟谣。

百度:那这个奖应该颁给所有中国做手机的厂商!中国制造万岁!



游戏

傻逼才玩:支付宝红包



支付宝:真的,玩过以后你们都会想“以后傻逼才玩呢!”,但我会保证你们明年接着玩!今天我们发明了音量红包,同样请大家用热情的“操你妈”抢起来吧!


(哔——)



PART 9

颁奖:以假乱真奖



腾讯:压轴这个行业技术大奖堪称重量级。

百度:必须的,它要经过时间的历练。

腾讯:有什么产品能让所有用户都以为是原创,但是其实是抄袭的呢?

百度:其实就是——微信!



腾讯:我说小米啊,11年时候你们“米聊”才起步了两个月,我们就跟上了。有我大QQ用户量在,我干什么不行?当然我干手机可能不行。

小米:呵呵。



PART 10

落幕



腾讯:今天的大会就要临近尾声了。

百度:感谢在场各位粉丝们的热情支持。

腾讯:最后麻烦新浪同学操作一下,把现场的僵尸观众都清退吧。

新浪:好的没问题。

腾讯:祝大家晚安!

百度:晚安!明年再见!

标签: 分享

Mrxn 发布于 2017-3-16 10:54

搭建 nginx + mysql + php-fpm 环境(CentOS 6) Linux

前言:这几天帮朋友部署一个项目,一开始为了方便,(我懒-_-|),使用一键lanmp脚本部署,结果项目测试的时候bug一大堆...,声明:这不是说这些一键脚本不好,客观的来说,这些脚本用来建站,普通的单纯的站,一般没问题的,也很方便,但是部署项目,如果对这个脚本不是特别了解,特别了解,特别了解!重要的是说三遍...千万不要用,老实的手动部署环境吧....于是本想写一篇的,但是发现有人写了...就转载过来,存着当笔记吧.


本文档介绍如何使用一台普通配置的云服务器ECS实例搭建LNMP平台的web环境。

  • Linux:自由和开放源码的类UNIX操作系统。
  • Nginx:轻量级网页服务器、反向代理服务器。
  • MySQL:关系型数据库管理系统。
  • PHP:主要适用于Web开发领域的一种脚本语言。

适用对象

适用于熟悉Linux操作系统,刚开始使用阿里云进行建站的个人用户。

基本流程

使用云服务器 ECS 搭建LNMP平台的操作步骤如下:

  1. 准备编译环境
  2. 安装nginx
  3. 安装mysql
  4. 安装php-fpm
  5. 测试访问

步骤一:准备编译环境

1、系统版本说明

# cat /etc/redhat-release 
CentOS release 6.5 (Final)

注:这是本文档实施时参考的系统版本。您的实际使用版本可能与此不同,下文中的nginx,mysql,及php版本,您也可以根据实际情况选择相应版本。

2、关闭SELINUX

修改配置文件,重启服务后永久生效。

# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

命令行设置立即生效。

# setenforce 0

3、安全组设置

在ECS安全组放行需访问的端口和访问白名单,下面的示例表示允许所有IP访问服务器的80端口。您可以根据实际情况放行允许访问的客户端IP。

图片1

步骤二:安装nginx

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,已经在一些俄罗斯的大型网站上运行多年,目前很多国内外的门户网站、行业网站也都在是使用Nginx,相当稳定。

1、下载源码包解压编译。

# wget http://nginx.org/download/nginx-1.10.2.tar.gz
# tar xvf nginx-1.10.2.tar.gz -C /usr/local/src
# yum groupinstall "Development too
# yum -y install gcc wget gcc-c++ automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel
# cd /usr/local/src/nginx-1.10.2
# ./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--user=nginx \
--group=nginx \
--with-pcre \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-http_v2_module \
--with-threads \
--with-stream \
--with-stream_ssl_module
# make && make install
# mkdir -pv /var/tmp/nginx/client
2、添加SysV启动脚本。
# vim /etc/init.d/nginx
#!/bin/sh 
# 
# nginx - this script starts and stops the nginx daemon 
# 
# chkconfig:   - 85 15 
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \ 
#               proxy and IMAP/POP3 proxy server 
# processname: nginx 
# config:      /etc/nginx/nginx.conf 
# config:      /etc/sysconfig/nginx 
# pidfile:     /var/run/nginx.pid 
# Source function library. 
. /etc/rc.d/init.d/functions
# Source networking configuration. 
. /etc/sysconfig/network
# Check that networking is up. 
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: " 
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo 
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: " 
    killproc $prog -QUIT
    retval=$?
    echo 
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
killall -9 nginx
}
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: " 
    killproc $nginx -HUP
RETVAL=$?
    echo 
}
force_reload() {
    restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
case "$1" in
    start)
        rh_status_q && exit 0
    $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
      echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
        exit 2
esac
3、赋予脚本执行权限。

# chmod +x /etc/init.d/nginx

4、添加至服务管理列表,设置开机自启。

# chkconfig --add nginx
# chkconfig  nginx on
5、启动服务。

# service nginx start

6、浏览器访问可看到默认欢迎页面。图片2

步骤三:安装mysql

1、准备编译环境。

# yum groupinstall "Server Platform Development"  "Development tools" -y
# yum install cmake -y
2、准备mysql数据存放目录。
# mkdir /mnt/data
# groupadd -r mysql
# useradd -r -g mysql -s /sbin/nologin mysql
# id mysql
uid=497(mysql) gid=498(mysql) groups=498(mysql)
3、更改数据目录属主属组。

# chown -R mysql:mysql /mnt/data

4、解压编译官网下载稳定版的源码包。

# tar xvf mysql-5.6.24.tar.gz -C  /usr/local/src
# cd /usr/local/src/mysql-5.6.24
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mnt/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# make && make install
5、修改安装目录的属组为mysql。

# chown -R mysql:mysql /usr/local/mysql/

6、初始化数据库。

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mnt/data/

注:在CentOS 6.5版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

7、拷贝配置文件和启动脚本。

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# cp support-files/my-default.cnf /etc/my.cnf
8、设置开机自动启动。
# chkconfig mysqld  on 
# chkconfig --add mysqld
9、修改配置文件中的安装路径及数据目录存放路径。

# echo -e "basedir = /usr/local/mysql\ndatadir = /mnt/data\n" >> /etc/my.cnf

10、设置PATH环境变量。

# echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh      
# source /etc/profile.d/mysql.sh
11、启动服务。
# service mysqld start 
# mysql -h 127.0.0.1
步骤四:安装php-fpm

Nginx本身不能处理PHP,作为web服务器,当它接收到请求后,不支持对外部程序的直接调用或者解析,必须通过FastCGI进行调用。如果是PHP请求,则交给PHP解释器处理,并把结果返回给客户端。PHP-FPM是支持解析php的一个FastCGI进程管理器。提供了更好管理PHP进程的方式,可以有效控制内存和进程、可以平滑重载PHP配置。

1、安装依赖包。

# yum groupinstall "X Software Development"
# yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel
2、解压官网下载的源码包,编译安装。
# tar xvf php-5.6.23.tar.bz2 -C /usr/local/src
# cd /usr/local/src/php-5.6.23
# ./configure --prefix=/usr/local/php \
--with-config-file-scan-dir=/etc/php.d \
--with-config-file-path=/etc \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-openssl \
-enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-bz2
# make && make install
3、添加php和php-fpm配置文件。
# cp /usr/local/src/php-5.6.23/php.ini-production /etc/php.ini
# cd /usr/local/php/etc/
# cp php-fpm.conf.default php-fpm.conf
# sed -i '[email protected];pid = run/[email protected] = /usr/local/php/var/run/[email protected]' php-fpm.conf
4、添加php-fpm启动脚本。
# cp /usr/local/src/php-5.6.23/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
5、添加php-fpm至服务列表并设置开机自启。
# chkconfig --add php-fpm     
# chkconfig --list php-fpm     
# chkconfig php-fpm on
6、启动服务。

# service php-fpm start

7、添加nginx对fastcgi的支持,首先备份默认的配置文件。

# cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
# cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
编辑/etc/nginx/nginx.conf,在所支持的主页面格式中添加php格式的主页,类似如下:
        location / {
            root   /usr/local/nginx/html;
            index  index.php index.html index.htm;
        }
取消以下内容前面的注释:
       location ~ \.php$ {
            root           /usr/local/nginx/html;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;
            include        fastcgi_params;
        }
重新载入nginx的配置文件。

# service nginx reload

在/usr/local/nginx/html/新建index.php的测试页面,内容如下。

# cat index.php 
<?php
$conn=mysql_connect('127.0.0.1','root','');
if ($conn){
  echo "LNMP platform connect to mysql is successful!";
}else{
  echo "LNMP platform connect to mysql is failed!";
}
 phpinfo();
?>

浏览器访问测试,如看到以下内容则表示LNMP平台构建完成。图片3

原文地址:https://help.aliyun.com/document_detail/50700.html



Mrxn 发布于 2017-3-6 20:37