  
<div id="snippet_403" class="snippet">
  <h2><a href="/snippets/403-How-to-fix-the-iTerm-keyboard-bindings-in-OSX-readline-configuration-" title="How to fix the iTerm keyboard bindings in OSX (readline configuration) - Shell Script (Bash) - bash, zsh, readline, keyboard, shortcuts">How to fix the iTerm keyboard bindings in OSX (readline configuration)</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted 4 months ago by christian
          
  </div>

  <div class="body">
    <p>The keyboard bindings in iTerm on <span class="caps">OSX</span> Snow Leopard are fubar. To fix them either switch to Linux or put this in your zsh or bash configuration:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> bindkey <span class="String"><span class="String">&quot;</span>^r<span class="String">&quot;</span></span> history-incremental-search-backward
<span class="line-numbers">   2 </span> bindkey <span class="String"><span class="String">'</span>^E<span class="String">'</span></span> end-of-line
<span class="line-numbers">   3 </span> bindkey <span class="String"><span class="String">'</span>^A<span class="String">'</span></span> beginning-of-line
<span class="line-numbers">   4 </span> bindkey <span class="String"><span class="String">'</span>ƒ<span class="String">'</span></span>  forward-word
<span class="line-numbers">   5 </span> bindkey <span class="String"><span class="String">'</span>›<span class="String">'</span></span>  backward-word
<span class="line-numbers">   6 </span> bindkey <span class="String"><span class="String">&quot;</span>^F<span class="String">&quot;</span></span> forward-char
<span class="line-numbers">   7 </span> bindkey <span class="String"><span class="String">&quot;</span>^B<span class="String">&quot;</span></span> backward-char
<span class="line-numbers">   8 </span> bindkey <span class="String"><span class="String">&quot;</span>^k<span class="String">&quot;</span></span> kill-line
<span class="line-numbers">   9 </span> bindkey <span class="String"><span class="String">&quot;</span>^u<span class="String">&quot;</span></span> backward-kill-line
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/19-bash">bash</a>, <a href="/tags/849-zsh">zsh</a>, <a href="/tags/133-readline">readline</a>, <a href="/tags/762-keyboard">keyboard</a>, <a href="/tags/850-shortcuts">shortcuts</a>
    
    
  </div>
</div>



  
<div id="snippet_331" class="snippet">
  <h2><a href="/snippets/331-Bash-scripting-change-current-Rails-application-directory" title="Bash scripting: change current Rails application directory - Shell Script (Bash) - bash, scripting, rails, tip">Bash scripting: change current Rails application directory</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted 11 months ago by christian
          
  </div>

  <div class="body">
    <p>Put this in ~/.bashrc:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="FunctionName">app</span> () { cd <span class="String"><span class="String">&quot;</span>/var/www/<span class="Variable"><span class="Variable">$</span>*</span>/current<span class="String">&quot;</span></span><span class="Operator">;</span> }
</pre></p>
<p>Execute:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> . <span class="Operator">~</span>/.bashrc
</pre></p>
<p>Now you can change to another Rails app directory like this:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> app xxx.com
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/19-bash">bash</a>, <a href="/tags/730-scripting">scripting</a>, <a href="/tags/9-rails">rails</a>, <a href="/tags/499-tip">tip</a>
    
    
  </div>
</div>



  
<div id="snippet_226" class="snippet">
  <h2><a href="/snippets/226-Using-expect-for-automation-of-bulk-scp-copying-" title="Using expect for automation of bulk scp copying. - Shell Script (Bash) - expect, bash, automation, scp, bulk">Using expect for automation of bulk scp copying.</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted about 1 year ago by marko
          
  </div>

  <div class="body">
    <p>Expect can come in handy when you can&#8217;t configure ssh public key authentication on the servers :) (and the system &#8220;architect&#8221; hasn&#8217;t yet realized the wonderfulness of a log host).</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="LineComment"><span class="LineComment">#</span>!/bin/bash</span>
<span class="line-numbers">   2 </span> <span class="LineComment"><span class="LineComment">#</span></span>
<span class="line-numbers">   3 </span> <span class="LineComment"><span class="LineComment">#</span> Usage: script &lt;username&gt; &lt;password&gt; &lt;build&gt;</span>
<span class="line-numbers">   4 </span> <span class="LineComment"><span class="LineComment">#</span></span>
<span class="line-numbers">   5 </span> <span class="LineComment"><span class="LineComment">#</span> Example ./copy_logs_from_production.sh marko hubbabubba current</span>
<span class="line-numbers">   6 </span> <span class="LineComment"><span class="LineComment">#</span></span>
<span class="line-numbers">   7 </span> 
<span class="line-numbers">   8 </span> username=<span class="Variable"><span class="Variable">$</span>1</span>
<span class="line-numbers">   9 </span> password=<span class="Variable"><span class="Variable">$</span>2</span>
<span class="line-numbers">  10 </span> build=<span class="Variable"><span class="Variable">$</span>3</span>
<span class="line-numbers">  11 </span> mkdir <span class="Variable"><span class="Variable">$</span>build</span>
<span class="line-numbers">  12 </span> 
<span class="line-numbers">  13 </span> instance_1_server=10.0.0.1
<span class="line-numbers">  14 </span> instance_2_server=10.0.0.1
<span class="line-numbers">  15 </span> instance_3_server=10.0.0.2
<span class="line-numbers">  16 </span> instance_4_server=10.0.0.2
<span class="line-numbers">  17 </span> instance_5_server=10.0.0.3
<span class="line-numbers">  18 </span> instance_6_server=10.0.0.3
<span class="line-numbers">  19 </span> instance_7_server=10.0.0.4
<span class="line-numbers">  20 </span> instance_8_server=10.0.0.4
<span class="line-numbers">  21 </span> instance_9_server=10.0.0.5
<span class="line-numbers">  22 </span> 
<span class="line-numbers">  23 </span> servers=(<span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_1_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_2_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_3_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_4_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_5_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_6_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_7_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_8_server</span><span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">$</span>instance_9_server</span><span class="String">&quot;</span></span> )
<span class="line-numbers">  24 </span> i=1
<span class="line-numbers">  25 </span> <span class="Keyword">for</span> server <span class="Keyword">in</span> <span class="Variable"><span class="Variable">${</span>servers[@]<span class="Variable">}</span></span><span class="Operator">;</span> <span class="Keyword">do</span>
<span class="line-numbers">  26 </span>   expect -c <span class="String"><span class="String">&quot;</span></span>
<span class="line-numbers">  27 </span> <span class="String">            # exp_internal 1 # uncomment for debugging</span>
<span class="line-numbers">  28 </span> <span class="String">            spawn /usr/bin/scp <span class="Variable"><span class="Variable">$</span>username</span>@<span class="Variable"><span class="Variable">$</span>server</span>:/var/logs/application/<span class="Variable"><span class="Variable">$</span>build</span>/server<span class="Variable"><span class="Variable">${</span>i<span class="Variable">}</span></span>/error.log <span class="Variable"><span class="Variable">$</span>build</span>/error-<span class="Variable"><span class="Variable">${</span>i<span class="Variable">}</span></span>.log</span>
<span class="line-numbers">  29 </span> <span class="String">            expect { </span>
<span class="line-numbers">  30 </span> <span class="String">              <span class="String">&quot;</span></span>*password:*<span class="String"><span class="String">&quot;</span> { send <span class="Variable"><span class="Variable">$</span>password</span>\r\n; interact } </span>
<span class="line-numbers">  31 </span> <span class="String">              eof { exit }</span>
<span class="line-numbers">  32 </span> <span class="String">            }</span>
<span class="line-numbers">  33 </span> <span class="String">            exit</span>
<span class="line-numbers">  34 </span> <span class="String">            <span class="String">&quot;</span></span>
<span class="line-numbers">  35 </span>   let <span class="String"><span class="String">&quot;</span>i=i+1<span class="String">&quot;</span></span>
<span class="line-numbers">  36 </span> <span class="Keyword">done</span>
<span class="line-numbers">  37 </span> 
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/523-expect">expect</a>, <a href="/tags/19-bash">bash</a>, <a href="/tags/524-automation">automation</a>, <a href="/tags/137-scp">scp</a>, <a href="/tags/17-bulk">bulk</a>
    
    
  </div>
</div>



  
<div id="snippet_267" class="snippet">
  <h2><a href="/snippets/267-Appending-strings-in-bash-without-the-line-feed-" title="Appending strings in bash without the line feed. - Shell Script (Bash) - bash, printf, streams, linux">Appending strings in bash without the line feed.</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted about 1 year ago by marko
          
  </div>

  <div class="body">
    <p>To append to a stream in bash without the trailing line feed use printf to format the output before appending it to the stream.
<pre class="active4d"><span class="line-numbers">   1 </span> i=42
<span class="line-numbers">   2 </span> FILE=/tmp/atm
<span class="line-numbers">   3 </span> printf <span class="String"><span class="String">&quot;</span>%s<span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="Variable"><span class="Variable">${</span>i<span class="Variable">}</span></span><span class="String">&quot;</span></span> <span class="Operator">&gt;</span> <span class="Variable"><span class="Variable">$</span>FILE</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/19-bash">bash</a>, <a href="/tags/601-printf">printf</a>, <a href="/tags/602-streams">streams</a>, <a href="/tags/37-linux">linux</a>
    
    
  </div>
</div>



  
<div id="snippet_214" class="snippet">
  <h2><a href="/snippets/214-Work-around-for-bash-bin-rm-Argument-list-too-long-" title="Work around for &quot;bash: /bin/rm: Argument list too long&quot; - Shell Script (Bash) - rm, delete, bash">Work around for "bash: /bin/rm: Argument list too long"</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted about 1 year ago by christian
          
  </div>

  <div class="body">
    <p>Use find instead of rm:
<pre class="active4d"><span class="line-numbers">   1 </span> find . -name <span class="String"><span class="String">'</span>*<span class="String">'</span></span> <span class="Operator">|</span> xargs rm
</pre></p>


	<p>The command deletes all files in the current directory.</p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/496-rm">rm</a>, <a href="/tags/76-delete">delete</a>, <a href="/tags/19-bash">bash</a>
    
    
  </div>
</div>




<div class="pagination"><span class="disabled">&laquo; Previous</span> <span class="current">1</span> <a href="/tags/show/19-bash/page/2">2</a> <a href="/tags/show/19-bash/page/3">3</a> <a href="/tags/show/19-bash/page/2">Next &raquo;</a></div>

