These bash functions are useful so you can just drop into a terminal and hit new-post and basically be off..

blog () 
{ 
    cd ~/blog
}
start-jekyll () 
{ 
    blog;
    if ! [[ -f .pid.jekyll ]]; then
        jekyll serve --watch --host=0.0.0.0 & echo $! > .pid.jekyll;
    fi
}
stop-jekyll () 
{ 
    blog;
    if [[ -f .pid.jekyll ]]; then
        kill $(cat .pid.jekyll);
        rm -rf .pid.jekyll;
    fi
}
new-post () 
{ 
    read -p "New Title: " title;
    read -p "new-post-slug-name: " slug;
    read -p "categories: " categories;
    blog;
    filename=_posts/$(date +"%Y-%m-%d")"-"$slug.markdown;
    echo -ne "---\nlayout:     post\ndate:       $(date +'%Y-%m-%d %H:%M:%S %z %Z')\ntitle:      \"$title\"\ncategories: $categories\n---\n\n" >> $filename
}
echo "Blog functions loaded."

Just drop that into either your ~/.bashrc (or ~/.bash_profile on OS X), or put it in a separate file in your blog.

For example, mine is in ~/blog/bin/activate.bash, so in my ~/.bashrc I put:

[[ -f ~/blog/bin/activate.bash ]] && . ~/blog/bin/activate.bash