<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>intuitive engineering &#187; UNIX</title>
	<atom:link href="http://dougmunsinger.com/tag/unix/feed" rel="self" type="application/rss+xml" />
	<link>http://dougmunsinger.com</link>
	<description>doug munsinger</description>
	<lastBuildDate>Fri, 13 Jan 2012 17:08:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>eclipsed</title>
		<link>http://dougmunsinger.com/2009/03/eclipsed.html</link>
		<comments>http://dougmunsinger.com/2009/03/eclipsed.html#comments</comments>
		<pubDate>Sun, 29 Mar 2009 15:37:31 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[move2]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[UNIX & Windows]]></category>
		<category><![CDATA[RSE]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=634</guid>
		<description><![CDATA[&#160; &#160; &#160; I&#8217;ve been working with Remote System Explorer (RSE), a terminal and ssh session manager that runs in the Eclipse SDK. This is very cool &#8211; the thing is, eclipse runs on Solaris, Linux, Windows, MAC OSX, IBM AIX (of course &#8211; IBM created the eclipse framework). It as close to an OS-agnostic [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="../../../images/posts/2009/eclipse.png" title="eclipse splash" alt="eclipse splash"/></p>
<p>&nbsp;</p>
<p>I&#8217;ve been working with <a href="http://www.eclipse.org/dsdp/tm" title="RSE">Remote System Explorer (RSE)</a>, a terminal and ssh session manager that runs in the <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4.2-200902111700/index.php" title="Eclipse SDK">Eclipse SDK</a>.  This is very cool &#8211; the thing is, eclipse runs on Solaris, Linux, Windows, MAC OSX, IBM AIX (of course &#8211; IBM created the eclipse framework).   It as close to an OS-agnostic framework as anything I&#8217;ve ever experienced. </p>
<p>I had primarily intended to use it on windows to add ssh terminal capacity &#8211; replacing console2 and cygwin &#8211; to connect to UNIX servers.  But the interface is so good, I find I&#8217;m using it on both UNIX and windows &#8211; the konsole terminal is better in some ways at history and at cut-and-paste using mouse buttons directly.  So far the context menu from a right-click is the only cut-and-paste that functions within the terminal windows themselves. </p>
<p>On the other hand &#8211; in konsole each separate terminal window is a separate authentication &#8211; password-response &#8211; whereas in eclipse RSE, one authentication can be kept and spawn as many terminal sessions as needed.  The organization is better.  You can close the terminal sessions down, and leave a connection still intact.  Then bring back terminal sessions as needed.  That ability alone makes it worth losing the double-click select and middle-button paste from konsole sessions.  I&#8217;m not yet convinced I can&#8217;t find a way to get that working either, that and an unlimited history or at least 10000 lines&#8230;</p>
<p>&nbsp;</p>
<p><a href="../../../images/posts/2009/eclipse_4.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_4_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p>&nbsp;</p>
<p>If I can get that back somehow in the terminal sessions it will be not just slightly better, but a huge amount better than any other session management I&#8217;ve used. </p>
<h2>Install</h2>
<p>You need <a href="http://java.sun.com/javaee/downloads/index.jsp" title="java">java</a>.  On windows that can be an issue.  On UNIX, not so much, pretty much there by default.</p>
<p>Download <a href="http://www.eclipse.org/downloads/download.php?file=/dsdp/tm/downloads/drops/R-3.0.3-200902181300/RSE-SDK-3.0.3.zip" title="RSE">RSE</a> and <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4.2-200902111700/index.php" title="eclipse SDK 3.4.2">eclipse SDK</a>.  </p>
<p>Untar or unzip the eclipse package. In windows I unzip to c:\eclipse_3.4.2.  In UNIX /usr/local/eclipse.   </p>
<p>Unzip the RSE package layered over the eclipse install. </p>
<p>In windows I point a shortcut to c:\eclipse_3.4.2.  In UNIX I move /usr/local/eclipse to /usr/local/eclipse_3.4.2, and create a symbolic link /usr/local/eclipse -> /usr/local/eclipse_3.4.2.  </p>
<p>Open eclipse.  Go to window -> open perspective -> other and open Remote System Explorer. </p>
<p>&nbsp;</p>
<p><a href="../../../images/posts/2009/eclipse_1.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_1_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p>&nbsp;</p>
<p>Configurations are stored in the workspace folder.  Right-click in the left-hand pane and select &#8220;New Connection to create connections.  Within eclipse you can add software respositories and update and add software from Help -> Software Updates. </p>
<p>&nbsp;</p>
<p><a href="../../../images/posts/2009/eclipse_2.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_2_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p><a href="../../../images/posts/2009/eclipse_3.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_3_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&mdash; doug</p>
<p>&nbsp;</p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2009/03/eclipsed.html&title=eclipsed" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2009/03/eclipsed.html&title=eclipsed" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2009/03/eclipsed.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2009/03/eclipsed.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2009/03/eclipsed.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ports and processes in Solaris</title>
		<link>http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html</link>
		<comments>http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 01:45:42 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[move4]]></category>
		<category><![CDATA[move7]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=519</guid>
		<description><![CDATA[&#160; In Linux, &#8220;netstat -apn&#8221; will list processes versus ports bound to: dsm@dali:~$ netstat -apn (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>In Linux, &#8220;netstat -apn&#8221; will list processes versus ports bound to:</p>
<p><code><br />
dsm@dali:~$ netstat -apn<br />
(Not all processes could be identified, non-owned process info<br />
 will not be shown, you would have to be root to see it all.)<br />
Active Internet connections (servers and established)<br />
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name<br />
tcp        0      0 0.0.0.0:24800           0.0.0.0:*               LISTEN      9353/synergys<br />
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -<br />
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      -<br />
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -<br />
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      -<br />
tcp        0      0 172.17.8.76:43003       172.19.235.82:22        ESTABLISHED 4305/ssh<br />
tcp        0      0 172.17.8.76:32852       198.200.144.106:22      ESTABLISHED 13523/ssh<br />
tcp        0      0 172.17.8.76:44173       198.200.144.106:22      ESTABLISHED 13546/ssh<br />
tcp        0      0 172.17.8.76:53463       172.17.85.49:22         ESTABLISHED 28801/ssh<br />
tcp        0      0 172.17.8.76:57385       172.19.230.85:22        ESTABLISHED 5208/ssh<br />
</code></p>
<p>If you want to see, say, all the ssh processes:  </p>
<p><code><br />
dsm@dali:~$ netstat -apn | grep ssh<br />
tcp        0      0 172.17.8.76:43003       172.19.235.82:22        ESTABLISHED 4305/ssh<br />
tcp        0      0 172.17.8.76:32852       198.200.144.106:22      ESTABLISHED 13523/ssh<br />
tcp        0      0 172.17.8.76:44173       198.200.144.106:22      ESTABLISHED 13546/ssh<br />
tcp        0      0 172.17.8.76:53463       172.17.85.49:22         ESTABLISHED 28801/ssh<br />
tcp        0      0 172.17.8.76:57385       172.19.230.85:22        ESTABLISHED 5208/ssh<br />
tcp        0      0 172.17.8.76:58116       172.19.220.114:22       ESTABLISHED 5459/ssh<br />
etc...<br />
</code></p>
<p>On Solaris&#8230;   On SUN&#8217;s Solaris there isn&#8217;t an easy way to accomplish the same.  On a normal non-containerized server you can run netstat and then lsof&#8230;</p>
<p>Assume that you know there is a process conflict – some process has already bound to a port 8083.  Your process fails because it can’t bind to the port it needs, that port is already in use &#8211; somewhere. </p>
<p>netstat –an | grep 8083 gives you:</p>
<p><code>[dsm@sun1 bin] $ netstat -an | grep 8083<br />
198.200.144.14.8083        *.*                0      0 49152      0 LISTEN<br />
198.200.144.30.8083        *.*                0      0 49152      0 LISTEN<br />
198.200.144.17.8083        *.*                0      0 49152      0 LISTEN<br />
      *.8083                         *.*                0      0 49152      0 LISTEN<br />
198.200.144.90.8083        *.*                0      0 49152      0 LISTEN<br />
198.200.144.10.8083        *.*                0      0 49152      0 LISTEN<br />
</code></p>
<p>The *.8083 is our problem child, but we don’t have which process is bound to that port yet. </p>
<p><code><br />
[dsm@sun1 bin] $ lsof -i:8083<br />
COMMAND   PID     USER   FD   TYPE        DEVICE SIZE/OFF NODE NAME<br />
java     1548  jb-1   18u  IPv4 0x3005df7be68      0t0  TCP s1q:8083 (LISTEN)<br />
java     6903 appadmin    5u  IPv4 0x30070580ae8      0t0  TCP *:8083 (LISTEN)<br />
java     7497   jb-2    9u  IPv4 0x300099344d0      0t0  TCP webq1:8083 (LISTEN)<br />
java     7989  jb-3    9u  IPv4 0x32af1cd79a8      0t0  TCP ntumq1:8083 (LISTEN)<br />
java     9445  jb-ty    9u  IPv4 0x30009925e30      0t0  TCP tyq1:8083 (LISTEN)<br />
java    16369  jb-jun    9u  IPv4 0x3007b9a21f0      0t0  TCP rjq1:8083 (LISTEN)<br />
[dsm@sun1 bin] $<br />
</code></p>
<p>Process id 6903 if the villian of this piece in this case.  </p>
<p>And this works on servers, but not within containerized servers&#8230; On a container you get:</p>
<p><code><br />
$ lsof -i :8083<br />
lsof: can't stat(/devices): No such file or directory<br />
</code></p>
<p>Basically, a zone within a Solaris10 global zone doesn&#8217;t have a /devices directory; so you can&#8217;t ! You have to do this from the global zone &#8211; not ideal <img src='http://dougmunsinger.com/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' />  </p>
<p>&nbsp;</p>
<p>&mdash; dsm</p>
<p>&nbsp;</p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html&title=ports and processes in Solaris" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html&title=ports and processes in Solaris" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>console2&#8230;</title>
		<link>http://dougmunsinger.com/2008/08/console2.html</link>
		<comments>http://dougmunsinger.com/2008/08/console2.html#comments</comments>
		<pubDate>Fri, 29 Aug 2008 03:11:53 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[move5]]></category>
		<category><![CDATA[UNIX & Windows]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=239</guid>
		<description><![CDATA[&#160; My ideal workstation to manage UNIX servers is kubuntu, running KDE. I recently did a day of off-site work. I used a laptop running exactly that environment. I fell back in love with the terminal program Konsole. There are two primary reasons I use KDE instead of Gnome in the desktop wars. Konsole, and [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>My ideal workstation to manage UNIX servers is kubuntu, running KDE. </p>
<p>I recently did a day of off-site work.  I used a laptop running exactly that environment.  I fell back in love with the terminal program Konsole.  There are two primary reasons I use KDE instead of Gnome in the desktop wars.  Konsole, and the ctrl-n for a new tab window, ctrl-s to name that tab, and shift-left / shift-right to move between windows, and Klipper, the searchable, expandable clipboard utility that by default appears in the system tray. And the select-and-copy, middle mouse button paste default behavior, that too, but that&#8217;s not KDE, that&#8217;s UNIX itself. </p>
<p>I could use kubuntu for the day because I was NOT expected to access email, nor did I need access to the change management software.  I didn&#8217;t need access to internal sites that require Internet Explorer.  Just for a day I could be a UNIX wonk.  </p>
<p><a id="return"></a>Today, two days later, I&#8217;m feeling the loss.  I have a linux workstation.  From that workstation I have access to the systems I need to work with.  What I don&#8217;t have is email access, Internet Explorer, access to the change management ticketing system, and on and on.  I end up using the Windows XP workstation right next to it out of expediency.  I CAN copy and paste data out of the ticketing system.  I CAN create Microsoft Project updates.  I CAN access the internal Instant Messaging system, I CAN get direct access to email, without switching systems <a href="#synergy" title="synergy - a different solution">[1]</a>&#8230; Windows centric is windows centric.  </p>
<p>My taskbar in windows is three labels deep.  This is to accommodate the 15 to 25 or more ssh sessions running each in a separate window that appear by the end of each day.  Each labeled with the name of the server to which it is connected.  Finding a specific window, or in some cases another window to the same server, is a nightmare.  I realized today that easily 60% to 80% of the clutter on the taskbar is ssh sessions.  I looked out of desperation for KDE to run on windows.  It does.  Sort of&#8230;</p>
<p>A long time ago (2 years?) I found a KDE windows installer that ran on top of cygwin, as long as X11 was fully installed and configured.   I got it all working together in a giant balancing act maybe twice.  The package for KDE was never updated.  The development took off on another direction, <a href="http://windows.kde.org/" title="KDE on Windows">the KDE on Windows project</a>.  But that brief taste&#8230;  It was good.  Strange, seeing the full KDE desktop running within the Windows desktop.  But within that environment I had Konsole, <a href="http://bluemars.org/clipx/" title="clipx - close to klipper">Klipper</a>, <a href="http://virtuawin.sourceforge.net/" title="virtuaWin multiple desktop utility">multiple desktops</a>.  </p>
<p>I&#8217;ve been watching KDE on Windows for a while now.  I tried it maybe a year ago.  The installation process was a number of independent steps, all eerily reminiscent of configuring and recompiling a kernel.  I completed about four steps, and determined to wait and watch and see where the project went.  I waited.  I downloaded and installed a version today &#8211; not bad.  Once it completed installing I went to look for Konsole&#8230;   Uh Oh.</p>
<p>Not there?! WTF?</p>
<p>I&#8217;m not the only one who wanted this.  In searching for Konsole, or a way to install Konsole, I found that Konsole as written is deeply dependent on the whole UNIX X11 environment, and I found <a href="http://sourceforge.net/projects/console" title="console2 on sourceforge">console2</a>. Interesting.  And after mapping a few hot-keys, I have a very close approximation of Konsole, running in windows.  I added C:\cygwin\bin to my path, configured console2 to start with C:\cygwin\bin\bash.exe, and with cygwin providing the ssh binary, I can reduce my taskbar to two labels high instead of three.  Very nice.  </p>
<p>I still miss an agnostic work environment where provisions are made to make sure UNIX users can do corporate stuff too (imap or pop for email, evolution or web access for calendaring, a browser-based access to tickets, etc.).  But this is good coping.  </p>
<p><a href="../../../images/posts/2008/console2_720.jpg" title="console2 screenshot" rel="lightbox"><img src="../../../images/posts/2008/console2_160.jpg" title="screenshot of console2" alt="screenshot of console2"/></a></p>
<p>&nbsp;</p>
<p>&mdash; dsm </p>
<p>&nbsp;</p>
<p><a id=synergy></a></p>
<p>&nbsp;</p>
<p>Synergy&#8230; Another path to a solution.</p>
<p>There is a partial solution I&#8217;ve been playing around with at home &#8211; <a href="http://synergy2.sourceforge.net/" title="synergy website">synergy</a>.  This program allows sharing keyboard and mouse between systems.  Just put the separate monitors next to one another, assign one system as server and the other or others as secondary, tell it where the monitors are in relation to each other, start the server, connect a client, and go.  It copys and syncs the clipboard between systems, which makes it a different approach to solving the same problems. </p>
<p> It does require two separate computers, two separate monitors, and a bit of effort&#8230; </p>
<p><a href="#return" title="return to article">return to article</a></p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2008/08/console2.html&title=console2&#8230;" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2008/08/console2.html&title=console2&#8230;" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2008/08/console2.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2008/08/console2.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2008/08/console2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>stupid shell (and UNIX) tricks</title>
		<link>http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html</link>
		<comments>http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html#comments</comments>
		<pubDate>Tue, 29 Jul 2008 23:52:49 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[move6]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash shell]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">https://dougmunsinger.com/?p=97</guid>
		<description><![CDATA[I love using abobe photoshop C2&#8242;s automation &#8211; especially when resizing a series of images for the web. I would love to run linux entirely &#8211; but linux keeps falling short in graphics programs (yes, I use gimp &#8211; sorry, but Photoshop is better) and printer drivers &#8211; linux still can&#8217;t run my Canon Pixma [...]]]></description>
			<content:encoded><![CDATA[<p>I love using abobe photoshop C2&#8242;s automation &#8211; especially when resizing a series of images for the web.  I would love to run linux entirely &#8211; but linux keeps falling short in graphics programs (yes, I use gimp &#8211; sorry, but Photoshop is better) and printer drivers &#8211; linux still can&#8217;t run my Canon Pixma pro 9000 color printer.  That and every corporation I do work for has some required program or access method that seems to insist on only running on windows. </p>
<p> That said, while all operating systems suck to some degree, Windows consistently manages to suck more than most.  Cygwin supplements Windows pathetic command line with a bash shell and a lot of UNIX functionality.  </p>
<p>When you run adobe batch scripting to resize a series of jpg&#8217;s and then save them in a different directory as gif files, it insists on writing &#8220;copy&#8221; in the file name.  photograph1.jpg becomes &#8220;photograph1 copy.gif&#8221;.  To remove the &#8221; copy&#8221; string, run:</p>
<p><code>$ for i in *<br />
> do<br />
> mv "$i" "${i/\ copy.gif}".gif<br />
> done </code></p>
<p>sed and awk</p>
<p>One of the instructors I had in UNIX system administration courses was&#8230; How to put this&#8230; One brick short of a wall.  He was supposed to include sed and awk UNIX commands i the course, and he glossed over them as &#8220;something you would never use, trust me&#8221;.  A couple of years later, when I needed and had to learn the commands, I thoroughly realized he was very wrong. </p>
<p>I had to rename a series of website pages in a site redesign &#8211; including altering the names inside the pages themselves.  Here&#8217;s how I did it.</p>
<p> Here&#8217;s the command that changed one set of links from the old page to the new:</p>
<p><code><br />
for i in ` grep photographs_5.html * | awk -F : '{ print $1 }'`<br />
do<br />
echo $i<br />
sed  's/photographs_5.html/photographs_001.html/g' &lt; $i &gt; $i.1<br />
mv ${i}.1 ${i}<br />
done<br />
</code></p>
<p>This loops through and finds any files with the string &#8220;photographs_5.html&#8221; <br/><br />
echos out each file, changes (using the sed command, standard UNIX tool&#8230;) from photographs_5.html to photographs_001.html, creating a new file named [file].1,<br/><br />
then replacing the original file by moving (mv) the [file].1 file over on top of the [file].</p>
<p>I love UNIX.  Both of these were done on Windows using the bash shell in <a href="http://www.cygwin.com/" title="cygwin">cygwin</a>.  This supplies basic UNIX functionality to Windows, including the bash shell, sed and awk, ssh and rsync (by selecting the package), wget and gpg (extra package selection), and many other functions.  The setup program downloads a list, within which you can select additional packages, download and install.</p>
<p>Cygwin at least makes Windows somewhat command line friendly.</p>
<p>&mdash;dsm</p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html&title=stupid shell (and UNIX) tricks" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html&title=stupid shell (and UNIX) tricks" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2008/07/stupid-shell-and-unix-tricks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

