https://web.archive.org/web/20131228142311/http://practicalthought.com/sl/
sl takes the most common use of Unix ls, to display the files in a directory compactly in multiple columns, and makes it substantially more useful.
$ cat .bash_functions
# Automatically do an ls after each cd
cd() {
if [ -n "$1" ]; then
#builtin cd "$@" && ls --group-directories-first
builtin cd "$@" && sl
else
#builtin cd ~ && ls --group-directories-first
builtin cd ~ && sl
fi
}
In .bashrc add line
source ~/.bash_functions