================================================== 蘑菇碎碎念 ================================================== HG ----------------------- 1. fetch 某个分支 ``hg fetch http://xxx.xxx.xxx.xxx:8000 -r <分支名>`` #. 在docker中互相fetch docker额外映射了一个端口到8000,可以通过这个端口 #. 关闭无名分支 :: hg update -r <版本号> hg commit --close-branch -m 'Closing old branch' hg update -C default 翻墙有道 ----------------------- gentoo下emerge访问墙外资源 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. emerge设置HTTP代理 在 ``/etc/make.conf`` 写入代理配置 :: http_proxy="http://127.0.0.1:8080" https_proxy="http://127.0.0.1:8080" #. 安装配置HTTP代理工具polipo ``sudo emerge polipo`` 即可完成安装,安装后在 ``/etc/polipo/conf`` 中写入 :: daemonise=false diskCacheRoot=/var/cache/polipo/ proxyAddress=127.0.0.1 proxyName=localhost cacheIsShared=true allowedClients=127.0.0.1 proxyPort=8080 socksParentProxy = 127.0.0.1:1080 socksProxyType = socks5 #. 配置shadowsocks :: { "server":"vpn.mushapi.com", "server_port":1081, "local_address": "127.0.0.1", "local_port":1080, "password":"btyh17mxy", "timeout":300, "method":"aes-256-cfb", "fast_open": false, "workers": 1 } vim黑科技 ----------------------- 1. 遇到gbk乱码囧木办 :: set encoding=utf-8 set fenc=cp936 set fileencodings=cp936,ucs-bom,utf-8 if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)' set ambiwidth=double endif set nobomb #. 粘贴后格式错乱怎么办 有的时候,在插入模式下从系统粘贴板粘贴文本到vim中会出现缩进异常的情况,为了解决这种问题,在粘贴前应该设置vim为粘贴模式并在粘贴完成后取消粘贴模式 ``:set paste`` ``:set nopaste`` #. 你滚开 如果你在一个文件中滚动屏幕,那么另一个文件也会自动滚动以显示相同的位置。你可以使用以下命令,取消联动: ``:set noscrollbind`` 使用以下命令,将重新绑定联动: ``:set scrollbind`` 利用以下命令,可以定义滚动方式: ``:set scrollopt ver,hor,jump`` 其中:选项ver ,启用垂直同步滚动;选项hor ,启用水平同步滚动;而jump 选项,则在切换窗口时,使垂直滚动始终同步。 如果光标停留在两个文件的不同位置,那么可以使用下面的命令同步滚动: ``:syncbind`` vim插件及使用 ----------------------- 1. syntastic 在错误之间跳转 :lnext 跳到下一个 :lprev 跳到上一个 #. 使用pyflakes进行语法检查 :SyntasticCheck pyflakes iptables ----------------------- 1. 列出所有规则 ``iptables -nvL -t nat --line-number `` 列出nat表的所有规则并显示行号 #. 清零流量统计 ``iptables -Z `` #. 删除 ``iptables -t nat -D DOCKER 13`` 删除nat表DOCKER链的第13行的规则 #. 用iptables给Docker添加端口映射 ``iptables -t nat -A DOCKER --in-interface \!docker0 -p tcp --dport 6666 -j DNAT --to 172.17.0.5:6666`` docker会在系统中创建一个叫docker0的网卡,本例中172.17.0.5就是docker0的IP地址 linux命令 ----------------------- ssh客户端配置文件 ^^^^^^^^^^^^^^^^^^^^^^^ 当主机较多的时候,不方便记住所有的IP、用户、端口以及密码,为了解决这个问题我们可以使用一个ssh的配置文件来记录这些服务器。 常用的配置有 :: Host 主机别名 HostName 主机地址 User 登陆用户名 Port 端口号 IdentityFile 公钥 在~/.ssh/目录下创建一个config文件,在config中写入相应的配置后就可以使用 ``ssh \<主机别名\>`` 直接连接服务器了 保障服务器安全 ^^^^^^^^^^^^^^^^^^^^^^^ 1. 禁用密码登陆, 使用密钥登陆 编辑/etc/ssh/sshd_config :: PasswordAuthentication no #. 禁用root登陆 编辑/etc/ssh/sshd_config :: PermitRootLogin no 多线程下载工具axel ^^^^^^^^^^^^^^^^^^^^^^^ curl和wget是单线程的,使用这货的多线程方式下载文件会显著提高下载速度 1. 安装 gentoo下 ``sudo emerge axel`` centos下 ``sudo yum install axel`` #. 使用 :: axel -n <线程数> -o <保存文件的目录> <下载地址> docker 的一个奇怪命令 ^^^^^^^^^^^^^^^^^^^^^^^ docker run -e MYSQL_ROOT_PASSWORD=rstfsgbcedh --expose 3306 --entrypoint="/entrypoint.sh" --name mysql-hg -d mush/mysql-hg mysqld 如果遇到 TERM environment variable not set. 就执行 ``export TERM=dumb`` redis in docker ^^^^^^^^^^^^^^^^^^^^^^^ 当我们在使用docker提供redis服务时, 如果我们需要执行一个redis命令就需要使用 ``docker exec