Monday, 26 August 2013

3 reason why your system might be slow

Computer users expect their systems to work well at all times, but unfortunately this isn’t always the case. If your system becomes slow, there certainly is something you can do about it. This article will help you understand what’s happening on the system, whether it’s the computer in front of you or a system you’re accessing remotely. Naturally, I presume you’re running Linux, and the tools described here are Linux tools. If you’re on some other weird system ( ;) ), your mileage may vary.
Slow Computer?When we say the system is slow we mean that it isn’t responding to our input in a reasonable time, or taking too long to complete a task. This can happen when there is *another* program using too many system resources, starving *your* program of resources, causing it to run slowly
There are three common ways in which this can happen, and all three of these scenarios can be equally crippling and put your system into a state where it seems to be frozen. None of these situations are harmful to your system (ie. they make it slow until the problem is resolved, but they don’t damage anything).
  1. A program is monopolizing the cpu.
    A program is using all of the cpu cycles, blocking access to the cpu to other programs. This may be intentional (programs that do heavy processing) or accidental (programs get stuck repeating something over and over).
  2. You’re nearly out of physical memory.
    You are either running too many programs, or programs that use too much memory. Your physical memory is almost entirely exhausted, and the running programs are using the harddisk as fallback memory, which is very slow.
  3. A program is doing heavy I/O.
    You may be copying a large file, for instance. The program that is doing the copying is requesting lots of data from the harddrive, but while it’s doing this the cpu is actually waiting for this data to be read from the harddrive, blocking access to other programs.
The impact of both cpu heavy and I/O heavy programs can be mitigated by tuning the kernel to be more responsive. If you are running a kernel supplied by one of the major distributions (Ubuntu, Fedora etc), then it’s already finely tuned for your system, but even so you may still run into these problems sometimes, on your own system or some other one.

1. Cpu bound programs

How it happens

Infinite Loop Avenue?The most common cycle for a program is to 1) accept some input, 2) do some work, 3) give some output. And this sequence is repeated for as long as the program is running. Typically, the work that has to be done takes a very short time compared to the time spent waiting for input, which gives all the other running programs a chance to use the cpu in the meantime.
If a program instead takes no input and gives no output and only does work all the time, then there is much less time in which the cpu is free for other programs to use. This will make the whole system very slow, because all programs have to wait a long time to get their turn.

Demonstration

It’s very easy to simulate this scenario. Here is an example. This program is a loop, which checks the condition (which is always true) and then performs the action in the loop (running the command true, which does nothing). No input, no output.
$ while true; do true; done
Hit Ctrl+C when you’ve had enough.

How to detect it

The easiest way to check for a cpu bound program is to use top. See if there is a program that’s using almost 100% of the cpu. To be sure that it doesn’t just occasionally spike leave it running for a while (or hit <space> to refresh the display a few times).
$ top
Cpu0  : 98.2%us,  1.8%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si
Cpu1  :  1.4%us,  0.5%sy,  0.0%ni, 98.2%id,  0.0%wa,  0.0%hi,  0.0%si

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
26210 alex      20   0 19428 2368 1492 R   99  0.1   1:14.27 bash
 4075 alex      20   0  606m 195m  28m S    0  6.5  23:19.58 firefox
 6337 root      20   0  505m 116m 6716 S    0  3.9  34:30.25 Xorg
Here we see that cpu0 is idle (free) 0% of the time, which means it is as busy as it possibly can be. 98.2% is due to user programs (ie. the program we just demonstrated). And when we look in the list of programs, we see that bash (the shell in which we ran our one-liner) is using 99% of the cpu.

What you can do about it

There are two cases of cpu bound programs – the intentional and the accidental.
If you’re running a program that does a lot of work on purpose, for instance a video encoding task, then the more cpu it uses the quicker it will finish, so using a lot of cpu is good. But if it’s making your whole system slow, then you can lower the priority at which the programs gets access to the cpu, so that it only uses as much cpu as the other programs leave available. To do this, use the renice command:
$ renice 20 26210
The first number you give to renice describes how “nice” you are being to other programs, on a scale from -20 (very selfish) to 20 (very nice). The other number is the process id (pid) of the program, which is listed by top above. Doing this will probably still make bash use almost 100% of the cpu, but not at the expense of the other programs.
On the other hand, if the program isn’t supposed to be using this much cpu, then it’s either a bug in the program (certain versions of firefox used to spike to 100% cpu) or it’s just heavier than the cpu can handle. You can still renice the program, but this will make your system more responsive at the expense of the program (so for instance, firefox may become unusable). The last resort is to kill it:
$ kill 26210
On multi-cpu systems this is less of a problem, because most programs can only use one cpu, which leaves the other cpus to serve all the other programs and keep your system responsive.

2. Physical memory is almost full

How it happens

100\'s of Apps running at the same time on LinuxThere are two types of memory on your system: physical (RAM) and virtual (swap). Physical memory is relatively small and very quick to access, while virtual memory is just part of your harddisk being used as extra memory (very slow to access). As long as all the running programs can store their work in physical memory, everything is fine. (This is why it’s good to have a lot of it.)
But once you fill all of the physical memory, the operating system will start moving some of the work into swap (onto the harddisk) to make space for new programs. You probably won’t notice that this is happening. But when you switch from one program to another, and the second program has its work in swap, this work now has to be moved back into memory, and some of the stuff currently in memory has to be moved out to swap. This will definitely be noticeable and will make your system slow until it’s finished.
The effect of this situation is that your system will feel normal for some of the time (when using the same program), and then very unresponsive from time to time (when switching between programs).

Demonstration

This effect is best demonstrated with a desktop program. Start the gimp and create a canvas so large that it exceeds your available physical memory. For instance, try a canvas 10,000×10,000 pixels (gimp will tell you how much memory it needs to create it). It will probably take a while to create the canvas, so just let it finish. (In order to make room for this image in memory, other programs are being moved into swap, this is called swapping.) Then do some painting on the canvas. Now switch back to another program (firefox, for instance). You should now sense that your system is slow to respond, but this is temporary for as long as it takes to restore firefox into memory.

How to detect it

It’s a good idea to know how much memory your system uses under normal conditions, that way you can keep an eye on things. The command free -m will tell you about the state of your memory:
$ free -m
             total       used       free     shared    buffers     cached
Mem:          3015       1640       1375          0          9        124
-/+ buffers/cache:       1505       1509
Swap:         2878          0       2878
Here we see that we have 3015mb of physical memory, half of which is free. We also have almost as much swap memory, but none of that is in use.
After we create our huge canvas with the gimp we can run free again and see what has changed.
$ free -m
             total       used       free     shared    buffers     cached
Mem:          3015       2993         22          0          2        957
-/+ buffers/cache:       2033        982
Swap:         2878        819       2059
We’re now using 819mb of swap memory, so clearly we’ve exceeded the capacity of physical memory.
While swapping takes place top will also show that there is a lot of I/O activity taking place. (Press Shift+M to sort the program listing by memory use.)
$ top
Cpu(s):  4.0%us,  1.6%sy,  0.0%ni, 51.0%id, 42.1%wa,  0.6%hi,  0.8%si
Mem:   3088224k total,  3043496k used,    44728k free,     3548k buffers
Swap:  2947888k total,   998812k used,  1949076k free,   957956k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2579 alex      20   0 1593m 1.4g  13m S    0 47.0   0:22.26 gimp
Here we see that user and system activity adds up to only 6%, the cpu is idle 51% of the time, but spending 42% of the time waiting for I/O operations (ie. harddisk activity). And among the programs, the gimp alone is using 1.4gb of memory.

What you can do about it

If you notice that your system becomes unresponsive when switching between programs, you have a pretty good idea that it’s because of swapping. There is no way to make swapping faster, so what you should do is less swapping. Keep an eye on how much memory your system is using and you should also have an idea about the memory use of various programs (the big ones). When you notice heavy swapping, the easiest way to fix it is to shut down the program that’s using the most memory. When you do this you free up physical memory. The data in swap will not automatically be moved into memory (because this is expensive), but you should notice that your system is performing normally again.

3. IO bound programs

How it happens

Input/Output (I/O, also written io) is an umbrella term for *everything* that happens on your system that does not involve the cpu, the memory or the video card (gpu). When talking about performance, io usually means the harddrive, because that’s what your system uses most heavily (and therefore what we spend the most time waiting for), but it can also refer to your network card, your cdrom drive, your keyboard etc.
A program running on the cpu, which does a lot of io (such as reading/writing large files), will spend a lot of time waiting for this io to complete. This leaves the cpu busy and other programs have less opportunity to run. The effect is that the whole system may become consistently unresponsive until the heavy io is completed.

Demonstration

We can demonstrate the effect of heavy io by reading and writing a lot of data to the harddrive. Here we find the device that your root partition is on (probably /dev/sda1) and then read 5gb from it, writing it to a file /tmp/dummy (you may want to check that you have enough free space).
$ device=`mount | grep " / " | awk '{ print $1 }'`
$ sudo dd if=$device of=/tmp/dummy bs=5120 count=1048576
This should take around 10 minutes, so you can see how your system behaves while this is happening.

How to detect it

We can detect heavy io with top.
$ top
Cpu0  : 13.7%us,  6.5%sy,  0.0%ni,  0.0%id, 79.0%wa,  0.8%hi,  0.0%si
Cpu1  :  4.7%us,  3.9%sy,  0.0%ni, 73.2%id, 17.3%wa,  0.8%hi,  0.0%si

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
30956 root      20   0 10388 1812  640 D    5  0.1   0:02.76 dd
Here we see that cpu0 is spending 79% of its time waiting for io. In the list of programs we see the program dd that we ran. It’s only using 5% cpu, which seems to conflict with the number 79%, but then we see it has status D, which means waiting for io. The reason for this is that while dd is only doing actual work on the cpu 5% of the time, it’s still using a lot of cpu time because of all the io.
Most io is harddrive io, but we can see if this is the case with the tool atop, which is similar to top.
$ atop
CPU | sys     14% | user     21% | irq       2% | idle     39% | wait    125% |
cpu | sys     10% | user     11% | irq       2% | idle      0% | cpu000 w 78% |
cpu | sys      4% | user     10% | irq       0% | idle     38% | cpu001 w 48% |
DSK |         sda | busy     98% | read    1371 | write   1011 | avio    4 ms |

  PID  SYSCPU  USRCPU  VGROW  RGROW  RDDSK  WRDSK  ST EXC S  CPU CMD     1/4
30956   0.60s   0.00s     0K     0K 113.4M 114.0M  **   * D   6% dd
Here we again see that the program dd has status D (io wait), and cpu0 is spending 78% waiting for io. In addition, we see that the harddrive sda (which is the one we are reading and writing to, /dev/sda) is busy 98% of the time. So we know that it’s the harddrive that’s responsible for using 78% of cpu0.

What you can do about it

If your system becomes unresponsive because of io, it is because the cpu is not being shared among the programs in a way that allows them all to stay responsive. So the answer is to prioritize certain programs over others. ionice is the io counterpart to nice.
$ ionice -p30956 -n7
Here we are telling ionice first the process id of the program, and then the io priority it should have, on a scale from 0 (highest priority) to 7 (lowest).


courtsey :

http://linuxologist.com
 

Monday, 19 August 2013

Install lamp with 1 command in Ubuntu 12.10, 13.04 Raring Ringtail & LinuxMint13

TheLAMP (Linux, Apache, MySQL and PHP) is an open source Web development platform that uses Linux as operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.

We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf

We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation. - See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation.

This tutorial was has been tested on Ubuntu 10.04, 10.10, 11.04, 11.10, 12.04 LTS Precise Pangolin. Also tested in LinuxMint13 and works fine.
Open terminal and Type the command :install it   first  with
sudo apt-get install tasksel
- See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
LAMP (Linux, Apache, MySQL and PHP) is an open source Web development platform that uses Linux as operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation.

This tutorial was has been tested on Ubuntu 10.04, 10.10, 11.04, 11.10, 12.04 LTS Precise Pangolin. Also tested in LinuxMint13 and works fine.
Open terminal and Type the command :install it   first  with
sudo apt-get install tasksel
- See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.7vFCVPxu.dpuf
LAMP (Linux, Apache, MySQL and PHP) is an open source Web development platform that uses Linux as operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation.

This tutorial was has been tested on Ubuntu 10.04, 10.10, 11.04, 11.10, 12.04 LTS Precise Pangolin. Also tested in LinuxMint13 and works fine.
Open terminal and Type the command :install it   first  with
sudo apt-get install tasksel
Now to install LAMP, type the taskel command in terminal :
sudo  tasksel
And select LAMP Server:

During the installation  you  will be  asked  to insert the  mysql root  password

Now check if php is working :

$sudo vi /var/www/info.php
and add
<?php
phpinfo();
?>
save and exit
restart apache2 ,
#sudo /etc/init.d/apache2 restart
Now open browser and type :
http://ip/info.php or http://localhost/info.php

Php is installed.
To full manage  your  lamp Server database, install  phpmyadmin
sudo  apt-get  install  phpmyadmin
To login  to phpmyadmin, open browser and type :
http://ip/phpmyadmin   or http://localhost/phpmyadmin
- See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.RvVRqaSy.dpuf
LAMP (Linux, Apache, MySQL and PHP) is an open source Web development platform that uses Linux as operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.
We did show you in our previous post how to install LAMP in Ubuntu 10.04 with one command using tasksel command. It is a software installation application that is an integral part of the Debian installer and works under Ubuntu Linux too. It groups some packages by tasks and offers the user an easy way to install the packages for that task. It provides the same functionality as using conventional meta-packages. in Maverick this command dosn`t come by default, so we need to install it first before to perform the LAMP installation.

This tutorial was has been tested on Ubuntu 10.04, 10.10, 11.04, 11.10, 12.04 LTS Precise Pangolin. Also tested in LinuxMint13 and works fine.
Open terminal and Type the command :install it   first  with
sudo apt-get install tasksel
Now to install LAMP, type the taskel command in terminal :
sudo  tasksel
And select LAMP Server:

During the installation  you  will be  asked  to insert the  mysql root  password

Now check if php is working :

$sudo vi /var/www/info.php
and add
<?php
phpinfo();
?>
save and exit
restart apache2 ,
#sudo /etc/init.d/apache2 restart
Now open browser and type :
http://ip/info.php or http://localhost/info.php

Php is installed.
To full manage  your  lamp Server database, install  phpmyadmin
sudo  apt-get  install  phpmyadmin
To login  to phpmyadmin, open browser and type :
http://ip/phpmyadmin   or http://localhost/phpmyadmin
- See more at: http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/#sthash.RvVRqaSy.dpufdsdf

easy lamp server installation

The LAMP server (Linux, Apache, MySQL, PHP (or Perl) is one of the most important servers you might ever set up. It will happily serve up dynamic, database-driven web sites without needing constant babysitting. Since the LAMP server's underlying foundation is Linux it enjoys rock-solid reliability, security, and can be installed on all kinds of hardware (from that old white-box you have to a multi-CPU, RAID-enabled rack server).
But to most people, Linux is unfamiliar territory. To those, the idea of installing an entire server environment from command line is absurd and, most likely, impossible. It's not. Actually, installing a LAMP server is, on the contrary, quite easy. And in this article I will show you two different ways to install a LAMP server. I will show you how to install a LAMP server one piece at a time and then I will show you how to install a LAMP server with a single command.
NOTE: This article won't actually deal with the installation of Linux. I will assume you are already dealing with a working Linux install. And this article will be installing the LAMP server on a Ubuntu 9.10 machine. This machine can be either a standard installation or a Ubuntu Server installation. Either way, it's all command line from here.
Because the OS is already installed, all we have to install is Apache, MySQL and PHP. So there are only three major steps to take care of in order to get your LAMP server up and running. Remember, you are going to be using the command line, so open up your favorite terminal window (or, if you're using a GUI-less server install, log in). We'll tackle the installation a bit out of order (from the acronym).
Apache
Apache is the web server piece of our puzzle. From within your terminal window issue the command:
sudo apt-get install apache2
If, by chance, you are using a distribution that does not use Sudo, you will need su to the root user and issue the above command without the sudo command.
Depending on your OS installation, the above command might need to pick up some dependencies. If so, okay those dependencies.  At the end of the installation, Apache should automatically start. If it doesn't, issue the following command:
sudo /etc/init.d/apache2 start
You can now open up a browser and point it to the IP address (or domain) of the server to get the famous "It works!" page. You are ready to move on to PHP.
PHP
For the purposes of this article, we will assume the "P" stands for "PHP."  To begin the process of installing PHP, issue the following command:
sudo apt-get install php5 libapache2-mod-php5
NOTE: Again, depending upon your OS installation, this might require some dependencies to be met. Allow apt-get to pick up those dependencies.
When the installation is complete, restart Apache with the command:
sudo /etc/init.d/apache2 restart
Now, let's give PHP a little test to make sure it has installed. In your terminal window, create a new file called test.php.
Save that file and place it in /var/www/. Now, open up your browser to the address http://ADDRESS_OF_SERVER/test.php. Where ADDRESS_OF_SERVER is the actual address of your server. You should see "Test PHP Page" in the browser. You are now ready to move on to MySQL.
MySQL
MySQL is the database piece of the puzzle. This installation requires a few more steps than what you've just experienced. The first step is to install the server itself with the command:
sudo apt-get install mysql-server
Again, depending upon your OS installation, there might be some dependencies to be installed. After the installation is complete you need to log into the MySQL prompt and give the administrative user a password. Do this by following these steps:
  1. Log into MySQL with the command mysql -u root -p.
  2. As no password has been configured, you will only need to hit enter when prompted for the password.
  3. Enter the command SET PASSWORD FOR 'root'@'localhost' = PASSWORD ('YOURPASSWORD'); Where YOURPASSWORD is the password you want to use for the administrative user.
  4. Now quit the MySQL prompt by issuing the command quit and hitting enter.
  5. Start the MySQL server with the command sudo /etc/init.d/mysql start.
That's it. Your LAMP server is now up and running. But what about this one-command method? Simple. From your terminal window, issue the command:
sudo tasksel
This command will open a curses-based tool (see Figure 1) which allows you to select numerous software options for installation. One of those selections is a LAMP server. All you need to do is mark LAMP server for installation (scroll down with your arrow keys and then hit the space bar to select). Once you have selected LAMP server, hit the Tab key on the "button" and hit the Enter key.
tasksel
Figure 1
You will have to answer a single question when you get to the MySQL portion of the install (what you want to use for the admin password). That's it.
Your LAMP server is ready for you. Of course all you have is a bare-bones LAMP server. Since this article does not dive deep into the trenches of any of the packages, you will want to familiarize yourself with these tools before you really start playing around with them. But - even with what you have, you can now overlay a tool like Drupal, Joomla, or Xoops! on top of your LAMP server.
And remember, when placing any server in the eye of the public, make sure that server is as secure as possible. Don't just assume that, because it's Linux, it's immune to attacks. If it's on line, it's vulnerable.

How do I run a Unix process in the background?

In Unix, a background process executes independently of the shell, leaving the terminal free for other work. To run a process in the background, include an  &  (an ampersand) at the end of the command you use to run the job. Following are some examples:
  • To run the count program, which will display the process identification number of the job, enter: count &
  • To check the status of your job, enter: ps
  • To bring a background process to the foreground, enter: fg
  • If you have more than one job suspended in the background, enter: fg %# Replace  #  with the job number, as shown in the first column of the output of the jobs command.
  • You can kill a background process by entering: kill PID Replace PID with the process ID of the job. If that fails, enter the following:
    kill -KILL PID
  • To determine a job's PID, enter: jobs -l
  • If you are using sh, ksh, bash, or zsh, you may prevent background processes from sending error messages to the terminal. Redirect the output to /dev/null using the following syntax: count 2> /dev/null &

Friday, 16 August 2013

Guide to Unix/Commands/File Compression

gzip

gzip compresses files. Each single file is compressed into a single file. The compressed file consists of a GNU zip header and deflated data.
If given a file as an argument, gzip compresses the file, adds a ".gz" suffix, and deletes the original file. With no arguments, gzip compresses the standard input and writes the compressed file to standard output.
Some useful options are:
-c  Write compressed file to stdout. Do not delete original file.
-d  Act like gunzip.
-1  Performance: Use fast compression (somewhat bigger result)
-9  Performance: Use best compression (somewhat slower)
Examples:
Compress the file named README. Creates README.gz and deletes README.
$ gzip README
Compress the file called README. The standard output (which is the compressed file) is redirected by the shell to gzips/README.gz. Keeps README.
$ gzip -c README > gzips/README.gz
Use gzip without arguments to compress README.
$ < README gzip > gzips/README.gz

gunzip

gunzip uncompresses a file that was compressed with "gzip" or "compress". It tries to handle both the GNU zip format of gzip and the older Unix compress format. It does this by recognizing the extension (".gz" or ".Z" or several others) of a file.
Some useful options are:
-c  Write uncompressed data to stdout. Do not delete original file.
Undo the effect of gzip README.gz by replacing the compressed version of the file with the original, uncompressed version. Creates README and deletes README.gz.
$ gunzip README.gz
Write the uncompressed contents of README.gz to standard output. Pipe it into a pager for easy reading of a compressed file.
$ gunzip -c README.gz | more
Another way to do that is:
$ gunzip < README.gz | more
Some people name files package.tgz as short for package.tar.gz.

zcat

zcat is same thing as uncompress -c, though on many systems it is actually same as "gzcat" and gunzip -c.

gzcat

gzcat is same as gunzip -c which is gzip -dc.

tar

tar archives without compression.
An archive contains one or more files or directories. (If archiving multiple files, it might be better to put them in one directory, so extracting will put the files into their own directory.)
Modes:
-c  create an archive (files to archive, archive from files)
-x  extract an archive (archive to files, files from archive)
Options:
-f FILE  name of archive - must specify unless using tape drive for archive
-v       be verbose, list all files being archived/extracted
-z       create/extract archive with gzip/gunzip
-j       create/extract archive with bzip2/bunzip2
-J       create/extract archive with XZ

Examples:
Compress (gzip) and package (tar) the directory myfiles to create myfiles.tar.gz:
$ tar -czvf myfiles.tar.gz myfiles
Uncompress (gzip) and unpack compressed package, extracting contents from myfiles:
$ tar -xzvf myfiles.tar.gz
There are two different conventions concerning gzipped tarballs. One often encounters .tar.gz. The other popular choice is .tgz. Slackware packages use the latter convention.
If you have access to a tape device or other backup medium, then you can use it instead of an archive file. If the material to be archived exceeds the capacity of the backup medium, the program will prompt the user to insert a new tape or diskette.
Use the following command to back up the myfiles directory to floppies:
$ tar -cvf /dev/fd0 myfiles
Restore that backup with:
$ tar -xvf /dev/fd0
You can also specify standard input or output -f - instead of an archive file or device. It is possible to use copy between directories by piping two "tar" commands together. For example, suppose we have two directories, from-stuff and to-stuff
$ ls -F
from-stuff/
to-stuff/
As described in Running Linux, one can mirror everything from from-stuff to to-stuff this way:
$ tar cf - . | (cd ../to-stuff; tar xvf -)
Reference: Welsh, Matt, Matthias Kalle Dalheimer and Lar Kaufman (1999), Running Linux. Third edition, O'Reilly and Associates.

cpio

cpio is used for creating archives. When creating an archive, a list of files is fed to its standard-input (rather than specifying the files on the commandline). This file-list is typically created by ls, find or locate and then piped directly to cpio; but it can also first be filtered/edited with commands like *grep, sed, sort and others. A (pre-edited) list stored as a file can also be used, by using cat to feed the pipeline or simply by redirecting the shell's standard-input (<).
cpio works in one of three modes:
  • cpio -o - Copy-Out mode: Files are copied out from the filesystem to create an archive. Usually the archive is created by simply using the shell to redirect cpio's output to a file (with >).
  • cpio -i - Copy-In mode: Files from an existing archive are restored/extracted, and copied back in to the filesystem.
  • cpio -p - Pass-Through mode: cpio is used to copy files from one location in the directory-tree to another, without an actual archiving being made.
In addition comes:
  • cpio -t - List archive: The content of an archive is listed without extracting it.
  • cpio -tv - Here the verbose-option (-v) will cause a "long listing", with permissions, size and ownership.
Adding the verbose-option (-v) in Copy-In, Copy-Out and Pass-Through mode, will cause cpio to list the files as they're extracted/archived/copied.
Using ls to create an archive (verbosely) with all doc-files in the current directory:
$ ls *.doc | cpio -ov > word-docs.cpio
Using find to create an archive with all txt-files in and below the current directory:
$ find . -name "*.txt" | cpio -ov > text-files.cpio
Using find and fgrep to create an archive of just the txt-files containing the word wiki (any case):
$ find . -name "*.txt" -exec fgrep -l -i "wiki" {} \; | cpio -ov > wiki.cpio
For fgrep the option -i means "ignore case", and the option -l cause it to just list the filenames of files matching the pattern.
Using an existing list of files:
$ cpio -ov < file-list.txt > archive.cpio
Using several list of files, but first after sort-ing and uniq-ing them:
$ cat files1 files2 files3 | sort | uniq | cpio -ov > myfiles.cpio
To add more files, use the append-option (-A). Specify the file with the file-option (-F):
$ cat files4 | cpio -ovA -F myfiles.cpio
To extract files (being verbose):
$ cpio -iv < myfiles.cpio
cpio doesn't create directories by default, so use the option -d to make it.
To extract files, while creating directories as needed:
$ cpio -ivd < myfiles.cpio
To list the content of an archive, short listing:
$ cpio -t < myfiles.cpio
To list the content of an archive, long listing:
$ cpio -tv < myfiles.cpio

pax

pax is like "tar" but with different command-line syntax. Because "pax" does not assume the tape device, some prefer it to "tar".

bzip2

bzip2 and bunzip2 are similar to "gzip"/"gunzip" but with a different compression method. Compression is generally better but slower than "gzip". Decompression is somewhat fast.
An option of -1 through -9 can be used to specify how good bzip2 should compress. The number tells how large "chunks" in steps of 100kB should compress at a time, so using bzip2 -5 foo.bar will compress foo.bar in chunks of 500kB each. Generally, larger chunks means better compression (but probably slower). Only undamged "chunks" can be recovered with bzip2recover from a damaged bzip2-file, so if you've compressed 900kB chunks, you'll loose 900kB of your file if one chunk is damaged - but only 100kB if you used 100kB chunks (bzip2 -1). By default bzip2 uses 900kB chunks for best possible compression.
bzcat is same as bunzip2 -c which is bzip2 -dc.

zip

zip is an archive whicd

compress

compress is a compressed file format that is popular on UNIX systems. Files compressed with compress will have a ".Z" extension appended to its name.
Stub
This page or section of Guide to Unix is a stub.

Monday, 12 August 2013

Install Chess (and the Tetris clone Quadrapassel) on Ubuntu 12.04 Precise Pangolin

Ubuntu 12.04 Precise Pangolin comes with a wide array of software, but a lot of the traditional GNOME games, like Chess, are missing. Which is something of an embarrassing shortfall, really, because both Mac OS X and Windows 7 come with chess games. Even Windows Vista came with a chess game, which is really rather embarrassing for Ubuntu.
Fortunately, this egregious deficiency is easily corrected by installing the GNOME games package, which includes the GNOME Chess game. As an added bonus, you’ll also get the Quadrapassel Tetris clone, which is a great time-killer.
To install GNOME Games, simply go to the Terminal and type this command:

sudo apt-get install gnome-games
Enter your password to authenticate, and apt-get will download and install the missing GNOME games.
After the installation is complete, you can find Chess and the other games by going to the Dash and searching for Chess.

Enjoy!!!!!

Thursday, 8 August 2013

A very flexible touch typing tutor

klavaro
Free
Klavaro is a simple tutor to teach correct typing, almost independently of language and very flexible regarding to new or unknown keyboard layouts.
Its key features are:
  • Internationalization
  • Ready to use keyboard layouts
  • Keyboard layout editor
  • Basic course
  • Adaptability, velocity and fluidness exercises
  • Progress charts.
 

Reviews

badem4o, 2011-05-09
Great software, take yourself beyond the index finger typing :) Great simple app. Great if you are just starting to learn how to type, or even better if you are trying to break those bad, old, index finger habits.
 

Install Wallch Wallpaper Changer in Ubuntu 12.04/11.10/Linux Mint


Install Wallch Wallpaper Changer in Ubuntu 12.04 Precise Pangolin/11.10 Oneiric/Linux Mint 13/12

Wallch is a wallpaper changer for Gnome which can change the desktop wallpaper after an adjustable time. It has a friendly and easy to use graphical interface. Wallch also supports Live Earth wallpaper which updates every 1/2 hour.
ubuntu wallch

Wallch Features:
  • Live Earth Wallpaper
  • Picture of The Day
  • Folder Monitoring
  • Unity Integration
  • Statistics
  • Features JPG, PNG, GIF, and BMP support
  • Radom image changing
  • Desktop/Sound notification
  • History Logging
  • Taking screenshot
  • Taking webcam image
Easily Add to Startup
ubuntu wallpaper changer

Live Earth include
ubuntu wallpaper changer

To install Wallch wallpaper changer in Ubuntu 12.04 Precise/Linux Mint 13 open Terminal (Press Ctrl+Alt+T) and copy the following commands in the Terminal:






To install Wallch wallpaper changer in Ubuntu 11.10 Oneiric/Linux Mint 12 open Terminal (Press Ctrl+Alt+T) and copy the following commands in the Terminal:





That's it