For tasks such as copying a large number of files across a network, the user may have to attend the computer for a long period just in case a problem occurs. Command shells require the user to remember, or to be able to find out, what commands are available and what arguments each takes. Acquiring this degree of familiarity with a system is not usually worthwhile unless the system is to be extensively used. However, the ability to define functions and scripts encapsulating sequences of commands can be a powerful tool for experienced users, for simplifying complex tasks and for automating tasks. Furthermore, an experienced user can develop scripts that can be used by less experienced users in ignorance of how the scripts function internally.
Graphical interfaces require much greater computational resources than command shells.