
[实践OK]grep 去除注释行和空行,实现过滤配置文件里面的注释和空行。
Unix/LinuxC技术 jackxiang 2018-8-16 17:34
cat php.ini |grep -v "^;"|grep -v ^$
grep -v ^# /etc/vsftpd/vsftpd.conf |grep -v ^$ >> /etc/vsftpd/vsftpd
来自:http://blog.51cto.com/mange888/806342
grep -v ^# /etc/vsftpd/vsftpd.conf |grep -v ^$ >> /etc/vsftpd/vsftpd
来自:http://blog.51cto.com/mange888/806342
一)VSCode的空格设置:
MAC : Code->首选项->设置->两列右侧的用户设置->贴上立即新建一个文件就生效:
来自:https://www.jianshu.com/p/e9ee1de056b2
二)Sublime的空格设置:
Sublime菜单里的preferences.sublime-setting-Default里面的"draw_white_space": "selection",复制到preferences.sublime-setting-user,然后改为"draw_white_space": "all",之后保存,就行了,别忘了有一个逗号.
来自:https://www.cnblogs.com/xiyuan2016/p/8268210.html
三)以及在MAC下Sublime如何跳到行首或行尾? 使用Command键或者fn键+左/右箭头的组合。
四)MAC下向后删的方法是:Fn+Delete键。
五)Vim里显示末尾空格、换行和Tab设置:
显示 TAB 键
文件中有 TAB 键的时候,你是看不见的。要把它显示出来:
:set list TAB
显示为 ^I,$显示在每行的结尾,表示换行,Vim 可以用高亮显示空格和TAB。
如下,上面WhitespaceEOL做了去掉行尾巴的$和把Tab换成>-:
jack^Idjfkdf$
xiang^Idklf$
^I$
$
^I^I$
可视化列出vim的tab和所有不可见字符
在使用vim作为python的编辑器的时候,如果没有处理好空格和tab的关系,或者2者混用的时候,很容易出现缩进导致的错误,怎么避免这种情况的发生呢?
最好在vim的配置文件中将tab直接使用四个空格,这个时候你按下一个tab的时候,实际上插入了4个空格。
set expandtab
set tabstop=4
那么如果你的代码中有很多的tab和空格的混用,并且tab没有设置,那么就有大麻烦了,想修复这些错误,我们又不知道那些有问题,因为看不见,怎么办,使用
/\t
就可以可视化列出所有的tab了
还有一种方法,其实这种方法是列出不可见字符,比如回车换行字符,tab之类
你可以使用
:set list
查看,如果想取消,使用
:set list!
或者
:set nolist
还可以自定义这些不可见字符显示符号:
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
例如使用感叹号显示换行:
:set listchars=eol:!
设置完后,再用
:set list
你会发现结束符,tab,前缀,扩展,换行符均显示出来了。
如果只想查看tab的话,那么设置
:set listchars=tab:--
然后使用
:set list
这时候,你只能看到tab被显示出来,其他还是不可见的状态。
来自:http://www.itye.org/archives/2005
MAC : Code->首选项->设置->两列右侧的用户设置->贴上立即新建一个文件就生效:
来自:https://www.jianshu.com/p/e9ee1de056b2
二)Sublime的空格设置:
Sublime菜单里的preferences.sublime-setting-Default里面的"draw_white_space": "selection",复制到preferences.sublime-setting-user,然后改为"draw_white_space": "all",之后保存,就行了,别忘了有一个逗号.
来自:https://www.cnblogs.com/xiyuan2016/p/8268210.html
三)以及在MAC下Sublime如何跳到行首或行尾? 使用Command键或者fn键+左/右箭头的组合。
四)MAC下向后删的方法是:Fn+Delete键。
五)Vim里显示末尾空格、换行和Tab设置:
显示 TAB 键
文件中有 TAB 键的时候,你是看不见的。要把它显示出来:
:set list TAB
显示为 ^I,$显示在每行的结尾,表示换行,Vim 可以用高亮显示空格和TAB。
如下,上面WhitespaceEOL做了去掉行尾巴的$和把Tab换成>-:
jack^Idjfkdf$
xiang^Idklf$
^I$
$
^I^I$
可视化列出vim的tab和所有不可见字符
在使用vim作为python的编辑器的时候,如果没有处理好空格和tab的关系,或者2者混用的时候,很容易出现缩进导致的错误,怎么避免这种情况的发生呢?
最好在vim的配置文件中将tab直接使用四个空格,这个时候你按下一个tab的时候,实际上插入了4个空格。
set expandtab
set tabstop=4
那么如果你的代码中有很多的tab和空格的混用,并且tab没有设置,那么就有大麻烦了,想修复这些错误,我们又不知道那些有问题,因为看不见,怎么办,使用
/\t
就可以可视化列出所有的tab了
还有一种方法,其实这种方法是列出不可见字符,比如回车换行字符,tab之类
你可以使用
:set list
查看,如果想取消,使用
:set list!
或者
:set nolist
还可以自定义这些不可见字符显示符号:
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
例如使用感叹号显示换行:
:set listchars=eol:!
设置完后,再用
:set list
你会发现结束符,tab,前缀,扩展,换行符均显示出来了。
如果只想查看tab的话,那么设置
:set listchars=tab:--
然后使用
:set list
这时候,你只能看到tab被显示出来,其他还是不可见的状态。
来自:http://www.itye.org/archives/2005
如何使用呢?
首先设置权限,要在小程序中访问外部的网页,需要先设置允许访问的业务网站的域名,登录小程序平台管理后台页面,进入“设置”->开发设置:
点击开始配置
使用web-view组件显示HTM页面
<web-view src="https://www.xxxxxxxxx.com/index.html" />
注意:<iframe>可以嵌套入到页面的任意部分,而小程序的这个<web-view>总是自动铺满整个页面,每个页面只能有一个<web-view>,它会覆盖其它的组件。
如果要在已经通过<web-view>嵌入小程序的网页中,跳转到小程序的其他页面,可以引入微信的一个jsssdk,使用它提供的方法来实现
<!-- html代码中引入JS SDK -->
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.0.js"></script>
<script>
// 跳转到小程序的一个页面
wx.miniProgram.navigateTo({url: '/path/to/page'})
</script>
来自:https://blog.csdn.net/null_bugs/article/details/79495237
首先设置权限,要在小程序中访问外部的网页,需要先设置允许访问的业务网站的域名,登录小程序平台管理后台页面,进入“设置”->开发设置:
点击开始配置
使用web-view组件显示HTM页面
<web-view src="https://www.xxxxxxxxx.com/index.html" />
注意:<iframe>可以嵌套入到页面的任意部分,而小程序的这个<web-view>总是自动铺满整个页面,每个页面只能有一个<web-view>,它会覆盖其它的组件。
如果要在已经通过<web-view>嵌入小程序的网页中,跳转到小程序的其他页面,可以引入微信的一个jsssdk,使用它提供的方法来实现
<!-- html代码中引入JS SDK -->
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.0.js"></script>
<script>
// 跳转到小程序的一个页面
wx.miniProgram.navigateTo({url: '/path/to/page'})
</script>
来自:https://blog.csdn.net/null_bugs/article/details/79495237
预览Markdown快捷键:先按Ctrl + K,然后放掉,紧接着再按 v,调出右侧实时预览框。
之前尝试过使用多个markdown编辑器,都可以用,但是总觉得使用起来不是很爽,要么功能限制需要开通会员才能导出pdf,要么界面丑爆了,要么程序很大有很多没用的功能。最近突然发现VS code也可以下markdown,而且用起来超级爽,悄悄的迷恋上了vs code。写好的文件如果想要导出pdf文件,需要安装插件。
VS code安装插件的方法为:
1. 按下F1键,会在窗口顶端弹出命令的输入框,输入ext install
2. 在插件输入框输入markdown pdf,vs code会检索出markdown pdf插件。
3. 点击安装,重启即可。
在window系统下,通过上面的步骤就可以了,但是在Linux或者MAC下,安装后右键--convert to pdf会报错:ERROR: phantomjs binary does not exist: /Users/username/.vscode/extensions/yzane.markdown-pdf-0.1.7/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe
这时候需要安装phantomjs才可以使用:
MAC:brew install phantomjs
Linux:sudo apt-apt install phantomjs
4.预览
“Markdown Preview Enhanced” 插件提供了预览功能。 在markdown文件右上角,有一个放大器的东西,点击选择即可。
5.生成PDF
Open the Markdown file
Press F1 or Ctrl+Shift+P
Type export and select below
markdown-pdf: Export (settings.json)
markdown-pdf: Export (pdf)
markdown-pdf: Export (html)
markdown-pdf: Export (png)
markdown-pdf: Export (jpeg)
markdown-pdf: Export (all: pdf, html, png, jpeg)
后来发现,在Markdown的文件编辑界面上右键有导出PDF的右键菜单,出现返回Busy啥的,有可能是那个之前的PDF还处于被打开状态。
来自:https://blog.csdn.net/billybai/article/details/78245827
Visual Studio Code + Markdown TOC 扩展:
在Markdown的文件编辑界面上右键有导出PDF的右键菜单。
单击 VS Code 的扩展图标,在搜索框搜索 Markdown TOC 并安装。
安装成功后,点击左侧扩展图标,可查看已安装的扩展。
菜单栏的文件 -> 打开,打开需要生成目录的 .md 格式的文件。
将光标移至需要插入目录的位置,右键单击出现菜单里面有 Markdown TOC: Insert/Update [^M T],目录即自动插入。(先按Ctrl + K,然后放掉,紧接着再按 v,调出右侧实时预览框。)
保存,关闭文件。
https://www.jianshu.com/p/4721ddd27027
之前尝试过使用多个markdown编辑器,都可以用,但是总觉得使用起来不是很爽,要么功能限制需要开通会员才能导出pdf,要么界面丑爆了,要么程序很大有很多没用的功能。最近突然发现VS code也可以下markdown,而且用起来超级爽,悄悄的迷恋上了vs code。写好的文件如果想要导出pdf文件,需要安装插件。
VS code安装插件的方法为:
1. 按下F1键,会在窗口顶端弹出命令的输入框,输入ext install
2. 在插件输入框输入markdown pdf,vs code会检索出markdown pdf插件。
3. 点击安装,重启即可。
在window系统下,通过上面的步骤就可以了,但是在Linux或者MAC下,安装后右键--convert to pdf会报错:ERROR: phantomjs binary does not exist: /Users/username/.vscode/extensions/yzane.markdown-pdf-0.1.7/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe
这时候需要安装phantomjs才可以使用:
MAC:brew install phantomjs
Linux:sudo apt-apt install phantomjs
4.预览
“Markdown Preview Enhanced” 插件提供了预览功能。 在markdown文件右上角,有一个放大器的东西,点击选择即可。
5.生成PDF
Open the Markdown file
Press F1 or Ctrl+Shift+P
Type export and select below
markdown-pdf: Export (settings.json)
markdown-pdf: Export (pdf)
markdown-pdf: Export (html)
markdown-pdf: Export (png)
markdown-pdf: Export (jpeg)
markdown-pdf: Export (all: pdf, html, png, jpeg)
后来发现,在Markdown的文件编辑界面上右键有导出PDF的右键菜单,出现返回Busy啥的,有可能是那个之前的PDF还处于被打开状态。
来自:https://blog.csdn.net/billybai/article/details/78245827
Visual Studio Code + Markdown TOC 扩展:
在Markdown的文件编辑界面上右键有导出PDF的右键菜单。
单击 VS Code 的扩展图标,在搜索框搜索 Markdown TOC 并安装。
安装成功后,点击左侧扩展图标,可查看已安装的扩展。
菜单栏的文件 -> 打开,打开需要生成目录的 .md 格式的文件。
将光标移至需要插入目录的位置,右键单击出现菜单里面有 Markdown TOC: Insert/Update [^M T],目录即自动插入。(先按Ctrl + K,然后放掉,紧接着再按 v,调出右侧实时预览框。)
保存,关闭文件。
https://www.jianshu.com/p/4721ddd27027
背景:ssl on打开后直接访问Http,出现400错,想能通过Http访问到,得注释掉ssl on;即可。
Problem
When viewing any of my sites using port 80, the following error appeared on non-SSL websites:
Nginx 400 Bad Request The plain HTTP request was sent to HTTPS port
Original server block:
server {
listen 80;
listen 443;
ssl on;
ssl_certificate /path/to/cert/example.pem;
ssl_certificate_key /path/to/cert/example.private.key;
root /path/to/wordpress;
index index.php;
# Website URL
server_name blog.duaneleem.com;
# etc...
}
Solution
After reading NGINX documentation, the solution to this was to place the SSL directive on “listen.” Here’s a sample server block that demonstrates this:
server {
listen 80;
listen 443 ssl;
ssl_certificate /path/to/cert/example.pem;
ssl_certificate_key /path/to/cert/example.private.key;
root /path/to/wordpress;
index index.php;
# Website URL
server_name blog.duaneleem.com;
# etc...
}
By adding “ssl” to the listen directive to all my server blocks, everything started working again.
From: https://blog.duaneleem.com/nginx-ssl-on/
Problem
When viewing any of my sites using port 80, the following error appeared on non-SSL websites:
Nginx 400 Bad Request The plain HTTP request was sent to HTTPS port
Original server block:
server {
listen 80;
listen 443;
ssl on;
ssl_certificate /path/to/cert/example.pem;
ssl_certificate_key /path/to/cert/example.private.key;
root /path/to/wordpress;
index index.php;
# Website URL
server_name blog.duaneleem.com;
# etc...
}
Solution
After reading NGINX documentation, the solution to this was to place the SSL directive on “listen.” Here’s a sample server block that demonstrates this:
server {
listen 80;
listen 443 ssl;
ssl_certificate /path/to/cert/example.pem;
ssl_certificate_key /path/to/cert/example.private.key;
root /path/to/wordpress;
index index.php;
# Website URL
server_name blog.duaneleem.com;
# etc...
}
By adding “ssl” to the listen directive to all my server blocks, everything started working again.
From: https://blog.duaneleem.com/nginx-ssl-on/
Excel里有冻结首航,在Html的表格里也有首行,这块复制时从首行的最后一个位置到末尾选中,
法1)然后可贴入到Excel里面,行成多行,然后再粘贴出来也就行对齐了,可对一些列作修改。
法2)当然,也可放到Dreamweaver里,对没有用的列进行选中后按Delete键删除后,再在Live里,也就是模拟浏览器显示里贴回Excel里(直接对编辑模式进行粘贴还是会换行!),再粘贴回编辑器里。
否则,直接粘贴网页里面的表格,其一行一行的显示到文本编辑器里不是一行一行的,而是很多行,格式一定会出现错乱。
法2这个直接粘贴进Excel里有样式,而从Dreamweaver里粘贴进去无样式,还能去列,而Excel想选两列再粘贴两列到文本编辑器里,是不行的,会粘贴所有的。
但是可以把Exel里的多余的列删除掉,再粘贴也就Ok。总之,得过Excel一下,否则表格里的一行到了文本编辑器后就会出现换行。
法1)然后可贴入到Excel里面,行成多行,然后再粘贴出来也就行对齐了,可对一些列作修改。
法2)当然,也可放到Dreamweaver里,对没有用的列进行选中后按Delete键删除后,再在Live里,也就是模拟浏览器显示里贴回Excel里(直接对编辑模式进行粘贴还是会换行!),再粘贴回编辑器里。
否则,直接粘贴网页里面的表格,其一行一行的显示到文本编辑器里不是一行一行的,而是很多行,格式一定会出现错乱。
法2这个直接粘贴进Excel里有样式,而从Dreamweaver里粘贴进去无样式,还能去列,而Excel想选两列再粘贴两列到文本编辑器里,是不行的,会粘贴所有的。
但是可以把Exel里的多余的列删除掉,再粘贴也就Ok。总之,得过Excel一下,否则表格里的一行到了文本编辑器后就会出现换行。
[实践OK]awk自定义函数求平方和实例。
Unix/LinuxC技术 jackxiang 2018-7-30 22:22
$cat pingfang.awk
$cat xy.txt
1 2
3 3
4 3
2 3
$./pingfang.awk xy.txt
sum = 5
sum = 18
sum = 25
sum = 13
这些文章{print 'sum =',SquareSum($1,$2)} 都是单引号,估计都没实践过吧?
参考:https://tieba.baidu.com/f?kz=4897365011&mo_device=1&ssid=0&from=844b&uid=0&pu=usm@0,sz@1320_2001,ta@iphone_1_11.4_3_605&bd_page_type=1&baiduid=F7F621D935F5435074FCC25A0863FC2F&tj=www_normal_5_0_10_title&referer=m.baidu.com?pn=0&
http://blog.sina.cn/dpool/blog/s/blog_4cab1a3701007ya9.html
$cat xy.txt
1 2
3 3
4 3
2 3
$./pingfang.awk xy.txt
sum = 5
sum = 18
sum = 25
sum = 13
这些文章{print 'sum =',SquareSum($1,$2)} 都是单引号,估计都没实践过吧?
参考:https://tieba.baidu.com/f?kz=4897365011&mo_device=1&ssid=0&from=844b&uid=0&pu=usm@0,sz@1320_2001,ta@iphone_1_11.4_3_605&bd_page_type=1&baiduid=F7F621D935F5435074FCC25A0863FC2F&tj=www_normal_5_0_10_title&referer=m.baidu.com?pn=0&
http://blog.sina.cn/dpool/blog/s/blog_4cab1a3701007ya9.html
[实践OK]awk实现视频分段播放分段后链接的拼凑函数split和for结合实践。
Php/Js/Shell/Go jackxiang 2018-7-30 20:05
对于写判断的语句,如for,需要放在花括号里头,{},否则会报错,这是AWK的语法:
cat sql.txt
http://adff.com 300,300,300
http://adff1.com 300,300,300
http://adff2.com 300,300,300
http://adff3.com 300,300,300
http://adff4.com 300,300,300,300,300
cat sql.txt |awk '{a=split($2,filearray,",")}{for (i=1;i<=a;i++) printf ("%s/v=%s\n",$1,i)}'
http://adff.com/v=1
http://adff.com/v=2
http://adff.com/v=3
http://adff1.com/v=1
http://adff1.com/v=2
http://adff1.com/v=3
http://adff2.com/v=1
http://adff2.com/v=2
http://adff2.com/v=3
http://adff3.com/v=1
http://adff3.com/v=2
http://adff3.com/v=3
http://adff4.com/v=1
http://adff4.com/v=2
http://adff4.com/v=3
http://adff4.com/v=4
http://adff4.com/v=5
之前加个end,发现只输出最后一行,不对。去了END就好了,end表示其后的语句在所有语句执行后才执行,做一些计算后的总结打印输出,BEGIN表示在所有语句执行前执行:
http://adff4.com/1
http://adff4.com/2
http://adff4.com/3
http://adff4.com/4
http://adff4.com/5
cat sql.txt
http://adff.com 300,300,300
http://adff1.com 300,300,300
http://adff2.com 300,300,300
http://adff3.com 300,300,300
http://adff4.com 300,300,300,300,300
cat sql.txt |awk '{a=split($2,filearray,",")}{for (i=1;i<=a;i++) printf ("%s/v=%s\n",$1,i)}'
http://adff.com/v=1
http://adff.com/v=2
http://adff.com/v=3
http://adff1.com/v=1
http://adff1.com/v=2
http://adff1.com/v=3
http://adff2.com/v=1
http://adff2.com/v=2
http://adff2.com/v=3
http://adff3.com/v=1
http://adff3.com/v=2
http://adff3.com/v=3
http://adff4.com/v=1
http://adff4.com/v=2
http://adff4.com/v=3
http://adff4.com/v=4
http://adff4.com/v=5
之前加个end,发现只输出最后一行,不对。去了END就好了,end表示其后的语句在所有语句执行后才执行,做一些计算后的总结打印输出,BEGIN表示在所有语句执行前执行:
http://adff4.com/1
http://adff4.com/2
http://adff4.com/3
http://adff4.com/4
http://adff4.com/5
[实践OK]注释斜杠或井号在粘贴到vim时,VIM里的格式会乱掉的解决办法
Unix/LinuxC技术 jackxiang 2018-7-30 14:30
实践成功如下:
vim中 输入 :set
:set
--- Options ---
comments=:# filetype=yaml pastetoggle=<F9> ttymouse=xterm2
cscopetag helplang=en ruler viminfo='20,"50
cscopeverbose history=50 syntax=yaml t_Sb=^[[4%dm
expandtab hlsearch ttyfast t_Sf=^[[3%dm
backspace=indent,eol,start
commentstring=# %s
cscopeprg=/usr/bin/cscope
fileencodings=ucs-bom,utf-8,latin1
formatoptions=croql
guicursor=n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block,a:blinkon0
ormatoptions=croql
这个选项,希望在~/.vimrc中禁止,比如设置为
set formatoptions=tcpmM
但是vim不识别此行,报错.无法禁止这个选项....
经过百度搜索,发现解决方案.[比较恶心 开源软件的就是配置文件 不人性化]
在粘贴前先设置进入粘贴插入模式,即不会自动缩进和连续注释
set paste
然后再进入插入模式粘贴,啥注释的#号或双斜杠都不影响。AddTime:2018-07-30
在粘贴插入模式下代码是不会自动按格式缩进的,需要使用nopaste设置回来
set nopaste
也可以在.vimrc中设置切换的快捷键,比如设置F9,则可以在.vimrc中加入:
set pastetoggle=<F9>
这样直接在插入模式按F9就会在“-- 插入 --”模式和“-- 插入(粘贴) --”模式中切换
说的就是这个设置:
================================================================================
ecureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器。所以当你的服务器上的vim设置为autoindent的话,在i模式下,那么它会将secureCRT传输而来的这些字符串再进行一下缩进。若你拷贝的文本中已经有表示缩进的空格或者制表符的话,它们也会被当成字符串,而被缩进。
解决办法:
1. 在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)
2. 拷贝完成之后,输入:set nopaste (关闭paste)
来自:
https://blog.csdn.net/kwame211/article/details/77964106
https://blog.csdn.net/chenghai37/article/details/80698322
vim复制代码包含注释时格式会乱掉的解决办法:
每次复制代码时,如果代码里有 // 这样的注释就容易让格式乱掉,通过下面的设置就可以避免这种情况。
粘贴代码时取消自动缩进
VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉,我知道有同学这个时候会用vi去打开文件再粘贴上去(鄙人以前就是这样),其实需要先设置一下
set paste
然后再进入插入模式粘贴,代码就不会被自动缩进。可是敲代码的时候需要自动缩进,又得改回来:
set nopaste
最方便的方法就是在.vimrc中加一句:
set pastetoggle=<F9>
以后在插入模式下,只要按F9键就可以切换自动缩进。
来自:https://blog.csdn.net/tao_627/article/details/18764539
vim中 输入 :set
:set
--- Options ---
comments=:# filetype=yaml pastetoggle=<F9> ttymouse=xterm2
cscopetag helplang=en ruler viminfo='20,"50
cscopeverbose history=50 syntax=yaml t_Sb=^[[4%dm
expandtab hlsearch ttyfast t_Sf=^[[3%dm
backspace=indent,eol,start
commentstring=# %s
cscopeprg=/usr/bin/cscope
fileencodings=ucs-bom,utf-8,latin1
formatoptions=croql
guicursor=n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block,a:blinkon0
ormatoptions=croql
这个选项,希望在~/.vimrc中禁止,比如设置为
set formatoptions=tcpmM
但是vim不识别此行,报错.无法禁止这个选项....
经过百度搜索,发现解决方案.[比较恶心 开源软件的就是配置文件 不人性化]
在粘贴前先设置进入粘贴插入模式,即不会自动缩进和连续注释
set paste
然后再进入插入模式粘贴,啥注释的#号或双斜杠都不影响。AddTime:2018-07-30
在粘贴插入模式下代码是不会自动按格式缩进的,需要使用nopaste设置回来
set nopaste
也可以在.vimrc中设置切换的快捷键,比如设置F9,则可以在.vimrc中加入:
set pastetoggle=<F9>
这样直接在插入模式按F9就会在“-- 插入 --”模式和“-- 插入(粘贴) --”模式中切换
说的就是这个设置:
================================================================================
ecureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器。所以当你的服务器上的vim设置为autoindent的话,在i模式下,那么它会将secureCRT传输而来的这些字符串再进行一下缩进。若你拷贝的文本中已经有表示缩进的空格或者制表符的话,它们也会被当成字符串,而被缩进。
解决办法:
1. 在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)
2. 拷贝完成之后,输入:set nopaste (关闭paste)
来自:
https://blog.csdn.net/kwame211/article/details/77964106
https://blog.csdn.net/chenghai37/article/details/80698322
vim复制代码包含注释时格式会乱掉的解决办法:
每次复制代码时,如果代码里有 // 这样的注释就容易让格式乱掉,通过下面的设置就可以避免这种情况。
粘贴代码时取消自动缩进
VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉,我知道有同学这个时候会用vi去打开文件再粘贴上去(鄙人以前就是这样),其实需要先设置一下
set paste
然后再进入插入模式粘贴,代码就不会被自动缩进。可是敲代码的时候需要自动缩进,又得改回来:
set nopaste
最方便的方法就是在.vimrc中加一句:
set pastetoggle=<F9>
以后在插入模式下,只要按F9键就可以切换自动缩进。
来自:https://blog.csdn.net/tao_627/article/details/18764539
[实践OK]阿里云授时服务器之公共NTP服务器
Unix/LinuxC技术 jackxiang 2018-7-30 13:28
来自:https://eallion.com/aliyun-ntp
公共NTP服务器
Unix类系统:time1-7.aliyun.com 8台:
我也不知道是怎么想的,
随手就去搜索了“阿里云 NTP”,
结果还真有!
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
Windows: time.pool.aliyun.com
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>/dev/null
#/usr/sbin/ntpdate ntp1.aliyun.com
30 Jul 13:27:42 ntpdate[32557]: step time server 120.25.115.20 offset 486.889850 sec
#sed -n 's#ntp.ksyun.cn#ntp1.aliyun.com#p' /var/spool/cron/root
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>/dev/null
正式替换:
sed -i 's#ntp.ksyun.cn#ntp1.aliyun.com#' /var/spool/cron/root
成功替换:
cat /var/spool/cron/root
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>/dev/null
Ansbile批量替换:
ansible applet -a"sed -i 's#ntp.ksyun.cn#ntp1.aliyun.com#' /var/spool/cron/root"
公共NTP服务器
Unix类系统:time1-7.aliyun.com 8台:
我也不知道是怎么想的,
随手就去搜索了“阿里云 NTP”,
结果还真有!
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
Windows: time.pool.aliyun.com
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>/dev/null
#/usr/sbin/ntpdate ntp1.aliyun.com
30 Jul 13:27:42 ntpdate[32557]: step time server 120.25.115.20 offset 486.889850 sec
#sed -n 's#ntp.ksyun.cn#ntp1.aliyun.com#p' /var/spool/cron/root
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>/dev/null
正式替换:
sed -i 's#ntp.ksyun.cn#ntp1.aliyun.com#' /var/spool/cron/root
成功替换:
cat /var/spool/cron/root
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>/dev/null
Ansbile批量替换:
ansible applet -a"sed -i 's#ntp.ksyun.cn#ntp1.aliyun.com#' /var/spool/cron/root"
[实践Ok]#deprecation_warnings = True允许在ansible-playbook输出结果中禁用“不建议使用”警告
Unix/LinuxC技术 jackxiang 2018-7-26 11:40
ansible applet -m ping
[DEPRECATION WARNING]: DEFAULT_SUDO_EXE option, In favor of Ansible Become, which is a generic framework. See become_exe. ,
use become instead. This feature will be removed in version 2.8. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: DEFAULT_MODULE_LANG option, Modules are coded to set their own locale if needed for screenscraping .
This feature will be removed in version 2.9. Deprecation warnings can be disabled by setting deprecation_warnings=False in
ansible.cfg.
#deprecation_warnings = True 允许在ansible-playbook输出结果中禁用“不建议使用”警告
vi /etc/ansible/ansible.cfg
解决办法:
#deprecation_warnings = True
deprecation_warnings = false
[DEPRECATION WARNING]: DEFAULT_SUDO_EXE option, In favor of Ansible Become, which is a generic framework. See become_exe. ,
use become instead. This feature will be removed in version 2.8. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: DEFAULT_MODULE_LANG option, Modules are coded to set their own locale if needed for screenscraping .
This feature will be removed in version 2.9. Deprecation warnings can be disabled by setting deprecation_warnings=False in
ansible.cfg.
#deprecation_warnings = True 允许在ansible-playbook输出结果中禁用“不建议使用”警告
vi /etc/ansible/ansible.cfg
解决办法:
#deprecation_warnings = True
deprecation_warnings = false
[实践OK]如何调试Systemctl查看开机启动列表systemctl list-unit-files | grep enable,以memcached为例。查看开机启动:ls /etc/systemd/system/multi-user.target.wants/
Unix/LinuxC技术 jackxiang 2018-7-21 14:31
CentOS7.X下如何查看并将一个应用设置为开机启动?systemctl start slapd 只是启动,并不是开机启动。
背景:有时候我们使用systemctl命令,如简单点的systemctl start memcached来讲,出现错时,会有一些提示,但是提示的内容是变量,其并没有将参数给编译后的值放入,于是出现如下所示,但是要失败了怎么排查这些参数呢?此文就讲这个问题,如果不是为了linux开机启动提速而并行启动外,这个systemctl其本质是想接管很多东西,但也带来了很多麻烦,难怪linus对此有一定的意见,系统要保持简单,好用。像开机慢可以少开机或不关机嘛,学学人家苹果升级在半夜,你慢就慢,谁管你,从策略上就规避了,把技术搞复杂还是简单是一门哲学,而创始人的价值就在于坚守设计艺术,而不光是技术。
● memcached.service - Memcached
Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Fri 2018-07-20 18:48:50 CST; 19h ago
Process: 15266 ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 15266 (code=exited, status=0/SUCCESS)
失败:
systemctl start memcached
Job for memcached.service failed because the control process exited with error code. See "systemctl status memcached.service" and "journalctl -xe" for details.
/etc/sysconfig/memcached
systemctl daemon-reload
systemctl start memcached
systemctl status memcached.service
Active: failed (Result: exit-code) since Sat 2018-07-21 14:35:22 CST; 5s ago
Process: 11417 ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS (code=exited, status=71)
Process: 11399 ExecStartPre=/bin/bash -l -c echo "/usr/local/memcached/bin/memcached" -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS > /tmp/systemctl.debug (code=exited, status=0/SUCCESS)
Main PID: 11417 (code=exited, status=71)
如果有错,需要挑食的参数查看 /tmp/systemctl.debug:
cat /tmp/systemctl.debug
/usr/local/memcached/bin/memcached -u root -p 11211 -m 64 -c 1024 -vv >> /data/logs/memcached/11211/memcached.log 2>&1
背景:有时候我们使用systemctl命令,如简单点的systemctl start memcached来讲,出现错时,会有一些提示,但是提示的内容是变量,其并没有将参数给编译后的值放入,于是出现如下所示,但是要失败了怎么排查这些参数呢?此文就讲这个问题,如果不是为了linux开机启动提速而并行启动外,这个systemctl其本质是想接管很多东西,但也带来了很多麻烦,难怪linus对此有一定的意见,系统要保持简单,好用。像开机慢可以少开机或不关机嘛,学学人家苹果升级在半夜,你慢就慢,谁管你,从策略上就规避了,把技术搞复杂还是简单是一门哲学,而创始人的价值就在于坚守设计艺术,而不光是技术。
● memcached.service - Memcached
Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Fri 2018-07-20 18:48:50 CST; 19h ago
Process: 15266 ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 15266 (code=exited, status=0/SUCCESS)
失败:
systemctl start memcached
Job for memcached.service failed because the control process exited with error code. See "systemctl status memcached.service" and "journalctl -xe" for details.
/etc/sysconfig/memcached
systemctl daemon-reload
systemctl start memcached
systemctl status memcached.service
Active: failed (Result: exit-code) since Sat 2018-07-21 14:35:22 CST; 5s ago
Process: 11417 ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS (code=exited, status=71)
Process: 11399 ExecStartPre=/bin/bash -l -c echo "/usr/local/memcached/bin/memcached" -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS > /tmp/systemctl.debug (code=exited, status=0/SUCCESS)
Main PID: 11417 (code=exited, status=71)
如果有错,需要挑食的参数查看 /tmp/systemctl.debug:
cat /tmp/systemctl.debug
/usr/local/memcached/bin/memcached -u root -p 11211 -m 64 -c 1024 -vv >> /data/logs/memcached/11211/memcached.log 2>&1
常常在发邮件时用到上下移动行调整服务器的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 作用:在当前行以上插入
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 作用:在当前行以上插入
[实践OK]PHP-FPM子进程数量应该如何设置?php-fpm.conf 配置说明。
Php/Js/Shell/Go jackxiang 2018-7-16 21:41
对于Docker又反转为静态方式进程数了,如下:
pm = dynamic 如何控制子进程,选项有static和dynamic
pm.max_children:静态方式下开启的php-fpm进程数量
自己实践如下:
/usr/local/php/sbin/php-fpm --daemonize --fpm-config /usr/local/php/etc/php-fpm.conf --pid /usr/local/php/var/run/php-fpm.pid
#docker 无service/systemctl,为2时两个进程,为1时一个进程,如下:
root 35308 1 0 16:12 ? 00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www 35309 35308 0 16:12 ? 00:00:00 php-fpm: pool www
www 35310 35308 0 16:12 ? 00:00:00 php-fpm: pool www
pkill -9 php 可杀死,然后可修改pm.max_children = 1 ==》pm.max_children = 2,也就是上面的2个进程 。
来自:http://www.cnblogs.com/ahaii/p/5776809.html
背影:对于低配置机器,建议写死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
pm = dynamic 如何控制子进程,选项有static和dynamic
pm.max_children:静态方式下开启的php-fpm进程数量
自己实践如下:
/usr/local/php/sbin/php-fpm --daemonize --fpm-config /usr/local/php/etc/php-fpm.conf --pid /usr/local/php/var/run/php-fpm.pid
#docker 无service/systemctl,为2时两个进程,为1时一个进程,如下:
root 35308 1 0 16:12 ? 00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www 35309 35308 0 16:12 ? 00:00:00 php-fpm: pool www
www 35310 35308 0 16:12 ? 00:00:00 php-fpm: pool www
pkill -9 php 可杀死,然后可修改pm.max_children = 1 ==》pm.max_children = 2,也就是上面的2个进程 。
来自:http://www.cnblogs.com/ahaii/p/5776809.html
背影:对于低配置机器,建议写死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
[实践OK]Linux下的netstat查看所有端口/TCP/UDP端口常用参数总结。
Unix/LinuxC技术 jackxiang 2018-7-15 09:28
netstat -lntp #常用命令参数及解释如下:主要是看IP和TCP,以及程序的PID。
-l, --listening display listening server sockets
-n, --numeric don't resolve names
-t, tcp
-p, --program
Show the PID and name of the program to which each socket belongs.
一)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
-l, --listening display listening server sockets
-n, --numeric don't resolve names
-t, tcp
-p, --program
Show the PID and name of the program to which each socket belongs.
一)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 设置在同一窗口下打开会话
Unix/LinuxC技术 jackxiang 2018-7-7 15:54
SecureCrt某个设置不合朕的心意,在打开一个新的连接时不是在同一个窗口下,它又新开了一个工作窗口,像下面这样,操作起来让人很不爽:
一个SSH打一一个SecureCRT,
解决方案:点击 File -> Connect In Tab/Tile 连接新的会话
来自:https://blog.csdn.net/u012135425/article/details/79487575
一个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
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