背景:之前是一个写Markdown的编辑器Typora在升级后无法启动,后来是vs code也升级后无法启动,于是觉得奇怪了,网上专门搜了一下visual studio code win7 无法启动,查到一篇文章,https://blog.csdn.net/caijunfen/article/details/80393298 ,按里面方法在Cmd下运行netsh winsock reset命令后, vs code 好了,连Typora也好了,后来才想起原来是公司非要装一个360杀毒软件,在我运行netsh winsock reset时,提示是否允许,我估计可能是它给关了所导致。
执行 netsh winsock reset 重置命令
------------------不熟悉操作系统的同学可以按下面的教程来----------------
window + R 键 调出运行,输入 cmd ,按回车。
命令提示符出来之后,点左上角的图标然后选择编辑->选择粘贴这个进去 netsh winsock reset
粘贴之后按回车
最后会提示成功地重置Winsock目录。一般不用重启,直接双击你的Visual Code,应该就可以打开了。
C:\Users\admin>netsh winsock reset
'netsh' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
成功地重置 Winsock 目录。
您必须重新启动计算机才能完成重置。
第二、查了一下,使用netsh winsock reset命令修复网络连接错误:
简单来说netsh winsock reset命令含义是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。
winsock是windows网络编程接口,从Windows XP SP2开始内置了一条命令使用netsh能够对该接口进行修复。
netsh是一个能够通过命令行操作几乎所有网络相关设置的接口。比如设置IP,DNS,网卡,无线网络等。
netsh winsock reset:
先进入netsh
然后进入winsock这个部件
对winsock这个部件执行reset命令。
效果就是重置Winsock。对于一些WinSock被破坏导致的问题有奇效。在netsh出现之前,对于WinSock问题的修复是非常繁琐的。
来自:https://blog.csdn.net/yanjiaye520/article/details/5452304
执行 netsh winsock reset 重置命令
------------------不熟悉操作系统的同学可以按下面的教程来----------------
window + R 键 调出运行,输入 cmd ,按回车。
命令提示符出来之后,点左上角的图标然后选择编辑->选择粘贴这个进去 netsh winsock reset
粘贴之后按回车
最后会提示成功地重置Winsock目录。一般不用重启,直接双击你的Visual Code,应该就可以打开了。
C:\Users\admin>netsh winsock reset
'netsh' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
成功地重置 Winsock 目录。
您必须重新启动计算机才能完成重置。
第二、查了一下,使用netsh winsock reset命令修复网络连接错误:
简单来说netsh winsock reset命令含义是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。
winsock是windows网络编程接口,从Windows XP SP2开始内置了一条命令使用netsh能够对该接口进行修复。
netsh是一个能够通过命令行操作几乎所有网络相关设置的接口。比如设置IP,DNS,网卡,无线网络等。
netsh winsock reset:
先进入netsh
然后进入winsock这个部件
对winsock这个部件执行reset命令。
效果就是重置Winsock。对于一些WinSock被破坏导致的问题有奇效。在netsh出现之前,对于WinSock问题的修复是非常繁琐的。
来自:https://blog.csdn.net/yanjiaye520/article/details/5452304
如何用tar压缩文件夹到指定目录,tar -zxvf /usr/local/jmeter.tar.gz -C /usr/local/ && rm -rf /usr/local/jmeter.tar.gz && chmod -R 755 /usr/local/jmeter
Unix/LinuxC技术 jackxiang 2018-8-21 14:17
如何用tar压缩文件夹到指定目录:
tar -zxvf /usr/local/jmeter.tar.gz -C /usr/local/ && rm -rf /usr/local/jmeter.tar.gz && chmod -R 755 /usr/local/jmeter
压缩:
tar -cvzf /test/tmp/abc.tar.gz /test/tcp/abc
实例,将魔方MYSIM数据库给压缩到根目录下:
tar -cvzf /mofang.08.21.tar.gz mofang/
解压
tar -cvxf abc.tar.gz -C /test/tmp
tar -zxvf /usr/local/jmeter.tar.gz -C /usr/local/ && rm -rf /usr/local/jmeter.tar.gz && chmod -R 755 /usr/local/jmeter
压缩:
tar -cvzf /test/tmp/abc.tar.gz /test/tcp/abc
实例,将魔方MYSIM数据库给压缩到根目录下:
tar -cvzf /mofang.08.21.tar.gz mofang/
解压
tar -cvxf abc.tar.gz -C /test/tmp
背景:Windows的C盘越来越大,60G都占满了,刚开始才10来G,逐步越占越多,而自带的那个工具根本无法看到占比,而这个Folder-size能把列表列出来并讲算出占比,方便分析哪个目录占得多,点进去后也有占比,方便分析删除目录之用,根据百分比,直接由60G干掉了16G剩余空间出来。
应用程序可以在几分钟内扫描整个硬盘驱动器,由于它优化扫描算法和树的大小详细列出。逐行扫描让你继续从扫描中断的问题。除了扫描整个硬盘驱动器文件夹大小也可以扫描一个文件夹,以节省时间。
DownLoad:http://enkj.jb51.net:81/201409/tools/FolderSize(jb51.net).rar
网站下载:http://www.mindgems.com/products/Folder-Size/Folder-Size-Tutorials.htm?postinstall=1
尽管windows也有查看的方法,但不直观,得一个一个的看,如下:
文件夹不像文件那样,不能在显示详细信息的时候显示出它的大小来,下面介绍两种查看方法,进行对比,看看哪个方法更快更方便~
https://jingyan.baidu.com/article/4853e1e5725b651909f726d2.html
下载:
应用程序可以在几分钟内扫描整个硬盘驱动器,由于它优化扫描算法和树的大小详细列出。逐行扫描让你继续从扫描中断的问题。除了扫描整个硬盘驱动器文件夹大小也可以扫描一个文件夹,以节省时间。
DownLoad:http://enkj.jb51.net:81/201409/tools/FolderSize(jb51.net).rar
网站下载:http://www.mindgems.com/products/Folder-Size/Folder-Size-Tutorials.htm?postinstall=1
尽管windows也有查看的方法,但不直观,得一个一个的看,如下:
文件夹不像文件那样,不能在显示详细信息的时候显示出它的大小来,下面介绍两种查看方法,进行对比,看看哪个方法更快更方便~
https://jingyan.baidu.com/article/4853e1e5725b651909f726d2.html
下载:
下载文件
F12打开开发者工具,选择Network,请求一个网站,就会显示请求的列表,在任何一列上右击,选择”Remote Address”,就能显示所有请求的IP地址:
在时间线下面,有一个Name Status Type 上面点右键,选上remote Addresss就显示出来了。
来自:https://blog.csdn.net/btlas/article/details/52383166
查看单个请求的IP地址,这个不如前面直接打开所有得了,如下:
请求一个网站,就会显示请求的列表,点击在右边就能看到IP地址
在时间线下面,有一个Name Status Type 上面点右键,选上remote Addresss就显示出来了。
来自:https://blog.csdn.net/btlas/article/details/52383166
查看单个请求的IP地址,这个不如前面直接打开所有得了,如下:
请求一个网站,就会显示请求的列表,点击在右边就能看到IP地址
[实践OK]ssh太慢,CentOS6.X下编译并升级安装OpenSSH7.4p1,一台CentOS6.X机器连接SSH太慢,重新编译最新的openssh后连接正常的编译过程。
Unix/LinuxC技术 jackxiang 2018-8-17 11:05
导语
Redhat企业级系统的6.7版自带SSH版本为OpenSSH_5.3p1, 基于审计和安全性需求,建议将其升级到最新的OpenSSH版本,当前官网最新版本为7.4p1. 本文档将详细介绍OpenSSH升级的完整步骤。需要说明的是,升级过程中虽然涉及zlib、openssl和openssh的卸载,但是并不会导致当前的ssh远程连接会话断开,因此是可以将整个升级过程写成自动化脚本以进行自动批量部署的。后面咱准备逐步过度到CentOS7了,新版在SSH底层上优化了TCP连接传输功能。在譬如拷贝时会用同一个TCP的FD,而旧版本的是没有这个功能的。再就是刚连接过了在超时设置范围内,再次发起连接时也会复用之前的一个Socket的FD句柄,提高连接效率。
编译安装OpenSSH7.4p1一共分二步,
第一步:安装编译需要的RPM包:
第二步:编译并安装到和原来一样的目录,如下步骤:
tar zxvf openssh-7.4p1.tar.gz
cd openssh-7.4p1
ll
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-kerberos5=/usr/lib64/libkrb5.so
make && make install
cp -rf /usr/local/src/openssh-7.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
vim /etc/init.d/sshd
sed -i '/sbin/restorecon /etc/ssh/ssh_host_key.pub/s/^/#/' /etc/init.d/sshd
sed -i 's/#PermitRootLogin/PermitRootLogin/' /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
ssh -V
service sshd restart
vim /etc/ssh/sshd_config
ll
vim /etc/ssh/sshd_config
ps -ef|grep ssh
service sshd start
history
附录:
反查一些OpenSSH需要的动态库,RPM包的安装路径辅助上面参数配置:
rpm -ql openssh-server-5.3p1-122.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-keycat
/usr/sbin/.sshd.hmac
/usr/sbin/sshd
/usr/share/doc/openssh-server-5.3p1
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd
ldd /usr/sbin/sshd
linux-vdso.so.1 => (0x00007fffbc5ff000)
libpam.so.0 => /lib64/libpam.so.0 (0x00007f2d19bf3000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f2d1980e000)
librt.so.1 => /lib64/librt.so.1 (0x00007f2d19605000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2d19401000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f2d191fe000)
libz.so.1 => /lib64/libz.so.1 (0x00007f2d18fe7000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f2d18db0000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2d18b96000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f2d18951000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f2d1866a000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f2d1843e000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f2d18239000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2d17ea5000)
libaudit.so.1 => /lib64/libaudit.so.1 (0x00007f2d17c89000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2d17a6b000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c0e400000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f2d177f4000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f2d175e9000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f2d173e5000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2d171c6000)
rpm -qf /lib64/libpam.so.0 >> /tmp/jackRpmResult.txt
rpm -qf /usr/lib64/libcrypto.so.10 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/librt.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libdl.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libutil.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libz.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libcrypt.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libresolv.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libgssapi_krb5.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libkrb5.so.3 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libk5crypto.so.3 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libcom_err.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libc.so.6 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libaudit.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libpthread.so.0 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/ld-linux-x86-64.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libfreebl3.so >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libkrb5support.so.0 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libkeyutils.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libselinux.so.1 >> /tmp/jackRpmResult.txt
需要这些包:
rpm -qa|grep audit-libs-2.2-2
rpm -qa|grep glibc-2.12-1.192
rpm -qa|grep keyutils-libs-1.4-5
rpm -qa|grep krb5-libs-1.10.3-65
rpm -qa|grep libcom_err-1.41.12-23
rpm -qa|grep libselinux-2.0.94-7
rpm -qa|grep nss-softokn-freebl-3.14.3-9
rpm -qa|grep openssl-1.0.1e-57
rpm -qa|grep pam-1.1.1-24
rpm -qa|grep zlib-1.2.3-29
yum 安装软件包:
audit-libs-2.2-2 glibc-2.12-1.192 keyutils-libs-1.4-5 krb5-libs-1.10.3-65 libcom_err-1.41.12-23 libselinux-2.0.94-7 nss-softokn-freebl-3.14.3-9 openssl-1.0.1e-57 pam-1.1.1-24 zlib-1.2.3-29
去掉版本号直接安装:
yum install audit-libs glibc keyutils-libs krb5-libs libcom_err libselinux nss-softokn-freebl openssl pam zlib
参考编译来源:
(1)http://blog.chinaunix.net/uid-28266791-id-5759478.html
(2)https://www.cnblogs.com/xshrim/p/6472679.html
Redhat企业级系统的6.7版自带SSH版本为OpenSSH_5.3p1, 基于审计和安全性需求,建议将其升级到最新的OpenSSH版本,当前官网最新版本为7.4p1. 本文档将详细介绍OpenSSH升级的完整步骤。需要说明的是,升级过程中虽然涉及zlib、openssl和openssh的卸载,但是并不会导致当前的ssh远程连接会话断开,因此是可以将整个升级过程写成自动化脚本以进行自动批量部署的。后面咱准备逐步过度到CentOS7了,新版在SSH底层上优化了TCP连接传输功能。在譬如拷贝时会用同一个TCP的FD,而旧版本的是没有这个功能的。再就是刚连接过了在超时设置范围内,再次发起连接时也会复用之前的一个Socket的FD句柄,提高连接效率。
编译安装OpenSSH7.4p1一共分二步,
第一步:安装编译需要的RPM包:
第二步:编译并安装到和原来一样的目录,如下步骤:
tar zxvf openssh-7.4p1.tar.gz
cd openssh-7.4p1
ll
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-kerberos5=/usr/lib64/libkrb5.so
make && make install
cp -rf /usr/local/src/openssh-7.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
vim /etc/init.d/sshd
sed -i '/sbin/restorecon /etc/ssh/ssh_host_key.pub/s/^/#/' /etc/init.d/sshd
sed -i 's/#PermitRootLogin/PermitRootLogin/' /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
ssh -V
service sshd restart
vim /etc/ssh/sshd_config
ll
vim /etc/ssh/sshd_config
ps -ef|grep ssh
service sshd start
history
附录:
反查一些OpenSSH需要的动态库,RPM包的安装路径辅助上面参数配置:
rpm -ql openssh-server-5.3p1-122.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-keycat
/usr/sbin/.sshd.hmac
/usr/sbin/sshd
/usr/share/doc/openssh-server-5.3p1
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd
ldd /usr/sbin/sshd
linux-vdso.so.1 => (0x00007fffbc5ff000)
libpam.so.0 => /lib64/libpam.so.0 (0x00007f2d19bf3000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f2d1980e000)
librt.so.1 => /lib64/librt.so.1 (0x00007f2d19605000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2d19401000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f2d191fe000)
libz.so.1 => /lib64/libz.so.1 (0x00007f2d18fe7000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f2d18db0000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2d18b96000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f2d18951000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f2d1866a000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f2d1843e000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f2d18239000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2d17ea5000)
libaudit.so.1 => /lib64/libaudit.so.1 (0x00007f2d17c89000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2d17a6b000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c0e400000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f2d177f4000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f2d175e9000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f2d173e5000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2d171c6000)
rpm -qf /lib64/libpam.so.0 >> /tmp/jackRpmResult.txt
rpm -qf /usr/lib64/libcrypto.so.10 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/librt.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libdl.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libutil.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libz.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libcrypt.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libresolv.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libgssapi_krb5.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libkrb5.so.3 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libk5crypto.so.3 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libcom_err.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libc.so.6 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libaudit.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libpthread.so.0 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/ld-linux-x86-64.so.2 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libfreebl3.so >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libkrb5support.so.0 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libkeyutils.so.1 >> /tmp/jackRpmResult.txt
rpm -qf /lib64/libselinux.so.1 >> /tmp/jackRpmResult.txt
需要这些包:
rpm -qa|grep audit-libs-2.2-2
rpm -qa|grep glibc-2.12-1.192
rpm -qa|grep keyutils-libs-1.4-5
rpm -qa|grep krb5-libs-1.10.3-65
rpm -qa|grep libcom_err-1.41.12-23
rpm -qa|grep libselinux-2.0.94-7
rpm -qa|grep nss-softokn-freebl-3.14.3-9
rpm -qa|grep openssl-1.0.1e-57
rpm -qa|grep pam-1.1.1-24
rpm -qa|grep zlib-1.2.3-29
yum 安装软件包:
audit-libs-2.2-2 glibc-2.12-1.192 keyutils-libs-1.4-5 krb5-libs-1.10.3-65 libcom_err-1.41.12-23 libselinux-2.0.94-7 nss-softokn-freebl-3.14.3-9 openssl-1.0.1e-57 pam-1.1.1-24 zlib-1.2.3-29
去掉版本号直接安装:
yum install audit-libs glibc keyutils-libs krb5-libs libcom_err libselinux nss-softokn-freebl openssl pam zlib
参考编译来源:
(1)http://blog.chinaunix.net/uid-28266791-id-5759478.html
(2)https://www.cnblogs.com/xshrim/p/6472679.html
[实践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