How can I efficiently rename multiple files at a shell prompt in Linux or UNIX operating systems? Could you provide detailed steps and examples using command-line utilities such as mv, rename, or any scripting methods like bash or perl? Additionally, could you explain how to handle different scenarios, such as renaming files with a common pattern, adding prefixes or suffixes, changing file extensions, and renaming files based on their content or metadata?