![]() A shell is also a programming language thatâs specially designed to work with your computer systemâs commands. Whenever you do anything a second time, you should ask, âCanât I write a program to do this for me?â You can. There are many sequences of commands that you type again and again. For an experienced user, typing commands (e.g., with shorthand, shortcuts, and command completion) is a lot more efficient and effective than dragging things around in a fancy windowed interface.īut beyond simple convenience, shells are programmable. And modern shells let you define your own command abbreviations, shortcuts, and other features. Modern shells also let you edit those commands, so they donât have to be the same each time. For example, they remember commands that youâve typed, and let you reuse those commands. And the result is a modern shell that does much more than just accept commands. ![]() However, two factors drove the evolution of the Unix shell: user convenience and programming. And you would be rightâ a shell that just let you type commands wouldnât be very interesting. Still, you might be thinking that sounds like a lot of fuss for something that just takes commands and executes them. It was much easier to get a new shell accepted, since you didnât have to talk some operating system vendor into building the shell into their system all you had to do was package the shell so that it could be installed just like any other program. But disentangling the shell from the operating system itself made it much easier for software developers (such as Brian Fox, the creator of bash, and Chet Ramey, the current developer and maintainer) to write better shellsâyou could create a new shell without modifying the operating system itself. You probably donât sit around saying, âShould I use csh or bash or ksh today?â Youâre probably happy with the standard shell that came with your Linux (or BSD or macOS or Solaris or HP/UX) system. By the end of Unixâs third decade, there were probably a dozen different shells. By the end of Unixâs second decade, there were a few more alternatives: the Korn shell, ksh, and the first versions of the bash shell. So by the end of Unixâs first decade, there were at least two competing shells: the Bourne shell, sh (which was a descendant of the original Thompson shell), plus the C shell, csh. The shell was just another program that ran on Unix if you didnât like the standard one, you could create your own. The shell was just one more program it was a program whose job was executing other programs on behalf of users.īut that was the beginning of a revolution. The Unix operating system popularized the notion of separating the shell (the part of the system that lets you type commands) from everything else: the input/output system, the scheduler, memory management, and all of the other things the operating system takes care of for you (and that most users donât want to care about). Furthermore, an operating systemâs command interface would let you execute commands, but that was about all. ![]() ![]() But in lots of operating systems, that command interface was really built in and there was only one way to talk to the computer. Whatâs a shell, and why should you care about it?Īny recent computer operating system (by recent, we mean since about 1970) has some sort of user interfaceâsome way of specifying commands for the operating system to execute.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |