When I was looking for an appropriate explanation on the concept of a shell, it gave me more trouble than I
expected. All kinds of definitions are available, ranging from the simple comparison that "the shell is the
steering wheel of the car", to the vague definition in the Bash manual which says that "bash is an
sh-compatible command language interpreter," or an even more obscure expression, "a shell manages the
interaction between the system and its users". A shell is much more than that.
A shell can best be compared with a way of talking to the computer, a language. Most users do know that
other language, the point-and-click language of the desktop. But in that language the computer is leading the
conversation, while the user has the passive role of picking tasks from the ones presented. It is very difficult
for a programmer to include all options and possible uses of a command in the GUI-format. Thus, GUIs are
almost always less capable than the command or commands that form the backend.
The shell, on the other hand, is an advanced way of communicating with the system, because it allows for
two-way conversation and taking initiative. Both partners in the communication are equal, so new ideas can
be tested. The shell allows the user to handle a system in a very flexible way. An additional asset is that the
shell allows for task automation.
expected. All kinds of definitions are available, ranging from the simple comparison that "the shell is the
steering wheel of the car", to the vague definition in the Bash manual which says that "bash is an
sh-compatible command language interpreter," or an even more obscure expression, "a shell manages the
interaction between the system and its users". A shell is much more than that.
A shell can best be compared with a way of talking to the computer, a language. Most users do know that
other language, the point-and-click language of the desktop. But in that language the computer is leading the
conversation, while the user has the passive role of picking tasks from the ones presented. It is very difficult
for a programmer to include all options and possible uses of a command in the GUI-format. Thus, GUIs are
almost always less capable than the command or commands that form the backend.
The shell, on the other hand, is an advanced way of communicating with the system, because it allows for
two-way conversation and taking initiative. Both partners in the communication are equal, so new ideas can
be tested. The shell allows the user to handle a system in a very flexible way. An additional asset is that the
shell allows for task automation.
No comments:
Post a Comment