User Tools

Site Tools


linux_tutorial

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_tutorial [2016/05/12 15:26]
peek
— (current)
Line 1: Line 1:
-====== What Is A Terminal?  What Is A Shell? ====== 
- 
-===== In The Beginning... ===== 
- 
-"In the beginning there was the shell, and lo, it was good..." 
- 
-{{:vt100.jpg|The Terminal, in all it's 1970's glory}} 
- 
-An 80x24 matrix of blurry green characters with a keyboard, it was pure 1970's sexy.  No mouse, no graphics, just pure, unadulterated power.  Microsoft and Apple would have you believe that a command line is something to be feared and avoided.  Feared, yes, and rightly so, for there is great power in the command line; more than you will find in any GUI interface any day of the week.  And with great power comes great responsibility...  But for those knowledgeable in the ways of command-line-foo there is no going back. 
- 
-Today, we have computers that are so powerful that we often run dozens of programs simultaneously, while the operating system runs a hundred or more in the background, and then we complain about how slow the machine is!  In fact, in many ways, today's world has left the humble shell behind.  Preferring instead to focus on giving us simultaneous access to our dozens of programs through a sleek, modern, graphical user interface (GUI). 
- 
-=== Old And Busted: === 
-{{ :screenshot_from_2016-05-12_11-09-20.png?direct&500 |}} 
- 
-=== New Hotness:=== 
-{{ :screenshot_from_2016-05-12_11-06-35.png?direct&500 |New Hotness}} 
- 
-=== Q: How many windows do I actually have open on my desktop right now? === 
-A: 
- 
-{{ :screenshot_from_2016-05-12_11-07-11.png?direct&500 |}} 
- 
-...And that's just the current desktop!  I have multiple virtual desktops! 
- 
-{{ :screenshot_from_2016-05-12_11-11-42.png?direct&500 |}} 
- 
-===== Why Should I Bother? ===== 
- 
-"But why," I hear you say, "is any of this 1970's garbage relevant today, now that we have all of this flash-bang graphical GUI stuff?" 
- 
-The answer is simple: Because... 
-  * It's still the most powerful interface in the world 
-  * When you log into a machine remotely from off-site, particularly a server of some kind, the shell is what you will interacting with 
-  * All that flash-bang GUI stuff?  Yeah, that stuff runs //on top off// the a stack of shells! 
- 
-So this is something of which you should at least know the basics, and that's what this tutorial is all about. 
- 
-  * The **shell** is a special program that interacts with the user.  It's job is to wait for the user to type in a command.  When a command is received (the user pressed RETURN), the shell executes that command, updates it's internal state accordingly, and waits for the next command.  The shell is sometimes referred to as the **command line**, although to be honest, the command line is actually just the prompt printed to the screen by the shell to let the user know some basic information, and to tell the user that the shell is ready to receive input.  Sometimes the shell is referred to as the **terminal**, but really the terminal is a separate program that provides access to the shell from within a graphical environment such as a modern desktop. 
- 
-  * Instead of entering commands manually, a user may decide to place commands into a file.  The shell can execute the commands listed within the file rather than waiting on the user to type.  This, and the modular nature of UNIX command line programs, is the key to the true power of UNIX: Enabling the user to automate their workflow in ways that simply can't be done with a GUI.  Files that hold commands for a shell are called **shell scripts**, or just scripts for short. 
- 
-  * In the beginning, the shell was the one and only way for users to interact directly with the operating system.  Today, our computers are so powerful that they can run hundreds of programs simultaneously and still have clock cycles left over to wait in boredom for us to press the next key.  Some of these programs are highly interactive (web browsers, document editors, music and video players).  And so, in order to allow us humans to interact with a plethora of programs simultaneously, we have the graphical user interface (GUI).  The **terminal** is just one of these graphical programs.  It's job is to provide a window on the screen inside which the shell can interact with the user. 
- 
-Old And Busted: 
- 
-New Hotness: 
- 
-How many windows do I actually have open on my desktop? 
- 
-...And that's just the windows open on one of many virtual desktops! 
  
linux_tutorial.1463066784.txt.gz ยท Last modified: 2016/05/12 15:26 by peek