常常在发邮件时用到上下移动行调整服务器的IP简单排序:
Sublime:
Ctrl + Shift + Enter   可以在当前行上面添加一行。
Ctrl + Shift + 上箭头  ,作用:将当前行上移一行。
Ctrl + Shift + 下箭头  ,作用:将当前行下移一行。

Editplus:
Alt + Shift +  上箭头 ,作用:将当前行上移一行。  
Alt + Shift +  下箭头 ,作用:将当前行下移一行。


visual studio code:
Alt+ ↑ / ↓                 作用:向上/向下移动当前行
  
Shift+Alt + ↓ / ↑       作用:向上/向下复制当前行

Ctrl+Shift+K            作用:删除当前行

Ctrl+Enter               作用:在当前行以下插入

Ctrl+Shift+Enter      作用:在当前行以上插入
背影:对于低配置机器,建议写死PHP-FPM进程数得了,而对于高配置机器,则如果写在动态的,因为根据流量进行fork了PHP-FPM进程运动量很大,应该是在高配置身体健康的时候去做,等你是一个低配置的机器,你再去做增加进程去做时就死了。

一)PHP-FPM子进程数量应该如何设置?



二)php-fpm.conf 配置说明:
php-fpm中pm.start_servers 多大合适?
{(cpu空闲时等待连接的php的最小子进程数) + (cpu空闲时等待连接的php的最大子进程数 - cpu空闲时等待连接的php的最小子进程数)/ 2};
用配置表示就是:min_spare_servers + (max_spare_servers - min_spare_servers) / 2;一般而言,设置成10-20之间的数据足够满足需求了。
英文表示@/usr/local/php/etc/php-fpm.conf:
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2

1)XIYOU-API线上24G(24576M),24CPU生产机器配置:


2)目前RPMBUILD打包写死:
/home/test/rpmbuild/SOURCES/php-fpm.conf
/home/test/rpmbuild/SOURCES/www.conf


3)通过grep从/usr/local/php/etc/php-fpm.conf里陪陪出对应项的值:


附,php-fpm.conf 配置说明:


来自:https://blog.csdn.net/u013372487/article/details/80168979


HP-FPM子进程数量应该如何设置?摘录自:https://blog.csdn.net/jt521xlg/article/details/50992631 ,最前面参考计算最小PHP进程来源:
首先,我们关注下 PHP-FPM 的运行方式:

static :表示在 `php-fpm` 运行时直接 `fork` 出 `pm.max_chindren` 个子进程,

dynamic:表示,运行时 `fork` 出 `start_servers` 个进程,随着负载的情况,动态的调整,最多不超过 `max_children` 个进程。
一般推荐用 static。

优点是不用动态的判断负载情况,提升性能;

缺点是多占用些系统内存资源。

PHP-FPM 子进程数量,是不是越多越好?

当然不是,pm.max_chindren,进程多了,增加进程管理的开销以及上下文切换的开销。

更核心的是,能并发执行的 php-fpm 进程不会超过 cpu 个数。

如何设置,取决于你的代码

如果代码是 CPU 计算密集型的,pm.max_chindren 不能超过 CPU 的内核数。

如果不是,那么将 pm.max_chindren 的值大于 CPU 的内核数,是非常明智的。

国外技术大拿给出这么个公式:

在 N + 20% 和 M / m 之间。

N 是 CPU 内核数量。
M 是 PHP 能利用的内存数量。
m 是每个 PHP 进程平均使用的内存数量。

适用于 dynamic 方式。

static方式:M / (m * 1.2)

当然,还有一种保险的方式,来配置 max_children。适用于 static 方式。

先把 max_childnren 设置成一个比较大的值。
稳定运行一段时间后,观察 php-fpm 的 status 里的 max active processes 是多少
然后把 max_children 配置比它大一些就可以了。
pm.max_requests:指的是每个子进程在处理了多少个请求数量之后就重启。

这个参数,理论上可以随便设置,但是为了预防内存泄漏的风险,还是设置一个合理的数比较好

来自:https://blog.csdn.net/jt521xlg/article/details/50992631
一)netstat常用查看端口参数之查看所有tcp/udp端口:
netstat -atlunp|grep 80


二)netstat常用查看端口参数之单独查看tcp/udp端口命令:
netstat -uln

Proto Recv-Q Send-Q Local Address               Foreign Address             State
udp        0      0 0.0.0.0:111                 0.0.0.0:*
udp        0      0 0.0.0.0:808                 0.0.0.0:*
udp        0      0 127.0.0.1:837               0.0.0.0:*
udp        0      0 0.0.0.0:17617               0.0.0.0:*
udp        0      0 0.0.0.0:2392                0.0.0.0:*



假如没有n,直接用netstat -tl,显示的是一些端口的程序名,如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:5646                      *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:7824                      *:*                         LISTEN
tcp        0      0 *:webcache                  *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:5881                      *:*                         LISTEN

三)netstat常用查看端口参数之单独查看tcp端口命令:
netstat -tln

Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:34945               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:32740               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:15770             0.0.0.0:*                   LISTEN

四)netstat本身也是通过读取系统中的/proc/net/tcp(6)文件来实现对当前网络状态的监控输出的
netstat本身也是通过读取系统中的/proc/net/tcp(6)文件来实现对当前网络状态的监控输出的。我们只要依样画葫芦对此文件进行 解析(主要是合并ipv4和ipv6的内容,然后从16进制转换成字符串形式的ip,端口),然后再比对一下,只要发现此socket的远程ip和端口和 php中的$_SERVER['REMOTE_ADDR'],$_SERVER['REMOTE_PORT']相匹配即可。具体实现如下:

摘录:http://www.4shell.org/archives/2064.html
参考:http://www.80sec.com/security-issue-on-linux-fd-inheritance.html
SecureCrt某个设置不合朕的心意,在打开一个新的连接时不是在同一个窗口下,它又新开了一个工作窗口,像下面这样,操作起来让人很不爽:
一个SSH打一一个SecureCRT,
解决方案:点击 File -> Connect In Tab/Tile 连接新的会话

来自:https://blog.csdn.net/u012135425/article/details/79487575
open  /Users/jackXiang/Library/"Application Support"/VanDyke/SecureCRT/

UI界面解压Zip文件,直接在/Users/jackXiang/Downloads找到对应的解压文件点录,使用Ctrl+C后到上面目录再到 /Users/jackXiang/Library/"Application Support"/VanDyke/SecureCRT/点录的UI界面里后使用Ctrl+V,即可。
出错的原因应该是中文问题,来自:https://bbs.feng.com/read-htm-tid-6939481.html
越来越多的使用Macbook 或者 Macbook Pro,很多人反映使用一段时间之后苹果的Retina屏会出现雪花或者闪动的现象。经过龙朔的调研,我们发现绝大部分屏幕闪动不是硬件导致的,只要按照以下步骤操作,90%以上的屏闪会马上解决。
分析下原因,绝大部分屏闪会发生在通过笔记本电脑外接其他显示器之后发生,还有一部分是在陌生WIFI使用之后。外接显示器之后由于刷新率的不同导致Macbook默认显示设置变化是屏闪的主因。因此大家只要遵循以下步骤就可以解决困扰大家的问题。
第一步重置系统管理控制器(SMC)
1.将 Mac 关机。
2.将 MagSafe 或 USB-C 电源适配器连接到电源和 Mac。
3.在内建键盘上,按下键盘左侧的 Shift-Control-Option 键,然后同时按下电源按钮。
4.松开所有按键,然后再次按下电源按钮以开启 Mac。
第二步、重置非易失的随机访问存储器(NVRAM)
1.关闭 Mac。
2.在键盘上找到以下按键:Command (⌘)、Option、P 和 R。
3.打开 Mac。
4.听到启动声后立即按住 Command-Option-P-R 键。
5.按住这些按键直到电脑重新启动,然后您会再次听到启动声。
(如果使用 MacBook Pro 2016,您将不会听到启动声,请按住这些按键至少 20 秒钟,确保 Mac 正确完成该过程。)
6.松开这些按键。
第三步:关闭系统偏好设置->显示器->自动调节亮度(关闭)。
第四步:针对16款带有touch bar 的Macbook Pro闪屏的解决方法。
点击“系统偏好设置”,打开“安全与隐私”,关闭“FileVault”,然后重新开机。
1.文件-》首选项-》设置

2.搜索设备 输入 git.path

下面显示  git.path:null  (git可执行文件的路径)

3.右侧花括号内输入,在右方用户设置栏输入,注意是反斜杠:
{
    "files.autoSave": "off",
    "git.path": "D:/Program Files/Git/bin/git.exe",
}


注意:

不要使用 windows 的路径风格,例如  D:\\Git\\bin\\git.exe。

要使用   linux style  例如  D:/Git/bin/git.exe。
来自:https://www.cnblogs.com/ymyblog/p/8043555.html
https://blog.csdn.net/danicagogogo/article/details/79527013

同时选中所有匹配的:
用用Visual Studio的吗?Sublime有一个选择一个单词后按ctrl+F3,会把所有这个单词都会选中,在VS里怎么实现这样的?可有快捷键么。VS编辑器同时选中所有匹配的Ctrl+Shift+L。Shift+F12; 同时修改本文件中所有匹配的!

From:http://blog.poetries.top/2017/07/23/vs-keyboard-shortcuts/
基础知识:
对于斜杠来讲,在PHP里即使是单引号,它也是会和类似双引号里的$一样,有被转义:
'/\\\\/'
cat a.php

php a.php
\
cat reg3.php  


来自微信群:是因为双引号的原因,\#在双引号里,就是\#,\\#在双引号里,就是\#,\\\#在双引号里,就是\\#。

之前http://jackxiang.com/post/6466/研究过反斜杠,没有研究过$,这次主要研究$。
"^-? \\d+$":这个正则表达式为什么会有两个反斜杠
这要分两步看
首先字符串中的\\被编译器解释为\
然后作为正则表达式,\d又被正则表达式引擎解释为元字符只匹配数字
正则表达式中匹配一个反斜杠要用四个反斜杠,为什么呢?

分析一下“\\\\”,第一个斜杠是转义符,第二个斜杠是斜杠本身,第三个斜杠是转义符,第四个斜杠是斜杠本身。
有2点要清楚:
1.字符串里面表示斜杠就需要两个斜杠如“\\”
2.正则表达式里的斜杠需要转意,是用“\\”标示。
这样就比较好解释:
我们先要表示正则表达式里面的斜杠“\\”,然后再用字符串表示出来。而这2个斜杠分别需要一个转义符,这样就成了4个斜杠在正则表达式里面表示一个斜杠。
From:https://my.oschina.net/airship/blog/411045
阅读全文
背景:在Linux下习惯使用ll、la、l等ls别名的童鞋到mac os可就郁闷了,
whichi ll
-bash: whichi: command not found
[xiangdong@jenkins_server_bj_sjs_10_71_182_25 .ssh]$ which ll
alias ll='ls -l --color=auto'
        /bin/ls
其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可:


ls -l --color=auto

1 2014-461deMacBook-Pro:~ root# cd ~
2 2014-461deMacBook-Pro:~ root#vim .bash_profile
加入:


  保存后,执行

3 2014-461deMacBook-Pro:~ root#source .bash_profile
=============================================

.bash_profile

alias l='ls -alhF'
alias la='ls -AFh'
alias ll='ls -lhAF'
alias l='ls -alhF'
alias la='ls -AFh'
alias ll='ls -lhAF'

然后在终端窗口中输入下列命令后,别名即可立即生效:
source ~/.bash_profile
source ~/.bash_profile

如果不知道如何创建,可以直接在“终端”窗口中依次执行如下命令:

.bash_profile完整创建命令Shell

cd ~
touch .bash_profile
echo "alias l='ls -alhF'" >>.bash_profile
echo "alias la='ls -AFh'" >>.bash_profile
echo "alias ll='ls -lhAF'" >>.bash_profile
source ~/.bash_profile

cd ~
touch .bash_profile
echo "alias l='ls -alhF'" >>.bash_profile
echo "alias la='ls -AFh'" >>.bash_profile
echo "alias ll='ls -lhAF'" >>.bash_profile
source ~/.bash_profile

来自:https://clang.cn/blog/749.html
https://www.cnblogs.com/daly2008/p/4160066.html
背景:Python很火,且连一些如ESP8266的硬件都支持Python了。
目前Python存在两个版本Python2和Python3系列,且这两个版本同时在更新与维护。到底是选择Python2还是选择Python3,取决于当前要使用的库、框架支持哪个版本。因此一台电脑上可能需要同时安装Python2和Python3两个版本。本文主要讲述的是如何在centos7系统中存在python2系列的同时安装python3.6.2(目前python3系列的最新版本)

1.安装升级相应的软件包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

2.下载python 3.6 的源码包
wget http://mirrors.sohu.com/python/3.6.2/Python-3.6.2.tgz

3.安装python3.6
tar zxvf Python-3.6.2.tgz -C /opt/
cd /opt/Python-3.6.2/  
./configure --prefix=/usr/local/python3
make && make install  

若遇到编译问题:
zipimport.ZipImportError: can't decompress data; zlib not available  #make && make install
yum install zlib zlib-devel -y

4.配置python,配置python3  pip3 软链接,设置软连接:目的是让我们直接在任何地方输入python3命令都可以得到python解释器的运行。
更改/usr/bin/python链接:
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
mv /usr/bin/pip{,.backup}
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip   #python2-pip没有,就没有这个pip.
查看是否安装成功
python3 -V
pip3 -V

更改/usr/bin/python默认链接,实现升级:
/usr/bin/python --version
Python 2.7.5
mv /usr/bin/python{,.backup}
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python


5.查看当python的版本,出现版本信息即为正确安装
python3 --version


6.更改yum脚本的python依赖
yum localinstall mysql-5.7.12-171123111505.el7.centos.x86_64.rpm
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
# ls /usr/bin/yum*
# ls yum*
yum yum-config-manager yum-debug-restore yum-groups-manager
yum-builddep yum-debug-dump yumdownloader
更改以上文件头为
#!/usr/bin/python 改为 #!/usr/bin/python2

用Sed 一行搞定,参考自[实践OK]经常用到之linux sed 批量替换字符串,及模糊替换和模糊拼接的例子。http://jackxiang.com/post/2324/:
/usr/bin/yum-groups-manager  #!/usr/bin/python -tt
/usr/bin/yumdownloader #直接python后面有一个空格
/usr/bin/yum-debug-restore #!/usr/bin/python -tt
/usr/bin/yum-debug-dump  #!/usr/bin/python -tt
/usr/bin/yum-config-manager #!/usr/bin/python -tt
/usr/bin/yum-builddep  #!/usr/bin/python -tt
/usr/bin/yum  #python后面无空格
势必要有两种替换:
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-builddep
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-config-manager
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-debug-dump
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-debug-restore
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yumdownloader
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-groups-manager
sed -i 's/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.7/' /usr/bin/yum
sed -i 's/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.7/' /usr/libexec/urlgrabber-ext-down

这个-tt的没有啥用,只是起到警告作用,完全在替换时不要:
-t     Issue a warning when a source file mixes tabs and spaces for indentation in a  way  that  makes  it
              depend on the worth of a tab expressed in spaces.  Issue an error when the option is given twice.
-t 当源文件以制作缩进的方式混合制表符和空格时发出警告
               取决于用空格表示的选项卡的价值。 当该选项被赋予两次时发出一个错误。

7.测试用Python的Pip3安装Python扩展:
rpm -qf /bin/pip
python2-pip-8.1.2-5.el7.noarch
/bin/pip --version
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)

pip3 --version
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)

pip3 install PyEmail
Collecting PyEmail
  Downloading https://files.pythonhosted.org/packages/ca/39/caf0436670b6fa9f072e322fab1a2b04d5631bdbdc8ea9857230aae02dd5/PyEmail-0.0.1.zip
Installing collected packages: PyEmail
  Running setup.py install for PyEmail ... done
Successfully installed PyEmail-0.0.1
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

pip3 install ipdb
Collecting ipdb
  Downloading https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz
Requirement already satisfied: setuptools in /usr/local/python3/lib/python3.6/site-packages (from ipdb)
Collecting ipython>=5.0.0 (from ipdb)
  Downloading https://files.pythonhosted.org/packages/b1/7f/91d50f28af3e3a24342561983a7857e399ce24093876e6970b986a0b6677/ipython-6.4.0-py3-none-any.whl (750kB)
    62% |████████████████████            | 471kB 54kB/s eta 0:00:06
好一会下载安装就能装上这个,但是提示:You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
pip install --upgrade pip

pip install ipdb   #再一次安装这个Python的调试扩展
python -m pdb mail.py

最后,这些脚本总结起来放一块就这些,方便后期再安装之用:


来自:https://blog.csdn.net/hobohero/article/details/54381475
来自:https://blog.csdn.net/wjqwinn/article/details/75633714
背景:很常用的一些基础文本操作,记录下来备查。
一)把空格连接改为|连接:
#cat b
a b c d

awk -vOFS="|" 'NF+=0' b
a|b|c|d

[解析]
  替换字段分割符,必须要对字段有个action才能使OFS生效,这里我们运用 NF+=0 的方法,即有了操作,而并为改变其原有的值,很巧妙吧。

二)去空行:
cat a
1

2

3

awk NF a
1
2
3

[解析]
  排除空行,因为空行NF=0,0为假不会打印该行。

三)输出中间列:
#cat c
a b c d e f
1 2 3 4

awk 'NF-=2' c
a b c d
1 2

awk '{for(i=3;i<NF;i++)printf("%s ",$i);print $NF}' c
c d e f
3 4

$NF:最后一列

[解析]
  不输出后面2个字段和前面2个字段。

实践来自:https://blog.csdn.net/zwj1030711290/article/details/53923459





一)把空格连接改为|连接:
#cat b
a b c d

awk -vOFS="|" 'NF+=0' b
a|b|c|d


二)去空行:
cat a
1

2

3

awk NF a
1
2
3


三)
背景:鉴于安全的原因,如果你的电脑没有桌面锁密码,别人也能用,此时不安全,得把对应的自动填写的用户各、密码的Cookie清理掉,而对于那个Chrome记住并自动填写登录的用户名和密码也不安全,只需要输入验证码就进入了,于是查了下怎么给去掉这些的存在Chrome里,实践是可行的,很有必要记录下来,免得忘记了,无它。

一)如何在Chrome中删除特定于站点的Cookie:
chrome://settings/
高级-内容设置-Cookie-所有 Cookie 和网站数据[右侧有一个搜索Cookie:输入jackxiang.com]-点进去就有-XXXX.com 本地存储的数据:
PHPSESSID    --> X
userid            --> X
userpasswd    --> X

来自:http://mos86.com/67173.html


二)如何删除chrome保存的密码:
chrome://settings/
Ctrl+shift+del,里弹出一个清除浏览数据,里面有一个:密码项,再就是有一个选择是:过去七天、近四周、时间不限。
选一个时间,并勾选,其它给不勾选,执行即可。
如果你是当天数据的,选过去一天即可,依次类推。然后勾选<密码>项。最后选择清楚浏览数据。这样操作就完成啦。当你再次登录之前的网站时,你发现你就需要重新输入密码了。

来自:https://jingyan.baidu.com/article/f3ad7d0fe5e71309c3345baf.html
Sublime编辑器里,用正则把一堆IP粘贴选取出来:



来自:https://www.jb51.net/article/101221.htm
分页: 1/259 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]