一般都要sort排序一下后再比对为好:
sort eee.txt > eeee.txt
sort fff.txt > ffff.txt
diff -c eeee.txt ffff.txt
——————————————————

抄来抄去,直接看这篇文章得了:
http://blog.chinaunix.net/uid-26000296-id-3507646.html

这儿注意大于小于的含义:
diff  cccc.txt dddd.txt
19a20
> 999 备注:大于是指左边文件没有右边有。
而用-c提示相比上面这种方法更直观一些:
diff -c  cccc.txt dddd.txt
*** cccc.txt    2016-12-02 16:00:25.378913370 +0800
--- dddd.txt    2016-12-02 16:00:58.528306679 +0800
***************
*** 17,19 ****
--- 17,20 ----
  10.71.182.93
  10.71.182.96
  10.71.182.99
+ 999


注意:改变位置会在其前面三行和后面三行,因此一共显示7行。
文件内容的每一行最前面,还有一个标记位。如果为空,表示该行无变化;如果是感叹号(!),表示该行有改动;如果是减号(-),表示该行被删除;如果是加号(+),表示该行为新增。
=====================================

假设有两个文件:

//file1.txt

I need to buy apples.

I need to run the laundry.

I need to wash the dog.

I need to get the car detailed.

//file2.txt

I need to buy apples.

I need to do the laundry.

I need to wash the car.

I need to get the dog detailed.

我们使用diff比较他们的不同:diff file1.txt file2.txt


2,4c2,4 前面的数字2,4表示第一个文件中的行,中间有一个字母c表示需要在第一个文件上做的操作(a=add,c=change,d=delete),后面的数字2,4表示第二个文件中的行。

2,4c2,4 的含义是:第一个文件中的第[2,4]行(注意这是一个闭合区间,包括第2行和第4行)需要做出修改才能与第二个文件中的[2,4]行相匹配。接下来的内容则告诉我们需要修改的地方,前面带 < 的部分表示左边文件的第[2,4]行的内容,而带> 的部分表示右边文件的第[2,4]行的内容,中间的 --- 则是两个文件内容的分隔符号。

打patch的比较最常用:
-e 将比较的结果保存成一个ed脚本,之后ed程序可以执行该脚本文件,从而将file1修改成与file2一样的文字内容:
[root@iZ25dcp92ckZ diff]# diff -e 1.txt 2.txt > script.txt
diff: 1.txt: 没有那个文件或目录
diff: 2.txt: 没有那个文件或目录
[root@iZ25dcp92ckZ diff]# diff -e file1.txt file2.txt > script.txt
[root@iZ25dcp92ckZ diff]# cat script.txt
7c
I need to get the dog detailed.
.
5c
I need to wash the car.
.
3c
I need to do the laundry.
.
1c
need to buy apples.
.
[root@iZ25dcp92ckZ diff]#

这样就是生成了一个ed可以执行的脚本文件script.txt,生成脚本文件之后我们还需要做一个操作, 在脚本文件末尾添加ed的write指令,只需要执行 echo "w" >>script.txt 将w指令附加到脚本文件的最后一行即可。

那么如何应用该脚本文件呢,可以这样使用:

ed - file1.txt < script.txt

注意中间的 – 符号表示从标准输入中读取,而 < script.txt 则重定向script.txt的内容到标准输入。这样执行之后1.txt的内容将与2.txt完全相同。

[root@iZ25dcp92ckZ ~]# cd /tmp/diff
[root@iZ25dcp92ckZ diff]#  echo "w" >>script.txt
[root@iZ25dcp92ckZ diff]# ed - file1.txt < script.txt
[root@iZ25dcp92ckZ diff]# diff file1.txt file2.txt
[root@iZ25dcp92ckZ diff]#

比对发现一样,得证。
来自:
【diff详解,读懂diff结果】
http://m.pstatp.com/group/6321440713972171010/?iid=5181229840&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share

需要安装ruby
在开始搭建redis之前,你需要确保你本地有ruby(2.0以上),且该ruby 中有redis 扩展包。

需要有ruby redis包
//验证是否安装好ruby redis扩展包:[这里查看ruby 扩展包有更好的办法请告诉我,我对ruby完全不熟悉]//如果没有安装好ruby redis,请看"2.1 安装ruby redis 扩展包",//如果已经安装好,直接看"二 实施阶段"# find / -name "redis"/Library/Ruby/Gems/2.3.1/gems/redis-3.0.6/lib/redis


安装ruby redis 扩展包
//查看你本地是否有gem,如果没有安装,请看"2.2 安装gem",否则请看下面内容$ gem -v2.0.14#gem install redis -v 3.0.6//因为gems官网的镜像在国外,所以国内网络经常断连。你需要链接一个国内镜像,我用的是https://ruby.taobao.org//查看现在镜像的来源地址$ gem sources -l*** CURRENT SOURCES ***https://rubygems.org//** * 增加https://ruby.taobao.org为镜像,并且移除官网的https://rubygems.org/镜像*/$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org///查看现在镜像的来源地址$ gem sources -l*** CURRENT SOURCES ***https://ruby.taobao.org//安装ruby redis 3.0.6包[这个包需要与你本地的redis包的版本一致哦]#gem install redis -v 3.0.6//验证是否安装好redis扩展包:[这里查看ruby 扩展包有更好的办法请告诉我,我对ruby完全不熟悉]# find / -name "redis"/Library/Ruby/Gems/2.3.1/gems/redis-3.0.6/lib/redis


安装gem
rubygems官网下载地址
下载后就按照正常的安装步骤安装即可
//"./configure" 该步骤可以配置安装路径,以及其他参数,请查看帮助$ ./configure$ make$ sudo make install$ gem -v2.0.14


你需要了解redis的架构
redis架构相关 http://blog.csdn.net/naixiyi/article/details/51335059

认识redis.conf文件关于redis集群(redis cluster)的配置
要使redis以集群方式启动,而不是普通单例方式启动,需要更改redis.conf文件以下字段.保存为demo_redis.conf

//这里的port 随意你定,你只要保证该端口7000以及(7000+10000)端口是空闲的即可。前者是用于服务client的端口。后者是用于各个实例相互通信的bus port,默认为服务client端口加10000port 7000cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes



.认识redis-trib.rb脚本
该脚本的位置在./../redis-3.0.6/src/redis-trib.rb。你可以查看有的各个命令

$ ./../redis-3.0.6/src/redis-trib.rb Usage: redis-trib <command> <options> <arguments ...>  create          host1:port1 ... hostN:portN                  --replicas <arg>  check           host:port  info            host:port  fix             host:port                  --timeout <arg>  reshard         host:port                  --from <arg>                  --to <arg>                  --slots <arg>                  --yes                  --timeout <arg>                  --pipeline <arg>  rebalance       host:port                  --weight <arg>                  --auto-weights                  --threshold <arg>                  --use-empty-masters                  --timeout <arg>                  --simulate                  --pipeline <arg>  add-node        new_host:new_port existing_host:existing_port                  --slave                  --master-id <arg>  del-node        host:port node_id  set-timeout     host:port milliseconds  call            host:port command arg arg .. arg  import          host:port                  --from <arg>                  --copy                  --replace  help            (show this help)

摘自 :http://www.th7.cn/Program/Ruby/201605/853077.shtml
更多: http://blog.csdn.net/huwei2003/article/details/50973967
一)过滤出三次握手的第一次:
tcp.flags.syn == 1  //YN置1就表示这是一个连接请求或连接接受报文。首先由Client发出请求连接即 SYN=1 ACK=0  (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=0
二)跟踪一个IP和另一个IP的数据包:
(ip.addr eq 123.130.127.180 and ip.addr eq 172.20.156.35) and (tcp.port eq 80 and tcp.port eq 16616)

ip.addr == 123.130.127.180 and ip.addr == 172.20.156.35 //注意,一是两个等号,二是ip不用双引或单引号想起来,否则属于错误语句。
(ip.addr == 123.130.127.180 and ip.addr == 172.20.156.35) and (tcp.port == 80 and tcp.port == 16616)

ip.addr==123.130.127.180 and ip.addr==172.20.156.35
阅读全文
今天查看了一下服务器,发现/var/log/btmp日志文件比较大(38M     /var/log/btmp),搜索一下,此文件是记录错误登录的日志,就是说有很多人试图使用密码字典登录ssh服务,此日志需要使用lastb程序打开。
通过此文件发现有几个ip总是试图登录,可以使用防火墙把它屏蔽掉。
命令如下:
iptables -A INPUT -i eth0 -s *.*.*.0/24 -j DROP
查看恶意ip试图登录次数:
lastb | awk ‘{ print $3}’ | sort | uniq -c | sort -n
删除这个日志:
rm -rf /var/log/btmp
touch /var/log/btmp

来自:http://blog.chinaunix.net/uid-20329764-id-5016539.html
背景:想把sublime改成vim,但是对于列模式可视块这种需要ctrl+v这种变成粘贴了,而产生冲突,最后还是修改回去了。
本文部分摘自:http://www.cnblogs.com/zuike/p/4402022.html
启用 Vim 模式

      在菜单栏中: Preferences -> Setting - User ,即可打开配置文件进行编辑,将 ignored_packages 项的[]里面内容清空:

"ignored_packages":
 [
 ]

  这样就启用了 Vim 模式,按 Esc 退出编辑模式,即进入了 Vim 模式。

     vim 模式快捷键说明请查看 http://feliving.github.io/Sublime-Text-3-Documentation/vintage.html

我的实践:
{
  "color_scheme": "Packages/User/SublimeLinter/Solarized (Dark) (SL).tmTheme",
  "font_size": 14,
  "ignored_packages":
  [
    "Markdown Preview",
    "Vintage"
  ],
  "show_encoding": true,
  "theme": "Soda Light 3.sublime-theme"
}

删除掉:

    "Markdown Preview",
    "Vintage"







启用 Ctrl 功能键及自定义功能键

  Preference->Setting User 添加如下内容:

  

"vintage_ctrl_keys": true
   这样就支持以下命令了:  

Ctrl+[ : Esc键的别名
Ctrl+R : Redo
Ctrl+Y : 向下滚动一行
Ctrl+E : 向上滚动一行
Ctrl+F : 下一页
Ctrl+B : 上一页
  如果觉得以上按键太复杂,可以自定义按键,找到 Vintage.sublime-package这个文件,其实是一个压缩包,改名zip后缀后解压得出文件,使用记事本打开 Default.sublime-keymap 文件,找到需要修改的快捷键进行修改即可。

  例如我需要将 ctrl+f 下一页修改成 f+f 下一页:

  搜索 “ctrl+f”,找到以下代码:

  

{ "keys": ["ctrl+f"], "command": "set_motion", "args": {
"motion": "move",
"motion_args": {"by": "pages", "forward": true, "extend": true }},
"context": [{"key": "setting.command_mode"}, {"key": "setting.vintage_ctrl_keys"}]
},



修改成

{ "keys": ["f","f"], "command": "set_motion", "args": {
"motion": "move",
"motion_args": {"by": "pages", "forward": true, "extend": true }},
"context": [{"key": "setting.command_mode"}, {"key": "setting.vintage_ctrl_keys"}]
},

这样,你 按esc退出编辑模式,按两下f键,即可实现向下翻页了,大家可以尝试下将 ctrl+b 向上翻页修改成 b+b 。
杨永(杨永) 08-19 15:14:56
tcpdump -vnn host  要挂载服务器的IP
杨永(杨永) 08-19 15:15:07
tcpdump -vnn host 192.168.151.201
杨永(杨永) 08-19 15:17:01
看情况得开下4046端口
杨永(杨永) 08-19 15:17:12
发给张腾让他开下
杨永(杨永) 08-19 15:18:02
10.71.182.97.55818 > 192.168.151.201.4046
卡在这了
杨永(杨永) 08-19 15:18:09
访问4046端口没权限 (ength 0)
    10.71.182.97.37218 > 192.168.151.201.4046: Flags [S], cksum 0xf506 (correct), seq 2144183597, win 14600, options [mss 1460,sackOK,TS val 1372580057 ecr 0,nop,wscale 9], length 0
——————————————————————————————————————————————
   10.71.182.97.48860 > 192.168.151.201.111: Flags [F.], cksum 0x0a06 (correct), seq 61, ack 33, win 29, options [nop,nop,TS val 1372580057 ecr 798553157], length 0
15:16:24.794577 IP (tos 0x0, ttl 64, id 19956, offset 0, flags [DF], proto TCP (6), length 60)
    10.71.182.97.37218 > 192.168.151.201.4046: Flags [S], cksum 0xf506 (correct), seq 2144183597, win 14600, options [mss 1460,sackOK,TS val 1372580057 ecr 0,nop,wscale 9], length 0
15:16:24.795999 IP (tos 0x0, ttl 57, id 8451, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.151.201.111 > 10.71.182.97.48860: Flags [.], cksum 0xe7ea (correct), ack 62, win 8760, options [nop,nop,TS val 798553157 ecr 1372580057], length 0
15:16:24.796009 IP (tos 0x0, ttl 57, id 8707, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.151.201.111 > 10.71.182.97.48860: Flags [F.], cksum 0xe7e9 (correct), seq 33, ack 62, win 8760, options [nop,nop,TS val 798553157 ecr 1372580057], length 0
15:16:24.796014 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)
    10.71.182.97.48860 > 192.168.151.201.111: Flags [.], cksum 0x0a04 (correct), ack 34, win 29, options [nop,nop,TS val 1372580058 ecr 798553157], length 0
15:16:25.794390 IP (tos 0x0, ttl 64, id 19957, offset 0, flags [DF], proto TCP (6), length 60)
    10.71.182.97.37218 > 192.168.151.201.4046: Flags [S], cksum 0xf11e (correct), seq 2144183597, win 14600, options [mss 1460,sackOK,TS val 1372581057 ecr 0,nop,wscale 9], length 0
15:16:27.794397 IP (tos 0x0, ttl 64, id 19958, offset 0, flags [DF], proto TCP (6), length 60)
    10.71.182.97.37218 > 192.168.151.201.4046: Flags [S], cksum 0xe94e (correct), seq 2144183597, win 14600, options [mss 1460,sackOK,TS val 1372583057 ecr 0,nop,wscale 9], length 0
背景:问个技术问题:  如果代码中数据库连接使用域名,域名解析切换的时候,PHP是立即生效,还是会有DNS缓存?我知道CURL有缓存,数据库连接不太清楚,hosts绑定也 不靠谱,也会出现缓存。还是会有DNS缓存的,这块我遇到过好几次,最好restart php-fpm,甚至重启,有一个哥们大致总结了一下,特转之。

1、Linux修改本机别名/etc/hosts的hostName后经常不生效解决
Linux修改本机别名/etc/hosts的hostName后经常不生效,

比如我们/etc/hosts的内容如下:

#192.68.1.10 message.xxx.com

192.68.1.11 message.xxx.com


但是ping

message.xxx.com还是指向192.68.1.10。


一般2种解决方案:


1). 重启,这是最直接最可靠稳定的一种方法,如果有些时候不方便重启,则可以使用第二种方法。

2). 修改/etc/sysconfig/network文件,将HOSTNAME修改成对应的别名,如下:



NETWORKING=yes

HOSTNAME=host1
修改后重启网络服务
service network restart
(本质是/etc/init.d/network)


3).
如果重启服务器后,还是不起作用,应该是本机的dns缓存引起的。



查看nscd是否启用:
ps -ef|grep nscd

直接关闭Linux nscd 缓存服务:

/etc/init.d/nscd stop

2、Linux的DNS

     linux本身是没有dns缓存的,想使用dns缓存的话需要自己安装一个服务程序NSCD(name service cache daemon).

    nscd缓存三种服务passwd group hosts,所以它会记录三个库,分别对应源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每个库保存两份缓存,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL).

     安装:

  yum install nscd

    修改配置文件/etc/nscd.conf,开启dns缓存,修改这一行

  enable-cache hosts yes。

如果启用了nscd 服务,才有dns 缓存,否则是没有dns缓存的。




     开启 、停止、 重启服务
     service nscd start | stop | restart

nscd的配置:

通过编辑/etc/nscd.conf文件,在其中增加如下一行可以开启本地DNS cache:

enable-cache hosts yes

阿里云主机上的配置如下:

[plain] view plain copy print?
[root@iZ2571ykq ~]# cat /etc/nscd.conf  
#logfile        /var/log/nscd.log  
threads         6  
max-threads     128  
server-user     nscd  
debug-level     5  
paranoia        no  
enable-cache    passwd      no  
enable-cache    group       no  
enable-cache    hosts       yes  
positive-time-to-live   hosts   5  
negative-time-to-live   hosts       20  
suggested-size  hosts       211  
check-files     hosts       yes  
persistent      hosts       yes  
shared          hosts       yes  
max-db-size     hosts       33554432  
相关参数的解释如下:

logfile debug-file-name:指定调试信息写入的文件名。

debug-level value:设置希望的调试级别。

threads number:这是启动的等待请求的线程数。最少将创建5个线程。

server-user user:如果设置了该选项,nscd将作为该用户运行,而不是作为root。如果每个用户都使用一个单独的缓存(-S参数),将忽略该选项

enable-cache service <yes|no>:启用或禁用制定的 服务 缓存。

positive-time-to-live service value:设置 service 在指定缓存中正的项目(成功的请求)的TTL(存活时间)。 Value 以秒为单位。较大的值将增加缓存命中率从而减低平均响应时间,但是将增加缓存的一致性问题。

negative-time-to-live service value:设置 service 在指定缓存中负的项目(失败的请求)的TTL(存活时间)。 Value 以秒为单位。如果存在由不在系统数据库中的uid(用户ID)(例如在以root身份解包linux 内核源代码时)所拥有的文件将明显改善性能;应该维持较小的值以降低缓存一致性问题。

suggested-size service value:这是内部散列表的大小, value 应该保持一个素数以达到优化效果。

check-files service <yes|no>:启用或禁用检查属于指定 服务 的文件的改变。这些文件是 /etc/passwd, /etc/group, 以及/etc/hosts。







nscd的查看和清除




nscd缓存DB文件在/var/db/nscd下。
nscd -g  查看统计信息

清除 nscd缓存:
nscd -i passwd
nscd -i group
nscd -i hosts
当然也先删除缓存库或者停掉nscd服务:
rm -f /var/db/nscd/hosts

service nscd restart

或者是直接停止nscd 服务
service nscd stop。

  


来自:http://blog.csdn.net/hguisu/article/details/49278355
第一步:
在sublimetext的tools中developer下面的new plugin输入,保存为copyfile.py:
import sublime, sublime_plugin, os  
class FilenametoclipboardCommand(sublime_plugin.TextCommand):  
   def run(self, edit):  
      sublime.set_clipboard(os.path.basename(self.view.file_name()))  
      print(os.path.basename(self.view.file_name()))  

第二步:
保存到pakages/user/filenametoclipboard.py
class ListOpenFilesCommand(sublime_plugin.TextCommand):  
    def run(self, edit):  
        window = sublime.active_window()  
        views = window.views()  
        fileNames = ''  
        for view in views:  
            if view and view.file_name():  
                fileNames += os.path.basename(view.file_name())+'\n'  
        window.new_file().insert(edit, 0, "List of open files:\n\n"+fileNames)

第三步:preferences下面的key-bindings-user下面添加:
然后取key-bindings下加如
{ "keys": ["ctrl+alt+c"], "command": "filenametoclipboard" },
{ "keys": ["ctrl+alt+l"], "command": "list_open_files" }
保存,重启sublitext,即可,简单吧,呵呵

来自:http://blog.csdn.net/zhuboyan123/article/details/41249685
背景:想搭建一个Gitlab的两台机器进行都访问NAS网盘作为数据共享,而这样的好处是网盘内容是一致的,达到高可用,而同时对这个NAS网盘进行Git命令备份,防止网盘挂了,也能恢复,也是代码数据的高可用。
在阿里云上也申请了一个类似的NFS磁盘,但是挂载时是ROOT权限,我那个/home/git/.ssh想是git权限,于是提起工单:




售后工程师 :    您好,这样不支持,mount后的目录权限有ans服务端决定,目前不支持修改。  
2017-07-06 23:42:54
售后工程师 :    您好,技术反馈这个是nas服务端决定的,目前我方设置的权限是777 root:root  

经实践:
mkdir -p /home/git/mnt
ll  -d /home/git/mnt/
drwxr-xr-x 2 root root 4096 Jul  8 23:52 /home/git/mnt/  #Linux root用户id号是0
挂载NFS:
mount -t nfs -o vers=3,tcp 10.71.15.98:/Vol-01/backup /home/git/mnt
ll  -d /home/git/mnt/
drwxr-xr-x 11 1000 1000 114688 Jun 11 20:04 /home/git/mnt/
变成1000了,这个值是NFS服务端设置的,但是阿里云是0,也就不是Git账户的ID了。它是0,root用户id号是0,不敢该RootID值为非0值。

推测其配置如下:
打开/etc/exports文件,在末尾加入:
/home/kevin *(rw,sync,no_root_squash)
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:
/home/kevin:要共享的目录
* :允许所有的网段访问
rw :读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限


nfs中exports中no_root_squash的意义:
no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。

增加no_root_squash可以轻松获得NFS主机共享目录读写权限.
=================================================================================
在文章后面有讲如何搭建NFS服务器:http://jackxiang.com/post/8299/
阅读全文
软件无法启动
常见原因1: 未获得管理员权限
解决方法:右 键点击图标,选择以管理员身份运行。如果觉得每次这样操作很麻烦,可以直接在“我的电脑”点击右键选择管理。打开界面后,选择本地用户和组,单击用户,选 择administrator账户即可。打开administrator账户之后,把帐户已禁用选项关闭,重启电脑后即可获得管理员最高权限。
点击在新窗口中浏览此图片

摘自:http://tech.china.com/news/11146420/20160811/23265628.html
Q:Win10 Build9841 64位系统。没有建立虚拟机的菜单,怎么办?
A:右上角那个“连接到服务器”,你要先把本机添加成hyper-v服务器才能创建虚拟机。



Q:选连接到本地计算机后,出现Hyper-V开启失败无法连服务器/无效类,怎么办?

微软也有一个本身自带的虚拟机叫做Hyper-V,但是并不好用。如题,打开Hyper-V,提示:尝试连接“XXX”时出错。请检查……此服务器。计算机"XXX"上的操作失败:无效类。参考:

http://jingyan.baidu.com/article/8275fc866ecb1f46a03cf6a1.html


如果还是不行?有可能是这样的:
那很可能是因为你的系统不是64位的,注意32位系统是无法在本地运行Hyper-V的!
此时建议改用VMware Workstation。
有用的插件:
SublimeCodeIntel 让sublime跳转到变量定义的地方:
http://www.xuebuyuan.com/1122417.html
需要在用户目录添加配置文件。linux就是创建 ~/.codeintel/config 文件,具体readme,win也是用户目录下
sublimecodeintel 安装后需要配置,文件:插件目录/.codeintel/config 中 增加

"PHP": {
        "php": 'D:\SaeServer\php\php.exe',
        "phpExtraPaths": ['D:\SaeServer\php\stdlib'],
        "phpConfigFile": 'D:\SaeServer\apache\php.ini'
    },


ctags。 这个插件能跨文件跳转,跳转到指定函数声明的地方。 使用package control 搜索ctags 进行安装(安装ctags插件就可以了, 还有一个 CTags for PHP 插件没什么用)。注意安装好插件后要需要安装ctags命令。window 下载 ctags.exe  http://vdisk.weibo.com/s/7QZd7 。 将ctags.exe文件放在一个环境变量能访问到的地方。打开cmd, 输入ctags,如果有这个命令,证明成功了。 ubuntu下安装运行命令:sudo apt-get install exuberant-ctags 。
    然后在sublime项目文件夹右键, 会出现Ctag:Rebuild Tags 的菜单。点击它,然后会生成.tags的文件。也可:
    ctags -R -f .tags生成  .tags文件,然后在sublime下就可以用ctrl+t ctrl+t来跳转,用ctrl+t ctrl+b来返回到原来位置。 From:http://www.cnblogs.com/cchun/p/3794018.html

ctags

生成.ctags ctrl + t + r  同时t r。

跳转到声明 ctrl + t + t ,ctrl+> ,ctrl+shift+left_click (按两次t,> 这个在笔记本键盘上得按下shift上档键的点上面才有> ,ctrl+shift+.)
返回 ctrl + t + b ,ctrl+< ,ctrl+shift+right_click         (t b两次,或直接按ctrl+shift+,),   ,这个就是, 上面的<符号。


sublime配置全攻略:
http://blog.csdn.net/w6611415/article/details/7725566/

以下来处:http://www.cnblogs.com/lchg/p/5304168.html
对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香!
目录放错地了是关键,目录在:D:\Program Files\sublime\Data\Packages\sublime-phpcs-master ,win7好像真没有这个目录。
C:\Users\admin\AppData\Roaming\Sublime Text 3\Packages 放这儿才是:
"D:\Program Files\SublimeText3\Data\Packages\User\phpcs.sublime-settings"
但是window10的sublime路径的确在:
阅读全文
背景: 深入理解PHP原理之变量分离/引用(Variables Separation)   之自己+1,这个refcount是否+1的问题。
Q:
有时候会在原有数值的基础上改变吧 比如$var++
A:两种情况,那个对象就不测试了:
情况1,字符:


---------- 调试PHP ----------
string(5) "jackX" refcount(2)
string(5) "jackY" refcount(2)

输出完成 (耗时 0 秒) - 正常终止


情况2,整数:


---------- 调试PHP ----------
long(1) refcount(2)
long(2) refcount(2)

输出完成 (耗时 0 秒) - 正常终止

说明,$var++; 并没有改变自己的refcount值。而像:$var_dup = $var;就会+1了哟:



---------- 调试PHP ----------
string(5) "jackX" refcount(2)
string(5) "jackY" refcount(3)  <---看,这儿+1,等于3了,$var_dup = $var;会加1,得证。

输出完成 (耗时 0 秒) - 正常终止
实践来源:http://www.laruence.com/2008/09/19/520.html


疑问:


---------- 调试PHP ----------
string(8) "laruence" refcount(3)
string(8) "laruence" refcount(3)
long(1) refcount(2)
string(8) "laruence" refcount(2)

输出完成 (耗时 0 秒) - 正常终止

可能是:
作为函数的参数穿进去的时候,函数的实参使用了,所以+1,函数电用完,实参也回收了,所以变回2,应该是这样,实践如下:

---------- 调试PHP ----------
string(9) "jackxiang" refcount(2)
string(9) "jackxiang" refcount(2)
string(9) "jackxiang" refcount(2)

输出完成 (耗时 0 秒) - 正常终止

运行debug_zval_dump后不是又变回去了?按这样说,那前面的结论都TM错了,$var ++,其refcount也是加了1的。这就是结论。要看是这么玩的,得看PHP这块的源代码。

原理:Macbook连接Wifi时有一个IP地址,而你的手机Iphone也有一个IP地址,应该是同一个网段的,手机的Wifi上面设置代理到MacBook的IP及8888端口,这样Charles开的8888端口就能抓到。而证书需要Iphone信任,从一个叫chls.pro/ssl里面下载即可,安装后,要设置为要信证书,系统要信任这张证书。
当然,Fiddler2也有这个功能,手机apk访问接口调试之用Wifi热点抓https包工具Fiddler2查看请求参数及返回详解,如下:http://jackxiang.com/post/7757/

代理服务器(Proxy Server)是网上提供转接功能的服务器,在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。

http://my.oschina.net/u/2340880/blog/508688
Crack:
http://download.csdn.net/download/xieyupeng520/9342987
https://www.52pojie.cn/thread-725112-1-1.html

http://www.sd173.com/html/3774.html

一、安装Mac证书:
在 Charles 的菜单栏点击 help => SSL Proxying => Install Charles Root Certificate,在这儿添加证书,同时要信任证书,如下操作:
钥匙串访问 -》种类 -》 证书 -》找到Charles然后,双击,信任、细节。在钥匙串中搜索 “ Charles ”找到证书,双击证书,并选择 始终信任:使用证书时:始终信任。

二、二是系统要信任这张证书:
通用-关于本机-证书信任设置:
受信任证书存储区版本 2018040200
针对根证书启用完全信任:
Charles Proxy CA(11 一月 2017,yolende...(打开)

在iPhone上安装证书细节:
4.2 在iPhone上安装证书
4.2.1 在mac上保持 Charles 打开状态,iPhone 和 Mac处于同一网络中。在iPhone 的 Safari 中打开如下网址:
https://chls.pro/ssl     # 注意:这块一定要在同一个网络,也就是IP局域网或者说是属于一个路由的Wifi下面且配置了Iphone手机的代理,否则会不会弹出【此网站正尝试打开”设置"以向您显示一个配置描述文件。您要允许吗? 【忽略、允许】 ,说白了这个URL就是通过了MAC本的8888端口进而和这个端口相关的代理的Https罢了,也就是为何如果这个Iphone如果不设置代理到Mac的192.168.134.172 8888端口,则是不会出现弹出这个安装SSL证书的。

4.2.2 此时会弹出一个安装描述文件的弹窗询问师傅允许添加描述文件,点击允许,并安装证书。  #特别注意:两个保证才会提示安装SSL证书:一个网内,二是保证代理到了MAC本的192.168.134.172:8888端口。

4.2.3 在 iPhone 上信任证书
设置 = > 关于本机 => 证书信任设置 =>信任

三、Https抓包的乱码问题:
打开Charles,上方菜单栏 —-》Proxy —-》SSL Proxy Settings —-》Add,
Host:填*表示所有网站都抓
Port:443
点击OK,就不再乱码了,亲测。
来自:https://blog.csdn.net/a327369238/article/details/52856833

四、移除刚安装证书步骤:
查看或移除在设置-通用-描述文件-找到同名的-移除也是需要输入密码的。
在浏览器里安装证书参考(这块安装时候需要输入密码)才能安装成功:
https://www.jianshu.com/p/e8dd1091d6d7
From:https://www.jianshu.com/p/8825179786ac




激活:下载地址:charles系列破解激活办法(最高charles4.2都可以激活)
// Charles Proxy License
// 适用于Charles任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2目前是最新版,可用。
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
来自:https://blog.csdn.net/qq_25821067/article/details/79848589

Charles 在线破解工具:
请正确选择要破解的版本 建议安装使用最新版,官方下载地址 https://www.charlesproxy.com/download/
描述
此工具用于生成破解后的charles.jar文件,blog介绍: https://www.jianshu.com/p/46d29e60dd1b
用法
输入RegisterName(此名称随意,用于显示 Registered to xxx),选择本地已安装的版本,点击生成,并下载charles.jar文件
替换本地charles.jar文件
macOS: /Applications/Charles.app/Contents/Java/charles.jar
Windows: C:\Program Files\Charles\lib\charles.jar
https://www.zzzmode.com/mytools/charles/


Charles 4.2.5 破解:https://blog.zzzmode.com/2017/05/16/charles-4.0.2-cracked/

背景:阿里私有云呐,出现Agent异常,查各种配置均没有问题,后把EDAS的agent服务器均重启了又好了(重启6台中的一台还是有问题),东软哥们问阿里说是给他来了句,叫什么地址漂移,不知道什么鬼高科技。查一下了解了解。

   采用地址漂移技术,利用虚拟IP地址来绑定主服务器,可有效解决不能利用组播的情况下,多台服务器集群之间的信息交互问题。此方法具有一定的代表性,在很多行业可以采用。  双机集群方式广泛应用于各级航空飞行管制中心,两台中心服务器通过网络构成一套高可靠性双机热备份系统,同步工作、互为备份,当主机发生故障时,自动切换到备机工作,系统不间断运行。而地址漂移技术是当其中一台主机有故障时,另一主机接管故障主机的网络IP地址,使网络仍能正常运行。
三是采用地址漂移技术,给管制中心分配一个航空管制中心虚拟IP 地址,航空管制中心之间传递情报采用此IP地址,然后由各航空管制中心的主服务器与此IP地址绑定,负责接收和发送情报。同时在主服务器启动一个三通进 程,所谓三通进程是指此进程负责接收信息,然后将收到的信息分别转发到集群内两台服务器,类似于水龙头的三通,因此称之为三通进程。主服务器收到一份情报 后,送往局域网内主服务器和备服务器的接收进程。当主机切换为备机时,此服务器卸载此虚拟IP地址,切换为主机的服务器加载虚拟IP地址,并启用三通进程 负责接收和分发情报。虚拟IP地址在主备服务器之间漂移,也称之为地址漂移技术,目前很多集群软件也采用此技术来解决集群内多台计算机只有惟一IP地址的 问题。
文中有说ARP+Socket实现的。详情如下:

阅读全文
Redis的慢日志是一个系统记录了超出规定的执行时间查询。执行时间不包括I/O操作,比如与客户会话,发送回复等等,只是实际执行的命令(这就是线程被阻塞而无法执行命令的唯一阶段所需的时间为在此期间其他请求)。可以用两个参数来配置的慢日志:slowlog-log-slower-than告诉Redis是什么的执行时间,以微秒为单位,以超过为获得记录的命令。需要注意的是负数禁用慢日志,而零值强制每个命令的记录。slowlog-max-len是慢日志的长度。最小值是零。当一个新的命令被记录和慢日志已处于其最大长度时,最早的一个是从记录的命令队列中移出以腾出空间。该配置可以通过编辑redis.conf完成或当服务器使用CONFIG GET和Config中设置的命令运行。

一、Redis默认记录超过10000us的命令:
10.64.*.54:6379> config get slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "10000"


二、默认保留128条慢查询日志:
10.64.*.54:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"


三、慢查询日志查询,2条:
[root@rh08 ~]# redis-cli -h 10.64.*.54
10.64.6.54:6379>  slowlog get 2
1) 1) (integer) 2
   2) (integer) 1470219973
   3) (integer) 36910
   4) 1) "info"
2) 1) (integer) 1
   2) (integer) 1469739564
   3) (integer) 14997
   4) 1) "save"
像discuz论坛啥的, 要是楼数多,分页发现有这个问题,导致mysql的cpu负载较高,分页需要优化,如limit 222222,20,从20万以上取这样的。
再说是对mysql的INNODB引擎进行分区,以提高mysql的性能:

资料:
【分页查询时如何优化MySQL的性能?必藏】
http://toutiao.com/group/6303291874997141762/?iid=4621176401&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share

MySQL架构优化实战系列3:定时计划任务与表分区:
http://sc.qq.com/fx/u?r=BHE7tkA

MySQL架构优化实战系列2:主从复制同步与查询性能调优:
http://blog.csdn.net/huaweitman/article/details/51822082

MySQL架构优化实战系列1:数据类型与索引调优全解析:
http://udn.yyuap.com/article-11729.html
分页: 21/260 第一页 上页 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 下页 最后页 [ 显示模式: 摘要 | 列表 ]