- 从分支合并回主干
12cd /path/to/trunksvn merge --reintegrate ^/branch_xxx
- 从主干到分支合并代码
12cd /path/to/branchsvn merge ^/trunk
apt 包管理的几个基本命令
安装
1 |
apt-get install package-name |
查看包描述信息
1 |
apt show package-name |
查看指定包中的文件
1 |
dpkg -L package-name |
查看指定文件属于哪个包
1 |
dpkg -S /path/to/file |
搜索软件包
1 |
apt list patten-of-package-name #(只匹配报名) |
搜索相关包
1 |
apt search patten-to-search (搜索包描述信息) |
删除软件包
1 |
apt-get remove package-name |
禁止更新(即:锁定版本)
1 |
echo "foo hold"|sudo dpkg --set-selections |
(禁止 foo 更新)
docker error with http_proxy
问题
当存在 http_proxy 时, 如下命令会有问题:
1 |
docker ps |
原因:
docker 和 docker -d 之间的通信走的是http协议,而且会默认参考 http_proxy 环境变量(go程序默认如此)
解决办法:
- 去掉http_proxy
1unset http_proxy
- 添加no_proxy环境变量
1export no_proxy=$no_proxy,/var/run/docker.sock
参考:https://github.com/tmatilai/vagrant-proxyconf/issues/109
grep awk 之buffer问题
问题
如下命令可以看到我们预期的输出:
1 |
while :; do echo abcd; sleep 1; done|grep abcd |
如下命令不能看到预期的输出: (不是立即看到,其实,只要等等她就会来)
1 |
while :; do echo abcd; sleep 1; done|grep abcd|grep abcd |
原因: 第一个grep命令buffer了输出
解决办法: 添加 –line-buffered 选项
同样, awk 也有类似问题,但是使用awk就没有添加选项这么幸运了;可以通过在awk的输出后面添加 system(“”); 来刷新buffer,如:
1 |
# while :; do echo abcd; sleep 1; done|awk '{print $0;system("");}'|awk '{print $0;}' |
各种代理(tsocks/privoxy/proxychains)
参考:
tsocks 代理
- 通过重写connect等网络函数实现
- 主要是一个 libtsocks.so ;tsocks本身是个脚本,原理是设置LD_PRELOAD 环境变量
- tsocks的几种用法(参看 tsocks脚本)
- tsocks command
- tsocks <CR> (这样会启动一个新的shell)
- . tsocks -on (在当前shell中设置 LD_PRELOAD 环境变量,注意: 前面需要一个 dot 即: . tsocks -on 或写作: source tsocks -on)
- man页: http://linux.die.net/man/8/tsocks or man 8 tsocks
- 配置文件 (man 5 tsocks.conf)
- path { … } 可以有多个,但是每个path中至少含有 server 指令和 reaches指令
set proxy for apt
how-to-install-oracle-java-on-ubuntu-14-04
参考:
- https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get
- http://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04
- http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre
- http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/
- http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
说明:
使用 apt-get install oracle-java7-installer 方式安装时,会自动从官方下载JDK,如果下载到中途失败,再次执行该命令则可以从上次下载到的地方继续下载 (如果kill -9 杀死apt进程是不可取的)
多个java版本共存的配置切换:
1 |
sudo update-alternatives --config java |
ssh and tty
问题
通过ssh连接到服务器后,当终端窗口放大后,打开vim依然使用原来的小的区域
分析
- 查看当前tty的size
1stty size
- 查看当前tty的更多信息
1stty -a
- resize 命令更新tty信息
1resize
不幸的是,一般都没有这个命令,ubuntu中有这个命令,而且应该是在终端窗口变化时自动执行了,所以,在ubuntu中打开一个终端后缩放是及时生效的 - 因为当终端窗口发生变化时,虽然不能重绘已有的内容,但是后续执行的ls命令都是能感知到窗口大小的变化的,为什么其他命令(如 vim)感知不到? resize命令是如何实现的?如何安装resize命令?
参考资料:
http://superuser.com/questions/390935/how-can-i-get-terminal-to-repaint-the-contents-when-i-resize-the-terminal
http://teaching.idallen.com/dat2330/06w/notes/terminal.txt
SSH原理与运用
如何使用wireshark+ssh+tcpdump抓取远程数据包
tshark + wireshark+ssh
1 |
ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i - |
tcpdump + wireshark + ssh
1 |
ssh root@server.com 'tshark -f "port !22" -w -' | wireshark -k -i - |
fifo方式
1 |
mkfifo /tmp/fifo; ssh-keygen; ssh-copyid root@remotehostaddress; sudo ssh root@remotehost "tshark -i eth1 -f 'not tcp port 22' -w -" > /tmp/fifo &; sudo wireshark -k -i /tmp/fifo; |
原文地址:
http://www.commandlinefu.com/commands/view/4373/analyze-traffic-remotely-over-ssh-w-wireshark