How do I `cd` and then* `ls` automatically in linux?
Try this:
cd() { builtin cd "$@" && ls; }
builtin
makes the cd
inside the function invoke the builtin cd
command rather than trying to call the function recursively.
In GNU Bash,
PROMPT_COMMAND=ls