properly interpret exceptions in remove
don't print a leading newline in ls
fix a glob issue where a plain '*' wasn't considered a glob
add some simple shell tests