title: What does "stty raw -echo" do on OS X
body: <p>When I try: <code>$ stty raw -echo</code> on my Terminal (Bash on OS X 10.6). It does stringe things and it's like the terminal hang there. Then I lookup the manual:</p>
  
  <blockquote>
    <h2>stty &mdash; set the options for a terminal device interface</h2>
    
    <p><strong>raw (-raw)</strong></p>
    
    <p>If set, change the modes of the terminal so that no input or<br>
    output processing is performed.  If unset, change the modes   of the
    terminal to some reasonable state that performs input   and output
    processing.  Note that since the terminal driver   no longer has a
    single RAW bit, it is not possible to intuit   what flags were set
    prior to setting raw. This means that   unsetting raw may not put back
    all the setting that were   previously in effect. To set the terminal
    into a raw state and   then accurately restore it, the following shell
    code is recommended:</p>
  
  <pre><code>save_state=$(stty -g)
  stty raw
  ...
  stty "$save_state"              
  </code></pre>
    
    <p><strong>echo (-echo)</strong></p>
    
    <p>Echo back (do not echo back) every character typed.</p>
  </blockquote>
  
  <p>So it's supposed to turn the Terminal in raw mode then return what I type in as is? Could someone please explain what does this command do? And what is the difference when an argument has dash, e.g. <code>raw</code> and <code>-raw</code>? Are they mean the samething? Is there any resource I could learn this?</p>