Linux Blog

Sorting lists with Sort

Filed under: Quick Linux Tutorials — TheLinuxBlog.com at 11:11 pm on Wednesday, June 4, 2008

There comes a time when it is useful to know how to sort lists. Thankfully using open source software sorting text files can be very easy.

This example shows how to sort a file alphabetically using the sort command. I assume that you have a text file in mind so I will skip the creation of that. There are two ways to sort the file with the sort command. The first being the preferred method but not always suitable.

sort [textfile]
 
cat [textfile] | sort

That’s it! The second method can be useful if you would like to do any thing special, for example searching with grep, using cut or sed for data extraction or just out of convenience. Check out the man page for sort for more information on all of the options!

Awesome Piping

Filed under: General Linux,Quick Linux Tutorials — Kaleb at 8:01 am on Wednesday, April 23, 2008

Have you ever wanted to try a tiling window manager. But maybe you don’t want to deal with DWM and its bad config setup that forces you to recompile the app each time you change the config.

I suggest to you AwesomeWM. It was originally based on DWM, however now it is completely on its own. For those of you who don’t know, tiling window mangers are window managers that basically allow you to use ALL of y
our screen. If screen landscape is scarce on your box i suggest a tiling window manager. How do they do this? Its all about managing windows baby. What they do is they make every window you open full screen. that
s right FULL screen and if you open up more then one window in one virtual desktop it cuts them in half so that they are each using half the screen, and so on.

But this article is not about tiling window managers exactly it is about piping in awesome. The AwesomeWM has a status bar that you can edit which by default holds a list of your “tags” (virtual desktops however with a little bit different technique) and a window list of all the windows open on your current tag. However you can edit what is on this status bar with the .awesomerc. Now your asking yourself what can I put on i
t, does it have special keywords like conky or something? The answer is no. it works nothing like conky, however if you do it right you can completely replace conky.

Now how to do this. Open up your .awesomerc file with your favorite editor (i suggest vi or vim, and if you don’t know those why are you even at this site). Now you will see a bunch of lame stuff right, well you need to scroll down to the “status bar” section, this section strangely holds all the things that you will place on your status bar (the status bar section is repeatable so you can have more then one status bar as long as the name is changed).

Now with me I do not like having a list of running windows on my status bar, so I just remove that section,but I do like to have a clock on my status bar, I would assume you would like it to however I don’t know.

At first look it will seem a little complicated to make just a simple clock, but its actually not that bad once you get the hang of it.

What you need to do, for a clock, is create a “textbox” section (yes the time is TEXT strange eh).
It should look something like

textbox clock
{
text=” ”
}

the space between the “” is supposed to be a space so don’t worry about that. Now after you have this set up you are done messing with your .awesomerc. “clock” is now a keyword that you can use to pipe the clock t
o that part of your status bar.

Next what your going to want to do is create a little shell script for rendering your clock it should look something like:

#!/bin/bash

echo “0 widget_tell mystatusbar clock text `date +”%A %B %d, %Y %l:%M %p”`” | awesome-client

Now that is really complicated right. Well not really.

Honestly I have no idea what “0 widget_tell” does, I am assuming is just telling the status bar what to do.

Next in the list you have “mystatusbar” that is the name of your status bar, you should probably know the name of it.

Next should be obvious “clock” is the section of your status bar you want the data to be ported to.

After that comes “text” this just tells it that it is text and not some other type of data.

Then, inside the “ is the command you want to run. This is just the date command that has been modified to output the date in a specific format, it will output the date and time like this “Friday April 18, 2008
2:23 PM”

If you want it in a different way look at “man date” for help (its really simple).

Finally in the command you have “| awesome-client” this will pipe the command to awesome.

Now you need to have this script run on a regular basis, some people do this as a “while true” thing in there .xinit or something however since this is just a clock that only tells me minutes I use the crontab to
run this script every minute. A crontab to run this every minute should look like:
*/1 * * * * ~/scripts/clock.sh
Do all of this and you should have an up and running clock in no time. And like I said before you can put anything you want into this. Even graphics. So now that you know the basic stuff go make a pretty status bar.

Kaleb Porter

porterboy55@yahoo.com

http://kpstuff.servebeer.com (website is temporarily down)

Using SSH as a Proxy

Filed under: General Linux,Quick Linux Tutorials — TheLinuxBlog.com at 2:46 pm on Tuesday, April 15, 2008

A helpful reader left a comment on this blog about using SSH as a Socks Proxy. Here is how to do it.

ssh -D [source port] [host]

Thats it, once your logged in you are good to go.

Now, the problem I ran into was making Firefox use this proxy. I found a great extension called SwitchProxy which can be installed from the extensions site. Once installed, you can easily switch between proxies. This is really useful to use while at a coffee shop.

Check out the screenshot of the toolbar that it installs (click for a larger image):

Using SSH as a proxy on Linux

It makes it really easy to turn the proxy on or off. One day if there is interest I might try to extend this to establish the SSH connection.

Suspend Scripts for the Toshiba Tecra M2

Filed under: Quick Linux Tutorials,Shell Script Sundays — TheLinuxBlog.com at 12:15 am on Sunday, March 30, 2008

As you may know if you are a regular reader I own a Toshiba Tecra M2. One of the things that annoyed me was I had to turn the brightness up every time my computer came out of standby mode. A fix for this is to adjust the brightness every time the computer comes out of standby mode.

The script is intended to be run under cron. I have mine set up to suspend after 5 minutes of the lid being closed.

if [ $(cat /proc/acpi/button/lid/LID/state | sed 's/state:      //') == "closed" ]; then
VAR=$(cat /proc/acpi/toshiba/lcd | sed 's/brightness:              //' grep -v levels);
sudo su -c "echo mem > /sys/power/state";
if [ $VAR -eq 1 ]; then
ACTION=ADD;
elif [ $VAR -eq 7 ]; then
ACTION=SUB;
else
ACTION=ADD;
fi;
if [ $ACTION == "ADD" ]; then
VAR=$(($VAR + 1));
else
VAR=$(($VAR - 1));
fi;
sudo su -c "echo brightness:$(echo $VAR) > /proc/acpi/toshiba/lcd";
fi;

I run this with the following cron entry:

*/5 * * * * sh hibernate.sh

The script first checks the current brightness. If the brightness is currently 1 or 7 it adjusts the mathematic operation so that when the laptop is opened the brightness is adjusted. Basically if the brightness is one, it adds one. If the brightness is 7 or any other value it subtracts one. This is currently working out quite well for me. I don’t know how useful this is to any body else, unless you happen to have a Toshiba that is doing the same thing but it should give you a good overall idea of how to perform basic mathematic operations in bash.

Bin and Cue Support for Linux

Filed under: Quick Linux Tutorials — TheLinuxBlog.com at 2:35 pm on Tuesday, March 18, 2008

If you have a bin/cue image that you need to use under Linux you may be in for a surprise. I recently downloaded a copy of a game that I owned but was too scratched to use. The problem was the game came in bin / cue format. To fix this I just used a nifty little program called bchunk and converted it to ISO. It can be found here: http://he.fi/bchunk/

I would really like to find a way to mount bin and cue images under Linux but so far I’m not having any luck. I’m wondering if with some modification the bchunk program could be used with fuse.

SSH Tunnel

Filed under: Linux Software,Quick Linux Tutorials — TheLinuxBlog.com at 11:23 pm on Thursday, March 6, 2008

Today I had the need to access my development web server at my office network. I have a firewall that runs SSH but doesn’t my firewall does not forward the port for the web server. So, in an emergency situation I was able to use an Linux with SSH and Tunnel into my network on port 80. Since I have a server running on port 80 on this computer I could not use this port. I chose port 8080 to use for the local port and forward it to my web server on the firewalled network. I did this by doing the following:

ssh [SSH HOST] -L 8080:192.168.1.X:80

Using SSH Tunneling I was able to then browse to http://localhost:8080 on this computer and successfully view the contents of my web server. So, any time you need to connect to a port on a computer behind a NAT firewall that you have access to SSH on is just use a SSH Tunnel and then use the -L Switch with the port on your local machine first, then the destination address and port. Simple!

How to Partition Slackware

Filed under: General Linux,Linux Video Tutorials,Quick Linux Tutorials — TheLinuxBlog.com at 12:14 am on Friday, February 1, 2008

I made this quick video on how to partition Slackware 12


How to partition Slackware 12

You might need to turn up the volume. Let me know what you think of this video and if I should continue to make them.

steps are here for reference:

  1. Boot up the Slackware installation disk
  2. Select a keyboard map (if needed)
  3. Log in as root
  4. Use “cfdisk” to get into the disk manager
  5. Create a swap partition in MB double the size of memory. If you have 256 MB of ram, use 512, 128 use 256 etc.
  6. Change the partition type to swap
  7. Create a root partition on the available space with the full disk
  8. Make this partition bootable with the Linux file system type
  9. write the changes to the disk.

This is a very basic setup. I want to make more videos on various subjects if this one picks up. In the line up is a whole Slackware setup tutorial and possibly various other distributions too. I would like to demonstrate other software and technologies.

Drop a comment and let me know what you think!

Clear browser history from command prompt

Filed under: General Linux,Quick Linux Tutorials — TheLinuxBlog.com at 3:36 pm on Thursday, January 17, 2008

I found this link a while back on clearing the history in IE7 from the command prompt

Clear IE7 browsing history from the command line

Although not specifically Linux related it is interesting and I thought users who sometimes use IE7 may be interested in this. It also provoked me to ask the question “How do I clear FireFox history from command line.”

Well, it is a bit simpler then clearing your history in IE7. The only thing you need to know is your profile name, and even then you don’t really have to because you can guess.

Firstly there are a couple of files that you should be aware of they are: cookies.txt, downloads.rdf, history.dat and one folder full of files: <profile>/Cache/

Now to clear your downloads list, your cookies list, your history or your cache you basically just remove the corresponding file. So, lets take a look at the command. We’ll assume my randomly generated profile name is called linux-blog

owen@linux-blog:~$ rm .mozilla/firefox/linux-blog.default/cookies.txt
owen@linux-blog:~$ rm .mozilla/firefox/linux-blog.default/Cache/*
owen@linux-blog:~$ rm .mozilla/firefox/linux-blog.default/downloads.rdf
owen@linux-blog:~$ rm .mozilla/firefox/linux-blog.default/history.dat

The above need to be ran individually. Make sure that FireFox is closed before the above is ran, or some pages may not load correctly. If any one is interested I’ll write a shell script to make this easier.

General Linux Kill Process

Filed under: General Linux,Linux Software,Quick Linux Tutorials — TheLinuxBlog.com at 6:38 am on Tuesday, January 15, 2008

Killing a process with Linux is an easy task. As always there is more than one way to do it. There are graphical process managers that can be used to aid in killing a process on Linux. The first method I’ll demonstrate may work depending on your window manager. Either way you can set it up to work the same way if you like it.

The name of the program is xkill. My XFCE has a shortcut of CTRL+ALT+ESC but this may not be the case for every version of XFCE. Basically you press this keyboard shortcut and you get a skull and crossbones. Once you get that you can click on the window of the process you’d like to kill and it kills it.

To use Linux to kill a process from the command line, you can use one of two commands that are pretty standard throughout all Linux Distros the kill, and killall commands. The only real hard part is figuring out what process to kill. To figure out what process I want to kill I use the following command:

 owen@linux-blog:~$ ps ax

then to use kill and killall on Linux I use:

 owen@linux-blog:~$ kill [processid]
 
owen@linux-blog:~$ killall [processname]

This is pretty straight forward but if you have say multiple FireFoxes open, you may want to just kill the process by using the kill [processid] command, otherwise all of your FireFox windows will probably close since killall kills all processes that match the name, regardless of if they actually are crashed or not.

If the process won’t die, you can use the following to kill it. Be aware that this is not the best thing to do but it will kill the process.

owen@linux-blog:~$ kill -9 [processid]
 
owen@linux-blog:~$ killall -9 [processname]

Basically instead of killing gracefully you send a SIGKILL to the process which is basically tells it to commit suicide no matter what its currently doing. I’ve listed all of the signals you can send to kill a process at the end of this post.

Another method to kill a process is by using top. Top is an interface that shows you what processes are doing what. You can kill a process (once your in top) by pressing the k key. It then asks you what PID (Process ID) you want to kill. You can figure this out from the list. It then asks what type of signal you want to use. You can use the default first, and then if the process just wont die, you can use 9. Top is useful for killing a bunch of processes in a small amount of time.

List of all signals that you can send:

owen@linux-blog:~$ kill -l
1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2

What to do when you run out of disk space

Filed under: General Linux,Linux Software,Quick Linux Tutorials — TheLinuxBlog.com at 11:27 am on Tuesday, January 8, 2008

Some times you run out of disk space. It just happens. So, what do you do when it does happen?

Well, it just happened to me and I’ll write about what I did. I’ll first start off with how I discovered that I was out of disk space in the first place. It was about 10:30 last night when for some reason that I can’t remember now I decided I’d start up my good old XP Virtual Machine (Probably to use some quirky Windows program.) Anyhow the VMWare console reported that I did not have enough disk space. This came as a bit of a shock to me as I have a 100GB hard drive. I had been downloading ISO’s of Linux Distributions but not that much. So, here is what to do when you run out of disk space:

Step 1) Don’t panic
Step 2) Take a look at your processes and shutdown anything that is not needed. init to single user mode if it makes you feel better.
Step 3) Use the disk free utility to figure out how much space you have:

df -h /

Step 4) Make a couple of megabytes of free space so that you can install a program.
Step 5) Download and install xdiskusage from source or from your favorite package manager.
Step 6) Run xdiskusage from the terminal as root
Step 7) Select a disk / partition
Step 8) Wait
Step 9) View the results
Step 10) Rinse wash repeat. (Browse Partitions / Delete / Move files to another disk & do it again)

Here are some screen shots of my xdiskusage:

xdiskusage example screenshot
xdiskusage example screenshot xdiskusage example screenshot xdiskusage example screenshot
Click For xdiskusage screenshots

As you can see from the root screen shot that my root partition that I have 60GB used between my /var and /home directories. On closer inspection, the var has 40GB, 20GB in virtual machines and 20GB in the logs directory. 20GB’s of logs is quite a lot, this is where my problem is. After finding the problem I was able to backup my log files and remove them. I know that this can be done with shell scripts xdiskusage has helped me in the past so I thought I’d pass on the information. If you have a favorite utility or script what you use when you run out of disk space let me know!

Project URL: http://xdiskusage.sourceforge.net/

General Linux Change Password

Filed under: General Linux,Linux Software,Quick Linux Tutorials — TheLinuxBlog.com at 4:52 am on Thursday, December 20, 2007

Changing your password under Linux is a pretty simple task providing you know how to do it, and of course since we’re talking about Linux: changing your password is as simple or complicated as you want it to be either way. You either love GUI’s or you hate them, so one method or the other can be confusing. I’m more of a console guy, but I’ll start with the GUI methods because thats probably what I think the masses want to see first. Remember what your doing tho, if you need to change the password on more than one box, I would look into changing your password by command line.

There is more than one reason to change your password, the examples below assume that you are just changing the current users password because it needs to be changed.

kdepasswd

kdepasswd example

passwd

linux change passwd

If you need to change the password for another user, log in as root and execute the following:

passwd (username)

linux change passwd

There are many ways to change your root password if you forgot it.

One way to do it is to boot up with a live CD, mount your hard drive, chroot and then execute the passwd command, once you reboot your password should be reset.

« Previous PageNext Page »