首页 › Category Archives › 未分类

牢记25个最佳的SSH命令

OpenSSH是SSH连接工具的免费版本。telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃听,连接劫持和其它攻击。此外,OpenSSH提供了安全隧道功能和多种身份验证方法,支持SSH协议的所有版本。

SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。

(注:有些内容较长的命令,在本文中会显示为截断的状态。如果你需要阅读完整的命令,可以把整行复制到您的记事本当中阅读。)
继续阅读 »

Linux抓包和分析

Linux抓包和分析

实践中,通常在 Linux 里用tcpdump命令抓包,然后在Windows 里用wireshark软件分析包。

较通用的tcpdump命令:tcpdump -i eth0 -s 0 -w package.cap

注[对eth0进行完整数据包抓取,数据包输入保存到当前目录package.cap中,因为没有-c参数限制,须按Ctrl+C停止抓包]
继续阅读 »

虚拟机VMWare及VirtualBox虚拟硬盘文件的压缩

在创建虚拟机时,如果选择了动态增长的方式,那么该虚拟机文件其实是“只增不减”,比如你COPY了一个5G的文件进去,那么即使将此文件删除,此虚拟机文件依然不会减小。好在VMware Tools可以在虚拟机中执行Shrink,从而减小其文件大小。

a,进入linux系统,终端下输入:
b,sudo dd if=/dev/zero of=/0bits bs=20971520 # bs=20m
c,sudo rm /0bits
d,然后关闭虚拟机;
e,在windows环境下打开cmd,输入:
f,cd “C:\Program Files\VMware\VMware Workstation” //进入到虚拟机的安装目录
g,vmware-vdiskmanager -k path\to\your\VirtualDisk.vmdkh,//虚拟硬盘压缩完成。

===================================================================
虚拟机使用久了就会发现虚拟硬盘越来越大,但是进入虚拟机里的系统用命令看了下,实际占用的空间远没有虚拟硬盘大小那么大,这个让人很不爽,而且在分享虚拟机镜像的时候也很不方便。VirtualBox似乎没有提供图形界面的方式可以让我们来压缩虚拟硬盘大小,但是可以通过命令行来实现。经过实际测试,我的一个30多G的虚拟硬盘可以压缩到13G大小,可见效果还是非常显著的,这个可以压缩的空间取决于你虚拟机内真实的空间占用大小。

VirtualBox同时支持自己的虚拟硬盘格式VDI和Vmware的VMDK格式,两种格式的压缩略有不同。

1. 碎片整理

第一步要做的是碎片整理,打开虚拟机,执行下面的命令:
Linux系统:

Windows系统需要下载Sysinternals Suite并执行:

2. 压缩磁盘

关闭虚拟机,现在可以开始压缩虚拟硬盘了

如果你的虚拟硬盘是VirtualBox自己的VDI格式,找到你的虚拟硬盘文件,执行命令:

如果你的虚拟硬盘是Vmware的VMDK格式,那就要麻烦点,因为VirtualBox不支持直接压缩VMDK格式,但是可以变通下:先转换成VDI并压缩,再转回VMDK。执行命令:

事实上,执行命令的过程中可以发现:在从VMDK转换到VDI的过程中似乎已经做了压缩,文件大小已经减少了很多,第二条命令反而没见到文件大小有什么变化,所以这里第二条命令应该可以省略了。

git-svn — 让git和svn协同工作

svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题。也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来说,存在着被误删除和版本更新无法回退两大情形。

继续阅读 »

DuiVision开源界面库介绍

DuiVision是蓝蚂蚁工作室开发的DUI界面库,参考了仿PC管家程序、金山界面库、DuiEngine、DuiLib等多个基于DirectUI的界面库开发的。
继续阅读 »

数字证书原理

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!

继续阅读 »

C/C++程序员必须熟练应用的开源项目

作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 只需要复制代码, 改改也就可以了, 因为自己写的代码自己很熟悉。问题是, 你封装的这些库, 在给别人使用的时候, 别人用起来是否很方便, 跨平台方面是不是也很通用, 性能是不是足够的好, 是不是支持多线程, 功能是不是也足够强大,可以适用于各种不同的需求。如果你上面这些都做到了, 证明你在这个库上确实花费了一番功夫, 经过了持续的改进和优化。

在日常的开发中, 作为一个程序员, 很多东西已经没有必要再重新开发了, 可以直接拿过来使用, 毕竟21世纪都已经过了N年了。我们没有必要重新发明轮子(不可否认发明轮子的过程可以学到很多东西,我就是这么走过来的)。
继续阅读 »

如何成为一个牛逼的C/C++程序员?

这个题目的噱头太大,要真的写起来, 足够写一本书了。

本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路。

每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人。
继续阅读 »

AES加密解密算法的C代码实现

AES 加密解密的原理我就不说了, 弟兄们自己上百度去查, 文章很多。

我这里只列出从网上获取的代码的实现, 我修改了一些, 可以很方便的使用到你的代码里面。

AES 比DES算法的强度更强。AES使用128位的加密密钥就足够了, 不需要使用更长的密钥。毕竟密钥太长浪费CPU资源。
继续阅读 »

Tortoisegit客户端拉取SVN库

说明:根据SVN库地址,拉取数据生成一个git本地代码库。用于svn迁移数据到git。
继续阅读 »