<?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>IV Needle</title>
	<atom:link href="http://www.ivneedle.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ivneedle.com</link>
	<description>Injecting Tech into the Vein</description>
	<lastBuildDate>Wed, 02 Feb 2011 02:48:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Add Java support to Chrome in Linux</title>
		<link>http://www.ivneedle.com/2011/02/add-java-support-to-chrome-in-linux/</link>
		<comments>http://www.ivneedle.com/2011/02/add-java-support-to-chrome-in-linux/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 02:48:35 +0000</pubDate>
		<dc:creator>Webstas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=224</guid>
		<description><![CDATA[1. Download the correct bin file NOT the bin.rpm, the correct one will be labled "Linux (self-extracting file)" 32 or 64 which ever version of linux you have installed. su - (your password) cd /home/USER/Download/ mv jre-6u23-linux-i586.bin /opt cd /opt/ chmod a+x jre-6u23-linux-i586.bin ./jre-6u23-linux-i586.bin yum remove java-*-openjdk-plugin ln -s /opt/jre1.6.0_23/lib/i386/libnpjp2.so /opt/google/chrome/plugins/libnpjp2.so For 64-bit environments, the file name [...]]]></description>
			<content:encoded><![CDATA[<p>1. Download the correct bin file NOT the bin.rpm, the correct one will be labled "<a title=" Download Java software for Linux (self-extracting file)" href="http://javadl.sun.com/webapps/download/AutoDL?BundleId=43871">Linux (self-extracting file)</a>" 32 or 64 which ever version of linux you have installed.</p>
<p>su -<br />
(your password)<br />
cd /home/USER/Download/<br />
mv jre-6u23-linux-i586.bin /opt<br />
cd /opt/<br />
chmod a+x jre-6u23-linux-i586.bin<br />
./jre-6u23-linux-i586.bin<br />
yum remove java-*-openjdk-plugin<br />
ln -s /opt/jre1.6.0_23/lib/i386/libnpjp2.so /opt/google/chrome/plugins/libnpjp2.so</p>
<p>For 64-bit environments, the file name will be jre-6u23-linux-x64.bin:</p>
<p>su -<br />
(your password)<br />
cd /home/USER/Download<br />
mv jre-6u23-linux-x64.bin /opt<br />
cd /opt/<br />
chmod a+x jre-6u23-linux-x64.bin<br />
./jre-6u23-linux-x64.bin<br />
yum remove java-*-openjdk-plugin<br />
ln -s /opt/jre1.6.0_23/lib/amd64/libnpjp2.so /opt/google/chrome/plugins/libnpjp2.so</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2011/02/add-java-support-to-chrome-in-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fix NTLDR or any MBR problems with Linux!</title>
		<link>http://www.ivneedle.com/2010/08/fix-ntldr-or-any-mbr-problems-with-linux/</link>
		<comments>http://www.ivneedle.com/2010/08/fix-ntldr-or-any-mbr-problems-with-linux/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 15:38:43 +0000</pubDate>
		<dc:creator>Webstas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=221</guid>
		<description><![CDATA[If you have run into a problem with booting its usually caused by the MBR (Master Boot Record)  being corrupted it is the first 446 bytes of a hard disk,  it usually stores boot information and or a boot loader.  to wipe the MBR without destroying the partition table or any of your files boot [...]]]></description>
			<content:encoded><![CDATA[<p>If you have run into a problem with booting its usually caused by the MBR (Master Boot Record)  being corrupted it is the first 446 bytes of a hard disk,  it usually stores boot information and or a boot loader.  to wipe the MBR without destroying the partition table or any of your files boot into Linux using a live cd.</p>
<p>Open a a terminal as root and enter the following command.</p>
<p><strong>dd if=/dev/zero of=/dev/sda count=1 bs=446</strong></p>
<p><strong>sda </strong> is usually the first master disk, this can change but its usually sda.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2010/08/fix-ntldr-or-any-mbr-problems-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Behold the Magical Jellybean of Wireless Keys</title>
		<link>http://www.ivneedle.com/2010/05/behold-the-magical-jellybean-of-wireless-keys/</link>
		<comments>http://www.ivneedle.com/2010/05/behold-the-magical-jellybean-of-wireless-keys/#comments</comments>
		<pubDate>Mon, 10 May 2010 20:44:49 +0000</pubDate>
		<dc:creator>Heavymeddler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=218</guid>
		<description><![CDATA[If for whatever reason you need to grab the wireless key from your machine, check out WirelessKeyView found here: http://www.nirsoft.net/utils/wireless_key.html This is a cool little tool that will acquire your keys and even write them to a text file for you. Enjoy.]]></description>
			<content:encoded><![CDATA[<p>If for whatever reason you need to grab the wireless key from your machine, check out WirelessKeyView found here:</p>
<p><a href="http://www.nirsoft.net/utils/wireless_key.html">http://www.nirsoft.net/utils/wireless_key.html</a></p>
<p>This is a cool little tool that will acquire your keys and even write them to a text file for you. Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2010/05/behold-the-magical-jellybean-of-wireless-keys/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Share a folder over VirtualBox with a Windows Host and Ubuntu VM</title>
		<link>http://www.ivneedle.com/2010/03/share-a-folder-over-virtualbox-with-a-windows-host-and-ubuntu-vm/</link>
		<comments>http://www.ivneedle.com/2010/03/share-a-folder-over-virtualbox-with-a-windows-host-and-ubuntu-vm/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 19:16:31 +0000</pubDate>
		<dc:creator>Heavymeddler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[shared folder]]></category>
		<category><![CDATA[symbolic link]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=215</guid>
		<description><![CDATA[I ran into some issues while attempting to share a folder from Windows to Ubuntu over VirtualBox. Here are the steps I followed to get this to work: Create a folder in Windows to share (or use one that already exists... your choice) Start the Ubuntu virtual machine On the virtual machine windows, click on [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into some issues while attempting to share a folder from Windows to Ubuntu over VirtualBox. Here are the steps I followed to get this to work:</p>
<ul>
<li>Create a folder in Windows to share (or use one that already exists... your choice)</li>
<li>Start the Ubuntu virtual machine</li>
<li>On the virtual machine windows, click on Devices&gt;Shared Folder...<a href="http://www.ivneedle.com/wp-content/uploads/2010/03/Shared_Folders.png"><img class="size-medium wp-image-216 aligncenter" title="Shared Folders" src="http://www.ivneedle.com/wp-content/uploads/2010/03/Shared_Folders-300x217.png" alt="" width="300" height="217" /></a></li>
<li>Click on the "Add Shared Folders (Ins)" button</li>
<li>Browse to the Windows folder you are planning to shared, name it, and click OK to save</li>
<li>Click OK to close the Shared Folders window</li>
<li>Open the terminal on the Ubuntu VM</li>
<li>Create a directory to mount the share to:</li>
<pre>sudo mkdir /mnt/win_share</pre>
<li>Mount the share to the directory:</li>
<pre>sudo mount.vboxsf Share /mnt/win_share</pre>
</ul>
<p>Add a file to directory and check to see if it shows on both machines. If you'd like to add a link to the share on your desktop, run the the following command in the terminal:</p>
<pre style="padding-left: 30px;">ln -s /mnt/win_share/ /home/&lt;user&gt;/Desktop/Share</pre>
<p>There should now be a link on your Ubuntu Desktop.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2010/03/share-a-folder-over-virtualbox-with-a-windows-host-and-ubuntu-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Xming to export windows</title>
		<link>http://www.ivneedle.com/2010/02/using-xming-to-export-windows/</link>
		<comments>http://www.ivneedle.com/2010/02/using-xming-to-export-windows/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 20:29:00 +0000</pubDate>
		<dc:creator>Alamonot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=207</guid>
		<description><![CDATA[Sometimes it's useful to use a GUI on linux for a specific task.  I came across this because of some things Oracle does, but you can use it for other things, too. 1. Download xming from sourceforge 2. Open putty 3. Go to the SSH section&#62;X11&#62;Enable X11 forwarding 4. Open a connection 5. Run a [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes it's useful to use a GUI on linux for a specific task.  I came across this because of some things Oracle does, but you can use it for other things, too.</p>
<p>1. Download xming from sourceforge</p>
<p>2. Open putty</p>
<p>3. Go to the SSH section&gt;X11&gt;Enable X11 forwarding</p>
<p>4. Open a connection</p>
<p>5. Run a command for something that only runs in a gui, like gedit.</p>
<p>6. The gedit window will appear on your desktop.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2010/02/using-xming-to-export-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Send Data Over a Network Using netcat</title>
		<link>http://www.ivneedle.com/2010/01/send-data-over-a-network-using-netcat/</link>
		<comments>http://www.ivneedle.com/2010/01/send-data-over-a-network-using-netcat/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 19:17:22 +0000</pubDate>
		<dc:creator>Heavymeddler</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[netcat]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=204</guid>
		<description><![CDATA[Often you cannot direct copy files between machines. One way to pass data is using netcat. There are versions of netcat for both Windows and Linux. Here are the steps to setup a connection to transfer data over a network using netcat. Setup netcat to listen (the machine receiving the data)﻿ Command: nc -v -l [...]]]></description>
			<content:encoded><![CDATA[<p>Often you cannot direct copy files between machines. One way to pass data is using netcat. There are versions of netcat for both Windows and Linux. Here are the steps to setup a connection to transfer data over a network using netcat.</p>
<p><strong>Setup netcat to listen (the machine receiving the data)﻿</strong></p>
<ul>
<li>Command: nc -v -l -p 10000 &gt; command.txt</li>
<li>Notes: -p is the port that you are opening up to receive the data. You can name the text file anything you want (usually wise to name it something descriptive).</li>
</ul>
<p><strong>Run a command on the sending machine</strong></p>
<ul>
<li>Command: command | nc receiving_machine_ip_address 10000</li>
<li>When the transfer is complete, kill the command using Ctrl-c</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2010/01/send-data-over-a-network-using-netcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analyzing Volatile Data</title>
		<link>http://www.ivneedle.com/2010/01/analyzing-volatile-data/</link>
		<comments>http://www.ivneedle.com/2010/01/analyzing-volatile-data/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 05:50:30 +0000</pubDate>
		<dc:creator>Heavymeddler</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[volatile]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=193</guid>
		<description><![CDATA[What to check for when analyzing volatile data through a netcat connection: The System Date and Time Current Network Connects Open TCP or UDP Ports Which Executables Are Opening TCP or UDP Ports Cached NetBIOS Name Table Users Currently Logged On The Internal Routing Table Running Processes Running Services Scheduled Jobs Open Files Process Memory [...]]]></description>
			<content:encoded><![CDATA[<p>What to check for when analyzing volatile data through a netcat connection:</p>
<ul>
<li>The System Date and Time</li>
<li>Current Network Connects</li>
<li>Open TCP or UDP Ports</li>
<li>Which Executables Are Opening TCP or UDP Ports</li>
<li>Cached NetBIOS Name Table</li>
<li>Users Currently Logged On</li>
<li>The Internal Routing Table</li>
<li>Running Processes</li>
<li>Running Services</li>
<li>Scheduled Jobs</li>
<li>Open Files</li>
<li>Process Memory Dumps</li>
</ul>
<p><strong><span style="text-decoration: underline;">The System Date and Time</span></strong></p>
<p>Check this to keep the machine time in sync with logs and trusted NTP server.</p>
<p>Windows Commands:</p>
<ul>
<li>date</li>
<li>time</li>
</ul>
<p>Linux/Unix Command:</p>
<ul>
<li>date</li>
</ul>
<p><strong><span style="text-decoration: underline;">Current Network Configuration</span></strong></p>
<p>Check this to see if an attacker is currently connected or running a brute force attack against the internet. Note that port assignments can be checked at <a href="http://www.portsdb.org">www.portsdb.org</a>.</p>
<p>Windows/Linux/Unix Command:</p>
<ul>
<li>netstat -an (Note that the -an flag specifies to check all network connections)</li>
</ul>
<p><strong><span style="text-decoration: underline;">Open TCP or UDP Ports</span></strong></p>
<p>Check for rogue ports that were not opened by the system. A suspiciously open port can be the sign of a back door created by an attacker. Note that port assignments can be checked at <a href="http://www.portsdb.org">www.portsdb.org</a>.</p>
<p>Windows Command:</p>
<ul>
<li> netstat -an</li>
</ul>
<p>Linux/Unix Command;</p>
<ul>
<li>netstat -anp (the p shows the process number that opened the port)</li>
</ul>
<p><strong><span style="text-decoration: underline;">Executables Opening TCP or UDP Ports</span></strong></p>
<p>Using a tool called FPort distributed from <a href="http://www.foundstone.com" target="_blank">www.foundstone.com</a>, scan which executables are using ports. Compare the list to the list of questionable ports you gathered while running netcat. Research which process are system processes and which are suspicious.</p>
<p>Windows Command:</p>
<ul>
<li>FPort</li>
</ul>
<p>Linux/Unix Command:</p>
<ul>
<li>lsof (adding -n command lengthens the output)</li>
</ul>
<p><strong><span style="text-decoration: underline;">Cached NetBIOS Name Tables (Windows only)</span></strong></p>
<p>Checking the NetBIOS Name Table cache will show the NetBIOS name or IP address of recently connected machines.</p>
<p>Windows Command:</p>
<ul>
<li>nbtstat -c (the -c switch instructs nbtstat to dump the cache)</li>
</ul>
<p><strong><span style="text-decoration: underline;">Users Currently Logged On (Windows only)</span></strong></p>
<p>Using the PSLoggedOn tool in the PSTools suite distributed at <a href="http://www.sysinternals.com" target="_blank">www.sysinternals.com</a> you can see who is currently logged into your system. This would catch anybody that is connected remotely.</p>
<p>Windows Command:</p>
<ul>
<li>psloggedon</li>
</ul>
<p><span style="text-decoration: underline;"><strong>The Internal Routing Table</strong></span></p>
<p>Checking the Routing Table will identify instances where an attacker is routing his connection to avoid a firewall or gain access from a machine with greater access.</p>
<p>Windows/Linux/Unix Command:</p>
<ul>
<li>netstat -rn</li>
</ul>
<p><strong><span style="text-decoration: underline;">Running Processes</span></strong></p>
<p>Using the pslist tool to check which processes are running will show which processes have been run by an attacker. The elapsed time will help indicate which processes were launched by the system and which were launched by an attacker.</p>
<p>Windows Command:</p>
<ul>
<li>pslist</li>
</ul>
<p>Linux/Unix Command:</p>
<ul>
<li>ps -aux</li>
</ul>
<p><strong><span style="text-decoration: underline;">Running Services (Windows only)</span></strong></p>
<p>Using the PSService tool you can examine the services running on the target machine. Finding a rogue service can be valuable since attackers can run executables from them.</p>
<p>Windows Command:</p>
<ul>
<li>psservice</li>
</ul>
<p><strong><span style="text-decoration: underline;">Scheduled Jobs</span></strong></p>
<p>Attackers can schedule jobs to do things while they are not even there.</p>
<p>Windows Command:</p>
<ul>
<li>at</li>
</ul>
<p>Linux/Unix Command:</p>
<ul>
<li>cron</li>
</ul>
<p><strong><span style="text-decoration: underline;">Open Files</span></strong></p>
<p>The PSfile tool will check for any files opened remotely on the machine. This will help determine more information about the attack.</p>
<p>Windows Command:</p>
<ul>
<li>psfile</li>
</ul>
<p>Linux/Unix Command:</p>
<ul>
<li>lsof</li>
</ul>
<p><strong><span style="text-decoration: underline;">Process Memory Dumps (Windows only)</span></strong></p>
<p>Running process memory dumps and using tools to inspect the data will help gain additional information about the attacker and their intent. This is extensive and requires a large knowledge base to know what to look for.</p>
<p>Windows Command/Tool:</p>
<ul>
<li>userdump.exe (provided by Microsoft)</li>
</ul>
<p><strong><span style="text-decoration: underline;">Full System Memory Dumps (Windows only)</span></strong></p>
<p>Using the dd tool you can dump the entire memory of the target computer. It is wise to map a drive to a remote machine so that you do not overwrite valuable data.</p>
<p>Windows Command/Tools:</p>
<ul>
<li>dd</li>
</ul>
<p><strong><span style="text-decoration: underline;">Loaded Kernel Modules (Linux/Unix only)</span></strong></p>
<p>This command unloads the kernel modules so that you can inspect for items that are not system related.</p>
<p>Linux/Unix Command:</p>
<ul>
<li>lsmod</li>
</ul>
<p><strong><span style="text-decoration: underline;">Mounted File Systems (Linux/Unix only)</span></strong></p>
<p>These commands check for mounted file systems that are unexpected.</p>
<p>Linux/Unix Command:</p>
<ul>
<li>mount</li>
<li>df</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2010/01/analyzing-volatile-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The vim Cheat Sheet</title>
		<link>http://www.ivneedle.com/2009/12/the-vim-cheat-sheet/</link>
		<comments>http://www.ivneedle.com/2009/12/the-vim-cheat-sheet/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 22:00:10 +0000</pubDate>
		<dc:creator>Heavymeddler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=190</guid>
		<description><![CDATA[This was written by Nana Långstedt and posted at http://www.tuxfiles.org/linuxhelp/vimcheat.html. I copied it over here because it is easier for me to find it here. Working with files Vim command Action :e filename Open a new file. You can use the Tab key for automatic file name completion, just like at the shell command prompt. [...]]]></description>
			<content:encoded><![CDATA[<p>This was written by Nana Långstedt and posted at <a href="http://www.tuxfiles.org/linuxhelp/vimcheat.html" target="_blank">http://www.tuxfiles.org/linuxhelp/vimcheat.html</a>. I copied it over here because it is easier for me to find it here.</p>
<table border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td id="files" colspan="2"><em><strong>Working with files</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>:e filename</td>
<td>Open a new file. You can use the Tab key for automatic file name completion, just like at the shell command prompt.</td>
</tr>
<tr>
<td>:w filename</td>
<td>Save changes to a file. If you don't specify a file name, Vim saves as the file name you were editing. For saving the file under a different name, specify the file name.</td>
</tr>
<tr>
<td>:q</td>
<td>Quit Vim. If you have unsaved changes, Vim refuses to exit.</td>
</tr>
<tr>
<td>:q!</td>
<td>Exit Vim without saving changes.</td>
</tr>
<tr>
<td>:wq</td>
<td>Write the file and exit.</td>
</tr>
<tr>
<td> <img src='http://www.ivneedle.com/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> </td>
<td>Almost the same as :wq, write the file and exit if you've made changes to the file. If you haven't made any changes to the file, Vim exits without writing the file.</td>
</tr>
<tr>
<td id="nav" colspan="2"><em><strong>Moving around in the file</strong></em></td>
</tr>
<tr>
<td colspan="2">These Vim commands and keys work both in command mode and visual mode.</td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>j or Up Arrow</td>
<td>Move the cursor up one line.</td>
</tr>
<tr>
<td>k or Down Arrow</td>
<td>Down one line.</td>
</tr>
<tr>
<td>h or Left Arrow</td>
<td>Left one character.</td>
</tr>
<tr>
<td>l or Right Arrow</td>
<td>Right one character.</td>
</tr>
<tr>
<td>e</td>
<td>To the end of a word.</td>
</tr>
<tr>
<td>E</td>
<td>To the end of a whitespace-delimited word.</td>
</tr>
<tr>
<td>b</td>
<td>To the beginning of a word.</td>
</tr>
<tr>
<td>B</td>
<td>To the beginning of a whitespace-delimited word.</td>
</tr>
<tr>
<td>0</td>
<td>To the beginning of a line.</td>
</tr>
<tr>
<td>^</td>
<td>To the first non-whitespace character of a line.</td>
</tr>
<tr>
<td>$</td>
<td>To the end of a line.</td>
</tr>
<tr>
<td>H</td>
<td>To the first line of the screen.</td>
</tr>
<tr>
<td>M</td>
<td>To the middle line of the screen.</td>
</tr>
<tr>
<td>L</td>
<td>To the the last line of the screen.</td>
</tr>
<tr>
<td>:<em>n</em></td>
<td>Jump to line number <em>n</em>. For example, to jump to line 42, you'd type :42</td>
</tr>
<tr>
<td id="insert" colspan="2"><em><strong>Inserting and overwriting text</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>i</td>
<td>Insert before cursor.</td>
</tr>
<tr>
<td>I</td>
<td>Insert to the start of the current line.</td>
</tr>
<tr>
<td>a</td>
<td>Append after cursor.</td>
</tr>
<tr>
<td>A</td>
<td>Append to the end of the current line.</td>
</tr>
<tr>
<td>o</td>
<td>Open a new line below and insert.</td>
</tr>
<tr>
<td>O</td>
<td>Open a new line above and insert.</td>
</tr>
<tr>
<td>C</td>
<td>Change the rest of the current line.</td>
</tr>
<tr>
<td>r</td>
<td>Overwrite one character. After overwriting the single character, go back to command mode.</td>
</tr>
<tr>
<td>R</td>
<td>Enter insert mode but replace characters rather than inserting.</td>
</tr>
<tr>
<td>The ESC key</td>
<td>Exit insert/overwrite mode and go back to command mode.</td>
</tr>
<tr>
<td id="delete" colspan="2"><em><strong>Deleting text</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>x</td>
<td>Delete characters under the cursor.</td>
</tr>
<tr>
<td>X</td>
<td>Delete characters before the cursor.</td>
</tr>
<tr>
<td>dd or :d</td>
<td>Delete the current line.</td>
</tr>
<tr>
<td id="visual" colspan="2"><em><strong>Entering visual mode</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>v</td>
<td>Start highlighting characters. Use the normal <a href="http://www.tuxfiles.org/linuxhelp/vimcheat.html#nav">movement keys and commands</a> to select text for highlighting.</td>
</tr>
<tr>
<td>V</td>
<td>Start highlighting lines.</td>
</tr>
<tr>
<td>The ESC key</td>
<td>Exit visual mode and return to command mode.</td>
</tr>
<tr>
<td id="visualcom" colspan="2"><em><strong>Editing blocks of text</strong></em></td>
</tr>
<tr>
<td colspan="2">Note: the Vim commands marked with (V) work in visual mode, when you've selected some text. The other commands work in the command mode, when you haven't selected any text.</td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>~</td>
<td>Change the case of characters. This works both in visual and command mode. In visual mode, change the case of highlighted characters. In command mode, change the case of the character uder cursor.</td>
</tr>
<tr>
<td>&gt; (V)</td>
<td>Shift right (indent).</td>
</tr>
<tr>
<td>&lt; (V)</td>
<td>Shift left (de-indent).</td>
</tr>
<tr>
<td>c (V)</td>
<td>Change the highlighted text.</td>
</tr>
<tr>
<td>y (V)</td>
<td>Yank the highlighted text. In Windows terms, "copy the selected text to clipboard."</td>
</tr>
<tr>
<td>d (V)</td>
<td>Delete the highlighted text. In Windows terms, "cut the selected text to clipboard."</td>
</tr>
<tr>
<td>yy or :y or Y</td>
<td>Yank the current line. You don't need to highlight it first.</td>
</tr>
<tr>
<td>dd or :d</td>
<td>Delete the current line. Again, you don't need to highlight it first.</td>
</tr>
<tr>
<td>p</td>
<td>Put the text you yanked or deleted. In Windows terms, "paste the contents of the clipboard". Put characters after the cursor. Put lines below the current line.</td>
</tr>
<tr>
<td>P</td>
<td>Put characters before the cursor. Put lines above the current line.</td>
</tr>
<tr>
<td id="ooopsie" colspan="2"><em><strong>Undo and redo</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>u</td>
<td>Undo the last action.</td>
</tr>
<tr>
<td>U</td>
<td>Undo all the latest changes that were made to the current line.</td>
</tr>
<tr>
<td>Ctrl + r</td>
<td>Redo.</td>
</tr>
<tr>
<td id="search" colspan="2"><em><strong>Search</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>/<em>pattern</em></td>
<td>Search the file for <em>pattern</em>.</td>
</tr>
<tr>
<td>n</td>
<td>Scan for next search match in the same direction.</td>
</tr>
<tr>
<td>N</td>
<td>Scan for next search match but opposite direction.</td>
</tr>
<tr>
<td id="replace" colspan="2"><em><strong>Replace</strong></em></td>
</tr>
<tr>
<td><em>Vim command</em></td>
<td><em>Action</em></td>
</tr>
<tr>
<td>:<em>r</em>s/<em>foo</em>/<em>bar</em>/<em>a</em></td>
<td>Substitute <em>foo</em> with <em>bar</em>. <em>r</em> determines the range and <em>a</em> determines the arguments.</td>
</tr>
<tr>
<td colspan="2">The range (<em>r</em>) can be</td>
</tr>
<tr>
<td>nothing</td>
<td>Work on current line only.</td>
</tr>
<tr>
<td>number</td>
<td>Work on the line whose number you give.</td>
</tr>
<tr>
<td>%</td>
<td>The whole file.</td>
</tr>
<tr>
<td colspan="2">Arguments (<em>a</em>) can be</td>
</tr>
<tr>
<td>g</td>
<td>Replace all occurrences in the line. Without this, Vim replaces only the first occurrences in each line.</td>
</tr>
<tr>
<td>i</td>
<td>Ignore case for the search pattern.</td>
</tr>
<tr>
<td>I</td>
<td>Don't ignore case.</td>
</tr>
<tr>
<td>c</td>
<td>Confirm each substitution. You can type y to substitute this match, n to skip this match, a to substitute this and all the remaining matches ("Yes to all"), and q to quit substitution.</td>
</tr>
<tr>
<td colspan="2">Examples</td>
</tr>
<tr>
<td>:452s/<em>foo</em>/<em>bar</em>/</td>
<td>Replace the first occurrence of the word <em>foo</em> with <em>bar</em> on line number 452.</td>
</tr>
<tr>
<td>:s/<em>foo</em>/<em>bar</em>/g</td>
<td>Replace every occurrence of the word <em>foo</em> with <em>bar</em> on current line.</td>
</tr>
<tr>
<td>:%s/<em>foo</em>/<em>bar</em>/g</td>
<td>Replace every occurrence of the word <em>foo</em> with <em>bar</em> in the whole file.</td>
</tr>
<tr>
<td>:%s/<em>foo</em>/<em>bar</em>/gi</td>
<td>The same as above, but ignore the case of the pattern you want to substitute. This replaces <em>foo</em>, <em>FOO</em>, <em>Foo</em>, and so on.</td>
</tr>
<tr>
<td>:%s/<em>foo</em>/<em>bar</em>/gc</td>
<td>Confirm every substitution.</td>
</tr>
<tr>
<td>:%s/<em>foo</em>/<em>bar</em>/c</td>
<td>For each line on the file, replace the first occurrence of <em>foo</em> with <em>bar</em> and confirm every substitution.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2009/12/the-vim-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting to an SSH server, really really fast</title>
		<link>http://www.ivneedle.com/2009/11/connecting-to-an-ssh-server-really-really-fast/</link>
		<comments>http://www.ivneedle.com/2009/11/connecting-to-an-ssh-server-really-really-fast/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 16:41:15 +0000</pubDate>
		<dc:creator>Alamonot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=186</guid>
		<description><![CDATA[This post assumes you have the following: an ssh server, putty, and autohotkey-a desktop scripting tool. Open Putty, and create a session with any and all settings you would want in putty. Add tunnels, compression, etc, whatever you usually do when you start a putty session Save your session for future use. You'll use the [...]]]></description>
			<content:encoded><![CDATA[<p>This post assumes you have the following: an ssh server, putty, and autohotkey-a desktop scripting tool.</p>
<ol>
<li>Open Putty, and create a session with any and all settings you would want in putty. Add tunnels, compression, etc, whatever you usually do when you start a putty session</li>
<li>Save your session for future use. You'll use the name of this session later.</li>
<li>Write a simple batch script that will load putty, and send a user name and pw.  Mine looks like this: "\putty.exe -load sessionname -l username -pw password</li>
<li>Save your batch file.</li>
<li>This s where we start using autohotkey.  You'll want to download this, and open it to create a new autohotkey script. Here's how my script looks:</li>
</ol>
<pre style="padding-left: 60px;">;
; AutoHotkey Version: 1.x
; Language:       English
; Platform:       Win9x/NT
; Author:         A.N.Other &lt;myemail@nowhere.com&gt;
;
; Script Function:
;    Template script (you can customize this template by editing 

"ShellNew\Template.ahk" in your Windows folder)
;

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey 

releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and 

reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#p::
Run <strong>"location of your putty batch file"</strong>
WinWaitActive, ahk_class PuTTY,,3
WinMinimize
WinWaitActive, ahk_class ConsoleWindowClass,,3
WinMinimize
return

#c::
If WinExist("ahk_class PuTTY")
{
 WinClose
}
If WinExist("ahk_class #32770")
{
 WinActivate
 Send {Enter}
}

return</pre>
<p>Save that script and run it. When ever you press windowkey+p it will start putty.  When ever you press windowkey+c it will close putty!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2009/11/connecting-to-an-ssh-server-really-really-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install windows from usb flash</title>
		<link>http://www.ivneedle.com/2009/10/install-windows-from-usb-flash/</link>
		<comments>http://www.ivneedle.com/2009/10/install-windows-from-usb-flash/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 16:57:16 +0000</pubDate>
		<dc:creator>Webstas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ivneedle.com/?p=184</guid>
		<description><![CDATA[Recently came across this little gem, it makes installing windows pretty much any version alot faster and easier.  It allows you to create a bootable flasd drive from a windows cd or other source, it also let you setup  parameters so it doesnt need user input ie. cd key, user names, language, timezones. WinToFlash - [...]]]></description>
			<content:encoded><![CDATA[<p>Recently came across this little gem, it makes installing windows pretty much any version alot faster and easier.  It allows you to create a bootable flasd drive from a windows cd or other source, it also let you setup  parameters so it doesnt need user input ie. cd key, user names, language, timezones.</p>
<p><a href="http://wintoflash.com/download/en/">WinToFlash - Install Windows from usb - Download page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivneedle.com/2009/10/install-windows-from-usb-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

