<?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>Sexy Sexy Penguins &#187; POW</title>
	<atom:link href="http://sexysexypenguins.com/tag/pow/feed/" rel="self" type="application/rss+xml" />
	<link>http://sexysexypenguins.com</link>
	<description>I love the smell of &#34;Free Software&#34; in the morning</description>
	<lastBuildDate>Sat, 19 May 2012 20:27:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>POW: Agave</title>
		<link>http://sexysexypenguins.com/2007/11/28/pow-agave/</link>
		<comments>http://sexysexypenguins.com/2007/11/28/pow-agave/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 14:19:24 +0000</pubDate>
		<dc:creator>herlo</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Guru]]></category>
		<category><![CDATA[POW]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[agave]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[UTOS]]></category>

		<guid isPermaLink="false">http://fedora-tutorials.com/2007/11/28/pow-agave/</guid>
		<description><![CDATA[An interesting tool I came across in the last week or so is this week&#8217;s Program of the Week: Agave, from the GNOME Community. Recently, we&#8217;ve been working on a new logo for the Utah Open Source Foundation, and needed &#8230; <a href="http://sexysexypenguins.com/2007/11/28/pow-agave/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>An interesting tool I came across in the last week or so is this week&#8217;s Program of the Week: <a href="http://home.gna.org/colorscheme/">Agave</a>, from the <a href="http://www.gnome.org/community/">GNOME Community</a>.  Recently, we&#8217;ve been working on a new logo for the <a href="http://utosf.org" target="_blank">Utah Open Source Foundation</a>, and needed to come up with some simple color schemes that would work well with our logo.  In doing so, I came across Agave and started playing with possible combinations of colors we could use.</p>
<p>This tutorial will cover some of the simple, but effective features Agave provides to help provide a good contrast in designing logos, websites and more.</p>
<p>To install Agave, I simply did the following:</p>
<p><code># yum -y install agave<br />
.. snip ..<br />
Installed: agave.i386 0:0.4.2-5.fc8<br />
Dependency Installed: gconfmm26.i386 0:2.20.0-1.fc8<br />
Complete!<br />
</code></p>
<p>Once Agave is installed, it is immediately available from the main <em>Applications -&gt; Graphics</em> menu in GNOME.  If you use a different desktop, its possible to type <code>agave</code> at the command line. Agave starts up similar to this screenshot:</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave-start.png" title="agave-start.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave-start.thumbnail.png" alt="agave-start.png" /></a></p>
<p>As is shown above, its simple to see that the three colors here would go nicely together, maybe a bit bright for a website, but not too bad for a logo maybe.  In our logo, however, we didn&#8217;t want such bright colors, plus we wanted to base it on a color that already existed in our already established brand logo seen below:</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/utos_bc.gif" border="0" title="utos_bc.gif"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/utos_bc.thumbnail.gif" alt="utos_bc.gif" /></a></p>
<p>This logo is well known in our community, and thus we wanted to make sure to keep the look and feel as our org morphs into its true form.  Out game GIMP and with the color picker tool, I obtained the bluish color needed for contrast.   Agave only needs the value to give several different options through its several available views.  The first view shown is the <strong>triads</strong> view, in other words, a scheme with three colors that fit well together:</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave4.png" title="agave4.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave4.thumbnail.png" alt="agave4.png" /></a>  yields the triad   <a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave3.png" title="agave3.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave3.thumbnail.png" alt="agave3.png" /></a></p>
<p>But the real power of Agave is in this section of the application:</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave-power.png" title="agave-power.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/agave-power.png" alt="agave-power.png" /></a></p>
<p>The color picker provides for easy to choose colors on the left.</p>
<p>On the right hand side, is the color scheme chooser which allows 6 different choices; Complements, Split-Complements, Triads (3 colors), Tetrads (4 colors), Analagous and Monochromatic.  In addition, on the toolbar near the top, is another feature that allows random color schemes to be chosen.</p>
<p>When we&#8217;ve finished our site and logo, I&#8217;ll update this article with the results.</p>
<p>Try out Agave today and maybe even paint your house using its recommendations!</p>
<p>Cheers,</p>
<p>Herlo</p>
]]></content:encoded>
			<wfw:commentRss>http://sexysexypenguins.com/2007/11/28/pow-agave/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>POW: apg, Automated Password Generator</title>
		<link>http://sexysexypenguins.com/2007/11/21/pow-apg-automated-password-generator/</link>
		<comments>http://sexysexypenguins.com/2007/11/21/pow-apg-automated-password-generator/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 17:04:51 +0000</pubDate>
		<dc:creator>herlo</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Guru]]></category>
		<category><![CDATA[POW]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[apg]]></category>

		<guid isPermaLink="false">http://fedora-tutorials.com/2007/11/21/pow-apg-automated-password-generator/</guid>
		<description><![CDATA[This week&#8217;s program may seem like a bit of a cop out, but it really isn&#8217;t. I&#8217;ve regularly found myself in need of some quick passwords to hand out to users that are both semi-secure and easy to remember. With &#8230; <a href="http://sexysexypenguins.com/2007/11/21/pow-apg-automated-password-generator/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week&#8217;s program may seem like a bit of a cop out, but it really isn&#8217;t.  I&#8217;ve regularly found myself in need of some quick passwords to hand out to users that are both semi-secure and easy to remember.  With <strong>apg</strong>, this can become a reality.</p>
<p>First, install <strong>apg</strong>:</p>
<pre># yum install apg
.. snip ..
Install      1 Package(s)
.. snip ..
Total download size: 101 k
Is this ok [y/N]: <strong>y</strong>
.. snip ..
Installed: apg.i386 0:2.3.0b-5.fc8
Complete!</pre>
<p><strong>apg</strong> does provide several switches which help to provide an easy way to distribute passwords.  Recently, I generated random, yet pronounceable passwords for about 30 users of an application I was using.  it was quite nice to let the users login and feel safe with my choices of passwords.</p>
<p>To start with <strong>apg</strong> is quite easy to generate a set of passwords:</p>
<pre>$ apg
NatnawmIx
GhisImAv*
Bahiwaihet
adMuhevep
Ombachat
cier]bipt</pre>
<p>These passwords are the default set from apg, providing six pronounceable, 8-10 digit,   In my opinion, its better to lose a bit of security to make a password easy to remember, than to have a user have to write the password down, more or less defeating the purpose of the password in the first place.</p>
<p>Because of my opinion, (and no, I&#8217;m not a security expert by any means, just using common sense), its probably a good idea to have a look at some of the switches provided by <strong>apg</strong>:</p>
<pre>-a : <em>0</em> (default) will make the passwords semi-pronounceable, <em>1</em> on the other hand, will be pseudo-random

-n : tell <strong>apg</strong> how many passwords to display

-m/-x : the minimum/maximum length of the generated passwords</pre>
<p>Here&#8217;s an example of these options in use:</p>
<pre>$ apg -a 1 -n 2 -m 7 -x 10</pre>
<p><strong>apg</strong> has more to give us though.  We can use some standard Linux password checking utilities to help us:</p>
<pre>-r : checks the generated passwords against a particular dictionary file.  /usr/share/dict/words, for example.</pre>
<p>Adding this to our previous example (and removing the -a option) will verify the password doesn&#8217;t have any dictionary words:</p>
<pre>$ apg -r /usr/share/dict/words -n 2 -m 7 -x 10</pre>
<p>The last component is <em>-M mode</em>, which can request/require that a password has a particular set of attributes.  Its a bit more complex than the others above.  The <em>mode</em> consists of eight letters, <em>S</em>, <em>N</em>, <em>C</em> and <em>L</em>, in both upper and lower case.</p>
<pre>S :  must use special symbol set for every generated password.
s :  should use special symbol set for password generation.

N : must use numeral symbol set for every generated password.
n : should use numeral symbol set for password generation.

C : must use capital symbol set for every generated password.
c : should use capital symbol set for password generation.

L : must use small letters symbol set for every generated password (always present if pronounceable  password generation algorithm is used).
l  : should use small letters symbol set for password generation.</pre>
<p>As you might be able to tell, the list above is almost directly from the <em>man</em> page for <strong>apg</strong>.  This is on purpose as it is very well explained (and recommended to read each and every <em>man</em> page for any tool used).   Many a good trick has come directly from the <em>man</em> pages.</p>
<p>Let&#8217;s see these options in use:</p>
<pre>$ apg -n 2 -m 7 -x 10 -M SCnL
Hej=Nio
nefMit/</pre>
<p>What is noted right away during several iterations of these <em>modes</em> is the fact that rarely, if ever, is a number included.  It seems the lowercase modes are not strong suggestions except in the case of &#8220;lower case letters&#8221;.  However, using the uppercase mode values works every time as expected.</p>
<p><strong>apg</strong> is a simple, yet effective tool for generating passwords.  My hope is that you decide to use more secure passwords in the future with tools like <strong>apg</strong>.</p>
<p>Cheers,</p>
<p>Herlo</p>
]]></content:encoded>
			<wfw:commentRss>http://sexysexypenguins.com/2007/11/21/pow-apg-automated-password-generator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>POW: Bluetooth Improvements in Fedora 8</title>
		<link>http://sexysexypenguins.com/2007/11/14/pow-bluetooth-improvements-in-fedora-8/</link>
		<comments>http://sexysexypenguins.com/2007/11/14/pow-bluetooth-improvements-in-fedora-8/#comments</comments>
		<pubDate>Wed, 14 Nov 2007 16:16:55 +0000</pubDate>
		<dc:creator>herlo</dc:creator>
				<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Guru]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[POW]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[f8]]></category>
		<category><![CDATA[gnome-bluetooth]]></category>
		<category><![CDATA[hidd]]></category>
		<category><![CDATA[mouse]]></category>

		<guid isPermaLink="false">http://fedora-tutorials.com/2007/11/14/pow-bluetooth-improvements-in-fedora-8/</guid>
		<description><![CDATA[The POW is going to be the improvements made in the Bluetooth functionality in Fedora 8. I&#8217;m actually quite impressed with it as its been a bit of a challenge to keep my little mouse connected in the past. Fedora &#8230; <a href="http://sexysexypenguins.com/2007/11/14/pow-bluetooth-improvements-in-fedora-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The POW is going to be the improvements made in the Bluetooth functionality in Fedora 8.  I&#8217;m actually quite impressed with it as its been a bit of a challenge to keep my little mouse connected in the past.</p>
<p>Fedora 8 provides a new extended technology with its bluez-gnome package.  In fact, the simplicity of it is that I only have to be able to click and approve a new device.</p>
<p>When I first turn on my bluetooth mouse and start to move it around, it doesn&#8217;t work, but up in the top right hand corner of my GNOME desktop is the bluetooth manager.  It has a message for me:</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth-authorize.png" title="bluetooth-authorize.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth-authorize.thumbnail.png" alt="bluetooth-authorize.png" /></a></p>
<p>The message indicates a click to authorize the device, namely the bluetooth mouse.  (One note here, I was originally unable to use my touchpad, so I had to resort to other tactics [not pretty] to enable my mouse.  Probably ought to have some other options available instead of clicking.)</p>
<p>Clicking on the notification window above brings me to an authorization window.</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth3.png" title="bluetooth3.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth3.thumbnail.png" alt="bluetooth3.png" /></a></p>
<p>At this point, authorization is quite simple.  Click yes for a one time authorization of the mouse (Note the Bluetooth Travel Mouse indicated in the description), and to authorize it more permanently, choose <em>Always Grant Access</em>.</p>
<p>That&#8217;s it.  My Bluetooth mouse is now enabled and working.  I&#8217;d say this is much friendlier than what I used to have to do, including running hidd &#8211;connect &lt;bluetooth id&gt; after pressing the little connect button on the bottom of the mouse.  This is sure nice now!</p>
<p>Its possible, that at some point, disconnecting the device might be necessary.  To do this, right-click on the nice little Bluetooth logo at the top right of your screen.</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth5.png" title="bluetooth5.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth5.thumbnail.png" alt="bluetooth5.png" /></a></p>
<p>Choose <em>Preferences</em>.  Up pops the Bluetooth Preferences window.  From this window, three tabs are available.  In the first (and also selected) tab, there is a section at the bottom of the window which lists the devices that are currently bonded and/or trusted.  Choose the device from the list and then the appropriate action.  The choices are Disconnect, Trust or Delete.</p>
<p><a href="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth4.png" title="bluetooth4.png"><img src="http://fedora-tutorials.com/wp-content/uploads/2007/11/bluetooth4.thumbnail.png" alt="bluetooth4.png" /></a></p>
<p>In addition to just configuring your devices, it appears it might be possible to do things like Bluetooth DUN with a Treo, or enable data synchronization between laptops.  One thing I&#8217;ve always wanted to try is to get my bluetooth headset working so I could do Skype or Asterisk phone calls through my headset, to my computer and out through the service.</p>
<p>Cheers,</p>
<p>Herlo</p>
]]></content:encoded>
			<wfw:commentRss>http://sexysexypenguins.com/2007/11/14/pow-bluetooth-improvements-in-fedora-8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>POW: Yum installation by groups</title>
		<link>http://sexysexypenguins.com/2007/10/31/yum-installation-by-groups/</link>
		<comments>http://sexysexypenguins.com/2007/10/31/yum-installation-by-groups/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 20:28:14 +0000</pubDate>
		<dc:creator>herlo</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Guru]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[POW]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Yum]]></category>
		<category><![CDATA[groupinfo]]></category>
		<category><![CDATA[groupinstall]]></category>
		<category><![CDATA[grouplist]]></category>

		<guid isPermaLink="false">http://fedora-tutorials.com/2007/10/31/yum-installation-by-groups/</guid>
		<description><![CDATA[The second in the Program of the Week (POW) is here. Yum, the Yellowdog Updater Modifer, has a very interesting feature. One which you might find useful if you want to install an entire set of packages for say a &#8230; <a href="http://sexysexypenguins.com/2007/10/31/yum-installation-by-groups/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The second in the Program of the Week (POW) is here.</p>
<p>Yum, the Yellowdog Updater Modifer, has a very interesting feature.  One which you might find useful if you want to install an entire set of packages for say a new &#8220;Windows File Server&#8221;.</p>
<p>Yum provides this feature right out of the box these days, and its quite a nice feature.  SUSE 10.1 has rug which is a very similar feature, called bundles.  I would guess that Ubuntu either already has this feature, or will in the near future.</p>
<p>So how does installation by groups work?  Pretty simple really, first we must learn a few new options in yum:</p>
<p>First is &#8220;grouplist&#8221;.  Grouplist will tell you which groups of packages you have installed and which ones haven&#8217;t been installed.</p>
<blockquote>
<pre>$ yum grouplist</pre>
<pre>Setting up Group Process

Installed Groups:
  Office/Productivity
  Engineering and Scientific
  .. snip ..

Available Groups:
  .. snip ..

  Windows File Server
  .. snip ..

  Development Tools
Done</pre>
</blockquote>
<p>In my case, you can see that I&#8217;ve not yet installed &#8220;Windows File Server&#8221;.  Interestingly enough, I&#8217;m not sure what&#8217;s in that group of packages, so its time to check:</p>
<blockquote>
<pre>$ yum groupinfo "Windows File Server"
Setting up Group Process</pre>
<pre>Group: Windows File Server
 Description: This package group allows you to share files
 between Linux and MS Windows(tm) systems.

 Mandatory Packages:
   samba
   samba-client
 Default Packages:
   system-config-samba</pre>
</blockquote>
<p>Wow, quite a few packages, there&#8217;s also some good information here.  We now know that there are 10 optional packages and 1 conditional package that can be installed.  To get the details on any of these packages, yum can tell us:</p>
<blockquote>
<pre>$ yum info samba
  .. snip ..

Available Packages
Name   : samba
Arch   : i386
Version: 3.0.26a
Release: 0.fc7
Size   : 3.1 M
Repo   : updates
Summary: The Samba Suite of programs
Description:Samba is the suite of programs by which a lot of
PC-related machines share files, printers, and other
information (such as lists of available files and printers).
The Windows NT, OS/2, and Linux operating systems support
this natively, and add-on packages can enable the same thing
for DOS, Windows, VMS, UNIX of all kinds, MVS,
and more..</pre>
</blockquote>
<p>Yum informs us that the &#8220;samba&#8221; package is useful for setting up file sharing between Windows and Linux.  Other packages from the list above will also be installed so we&#8217;ll get to play with some of those as well.  If desired, &#8216;yum info&#8217; can be run for each of the packages found in the grouplist.  However, for us, lets move on and install the group of packages:</p>
<blockquote>
<pre>$ su -# yum groupinstall "Windows File Server"
.. snip ..

============================================================
Package               Arch    Version        Repo      Size
============================================================
Installing:
system-config-samba   noarch  1.2.52-1.fc7   updates  287 k
Installing for dependencies:
samba                 i386    3.0.26a-0.fc7  updates  3.1 M
Transaction Summary
============================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 3.4 M
Is this ok [y/N]:</pre>
</blockquote>
<p>At this point, we need to choose whether we&#8217;re going to install the 2 packages that will enable samba for us.   Hitting enter will answer no, so we need to type a &#8216;y&#8217; and hit enter.  The packages are then downloaded, and installed:</p>
<blockquote>
<pre>Is this ok [y/N]: y
Downloading Packages:
(1/2): system-config-samb 100% |=============| 287 kB  00:00
(2/2): samba-3.0.26a-0.fc 100% |=============| 3.1 MB  00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: samba                 ################## [1/2]
Installing: system-config-samba   ################## [2/2]
Installed: system-config-samba.noarch 0:1.2.52-1.fc7
Dependency Installed: samba.i386 0:3.0.26a-0.fc7
Complete!</pre>
</blockquote>
<p>As you can see, its pretty nice to be able to install a group of packages together, letting yum do the work to figure out the details.  In another article in the near future, I&#8217;ll cover how we create these relationships and build a back end yum server from the ground up.</p>
<p>Cheers,</p>
<p>Herlo</p>
]]></content:encoded>
			<wfw:commentRss>http://sexysexypenguins.com/2007/10/31/yum-installation-by-groups/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>POW: bash-completion &#8211; Bash Auto Completion in Fedora using yum (and more)</title>
		<link>http://sexysexypenguins.com/2007/10/24/pow-bash-completion-bash-auto-completion-in-fedora-using-yum-and-more/</link>
		<comments>http://sexysexypenguins.com/2007/10/24/pow-bash-completion-bash-auto-completion-in-fedora-using-yum-and-more/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 15:29:19 +0000</pubDate>
		<dc:creator>herlo</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[POW]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Yum]]></category>

		<guid isPermaLink="false">http://fedora-tutorials.com/2007/10/24/pow-bash-completion-bash-auto-completion-in-fedora-using-yum-and-more/</guid>
		<description><![CDATA[In an attempt to consistently blog, I am starting a new series here on fedora-tutorials.com. Program of the Week (POW). Hopefully, this will excite and inform all of us about the cool programs available in Fedora. So see you next &#8230; <a href="http://sexysexypenguins.com/2007/10/24/pow-bash-completion-bash-auto-completion-in-fedora-using-yum-and-more/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In an attempt to consistently blog, I am starting a new series here on fedora-tutorials.com. Program of the Week (POW). Hopefully, this will excite and inform all of us about the cool programs available in Fedora. So see you next Wednesday for another program.</p>
<p>Over the past year or so, I&#8217;ve been on the hunt for several things that I find in other Linux distros that I cannot find in Fedora. Its not very common, but on occasion I do run into something that&#8217;s not there on Fedora. One of them was the ability to automagically complete many of the command lines for many things.</p>
<p>One of them, and probably one of the biggest, was the fact that yum did not have tab completion for available packages. Today is my lucky day! While chatting and helping my students with their labs today, one of them mentioned to me that he could tab complete a particular command on his box. I of course inquired, because it interested me, as to the package name. It turns out my bash tab completion dreams were just about to come true! He told me about this amazing package that would let me use tab completions for things like the <strong>service</strong> command, <strong>man</strong> and of course, <strong>yum</strong>.</p>
<p>I was blown away! So immediately after this discussion, I started searching for this elusive package I&#8217;ve never heard of before. Sure enough, as he informed me, <em>bash-completion </em>does exist and does some amazing things. After hunting around a little on google, here&#8217;s some of the stuff I found. I&#8217;ll also include the links at the bottom of this post.</p>
<p>as root try this:  (note [Tab] means you should hit the tab key)</p>
<blockquote>
<pre># service ht[Tab]</pre>
</blockquote>
<p>What you&#8217;ll notice is that one of three things happen.  If you&#8217;ve got the <em>bash-completion</em> package installed already because you&#8217;re ahead of the game, it should auto-complete for you. Without bash-completion, this doesn&#8217;t happen, but its also possible that since bash already has some completion in place, it might auto complete a directory for you, but that&#8217;s definitely not what you want.</p>
<p>If you&#8217;ve not already installed bash-completion, I&#8217;d suggest you do it now.  On Fedora 7, run the following command:</p>
<blockquote>
<pre># yum install -y bash-completion
..snip..
Installed: bash-completion.noarch 0:20060301-3.fc7
Complete!</pre>
</blockquote>
<p>Now that <em>bash-completion</em> is installed, we need to invoke the tools. Normally, this is not needed, and a reboot/re-login will take care of this as well, but since I wanted to use this right away, I did the following as an unprivileged user:</p>
<blockquote>
<pre>$ source /etc/bash_completion</pre>
</blockquote>
<p>This doesn&#8217;t seem to do much, but its actually quite powerful.  The source (or .) will load the environment variables from the <em>/etc/bash_completion</em> script into my current environment.  Luckily for us, when we now log into root, <em>/etc/bashrc</em> will accomplish this for us without any intervention. To test that it worked, try running the following command as the same unprivileged user:</p>
<blockquote>
<pre>$ unalias[Tab]
<tab><tab>.=     ll=     ls=     vi=     which=</tab></tab></pre>
</blockquote>
<p>Note that when I pressed <tab> twice, a list of the currently available aliases appeared.  Nice ey?  Let&#8217;s complete this:</tab></p>
<blockquote>
<pre>$ unalias w[Tab]</pre>
</blockquote>
<p>Now produces:</p>
<blockquote>
<pre>$ unalias which</pre>
</blockquote>
<p>And completes the string as expected.  Now we&#8217;re getting somewhere!  But why did I really want to explain this?</p>
<p><big><big>Oh yeah! <strong>yum</strong></big></big></p>
<p>With <em>bash-completion</em>, yum can now provide us with a list of available packages, similar to the auto completion capability in <em>apt-get</em> or <em>aptitude</em> from Ubuntu or Debian. Say for instance you want to see all of the packages available for install that match what you&#8217;re looking for, but don&#8217;t want to run <strong>yum list</strong> or <strong>yum search</strong> because, in truth, it just takes to long!  Now you have an alternative:</p>
<blockquote>
<pre># yum -y install bal[Tab]<tab></tab></pre>
</blockquote>
<p>Produces:</p>
<blockquote>
<pre>ballbuster.i386  ballz.i386       balsa.i386</pre>
</blockquote>
<p>Adding another &#8216;lb&#8217; to the end of that string (and then the tab key of course) should help us to complete to the package we&#8217;d like to install.</p>
<blockquote>
<pre># yum -y install  ballb[Tab]</pre>
</blockquote>
<p>Then completes to:</p>
<blockquote>
<pre># yum -y install  ballbuster.i386</pre>
</blockquote>
<p>Hitting enter then installs the ballbuster package, and its quite a fun game!</p>
<blockquote>
<pre>.. snip ..
Installed: ballbuster.i386 0:1.0-1.fc6
Dependency Installed: ClanLib.i386 0:0.8.0-4.fc7
Complete!</pre>
</blockquote>
<p>Of course, there are hundreds of others tab completions available (and there&#8217;s a good way to list many of them too, even if its a bit cryptic). Try these on for size:</p>
<p>Are you a developer?</p>
<blockquote>
<pre>$ svn c[Tab]
cat checkout  ci     cleanup   co     commit    copy    cp
$ make [Tab]
all clean dist-clean</pre>
</blockquote>
<p>What about a systems administrator?</p>
<blockquote>
<pre># modprobe -r b[Tab]
battery    bay        blkcipher  bluetooth  bridge     button</pre>
</blockquote>
<blockquote>
<pre>$ man cron[Tab]
cron     crond    crontab</pre>
</blockquote>
<blockquote>
<pre>$ ssh herlo[Tab]
herlo-f7   herlo-lap  herlo.org</pre>
<pre>$ grep --[Tab][Tab]
 --after-context=  --directories=   --invert-match   --only-matching
 --basic-regexp    --exclude=       --label=         --perl-regexp
.. snip ..</pre>
</blockquote>
<p>To help you wade further through, try out the following two commands:</p>
<ul>
<li>
<pre>complete -p</pre>
</li>
<li>
<pre>declare -f</pre>
</li>
</ul>
<p>Be aware that these are advanced components and can really be confusing if you&#8217;re not a developer and just want to use the features. The <em>complete</em> command seems to provides some tools to do additional auto-completion. I also think that its nice to be able to extend this functionality to other applications as well.</p>
<p>As promised, here&#8217;s a few links to help your completion introduction.   <strong>Note</strong>:  Some of these links provide more than just the simple tab completion:</p>
<ul>
<li><a href="http:/http://www.caliban.org/bash/index.shtml#completion" target="_blank">http://www.caliban.org/bash/index.shtml#completion</a> &#8211; The GNU page on bash-completion, still needs more.</li>
<li><a href="http://www.keyboardcowboy.co.uk/bash-completion/" target="_blank">http://www.keyboardcowboy.co.uk/bash-completion/</a> &#8211; Provides some interesting scripts to improve your bash-competions</li>
<li><a href="http://www.debian-administration.org/articles/316" target="_blank">http://www.debian-administration.org/articles/316</a> &#8211; An introduction to bash completion: part 1</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sexysexypenguins.com/2007/10/24/pow-bash-completion-bash-auto-completion-in-fedora-using-yum-and-more/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

