A file manager is a program that is used to manage files, typically using some GUI or other non-command-line solution.

File managers typically list the contents of a directory/folder in some format. Many use lists of various kinds (often configurable), others use icon view, and many of the file managers support multiple different types of views to the directories. The systems use various methods of navigating the directory tree (full path display, directory tree display, way to go to the parent directory, etc...)

The files can be selected for various operations, such as moving, copying, or launching in applications.

If an action to the file requires a target directory/folder (as in case of copying or moving), the file managers offer different ways of specifying it. Many modern file managers simply need the file to be dragged to the target folder and dropped; Some file managers use a dual directory pane, in which the user chooses the target directory to one pane, selects files in other, and issues the command.

Many file managers support arranging of files to pretty patterns, creating new directories/folders, changing file permissions/icons/properties, and, of course, using whatever options the OS gives for the file - launching the file, or using other commands for the file (for example, an image file may have "open in image viewer", "open in graphics program", "print", and "set as desktop background").

My personal choice for file management in Linux is GNOME's Nautilus, but your opinion may be different, who knows...

Strengths of file managers: The file managers often provide an easy and consistent way of managing files. I like Nautilus for many reasons - for example, finding files from image directories is easy, because it shows image thumbnails as icons; finding directories is easy, because I can add distinctive emblems to them.

Weaknesses of file managers: File managers are good for simple cases, but not for very complex cases or special needs. For example, renaming a single file is easy in file manager, but renaming multiple files with consistent pattern is much easier on command line! (Of course, some file managers also support scripting and launching external programs, but it's often easier to do write a quick shell command than to make a script for the file manager...)