HOW-TOs

Bash Sub Shells

November 11th, 2008 by Mitch Frazier in

When writing bash scripts you sometimes need to run commands in the background. This is easily accomplished by appending the command line to be run in the background with an ampersand "&". But what do you do if you need to run multiple commands in the background? You could put them all into a separate script file and then execute that script followed by an ampersand, or you can keep the commands in your main script and run them as a sub-shell.

If you don't care much about whitespace bash is great: it normally turns multiple whitespace characters into one and it breaks things into words based on white space. If on the other hand you'd like to preserve whitespace bash can be a bit difficult at times. A trick which often helps is using a combination of bash's eval and set commands.

List Open Files

November 4th, 2008 by Jagadish Kavuturu in

If you try to unmount a partition and get a message like this:

# umount /media/usbdisk/
umount: /media/usbdisk: device is busy

use the lsof command to find out what programs are using what files:

One of the comments to my last post about adjusting the fan speed on your NVidia graphics card was that what was needed was a script to adjust the speed based on the temperature. The script presented here does just that.

I have an original Asus EeePC 701 4G. I've talked about it and written about it before. I tend to like a full operating system on the Eee, and have had several different Linux distributions installed on it. I'm constantly looking for the best mix of form and function.

If you need to transfer an entire filesystem from one machine to another, for example, when you get a new computer, do the following steps.

1) Boot both PCs with any Linux live CD (for example, Knoppix), and make sure they can access each other via the network.

If you've got an NVidia graphics card and it has a fan that sounds like a jet engine, or, if as in my case your fan starts at full speed when the computer boots but then turns off after 20 seconds or so, you need nvclock.

To search a list of RPM files for a particular file, execute the following command:

Recently I needed to create a script that processed two input files. By processed I mean that the script needed to get a line from one file, then get a line from the second file, and then do something with them. Sounds easy enough, but it's not that easy unless you know about some of bash's extended redirection capabilities.

uDig GIS: A First Look

October 10th, 2008 by James Gray in

Part of an ongoing series of on open-source geographic information system (GIS) programs, this article offers an introduction to uDig GIS. uDig is for GIS users of all levels, from beginners to advanced.

Wildcards in bash are referred to as pathname expansion. Pathname expansion is also sometimes referred to as globbing. Pathname expansion "expands" the "*", "?", and "[...]" syntaxes when you type them as part of a command, for example:

  $ ls *.jpg         # List all JPEG files
  $ ls ?.jpg         # List J    
  

If you use bash you already know what Parameter Expansion is, although you may have used it without knowing its name. Anytime you use a dollar sign followed by a variable name you're doing what bash calls Parameter expansion, eg echo $a or a=$b. But parameter expansion has numerous other forms which allow you to expand a parameter and modify the value or substitute other values in the expansion process.

If you use ALSA for sound on your system the functions contained in the script presented here can be used to get and set the volume on your system. You might use this if you had a monitoring script running and wanted to raise the volume when you signal an alarm and then lower it again to the previous volume.

If you have a process ID but aren't sure whether it's valid, you can use the most unlikely of candidates
to test it: the kill command. If you don't see any reference to this on the kill(1) man page, check the info
pages. The man/info page states that signal 0 is special and that the exit code from kill tells whether a
signal could be sent to the specified process (or processes).

Featured Videos

The November 13, 2008 edition of Linux Journal Live! Shawn Powers and special guest, Linux Journal Author Daniel Bartholomew, talk e-book readers and Daniel's Kindle, DRM, and other goodness.

From the Magazine

December 2008, #176

The Oxford English Dictionary says the word "gadget" is a placeholder name for a technical item whose precise name one can't remember. Like that book-reader thingy from Amazon...what's it called? Spindle, Gindle...Kindle, that's it. Check it out in this month's gadget issue.

Other gadgets covered include the Nokia tablets, the BlackBerry, the Neo FreeRunner, the Dash Express, the Roku Netflix Player, the Kangaroo TV, The TomTom GO 930 and the MooBella Ice Cream System. On the larger hardware front, read the reviews of the Acer Aspire One and the YDL PowerStation. On the software front, check out the articles and columns on memcached, Samba security, Mutt, desktop gadgets, bash and Puppet. To wrap it all up, read Doc's thoughts on Google and the browser platform.

Read this issue

Sign up for our Email Newsletter