SecureCRT 软件中的字体大部分都不好看,好看的新宋体等等中文字体有时又会出现乱码!
所以决定让 SecureCRT 使用 NetTerm 的字体,还是 NetTerm 的默认字体舒服,呵呵!
步骤:
1、启动NetTerm,选择菜单 Options->Setup->Font
发现 NetTerm 使用的默认字体是 isi_oem
2、不要关闭 NetTerm,再启动 SecureCRT, 选择菜单 Options->Session Options->Terminal->Appearance
选择 Font... 按钮,弹出字体选择菜单,看看里面是不是有isi_oem字体了,呵呵,选择它吧!
3、看看 SecureCRT 的字体效果是不是和 NetTerm 的默认字体效果一样了,呵呵,偷着乐吧!
注:
NetTerm 必须先启动,而且不能退出,相当于 NetTerm 给 SecureCRT 做代理了,呵呵!
太麻烦了,将NetTerm安装目录下的 ISIFONT1.DLL 拷贝到 c:\windows\fonts 即可,不用NetTerm代理
Ntoem.TTF Ntansi.TTF
是把这俩文件放到fonts下,但是这个字体好难看啊
我用的是自己用Adobe中提取的Courier std ,调到11号,人见人爱
来自:http://bbs.csdn.net/topics/320216347
所以决定让 SecureCRT 使用 NetTerm 的字体,还是 NetTerm 的默认字体舒服,呵呵!
步骤:
1、启动NetTerm,选择菜单 Options->Setup->Font
发现 NetTerm 使用的默认字体是 isi_oem
2、不要关闭 NetTerm,再启动 SecureCRT, 选择菜单 Options->Session Options->Terminal->Appearance
选择 Font... 按钮,弹出字体选择菜单,看看里面是不是有isi_oem字体了,呵呵,选择它吧!
3、看看 SecureCRT 的字体效果是不是和 NetTerm 的默认字体效果一样了,呵呵,偷着乐吧!
注:
NetTerm 必须先启动,而且不能退出,相当于 NetTerm 给 SecureCRT 做代理了,呵呵!
太麻烦了,将NetTerm安装目录下的 ISIFONT1.DLL 拷贝到 c:\windows\fonts 即可,不用NetTerm代理
Ntoem.TTF Ntansi.TTF
是把这俩文件放到fonts下,但是这个字体好难看啊
我用的是自己用Adobe中提取的Courier std ,调到11号,人见人爱
来自:http://bbs.csdn.net/topics/320216347
1.在http://www.percona.com/downloads/XtraBackup/LATEST/ 下载对应平台的XtraBackup,这里使用的是 http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-2.0.0/binary/Linux/x86_64/percona-xtrabackup-2.0.0.tar.gz
2.解压tar -zvxf percona-xtrabackup-2.0.0.tar.gz -C /usr/local/
3.因为MySQL我安装的是Percona-Server-5.5.21,而且安装目录为:/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/,注:同样可以用于其他MySQL版本
Shell代码 收藏代码
cd /usr/local/percona-xtrabackup-2.0.0/bin
cp * /usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/bin/
因为系统Path里面已经加入
Shell代码 收藏代码
export PATH=$JAVA_HOME/bin:/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/bin:$PATH
4.我的mysql的配置文件是/etc/my.cnf,如果不指定,XtraBackup默认使用此文件识别mysql安装目录,数据文件目录等信息
5.全量备份:innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/,我使用/data/backup/mysql/作为mysql备份文件存放目录
Shell代码 收藏代码
innobackupex --user=YOUS --password=YOUS /data/backup/mysql
看到类似输出说明备份成功,如出错,根据提示解决
Shell代码 收藏代码
innobackupex: Backup created in directory '/data/backup/mysql/2012-05-28_19-01-32'
innobackupex: MySQL binlog position: filename 'mysql-bin.000063', position 44718229367
120528 19:07:53 innobackupex: completed OK!
可以在/data/backup/mysql/2012-05-28_19-01-32看到备份的文件
此时,cat xtrabackup_checkpoints会看到
Shell代码 收藏代码
backup_type = full-backuped
from_lsn = 0
to_lsn = 44718229367
last_lsn = 44718229367
6.全量Preparing:innobackupex --apply-log /path/to/BACKUP-DIR
Shell代码 收藏代码
innobackupex --user=YOUS --password=YOUS --apply-log /data/backup/mysql/2012-05-28_19-01-32/
可以看到如下生成文件:
Shell代码 收藏代码
-rw-r--r--. 1 root root 13 May 28 19:07 xtrabackup_binary
-rw-r--r--. 1 root root 26 May 29 15:07 xtrabackup_binlog_info
-rw-r--r--. 1 root root 43 May 29 15:07 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 root root 85 May 29 15:07 xtrabackup_checkpoints
-rw-r-----. 1 root root 2097152 May 29 14:03 xtrabackup_logfile
cat xtrabackup_checkpoints,可以看出是全量备份并且做了prepare的
Shell代码 收藏代码
backup_type = full-prepared
from_lsn = 0
to_lsn = 49556823920
last_lsn = 49556823920
7.增量备份的前提是必须已经做过全量备份。
增量备份:innobackupex --incremental /path/to/BACKUP-DIR/--incremental-basedir=BASEDIR,当有了INCREMENTAL-DIR-1之后,下一次增量备份的需要基于INCREMENTAL-DIR-1,变成innobackupex --incremental /path/to/BACKUP-DIR/ --incremental-basedir=INCREMENTAL-DIR-1
全量备份的目录是:/data/backup/mysql/2012-05-28_19-01-32
Shell代码 收藏代码
innobackupex --incremental /data/backup/mysql --incremental-basedir=/data/backup/mysql/2012-05-28_19-01-32/ --user=YOUS --password=YOUS
增量备份成功会生成目录/data/backup/mysql/2012-05-29_14-25-03
cat xtrabackup_checkpoints
Shell代码 收藏代码
backup_type = incremental
from_lsn = 44718229367
to_lsn = 49556823920
last_lsn = 49556823920
8.增量Preparing,对每一个增量备份目录:
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
Shell代码 收藏代码
innobackupex --apply-log --redo-only /data/backup/mysql/2012-05-28_19-01-32/ --incremental-dir=/data/backup/mysql/2012-05-29_14-25-03 --user=YOUS--password=YOUS
看到如下输出:
Shell代码 收藏代码
120529 14:29:43 InnoDB: Shutdown completed; log sequence number 49556823920
120529 14:29:43 innobackupex: completed OK!
cd BASE-DIR,cat xtrabackup_checkpoints
Shell代码 收藏代码
backup_type = full-prepared
from_lsn = 0
to_lsn = 49556823920
last_lsn = 49556823920
当把所有的增量备份都执行Preparing后,还可以全量备份和全部的增量备份做一次Preparing,
innobackupex --apply-log BASE-DIR
9.恢复数据:innobackupex --copy-back BASE-DIR
参考:http://www.percona.com/doc/percona-xtrabackup/innobackupex/innobackupex_script.html
来自:http://willvvv.iteye.com/blog/1544043
2.解压tar -zvxf percona-xtrabackup-2.0.0.tar.gz -C /usr/local/
3.因为MySQL我安装的是Percona-Server-5.5.21,而且安装目录为:/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/,注:同样可以用于其他MySQL版本
Shell代码 收藏代码
cd /usr/local/percona-xtrabackup-2.0.0/bin
cp * /usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/bin/
因为系统Path里面已经加入
Shell代码 收藏代码
export PATH=$JAVA_HOME/bin:/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/bin:$PATH
4.我的mysql的配置文件是/etc/my.cnf,如果不指定,XtraBackup默认使用此文件识别mysql安装目录,数据文件目录等信息
5.全量备份:innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/,我使用/data/backup/mysql/作为mysql备份文件存放目录
Shell代码 收藏代码
innobackupex --user=YOUS --password=YOUS /data/backup/mysql
看到类似输出说明备份成功,如出错,根据提示解决
Shell代码 收藏代码
innobackupex: Backup created in directory '/data/backup/mysql/2012-05-28_19-01-32'
innobackupex: MySQL binlog position: filename 'mysql-bin.000063', position 44718229367
120528 19:07:53 innobackupex: completed OK!
可以在/data/backup/mysql/2012-05-28_19-01-32看到备份的文件
此时,cat xtrabackup_checkpoints会看到
Shell代码 收藏代码
backup_type = full-backuped
from_lsn = 0
to_lsn = 44718229367
last_lsn = 44718229367
6.全量Preparing:innobackupex --apply-log /path/to/BACKUP-DIR
Shell代码 收藏代码
innobackupex --user=YOUS --password=YOUS --apply-log /data/backup/mysql/2012-05-28_19-01-32/
可以看到如下生成文件:
Shell代码 收藏代码
-rw-r--r--. 1 root root 13 May 28 19:07 xtrabackup_binary
-rw-r--r--. 1 root root 26 May 29 15:07 xtrabackup_binlog_info
-rw-r--r--. 1 root root 43 May 29 15:07 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 root root 85 May 29 15:07 xtrabackup_checkpoints
-rw-r-----. 1 root root 2097152 May 29 14:03 xtrabackup_logfile
cat xtrabackup_checkpoints,可以看出是全量备份并且做了prepare的
Shell代码 收藏代码
backup_type = full-prepared
from_lsn = 0
to_lsn = 49556823920
last_lsn = 49556823920
7.增量备份的前提是必须已经做过全量备份。
增量备份:innobackupex --incremental /path/to/BACKUP-DIR/--incremental-basedir=BASEDIR,当有了INCREMENTAL-DIR-1之后,下一次增量备份的需要基于INCREMENTAL-DIR-1,变成innobackupex --incremental /path/to/BACKUP-DIR/ --incremental-basedir=INCREMENTAL-DIR-1
全量备份的目录是:/data/backup/mysql/2012-05-28_19-01-32
Shell代码 收藏代码
innobackupex --incremental /data/backup/mysql --incremental-basedir=/data/backup/mysql/2012-05-28_19-01-32/ --user=YOUS --password=YOUS
增量备份成功会生成目录/data/backup/mysql/2012-05-29_14-25-03
cat xtrabackup_checkpoints
Shell代码 收藏代码
backup_type = incremental
from_lsn = 44718229367
to_lsn = 49556823920
last_lsn = 49556823920
8.增量Preparing,对每一个增量备份目录:
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
Shell代码 收藏代码
innobackupex --apply-log --redo-only /data/backup/mysql/2012-05-28_19-01-32/ --incremental-dir=/data/backup/mysql/2012-05-29_14-25-03 --user=YOUS--password=YOUS
看到如下输出:
Shell代码 收藏代码
120529 14:29:43 InnoDB: Shutdown completed; log sequence number 49556823920
120529 14:29:43 innobackupex: completed OK!
cd BASE-DIR,cat xtrabackup_checkpoints
Shell代码 收藏代码
backup_type = full-prepared
from_lsn = 0
to_lsn = 49556823920
last_lsn = 49556823920
当把所有的增量备份都执行Preparing后,还可以全量备份和全部的增量备份做一次Preparing,
innobackupex --apply-log BASE-DIR
9.恢复数据:innobackupex --copy-back BASE-DIR
参考:http://www.percona.com/doc/percona-xtrabackup/innobackupex/innobackupex_script.html
来自:http://willvvv.iteye.com/blog/1544043
ZeroClipboard,大意是使用flash作为媒介,将内容复制到剪贴板。这比用纯javascript好,因为不同浏览器会出于安全的原因,有不同反应,例如IE会给出提示,有的浏览器不支持复制到剪贴板。
但是用flash就可以复制。例子就是VeryCd,看“复制选中的连接”按钮是一个flash。看来flash的安全沙箱没有限制将内容复制到剪贴板
但是也是有限制的:
Zero Clipboard 开源的 JavaScript+flash 复制库类 :
开发中经常会用到复制的功能,在 IE 下实现比较简单。但要想做到跨浏览器比较困难了。本文将介绍一个跨浏览器的库类 Zero Clipboard 。它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的 document.execCommand("Copy") 更加灵活。
Zero Clipboard 的实现原理
Zero Clipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash。但最新的 Flash Player 10 只允许在 Flash 上进行操作才能启动剪贴板。所以 Zero Clipboard 对此进行了改进,用了一个透明的 Flash ,让其漂浮在按钮之上,这样其实点击的不是按钮而是 Flash ,也就可以使用 Flash 的复制功能了。
如何使用 Zero Clipboard
首先下载 Zero Clipboard ,并解压缩。其中需要两个文件:ZeroClipboard.js 和 ZeroClipboard.swf ,将这两个文件放入到你的项目中。
注意:测试过程总,本地运行时不可以的,在web环境中测试即可,例如 http://127.0.0.1/cp/test.html
但是用flash就可以复制。例子就是VeryCd,看“复制选中的连接”按钮是一个flash。看来flash的安全沙箱没有限制将内容复制到剪贴板
但是也是有限制的:
Zero Clipboard 开源的 JavaScript+flash 复制库类 :
开发中经常会用到复制的功能,在 IE 下实现比较简单。但要想做到跨浏览器比较困难了。本文将介绍一个跨浏览器的库类 Zero Clipboard 。它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的 document.execCommand("Copy") 更加灵活。
Zero Clipboard 的实现原理
Zero Clipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash。但最新的 Flash Player 10 只允许在 Flash 上进行操作才能启动剪贴板。所以 Zero Clipboard 对此进行了改进,用了一个透明的 Flash ,让其漂浮在按钮之上,这样其实点击的不是按钮而是 Flash ,也就可以使用 Flash 的复制功能了。
如何使用 Zero Clipboard
首先下载 Zero Clipboard ,并解压缩。其中需要两个文件:ZeroClipboard.js 和 ZeroClipboard.swf ,将这两个文件放入到你的项目中。
注意:测试过程总,本地运行时不可以的,在web环境中测试即可,例如 http://127.0.0.1/cp/test.html
Mod:模运算,即取余:程序员里就是Mod:
8mod1=0
5mod2=1
在科学型计算器中以"%"符号表示,例如把这串字符串拷贝 后粘贴到科学型计算器:5%6=,就能获得结果 5.
8mod1=0
5mod2=1
在科学型计算器中以"%"符号表示,例如把这串字符串拷贝 后粘贴到科学型计算器:5%6=,就能获得结果 5.
背景:如果你想在树莓派开机时做一些外围设备的自检,如串口是否连接上,如手机是否连接上adb命令,这样就需要开机后启动一个脚本来做这个事情,于是有这篇文章。
实践如下:
vi /etc/rc.local
/usr/bin/php /var/www/initOuterInterfaceCheck.php
initOuterInterfaceCheck.php
发现是代码有问题,开机后,的确是执行了,但是发现手机没插入,但报检测到手机了~
要让Pi开机启动一个脚本/执行一个命令怎么办?
我们知道,RedHat有 /etc/rc.local 文件,在里面写上要执行的命令就可以开机执行了,这是最简单的办法,而Arch Linux ARM没有这个东西,它是按下面的方法设置的:
假设我要开机执行一句shell命令,把它写在文件 /etc/rc.local 中(在Arch Linux中,此文件一开始是不存在的):
How to execute a shell script/a command on Pi startup?
For RedHat it's very easy, it has a /etc/rc.local file, we just add the commands to the file, while Arch Linux ARM doesn't have such thing, and I'm a beginner of Arch, so after asking Google for many times, I find a way to do that - suppose I need to execute a shell command, so I create the /etc/rc.local file & write the shell command to it:
#!/bin/bash
# this file defines the commands that will be executed at system startup
echo "abc" > /root/test.txt
为此文件赋予可执行权限:
Give the file the executable permission:
1
chmod +x /etc/rc.local
然后创建一个文件 /usr/lib/systemd/system/rc-local.service ,内容为:
Then create a file /usr/lib/systemd/system/rc-local.service , with the content of:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
文章来源:http://www.codelast.com/
创建一个软链接:
Create a symbol link:
cd /etc/systemd/system/multi-user.target.wants
ln -s /usr/lib/systemd/system/rc-local.service rc-local.service
启用服务:
Enable the service:
systemctl enable rc-local.service
重启系统,然后就可以开机执行你的shell命令了。如果要立即启用,则执行以下命令:
Restart Pi, then you'll be able to execute the shell command on OS startup. If you want to execute it without restarting Pi, just execute the following command:
systemctl start rc-local.service
这是使用systemd的启动方式,非常麻烦。
如果你只是简单地要设置一个命令的别名,可以把命令写在 /etc/profile 中,ssh登录Pi的时候就自动会执行。
摘自:http://www.codelast.com/?p=4945
实践如下:
vi /etc/rc.local
/usr/bin/php /var/www/initOuterInterfaceCheck.php
initOuterInterfaceCheck.php
发现是代码有问题,开机后,的确是执行了,但是发现手机没插入,但报检测到手机了~
要让Pi开机启动一个脚本/执行一个命令怎么办?
我们知道,RedHat有 /etc/rc.local 文件,在里面写上要执行的命令就可以开机执行了,这是最简单的办法,而Arch Linux ARM没有这个东西,它是按下面的方法设置的:
假设我要开机执行一句shell命令,把它写在文件 /etc/rc.local 中(在Arch Linux中,此文件一开始是不存在的):
How to execute a shell script/a command on Pi startup?
For RedHat it's very easy, it has a /etc/rc.local file, we just add the commands to the file, while Arch Linux ARM doesn't have such thing, and I'm a beginner of Arch, so after asking Google for many times, I find a way to do that - suppose I need to execute a shell command, so I create the /etc/rc.local file & write the shell command to it:
#!/bin/bash
# this file defines the commands that will be executed at system startup
echo "abc" > /root/test.txt
为此文件赋予可执行权限:
Give the file the executable permission:
1
chmod +x /etc/rc.local
然后创建一个文件 /usr/lib/systemd/system/rc-local.service ,内容为:
Then create a file /usr/lib/systemd/system/rc-local.service , with the content of:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
文章来源:http://www.codelast.com/
创建一个软链接:
Create a symbol link:
cd /etc/systemd/system/multi-user.target.wants
ln -s /usr/lib/systemd/system/rc-local.service rc-local.service
启用服务:
Enable the service:
systemctl enable rc-local.service
重启系统,然后就可以开机执行你的shell命令了。如果要立即启用,则执行以下命令:
Restart Pi, then you'll be able to execute the shell command on OS startup. If you want to execute it without restarting Pi, just execute the following command:
systemctl start rc-local.service
这是使用systemd的启动方式,非常麻烦。
如果你只是简单地要设置一个命令的别名,可以把命令写在 /etc/profile 中,ssh登录Pi的时候就自动会执行。
摘自:http://www.codelast.com/?p=4945
我个人的经验是:C/C++/Pyhton开发中,无条件使用空格,绝对不要使用Tab!我在Linux系统下,用Vim编辑在Windows系统下写的老代码时,由于不同的vim配置对Tab的解释不同,这会导致代码排版混乱。但对空格键的设置,Linux/Windows都是一样的。
所以,为了代码版式的美观,请无条件使用空格键!
来自:http://www.zhihu.com/question/19960028
所以,为了代码版式的美观,请无条件使用空格键!
来自:http://www.zhihu.com/question/19960028
[实践OK]vi 删除行尾空格 ,vary.vim-自动去掉行尾空格,Editplus删除行尾空格,RegexBuddy调试之多行尾测试之Whole file改为Line by line,sublime去行尾空格。
Unix/LinuxC技术 jackxiang 2015-6-25 14:41
背景:vim打开代码时候发现空格显示后发现行尾有一堆空格...得删除,在vim配置下可以高亮这些空格,看到后方便删除掉。
让vim显示行尾的空格的配置办法,在/etc/vimrc文件添加如下两行 :
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
match WhitespaceEOL /\t\+/ #匹配tab实践从Windows上传Tab字符上去是OK的。
摘自:http://www.codeweblog.com/%E8%AE%A9vim%E6%98%BE%E7%A4%BA%E7%A9%BA%E6%A0%BC-%E5%8F%8Atab%E5%AD%97%E7%AC%A6-vim-%E5%A4%9A%E8%A1%8C%E6%B3%A8%E9%87%8A/
方法一:vi 删除行尾空格以替换解决掉删除行尾空格,实践OK如下:
行末:$
行首:^
空格:\s
行末空格:\s\+$
行首空格:^\+\s
删除行尾空格:
:%s/\s\+$//
:%s/\s\+$//g #也成,别少个$就成,否则所有空格全给去了。
http://blog.itpub.net/22661144/viewspace-1433706/
方法二:用插件实现,实践OK,共两步
(1)安装插件到指定目录:
cd /tmp
git clone https://github.com/dongweiming/vary.vim
mkdir -p /root/.vim/plugin
cd /root/.vim/plugin
mv /tmp/vary.vim/plugin/vary.vim /root/.vim/plugin/
ls /root/.vim/plugin/vary.vim
备注:特别注意,直接wget是不行的,wget https://github.com/dongweiming/vary.vim/blob/master/plugin/vary.vim,这个是网页,不全是源码,要么点上面的RAW,否则得git clone,里面的doc里的内容没有啥实际的功能性用处,不放也行,并不影响使用。
(2)让插件在vim 里配置并生效:
vim /root/.vimrc
实践发现Txt文件不行,不能替换,PHP可以,再就是在/root/.vimrc里包含就直接包含:
if filereadable(expand("~/.vimrc.bundles"))
source ~/.vimrc.bundles
endif
#cat /root/.vimrc.bundles
直接修改插件:
vi /root/.vim/bundle/vary.vim/plugin/vary.vim
VIM调试/root/.vimrc的脚本方法:
vim -D /tmp/jackX.txt
最后两行介绍,在/root/.vimrc下面加两行实现后,实践发现,打开时就自动去行尾空格,在写入前有行尾空格也给自动去了写入:
autocmd BufReadPost * :call StripTrailingWhite()
autocmd BufReadPost * :call RetabIndents()
表示打开文件之前就修改,把修改后的结果呈现给你
成功实践来自网址:http://www.tuicool.com/articles/aQfqUv
三、实践OK之Editplus删除行尾空格:
Editplus的替换查找: \s+$
[V]正则表达式
全部替换
四、RegexBuddy调试之多行尾测试之Whole file改为Line by line:
Match:
\s+$
Test:
psql \
--host=127.0.0.1 \
--port=5432 \
--username kong \
--password \
--dbname=kongdb
发现只被替换了kongdb后面的空格,怎么办?
在Test下面一行有一个:Whole file改为Line by line即可按多行,也就能看到上面这个六行的行尾给变黄了,也就是被标记成行尾空格了。
四、sublime去行尾空格:
\s+$
(1)具体步骤:
CTRL+H打开replace功能,勾选上左侧的regular expression,并填写
find what栏 : \s+$
replace with栏 : (这行留空)
接着点replace all即可
(2)配置法去行尾空格:
点击菜单栏上的“Preferences”,找到“Setting-Default”,搜索“trim_trailing_white_space_on_save:"trim_trailing_white_space_on_save": true,
让vim显示行尾的空格的配置办法,在/etc/vimrc文件添加如下两行 :
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
match WhitespaceEOL /\t\+/ #匹配tab实践从Windows上传Tab字符上去是OK的。
摘自:http://www.codeweblog.com/%E8%AE%A9vim%E6%98%BE%E7%A4%BA%E7%A9%BA%E6%A0%BC-%E5%8F%8Atab%E5%AD%97%E7%AC%A6-vim-%E5%A4%9A%E8%A1%8C%E6%B3%A8%E9%87%8A/
方法一:vi 删除行尾空格以替换解决掉删除行尾空格,实践OK如下:
行末:$
行首:^
空格:\s
行末空格:\s\+$
行首空格:^\+\s
删除行尾空格:
:%s/\s\+$//
:%s/\s\+$//g #也成,别少个$就成,否则所有空格全给去了。
http://blog.itpub.net/22661144/viewspace-1433706/
方法二:用插件实现,实践OK,共两步
(1)安装插件到指定目录:
cd /tmp
git clone https://github.com/dongweiming/vary.vim
mkdir -p /root/.vim/plugin
cd /root/.vim/plugin
mv /tmp/vary.vim/plugin/vary.vim /root/.vim/plugin/
ls /root/.vim/plugin/vary.vim
备注:特别注意,直接wget是不行的,wget https://github.com/dongweiming/vary.vim/blob/master/plugin/vary.vim,这个是网页,不全是源码,要么点上面的RAW,否则得git clone,里面的doc里的内容没有啥实际的功能性用处,不放也行,并不影响使用。
(2)让插件在vim 里配置并生效:
vim /root/.vimrc
实践发现Txt文件不行,不能替换,PHP可以,再就是在/root/.vimrc里包含就直接包含:
if filereadable(expand("~/.vimrc.bundles"))
source ~/.vimrc.bundles
endif
#cat /root/.vimrc.bundles
直接修改插件:
vi /root/.vim/bundle/vary.vim/plugin/vary.vim
VIM调试/root/.vimrc的脚本方法:
vim -D /tmp/jackX.txt
最后两行介绍,在/root/.vimrc下面加两行实现后,实践发现,打开时就自动去行尾空格,在写入前有行尾空格也给自动去了写入:
autocmd BufReadPost * :call StripTrailingWhite()
autocmd BufReadPost * :call RetabIndents()
表示打开文件之前就修改,把修改后的结果呈现给你
成功实践来自网址:http://www.tuicool.com/articles/aQfqUv
三、实践OK之Editplus删除行尾空格:
Editplus的替换查找: \s+$
[V]正则表达式
全部替换
四、RegexBuddy调试之多行尾测试之Whole file改为Line by line:
Match:
\s+$
Test:
psql \
--host=127.0.0.1 \
--port=5432 \
--username kong \
--password \
--dbname=kongdb
发现只被替换了kongdb后面的空格,怎么办?
在Test下面一行有一个:Whole file改为Line by line即可按多行,也就能看到上面这个六行的行尾给变黄了,也就是被标记成行尾空格了。
四、sublime去行尾空格:
\s+$
(1)具体步骤:
CTRL+H打开replace功能,勾选上左侧的regular expression,并填写
find what栏 : \s+$
replace with栏 : (这行留空)
接着点replace all即可
(2)配置法去行尾空格:
点击菜单栏上的“Preferences”,找到“Setting-Default”,搜索“trim_trailing_white_space_on_save:"trim_trailing_white_space_on_save": true,
php5.4 Illegal string offset
Php/Js/Shell/Go jackxiang 2015-6-24 17:38
http://www.laruence.com/2011/12/19/2409.html
每次编辑和新增内容时均会产生"Illegal string offset 'enablehits' | phpcms\modules\poster\index.php | 104"的错误,网上查询是不兼容php5.4版本导致,希望官方尽快修复兼容php5.4版本
http://bbs.phpcms.cn/thread-886897-1-1.html
每次编辑和新增内容时均会产生"Illegal string offset 'enablehits' | phpcms\modules\poster\index.php | 104"的错误,网上查询是不兼容php5.4版本导致,希望官方尽快修复兼容php5.4版本
http://bbs.phpcms.cn/thread-886897-1-1.html
问题背景:有多个虚拟机的时候,发现在httpd.conf里注释了该文件:D:\wamp\bin\apache\apache2.2.22\conf\extra\httpd-vhosts.conf ,出现一堆的[warn] _default_ VirtualHost overlap on port 80, the first has precedence ,于是,对于apache启动时的警告,把http.conf里的:去掉#NameVirtualHost *:80前面的#号,然后重启apache即可。把那个包含的没有用的文件干掉即可。(其实际就是:httpd-vhosts.conf 里因为有这样一行 NameVirtualHost *:80,而httpd.conf里没有或给注释了导致的,而后面的虚拟机默认沿用这个....。)
在apache2的httpd.conf里新增加了1个VirtualHost,域名是www.ligh.com,此时,服务器总共2个VirtualHost ,apachectl restart的时候却出现了下面的警告提示:
[warn] _default_ VirtualHost overlap on port 80, the first has precedence
大概意思就是说后面新增加的这个VirtualHost 由于端口被占用,不能生效,沿用第一个虚拟主机的配置。
检查了一下,发现原来在httpd.conf里,我没有把#NameVirtualHost *:80前的注释去掉,导致这个没有生效。
解决方案:
去掉#NameVirtualHost *:80前面的#号,然后重启apache即可。
来自:http://blog.163.com/lgh_2002/blog/static/44017526201141711451919/
在apache2的httpd.conf里新增加了1个VirtualHost,域名是www.ligh.com,此时,服务器总共2个VirtualHost ,apachectl restart的时候却出现了下面的警告提示:
[warn] _default_ VirtualHost overlap on port 80, the first has precedence
大概意思就是说后面新增加的这个VirtualHost 由于端口被占用,不能生效,沿用第一个虚拟主机的配置。
检查了一下,发现原来在httpd.conf里,我没有把#NameVirtualHost *:80前的注释去掉,导致这个没有生效。
解决方案:
去掉#NameVirtualHost *:80前面的#号,然后重启apache即可。
来自:http://blog.163.com/lgh_2002/blog/static/44017526201141711451919/
表现两个现象:
现象一)services.msc里,wampapache服务,wamp界面是在这儿读取这个配置的,D:\wamp\bin\apache\apache2.2.22\wampserver.conf:
"d:\wamp\bin\apache\apache2.2.22\bin\httpd.exe" -k runservice
“Windows不能在本地计算机启动Apache2.有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1. ”
原因:有服务占用了80端口,解决办法有详细描述该问题及如何找到占用80端口的程序。
现象二)我安装好Wamp5,点桌面右下角图标的localhost后启动时出了这个错误:
Could not execute menu item (internal error) [Exception] Could not execute run action:系统找不到指定的文件。
原因:关联浏览器找不到而已,可以在wamp目录config里配置你的浏览器地址,D:\wamp\wampmanager.ini :
步骤一)在你所安装的wamp目录下有这个wampmanager.conf文件修改其中的navigator = "E:\Program Files\Mozilla Firefox\firefox.exe" 这是我所设置的火狐浏览器你可以更改你所需要的浏览器。如果没有就增加这句。
接着步骤二)再在wampmanager.ini文件下修改[Menu.Left]
Type: separator; Caption: "WAMP5"
Type: item; Caption: "Localhost"; Action: run; FileName: "E:\Program Files\Mozilla Firefox\firefox.exe"; Parameters: "http://localhost/"; Glyph: 5
Type: item; Caption: "phpMyAdmin"; Action: run; FileName: "E:\Program Files\Mozilla Firefox\firefox.exe"; Parameters: "http://localhost/phpmyadmin/"; Glyph: 5
Type: item; Caption: "SQLiteManager"; Action: run; FileName: "E:\Program Files\Mozilla Firefox\firefox.exe"; Parameters: "http://localhost/sqlitemanager/"; Glyph: 5
Type: item; Caption: "www 目录"; Action: shellexecute; FileName: "e:/wamp/www"; Glyph: 2
可以看到FileName:也是我要设置的浏览器安装目录 重启wamp试试 就OK了 ^ ^ 自己试过的哈
————————————————————————————————————————————————————————
解决方法如下:
问题的原因是你的80端口被占用了,可能是iis或者迅雷等占用的,如果是这样的话你可以关闭iis的80端口或者关闭你的迅雷,
或者最简单的方法是修改你的wamp5的apache默认的80端口,你可以这样“在wamp5的安装目录下找到 conf\httpd.conf,搜索找到“Listen 80” 将80改成8080(或者其他端口都可以),这样服务就正常启动了 ”
访问的时候 http://localhost:8080/ 即可。
我是Nginx给占用了:
Nginx和PHPfpm服务正在启动...
PHPfpm服务启动成功!
Nginx服务启动成功!
请按任意键继续...
来自:http://blog.sina.com.cn/s/blog_7044b2550100w8ch.html
总之是80端口给占用了,Windows下如何查看80端口被占用:netstat -ano|findstr 80
一)通过端口反查到其进程的PID号:
D:\wamp\logs>netstat -ano|findstr 0.0.0.0:80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2008
二)根据一里的PID找到进程:(Windows任务管理器-->选择列-->PID勾选,可能还找不到服务启动的进程,必须要勾选下面的[勾]显示所有用户的进程。):
在众多进程里按PID列排序,找到PID,也就是这个服务进程占用了80端口。
——————————————————————————————————————
windows Linux下怎么看程序的端口,http://jackxiang.com/post/3503/ 。
现象一)services.msc里,wampapache服务,wamp界面是在这儿读取这个配置的,D:\wamp\bin\apache\apache2.2.22\wampserver.conf:
"d:\wamp\bin\apache\apache2.2.22\bin\httpd.exe" -k runservice
“Windows不能在本地计算机启动Apache2.有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1. ”
原因:有服务占用了80端口,解决办法有详细描述该问题及如何找到占用80端口的程序。
现象二)我安装好Wamp5,点桌面右下角图标的localhost后启动时出了这个错误:
Could not execute menu item (internal error) [Exception] Could not execute run action:系统找不到指定的文件。
原因:关联浏览器找不到而已,可以在wamp目录config里配置你的浏览器地址,D:\wamp\wampmanager.ini :
步骤一)在你所安装的wamp目录下有这个wampmanager.conf文件修改其中的navigator = "E:\Program Files\Mozilla Firefox\firefox.exe" 这是我所设置的火狐浏览器你可以更改你所需要的浏览器。如果没有就增加这句。
接着步骤二)再在wampmanager.ini文件下修改[Menu.Left]
Type: separator; Caption: "WAMP5"
Type: item; Caption: "Localhost"; Action: run; FileName: "E:\Program Files\Mozilla Firefox\firefox.exe"; Parameters: "http://localhost/"; Glyph: 5
Type: item; Caption: "phpMyAdmin"; Action: run; FileName: "E:\Program Files\Mozilla Firefox\firefox.exe"; Parameters: "http://localhost/phpmyadmin/"; Glyph: 5
Type: item; Caption: "SQLiteManager"; Action: run; FileName: "E:\Program Files\Mozilla Firefox\firefox.exe"; Parameters: "http://localhost/sqlitemanager/"; Glyph: 5
Type: item; Caption: "www 目录"; Action: shellexecute; FileName: "e:/wamp/www"; Glyph: 2
可以看到FileName:也是我要设置的浏览器安装目录 重启wamp试试 就OK了 ^ ^ 自己试过的哈
————————————————————————————————————————————————————————
解决方法如下:
问题的原因是你的80端口被占用了,可能是iis或者迅雷等占用的,如果是这样的话你可以关闭iis的80端口或者关闭你的迅雷,
或者最简单的方法是修改你的wamp5的apache默认的80端口,你可以这样“在wamp5的安装目录下找到 conf\httpd.conf,搜索找到“Listen 80” 将80改成8080(或者其他端口都可以),这样服务就正常启动了 ”
访问的时候 http://localhost:8080/ 即可。
我是Nginx给占用了:
Nginx和PHPfpm服务正在启动...
PHPfpm服务启动成功!
Nginx服务启动成功!
请按任意键继续...
来自:http://blog.sina.com.cn/s/blog_7044b2550100w8ch.html
总之是80端口给占用了,Windows下如何查看80端口被占用:netstat -ano|findstr 80
一)通过端口反查到其进程的PID号:
D:\wamp\logs>netstat -ano|findstr 0.0.0.0:80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2008
二)根据一里的PID找到进程:(Windows任务管理器-->选择列-->PID勾选,可能还找不到服务启动的进程,必须要勾选下面的[勾]显示所有用户的进程。):
在众多进程里按PID列排序,找到PID,也就是这个服务进程占用了80端口。
——————————————————————————————————————
windows Linux下怎么看程序的端口,http://jackxiang.com/post/3503/ 。
背景:正常的授权流程,用户点击授权后便不再可控,剩下的工作由第三方应用和授权服务器(资源提供方)进行交互来完成。而攻击者可以阻止授权流程的正常进行,将中间的关键URL截取下来,诱骗用户访问,成功后可以将受害人的账户绑定到攻击者的微博账户上。此后,攻击者可以使用微博的账户自由登入受害人的主站账户及浏览器账户,任意查看和修改用户的隐私数据。
阅读全文
阅读全文
在WAMPServer下同时支持PHP5.3、PHP5.4、PHP5.5、PHP5.6的步骤
Php/Js/Shell/Go jackxiang 2015-6-24 10:30
在WAMPServer下同时支持PHP5.3、PHP5.4、PHP5.5、PHP5.6的步骤:
http://www.cnblogs.com/lyongde/p/3745030.html
http://www.cnblogs.com/lyongde/p/3745030.html
http://news.zol.com.cn/article/438638.html
阅读全文
阅读全文
利用wireshark观察tcp传输乱序与sack可选项
Unix/LinuxC技术 jackxiang 2015-6-22 21:01
http://blog.chinaunix.net/uid-24830931-id-3376798.html
[实践OK] fopen , fread fwrite 函数读写二进制文件 问题总结
Unix/LinuxC技术 jackxiang 2015-6-22 17:36
被复制的文件情况:
[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
文件:"seven.mp4"
大小:8573191 块:16752 IO 块:4096 普通文件
设备:ca01h/51713d Inode:7878 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800
根据上面的大小8573191 编写代码,writeTest.c:
编译此文件:
[root@iZ25dcp92ckZ multepoolserver]# gcc writeTest.c -g -o writeTest
[root@iZ25dcp92ckZ multepoolserver]# ./writeTest
对写入的文件进行md5比对:
[root@iZ25dcp92ckZ multepoolserver]# md5sum sevenCopy.mp4
cf9dc79b01388037577e0a13e261cbe6 sevenCopy.mp4
[root@iZ25dcp92ckZ multepoolserver]# md5sum seven.mp4
cf9dc79b01388037577e0a13e261cbe6 seven.mp4
[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
文件:"seven.mp4"
大小:8573191 块:16752 IO 块:4096 普通文件
设备:ca01h/51713d Inode:7878 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800
创建时间:-
[root@iZ25dcp92ckZ multepoolserver]# stat sevenCopy.mp4
文件:"sevenCopy.mp4"
大小:8573191 块:16752 IO 块:4096 普通文件
设备:ca01h/51713d Inode:9791 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2015-06-22 17:31:56.458192181 +0800
最近更改:2015-06-22 17:31:45.919756746 +0800
最近改动:2015-06-22 17:31:45.919756746 +0800
创建时间:-
阅读全文
[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
文件:"seven.mp4"
大小:8573191 块:16752 IO 块:4096 普通文件
设备:ca01h/51713d Inode:7878 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800
根据上面的大小8573191 编写代码,writeTest.c:
编译此文件:
[root@iZ25dcp92ckZ multepoolserver]# gcc writeTest.c -g -o writeTest
[root@iZ25dcp92ckZ multepoolserver]# ./writeTest
对写入的文件进行md5比对:
[root@iZ25dcp92ckZ multepoolserver]# md5sum sevenCopy.mp4
cf9dc79b01388037577e0a13e261cbe6 sevenCopy.mp4
[root@iZ25dcp92ckZ multepoolserver]# md5sum seven.mp4
cf9dc79b01388037577e0a13e261cbe6 seven.mp4
[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
文件:"seven.mp4"
大小:8573191 块:16752 IO 块:4096 普通文件
设备:ca01h/51713d Inode:7878 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800
创建时间:-
[root@iZ25dcp92ckZ multepoolserver]# stat sevenCopy.mp4
文件:"sevenCopy.mp4"
大小:8573191 块:16752 IO 块:4096 普通文件
设备:ca01h/51713d Inode:9791 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2015-06-22 17:31:56.458192181 +0800
最近更改:2015-06-22 17:31:45.919756746 +0800
最近改动:2015-06-22 17:31:45.919756746 +0800
创建时间:-
阅读全文
背景:线上是nginx的线下开发在windows下,nginx的重写和apache的重写有一些区别,直接nginx下开发得了。
有windows下的php nginx mysql memcache套件?
www.upupw.net
http://winginx.com/en/download
http://www.freehao123.com/wingix-phpfind/
有windows下的php nginx mysql memcache套件?
www.upupw.net
http://winginx.com/en/download
http://www.freehao123.com/wingix-phpfind/
背景:最后修改注册表重启后解决问题了,估计是软件给修改了的缘故,现在xp快淘汰了,这块儿还是有人用,也有用的,对硬件要求低,没得办法。
经常看到朋友们遇到这个问题,桌面的图标下的文字变成阴影的了,变成不透明的了。碰巧今天我也遇到这个问题,经过查找知道了解决之法,拿出来与大家共享。
可以先尝试以下3种方法:
1.鼠标右键单机“我的电脑”→“属性→高级→性能→设置”,勾选下方的“在桌面上为图标标签使用阴影”,最后点击“确定”。
2.右键桌面空白处,在“排列图标”里去掉“锁定桌面的web项目”,→点击“OK”。
3.到“控制面板”里“用户帐户”中重新建立一个新帐户,使用新帐户登陆即可。
另外有种就是安装了某种程序之后,桌面文字变的不透明。在“运行”中输入“gpedit.msc”,打开组策略;在“用户配置→管理模板→桌面 →Active Desktop”中,点启用活动桌面属性选定“已禁用”,点禁用活动桌面属性选定“已启用”;最后打开控制面板,在经典视图中打开系统,在“性能→高级选 项→性能→视觉效”。
然后再试试下面的两个方法:
4.使桌面文字透明注册表修改
在“开始”→ 执行 → 打入“regedit”
去 HKEY_USERS → S-1-5-21-XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXXX → Software → Microsoft → Windows→ CurrentVersion → Explorer → Advanced
修改 “ShowCompColor” = “dword:00000001” 更改为 “dword:00000000”
修改 “ListviewShadow”= “dword:00000000” 更改为“dword:00000001”
要重启计算机。
来自:http://blog.sina.com.cn/s/blog_617e906501014rjo.html
经常看到朋友们遇到这个问题,桌面的图标下的文字变成阴影的了,变成不透明的了。碰巧今天我也遇到这个问题,经过查找知道了解决之法,拿出来与大家共享。
可以先尝试以下3种方法:
1.鼠标右键单机“我的电脑”→“属性→高级→性能→设置”,勾选下方的“在桌面上为图标标签使用阴影”,最后点击“确定”。
2.右键桌面空白处,在“排列图标”里去掉“锁定桌面的web项目”,→点击“OK”。
3.到“控制面板”里“用户帐户”中重新建立一个新帐户,使用新帐户登陆即可。
另外有种就是安装了某种程序之后,桌面文字变的不透明。在“运行”中输入“gpedit.msc”,打开组策略;在“用户配置→管理模板→桌面 →Active Desktop”中,点启用活动桌面属性选定“已禁用”,点禁用活动桌面属性选定“已启用”;最后打开控制面板,在经典视图中打开系统,在“性能→高级选 项→性能→视觉效”。
然后再试试下面的两个方法:
4.使桌面文字透明注册表修改
在“开始”→ 执行 → 打入“regedit”
去 HKEY_USERS → S-1-5-21-XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXXX → Software → Microsoft → Windows→ CurrentVersion → Explorer → Advanced
修改 “ShowCompColor” = “dword:00000001” 更改为 “dword:00000000”
修改 “ListviewShadow”= “dword:00000000” 更改为“dword:00000001”
要重启计算机。
来自:http://blog.sina.com.cn/s/blog_617e906501014rjo.html