One way is to use vcf-sort from vcftools http://vcftools.sourceforge.net/
vcf-sort your.vcf > sorted.vcf
The second way is to use grep and sort:
grep "^#" your.vcf > sorted.vcf && grep -v "^#" your.vcf | \
sort -V -k1,1 -k2,2n >> sorted.vcf
The first grep select header, the second grep select data, sort sorts by the first column and since it is alphanumerical it sorts it -V in version sort order. Some systems do not have -V in sort, then use
grep "^#" your.vcf > sorted.vcf && grep -v "^#" your.vcf | \
awk '{tmp=$1;sub(/chr/,"",tmp);print tmp,$0}' | \
sort -k1,1n -k3,3n | \
awk '{tmp=$0;sub(/([^ ]+ +){1}/,"",tmp);print tmp}' >> sorted.vcf
By the way do you have chrX and chrY and where you want to have it?