implement shell.du