Category: Linux Mantras

As a Long Term Support release, Ubuntu 12.04 is a particularly important iteration of Canonical’s Linux distribution. Just one more beta version of the free and open source software is scheduled–with an arrival date of March 29–before the launch of the final release on April 26.

“The team has been hard at work throughout this cycle, introducing new features and fixing bugs,” wrote Kate Stewart, Canonical’s Ubuntu Release Manager, in anannouncement on Thursday.

Among the new changes included in this first beta version are a feature enabling considerable power savings and a new CD image size of 703MB “to squeeze in every bit of package goodness we can on the installation CD images,” Stewart added.

Designed for testing purposes, Ubuntu 12.04 Beta 1 can now be downloaded from the project’s site. Here’s a quick rundown of some of the release’s key highlights.

1. A Taste of HUD

As hinted by Canonical founder Mark Shuttleworth in late January, Ubuntu’s new “Head-Up Display,” or “HUD,” interface makes its debut in this beta version. Dubbed as “a new way to quickly search and access any desktop application’s and indicator’s menu,” HUD can be accessed by pressing the Alt key and typing in a description of what you want to do. The software will then return a set of corresponding entries, including some fuzzy matching, the project team says. Over time, it also learns from your previous choices to make the search more and more accurate, they note.

2. Unity Tweaks

Ubuntu’s Unity interface has been nothing if not controversial, but in this new release, the “Appearance” panel in the software’s system settings lets you more easily configure some properties of Unity. For bookmark users, the Unity launcher now also includes Nautilus quicklist support.

3. ClickPad Support

Ubuntu 12.04 now includes support for ClickPads, or trackpads on which the physical button is integrated into the trackpad surface. Most Synaptics ClickPads are recognized out of the box in this new release, as are Apple MacBook trackpads. Coming in Ubuntu’s next release will be support for Apple Magic Trackpads and more Synaptics brand devices, the Ubuntu team says.

4. Power Savings

For the aforementioned power savings, RC6–the technology that allows GPUs to go into a very low power consumption state when the GPU is idle–is now enabled by default for Sandy Bridgesystems. The result can be improvements of between 40 and 60 percent in power usage under idle loads, the developers say.

5. LibreOffice 3.5 and Rhythmbox

Among the default applications in Ubuntu 12.04 are the newly updated LibreOffice 3.5 as well as Rhythmbox as the default music player.

6. Better Language Support

When users install new software through the Ubuntu Software Center, the corresponding language support packages–including translations and spell check modules–are now installed automatically as well, thus eliminating the need to open “Language Support” after installing new software.

7. A Fresh Kernel

Finally, upgrading from the second alpha release of Precise Pangolin, this new beta version includes the 3.2.0-17.27 Ubuntu kernel, which is based on version 3.2.6 of the upstream stableLinux kernel.


Linux is a great operating system and more often than not, it’s the installation of Linux that is the matter of discussion.

For a change, I will be talking about how touninstall Linux Ubuntu (or other operating systems) from a dual boot windows pc, and still being able to boot into other OS without much work. So let’s get started right away.

Backup your Linux files

It pops up everytime, but backup really is very important. If you have been using your Linux system for some time, chances are you would have created files you wouldn’t want to loose. In such a case, you can boot into Linux, backup your files (check out your Home directory) on an external device or onto a Windows partition.

Alternatively if you somehow managed to mess up and can’t boot into Linux, you can use ext2 IFS which allows you access to your Linux paritions. It can only read ext2 and ext3 filesystems though. If you are using other filesystems, you would have to look around a bit for a similar application. In any case, you can always boot from a Linux live CD to backup files if everything else fails.

Delete Linux Partitions

Next step: delete every Linux partition. That would include everything – boot, swap, home, whatever way you set up your system, it is time to delete all Linux partitions. There are a couple of ways to achieve this, easiest being from within Windows’ Computer Management. You need to:

how to uninstall ubuntu from dual boot windows pc

  • Log in to an account with administrative privileges.
  • Right click on My Computer, click ‘Manage’.
  • Choose ‘Disk Management’ listed under ‘Storage’ and you will see all of your partitions listed there.

how to uninstall ubuntu from dual boot windows pc

Next, you need to identify Linux partitions. The Linux partitions generally don’t have a file system listed with them if Windows doesn’t recognize it, so this can serve as a clue. Other ways can be identifying by size or partition number. You can use partition managers, these are generally better at identifying filesystems. Go ahead, delete the partitions, just make sure you delete the correct ones. Linux is gone and so is GRUB, which allowed you to choose operating system to use at boot time. So currently, you cannot boot into any other operating system, without some help. We are going to fix that soon.

Restore MBR

As we noted, GRUB is gone and so is the ability to boot into Windows. You would now need to boot from the Windows CD/DVD to restore the Master Boot Record. You can also use other Live CDs like one of my absolute favorites and highly recommended HBCD just in case you don’t have Windows installation media handy. Here are the steps:

  • Boot from Windows CD/DVD and choose “Repair” when it shows up.

uninstall ubuntu from dual boot pc

  • Choose command prompt on the resulting screen and run the following two commands:
    • bootrec /fixmbr
    • bootrec /fixboot

XP users need to run the recovery console from Windows XP CD and then type fixmbr when at the command prompt.

Reclaim free space

Restart now, remove the CD and you should be able to boot into your Windows installation. Once there, you should go ahead and reclaim the unpartitioned free space which was previously occupied by Linux. Doing so is simple and straight forward:

  • Fire up Disk Management as before.
  • Right-click on the unparitioned space, choose new partition or new logical drive.
  • Specify the size and other options according to your needs and you are done.

The free space should now be accessible from My Computer like any other partition. Alternatively, you can create multiple partitions from the free space or resize existing partitions to suit your needs.You can use utilities like GPartedEasues Partition Master or any one of the many partition managers on HBCD to perform such advanced tasks easily.

The Fedora Project on Tuesday announced that the next version of its namesake Linux distribution–Fedora 17, also known as “Beefy Miracle”–has now entered beta testing.

fedora“The Beta release is the last important milestone of Fedora 17,” wrote release engineer Dennis Gilmore in the official announcement. “Only critical bug fixes will be pushed as updates leading to the general release of Fedora 17 in May.”

As a beta release, it’s not intended for production purposes, of course. Nevertheless, the Fedora 17 beta can be downloaded for free from the Fedora Project site. The final release of the software is due on May 22.

Six Easy Pieces

It wasn’t all that many months ago that Fedora 16 was released, but this week’s launch of the Fedora 17 beta takes the free and open source operating system several steps further.

Fedora, of course, is the free, community version of Red Hat Enterprise Linux. Here’s a small sampling of some of the features this new version includes.

1. GNOME 3.4

Launched late last month, GNOME 3.4 brings some 41,000 improvements to the table, including new search capabilities in the activities overview, improved themes, and enhancements to the Documents and Contacts applications. A new app, meanwhile, offers easy access to virtual machines.

2. KDE 4.8

Also part of Fedora 17 is an updated version of the alternativeKDE desktop. Specifically, KDE Plasma Workspace 4.8 is offered in this release, including Plasma Desktop and Netbook workspaces, the KDE Applications, and the KDE Platform.

3. A New GIMP

An updated version of GIMP–the free and open source alternative to Adobe’s Photoshop–also stars in Fedora 17. Version 2.8, now included in the software, introduces improvements such as single-window mode, layer groups, and on-canvas editing.

4. An Updated PHP

PHP was updated in this latest Fedora beta release as well, so that the version now included isPHP 5.4, released earlier this year.

5. Under the Hood

Version 3.3 of the Linux kernel powers Fedora 17, complete with improved btrfs and ext4 filesystems, GMA (poulsbo) graphics, Broadcom wireless chipset support, and numerous other bug fixes and enhancements. Firewalld is now the default firewall solution, and in the cloud, OpenStack has been updated to “Essex,” which debuted earlier this month.

6. Developer Tools

Last but not least, Fedora 17 includes a pre-release version of Juno, the iteration of the Eclipse SDK expected in June. Java 7–along with OpenJDK 7–is the default Java runtime and Java build toolset, while GCC 4.7.x is now the primary compiler. Ruby 1.9.3, the latest stable version of the Ruby language, is included in the new release as well, as is an update for Erlang to the R15 release.



If you are new to any of the top 5 tools mentioned here, please read the rest of the article to understand more about them.

Top 5 Best Free Network Monitoring Tool

Fig: Favorite System Monitoring Tool Voting Results

1. Nagios – Network Monitoring Software

Nagios System Monitoring Tools for LinuxNagios won by a huge margin. This is not a suprise to lot of people, as Nagios is hands-down the best monitoring tool.  As you already know, I love Nagios and have been using it for a long time. I have also written several tutorials on Nagios (and many more to come).

Nagios Core 3 eBook is the only guide you’ll ever need to monitor everything, be proactive, and sleep well.

2. Cacti – Network Monitoring Software

Cacti Network Monitoring Tool for UnixCacti uses RRDtool for the network graphing solution. Using Caci you can monitor and graph – CPU Load, Network bandwidth utilization, network traffic monitor etc.,

Cacti also supports plugin architecture. Some admins like the powerful graphing feature provided by Cacti, they use both Nagios and Cacti in their environment as the network monitoring tools.

3. Top (and other top variations)

Unix top, ntop command for Network Monitoring

  • Top Command – Few of you have mentioned top command as your favorite monitoring tool :-)
  • ntop (Network Top) – Ntop is a free network monitoring software. ntop displays network usage information in a similar fashion to top command output. You can also create HTML output file (dump) of the network status using ntop.  Apart from the command line, you can also launch the web version of the ntop once you’ve started the ntopd service and visit http://{ip-address}:3000 from browser.
  • htop (interactive process viewer for Linux) – htop is similar to top command with few additional features. The main difference is that you can use mouse to interact with the htop command output.

4. Zabbix

Zabbix Open Source Infrastructure Monitoring Solution for Unix PlatformsZabbiz is an open source monitoring solution with a commercial support provided by a company – Zabbix SIA, who primarily develops the software.  Zabbix requires a database to store the monitoring data. You can choose any DB of your choice – MySQL, PostgreSQL, Oracle, or SQLite.

Zabbix has the following three main modules:

  • Server (written in C)
  • Agents (written in C)
  • Frontend (PHP and Javascript)

Additional information about Zabbix:

5. Munin

Munin Network Badwidth Monitoring Platform Using PluginsSimilar to Cacti, Munin uses RRDTool to present the output in a pretty graph via web interface. The primary emphasis of Munin is on the plug and play architecture for it’s plugin. There are lot of plugins available for Munin, which will just work out-of-the box without lot of tweaking.

All  these data are based on the survey conducted from some Linux guys

Managing Packages in Ubuntu

Debian based systems (including Ubuntu) uses apt-* commands for managing packages from the command line.

In this article, using Apache 2 installation as an example, let us review how to use apt-* commands to view, install, remove, or upgrade packages.

1. apt-cache search: Search Repository Using Package Name

If you are installing Apache 2, you may guess that the package name is apache2.  To verify whether it is a valid package name, you may want to search the repository for that particular package name as shown below.

The following example shows how to search the repository for a specific package name.

$ apt-cache search ^apache2$
apache2 - Apache HTTP Server metapackage

2. apt-cache search: Search Repository Using Package Description

If you don’t know the exact name of the package, you can still search using the package description as shown below.

$ apt-cache search "Apache HTTP Server"
apache2 - Apache HTTP Server metapackage
apache2-doc - Apache HTTP Server documentation
apache2-mpm-event - Apache HTTP Server - event driven model
apache2-mpm-prefork - Apache HTTP Server - traditional non-threaded model
apache2-mpm-worker - Apache HTTP Server - high speed threaded model
apache2.2-common - Apache HTTP Server common files

3. apt-file search: Search Repository Using a Filename from the Package

Sometimes you may know the configuration file name (or) the executable name from the package that you would like to install.

The following example shows that apache2.conf file is part of the apache2.2-common package. Search the repository with a configuration file name using apt-file command as shown below.

$ apt-file search apache2.conf
apache2.2-common: /etc/apache2/apache2.conf
apache2.2-common: /usr/share/doc/apache2.2-common/examples/apache2/apache2.conf.gz

4. apt-cache show: Basic Information About a Package

Following example displays basic information about apache2 package.

$ apt-cache show apache2
Package: apache2
Priority: optional
Maintainer: Ubuntu Core Developers
Original-Maintainer: Debian Apache Maintainers
Version: 2.2.11-2ubuntu2.3
Depends: apache2-mpm-worker (>= 2.2.11-2ubuntu2.3)
 | apache2-mpm-prefork (>= 2.2.11-2ubuntu2.3)
 | apache2-mpm-event (>= 2.2.11-2ubuntu2.3)
Filename: pool/main/a/apache2/apache2_2.2.11-2ubuntu2.3_all.deb
Size: 46350
Description: Apache HTTP Server metapackage
 The Apache Software Foundation's goal is to build a secure, efficient and
 extensible HTTP server as standards-compliant open source software.

5. apt-cache showpkg: Detailed Information About a Package

“apt-cache show” displays basic information about a package. Use “apt-cache showpkg” to display detailed information about a package as shown below.

$ apt-cache showpkg apache2
Package: apache2
2.2.11-2ubuntu2.3 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_jaunty-updates_main_binary-i386_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_jaunty-security_main_binary-i386_Packages)
 Description Language:
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_jaunty-updates_main_binary-i386_Packages
                  MD5: d24f049cd70ccfc178dd8974e4b1ed01
Reverse Depends:
  2.2.11-2ubuntu2.3 - apache2-mpm-worker (18 2.2.11-2ubuntu2.3) apache2-mpm-prefork (18 2.2.11-2ubuntu2.3) apache2-mpm-event (2 2.2.11-2ubuntu2.3)
  2.2.11-2ubuntu2 - apache2-mpm-worker (18 2.2.11-2ubuntu2) apache2-mpm-prefork (18 2.2.11-2ubuntu2) apache2-mpm-event (2 2.2.11-2ubuntu2)
Provides:   2.2.11-2ubuntu2.3 -
  2.2.11-2ubuntu2 -
Reverse Provides:   apache2-mpm-itk 2.2.6-02-1build4.3
  apache2-mpm-worker 2.2.11-2ubuntu2.3
  apache2-mpm-prefork 2.2.11-2ubuntu2.3
  apache2-mpm-prefork 2.2.11-2ubuntu2
  apache2-mpm-event 2.2.11-2ubuntu2

6. apt-file list: List all the Files Located Inside a Package

Use “apt-file list” to display all the files located inside the apache2 package as shown below.

$ apt-file list apache2 | more
apache2: /usr/share/bug/apache2/control
apache2: /usr/share/bug/apache2/script
apache2: /usr/share/doc/apache2/NEWS.Debian.gz
apache2: /usr/share/doc/apache2/README.Debian.gz
apache2: /usr/share/doc/apache2/changelog.Debian.gz

7. apt-cache depends: List all Dependent Packages

Before installation, if you like to view all the dependent packages, use “apt-cache depends” as shown below.

$ apt-cache depends apache2
 |Depends: apache2-mpm-worker
 |Depends: apache2-mpm-prefork
  Depends: apache2-mpm-event

8. dpkg -l: Is the Package Already Installed?

Before installing a package, you may want to make sure it is not already installed as shown below using dpkg -l command.

$ dpkg -l | grep -i apache

9. apt-get install: Install a Package

Finally, install the package using “apt-get install” as shown below.

$ sudo apt-get install apache2
[sudo] password for ramesh: 

The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1
  libaprutil1 libpq5

0 upgraded, 7 newly installed, 0 to remove and 26 not upgraded.

10. dpkg -l : Verify Whether the Package got Successfully Installed

After installing the package, use “dpkg -l” to make sure it got installed successfully.

$ dpkg -l | grep apache ii  apache2             2.2.11-2ubuntu2.3  Apache HTTP Server metapackage
ii  apache2-mpm-worker  2.2.11-2ubuntu2.3  Apache HTTP Server - high speed threaded mod
ii  apache2-utils       2.2.11-2ubuntu2.3  utility programs for webservers
ii  apache2.2-common    2.2.11-2ubuntu2.3  Apache HTTP Server common files

11. apt-get remove: Delete a Package

Use “apt-get purge” or “apt-get remove” to delete a package as shown below.

$ sudo apt-get purge apache2 

$ sudo apt-get remove apache2

The following packages were automatically installed and are no longer required:
  apache2-utils linux-headers-2.6.28-11 libapr1 apache2.2-common
  linux-headers-2.6.28-11-generic apache2-mpm-worker libpq5 libaprutil1Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
0 upgraded, 0 newly installed, 1 to remove and 26 not upgraded.
Removing apache2 ...
  • apt-get remove will not delete the configuration files of the package
  • apt-get purge will delete the configuration files of the package

12. apt-get -u install: Upgrade a Specific Package

The following example shows how to upgrade one specific package.

$ sudo apt-get -u install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
apache2 is already the newest version.
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.

13. apt-get -u upgrade: Upgrade all Packages

To upgrade all the packages to it’s latest version, use “apt-get -u upgrade” as shown below.

$ sudo apt-get -u upgrade
The following packages will be upgraded:
  libglib2.0-0 libglib2.0-data libicu38 libsmbclient libwbclient0
  python-uno samba-common smbclient ttf-opensymbol tzdata
26 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

  1. Disk to disk backup using dd command: dd is a powerful UNIX utility, which is used by the Linux kernel makefiles to make boot images. It can also be used to copy data. This article explains how to backup entire hard disk and create an image of a hard disk using dd command.
  2. 15 rsync command examples: Every sysadmin should master the usage of rsync. rsync utility is used to synchronize the files and directories from one location to another. First time, rsync replicates the whole content between the source and destination directories. Next time, rsync transfers only the changed blocks or bytes to the destination location, which makes the transfer really fast.
  3. Three sysadmin rules: If you are a sysadmin, you can’t (and shouldn’t) break these three sysadmin rules.
  4. User and group disk quota: This article explains how to setup user and group quote with soft limit, hard limit and grace period. For example, if you specify 2GB as hard limit, user will not be able to create new files after 2GB.
  5. Troubleshoot using dmesg: Using dmesg you can view boot up messages that displays information about the hardware devices that the kernel detects during boot process. This can be helpful during troubleshooting process.
  6. RPM package management examples: 15 examples provided in this article explains everything you need to know about managing RPM packages on redhat based system (including CentOS).
  7. 10 netstat examples: Netstat command displays various network related information such as network connections, routing tables, interface statistics, masquerade connections, multicast memberships etc.,
  8. Manage packages using apt-* commands: These 13 practical examples explains how to manage packages using apt-get, apt-cache, apt-file and dpkg commands.
  9. Modprobe command examples: modprobe utility is used to add loadable modules to the Linux kernel. You can also view and remove modules using modprobe command.
  10. Ethtool examples: Ethtool utility is used to view and change the ethernet device parameters. These examples will explain how you can manipulate your ethernet NIC card using ethtool.
  11. NFS mount using exportfs: This is a linux beginners guide to NFS mount using exportfs. This explains how to export a file system to a remote machine and mount it both temporarily and permanently.
  12. Change timezone: Depending on your Linux distribution, use one of the methods explained in this article to change the timezone on your system.
  13. Install phpMyAdmin: phpMyAdmin is a web-based tool written in PHP to manage the MySQL database. Apart from viewing the tables (and other db objects), you can perform lot of DBA functions through the web based interface. You can also execute any SQL query from the UI.
  14. Setup squid to control internet access: Squid is a proxy caching server. You can use squid to control internet access at work. This guide will give a jump-start on how to setup squid on Linux to restrict internet access in an network.
  15. Add new swap space: Use dd, mkswap and swapon commands to add swap space. You can either use a dedicated hard drive partition to add new swap space, or create a swap file on an existing filesystem and use it as swap space.
  16. Install and configure snort: Snort is a free lightweight network intrusion detection system for both UNIX and Windows. This article explains how to install snort from source, write rules, and perform basic testing.
  17. Register RHEL/OEL linux to support: If you have purchased support from Oracle for your Linux, you can register to oracle support network (ULN) using up2date as explained here.
  18. tftpboot setup: You can install Linux from network using PXE by installing and configuring tftpboot server as explained here.
  19. Delete all iptables rules: When you are starting to setup iptables, you might want to delete (flush) all the existing iptables as shown here.
  20. Disable ping replies: Someone can flood the network with ping -f. If ping reply is disabled as explained here we can avoid this flooding.
  21. Block ip address using fail2ban: Fail2ban is a intrusion preventon framework that scans log files for various services ( SSH, FTP, SMTP, Apache, etc., ) and bans the IP that makes too many password failures. It also updates iptles firewall rules to reject these ip addresses.
  22. Package management using dpkg: On debian, you can install or remove deb packages using dpkg utility.
  23. Alfresco content management system: Alfresco is the best open source content management system. Everything you need to know to install and configure Alfresco is explained here.
  24. Bugzilla bug tracking system: Bugzilla is the best open source bug tracking system. Everything you need to know to install and configure Bugzilla is explained here.
  25. Rpm, deb, dpot and msi packages: This article explains how to view and extract files from various package types used by different Linux / UNIX distributions.
  26. Backup using rsnapshot: You can backup either a local host or remote host using rsnapshot rsync utility. rsnapshot uses the combination of rsync and hard links to maintain full-backup and incremental backups. Once you’ve setup and configured rsnapshot, there is absolutely no maintenance involved in it. rsnapshot will automatically take care of deleting and rotating the old backups.
  27. Create Linux user: This article explains how to create users with default configuration, create users with custom configuration, create users interactively, and creating users in bulk.
  28. Mount and view ISO file: ISO files are typically used to distribute the operating system. Most of the linux operating system that you download will be on ISO format. This explains how to view and mount any ISO file both as regular use and as root user.
  29. Manage password expiration and aging: Linux chage command can be used to perform several practical password aging activities including how-to force users to change their password.
  30. ifconfig examples: Interface configurator command ifconfig is used to initialize the network interface and to enable or disable the interfaces as shown in these 7 examples.
  31. Oracle db startup an sthudown: Every sysadmin should know some basic DBA operations. This explains how to shutdown and start the oracle database.
  32. PostgreSQL install and configure: Similar to mySQL, postgreSQL is very famous and feature packed free and open source database. This is a jumpstart guide to install and configure postgresql from source on Linux.
  33. Magic SysRq key: Have you wondered what the SysRq key on your keyboard does. Here is one use for it. You can safely reboot Linux using the magic SysRq key as explained here.
  34. Wakeonlan Tutorial: Using Wakeonlan WOL, you can turn on the remote servers where you don’t have physical access to press the power button.
  35. List hardware spec using lshw: ls+hw = lshw, which lists the hardware specs of your system.
  36. View hardware spec using dmidecode: dmidecode command reads the system DMI table to display hardware and BIOS information of the server. Apart from getting current configuration of the system, you can also get information about maximum supported configuration of the system using dmidecode. For example, dmidecode gives both the current RAM on the system and the maximum RAM supported by the system.
  37. Use the support effectively: Companies spend lot of cash on support mainly for two reasons: 1) To get help from vendors to fix critical production issues 2) To keep up-to-date with the latest version of the software and security patches released by the vendors. In this article, I’ve given 10 practical tips for DBAs, sysadmins and developers to use their hardware and software support effectively.
  38. Install/Upgrade LAMP using Yum: Installing LAMP stack using yum is a good option for beginners who don’t feel comfortable installing from source. Also, Installing LAMP stack using yum is a good choice, if you want to keep things simple and just use the default configuration.
  39. Template to track your hardware assests: If you are managing more than one equipment in your organization, it is very important to document and track ALL information about the servers effectively. In this article, I have listed 36 attributes that needs to be tracked for your equipments, with an explanation on why it needs to be tracked. I have also provided a spreadsheet template with these fields that will give you a jumpstart.
  40. Disable SELinux: If you don’t understand how SELinux works and the fundamental details on how to configure it, keeping it enabled will cause lot of issues. Until you understand the implementation details of SELinux you may want to disable it to avoid some unnecessary issues as explained here.
  41. Install PHP5 from source: This is a step-by-step guide to install PHP5 from source on UNIX environment.
  42. Install MySQL from source: This is a step-by-step guide to install MySQL from source on UNIX environment.
  43. Launch Linux clients on windows: If you are using SSH client to connect to Linux server from your Windows laptop, sometimes it may be necessary to launch UI application on the remote Linux server, but to display the UI on the windows laptop. Cygwin can be used to install software on Linux from Windows and launch Linux X client software on Windows.
  44. IPCS: IPC allows the processes to communicate with each another. The process can also communicate by having a file accessible to both the processes. Processes can open, and read/write the file, which requires lot of I/O operation that consumes time. This explains different types of IPCS and provides 10 IPCS command examples.
  45. Logical Volume Manager: Using LVM we can create logical partitions that can span across one or more physical hard drives.You can create and manage LVM using vgcreate, lvcreate, and lvextend lvm2 commands as shown here.
  46. 15 Tcpdump examples: tcpdump is a network packet analyzer. tcpdump allows us to save the packets that are captured, so that we can use it for future analysis. The saved file can be viewed by the same tcpdump command. We can also use open source software like wireshark to read the tcpdump pcap files.
  47. Manage partition using fdisk: Using fdisk you can create a maximum of four primary partition, delete an existing partition, or change existing partition. Using fidsk you are allowed to create a maximum of four primary partition, and any number of logical partitions, based on the size of the disk.
  48. VMWare fundamentals: At some point every sysadmin should deal with virtualization. VMWare is a very popular choise to virtualize your server environment. This article will provide the fundamental information for you to get a jumpstart on VMWare.
  49. Rotate the logs automatically: Manging log files is an importat part of sysadmin life. logrotate make it easy by allowing you to setup automatica log rotation based on several configurations. Using logrotate you can also configure it to execute custom shell scripts immediately after log rotation.
  50. Passwordless SSH login setup: Using ssh-keygen and ssh-copy-id you can setup passwordless login to remote Linux server. ssh-keygen creates the public and private keys. ssh-copy-id copies the local-host’s public key to the remote-host’s authorized_keys file.

I’ve compiled 25 performance monitoring and debugging tools that will be helpful when you are working on Linux environment. This list is not comprehensive or authoritative by any means.

However this list has enough tools for you to play around and pick the one that is suitable your specific debugging and monitoring scenario.

1. SAR

Using sar utility you can do two things: 1) Monitor system real time performance (CPU, Memory, I/O, etc) 2) Collect performance data in the background on an on-going basis and do analysis on the historical data to identify bottlenecks.

Sar is part of the sysstat package. The following are some of the things you can do using sar utility.

  • Collective CPU usage
  • Individual CPU statistics
  • Memory used and available
  • Swap space used and available
  • Overall I/O activities of the system
  • Individual device I/O activities
  • Context switch statistics
  • Run queue and load average data
  • Network statistics
  • Report sar data from a specific time
  • and lot more..

The following sar command will display the system CPU statistics 3 times (with 1 second interval).

The following “sar -b” command reports I/O statistics. “1 3″ indicates that the sar -b will be executed for every 1 second for a total of 3 times.

$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

01:56:28 PM       tps      rtps      wtps   bread/s   bwrtn/s
01:56:29 PM    346.00    264.00     82.00   2208.00    768.00
01:56:30 PM    100.00     36.00     64.00    304.00    816.00
01:56:31 PM    282.83     32.32    250.51    258.59   2537.37
Average:       242.81    111.04    131.77    925.75   1369.90

More SAR examples: How to Install/Configure Sar (sysstat) and 10 Useful Sar Command Examples

2. Tcpdump

tcpdump is a network packet analyzer. Using tcpdump you can capture the packets and analyze it for any performance bottlenecks.

The following tcpdump command example displays captured packets in ASCII.

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP > P 1457239478:1457239594(116) ack 1561461262 win 63652
14:34:51.423640 IP > P 116:232(116) ack 1 win 63652

Using tcpdump you can capture packets based on several custom conditions. For example, capture packets that flow through a particular port, capture tcp communication between two specific hosts, capture packets that belongs to a specific protocol type, etc.

More tcpdump examples: 15 TCPDUMP Command Examples

3. Nagios

Nagios is an open source monitoring solution that can monitor pretty much anything in your IT infrastructure. For example, when a server goes down it can send a notification to your sysadmin team, when a database goes down it can page your DBA team, when the a web server goes down it can notify the appropriate team.

You can also set warning and critical threshold level for various services to help you proactively address the issue. For example, it can notify sysadmin team when a disk partition becomes 80% full, which will give enough time for the sysadmin team to work on adding more space before the issue becomes critical.

Nagios also has a very good user interface from where you can monitor the health of your overall IT infrastructure.

The following are some of the things you can monitor using Nagios:

  • Any hardware (servers, switches, routers, etc)
  • Linux servers and Windows servers
  • Databases (Oracle, MySQL, PostgreSQL, etc)
  • Various services running on your OS (sendmail, nis, nfs, ldap, etc)
  • Web servers
  • Your custom application
  • etc.

More Nagios examples: How to install and configure Nagiosmonitor remote Windows machine, and monitor remote Linux server.

4. Iostat

iostat reports CPU, disk I/O, and NFS statistics. The following are some of iostat command examples.

Iostat without any argument displays information about the CPU usage, and I/O statistics about all the partitions on the system as shown below.

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

By default iostat displays I/O data for all the disks available in the system. To view statistics for a specific device (For example, /dev/sda), use the option -p as shown below.

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.51      1598.48 2719069928 3963829584
sda2            336.38        27.17        54.00   67365064  133905080
sda1            821.89         0.69       243.53    1720833  603892838

5. Mpstat

mpstat reports processors statistics. The following are some of mpstat command examples.

Option -A, displays all the information that can be displayed by the mpstat command as shown below. This is really equivalent to “mpstat -I ALL -u -P ALL” command.

$ mpstat -A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:26:34 PM  CPU    intr/s
10:26:34 PM  all     36.51
10:26:34 PM    0      0.00
10:26:34 PM    1      0.00
10:26:34 PM    2      0.04
10:26:34 PM    3      0.00

10:26:34 PM  CPU     0/s     1/s     8/s     9/s    12/s    14/s    15/s    16/s    19/s    20/s    21/s    33/s   NMI/s   LOC/s   SPU/s   PMI/s   PND/s   RES/s   CAL/s   TLB/s   TRM/s   THR/s   MCE/s   MCP/s   ERR/s   MIS/s
10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.

mpstat Option -P ALL, displays all the individual CPUs (or Cores) along with its statistics as shown below.

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

6. Vmstat

vmstat reports virtual memory statistics. The following are some of vmstat command examples.

vmstat by default will display the memory usage (including swap) as shown below.

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0

To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0

iostat and vmstat are part of the sar utility. You should install sysstat package to get iostat and vmstat working.

More examples: 24 iostat, vmstat and mpstat command Examples

7. PS Command

Process is a running instance of a program. Linux is a multitasking operating system, which means that more than one process can be active at once. Use ps command to find out what processes are running on your system.

ps command also give you lot of additional information about the running process which will help you identify any performance bottlenecks on your system.

The following are few ps command examples.

Use -u option to display the process that belongs to a specific username. When you have multiple username, separate them using a comma. The example below displays all the process that are owned by user wwwrun, or postfix.

$ ps -f -u wwwrun,postfix
postfix   7457  7435  0 Mar09 ?        00:00:00 qmgr -l -t fifo -u
wwwrun    7495  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7496  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7497  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7498  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7499  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10078  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10082  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix  15677  7435  0 22:23 ?        00:00:00 pickup -l -t fifo -u

The example below display the process Id and commands in a hierarchy. –forest is an argument to ps command which displays ASCII art of process tree. From this tree, we can identify which is the parent process and the child processes it forked in a recursive manner.

$ ps -e -o pid,args --forest
  468  \_ sshd: root@pts/7
  514  |   \_ -bash
17484  \_ sshd: root@pts/11
17513  |   \_ -bash
24004  |       \_ vi ./790310__11117/journal
15513  \_ sshd: root@pts/1
15522  |   \_ -bash
 4280  \_ sshd: root@pts/5
 4302  |   \_ -bash

More ps examples: 7 Practical PS Command Examples for Process Monitoring

8. Free

Free command displays information about the physical (RAM) and swap memory of your system.

In the example below, the total physical memory on this system is 1GB. The values displayed below are in KB.

# free
       total   used    free   shared  buffers  cached
Mem: 1034624   1006696 27928  0       174136   615892
-/+ buffers/cache:     216668      817956
Swap:    2031608       0    2031608

The following example will display the total memory on your system including RAM and Swap.

In the following command:

  • option m displays the values in MB
  • option t displays the “Total” line, which is sum of physical and swap memory values
  • option o is to hide the buffers/cache line from the above example.
# free -mto
                  total       used      free     shared    buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983            0    1983
Total:          2994        983     2011

9. TOP

Top command displays all the running process in the system ordered by certain columns. This displays the information real-time.

You can kill a process without existing from top. Once you’ve located a process that needs to be killed, press “k” which will ask for the process id, and signal to send. If you have the privilege to kill that particular PID, it will get killed successfully.

PID to kill: 1309
Kill PID 1309 with signal [15]:
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent
 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus

Use top -u to display a specific user processes only in the top command output.

$ top -u geek

While unix top command is running, press u which will ask for username as shown below.

Which user (blank for all): geek
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent

More top examples: 15 Practical Linux Top Command Examples

10. Pmap

pmap command displays the memory map of a given process. You need to pass the pid as an argument to the pmap command.

The following example displays the memory map of the current bash shell. In this example, 5732 is the PID of the bash shell.

$ pmap 5732
5732:   -bash
00393000    104K r-x--  /lib/
003b1000   1272K r-x--  /lib/
00520000      8K r-x--  /lib/
0053f000     12K r-x--  /lib/
0084d000     76K r-x--  /lib/
00c57000     32K r-x--  /lib/
00c8d000     36K r-x--  /lib/
b7d6c000   2048K r----  /usr/lib/locale/locale-archive
bfd10000     84K rw---    [ stack ]
 total     4796K

pmap -x gives some additional information about the memory maps.

$  pmap -x 5732
5732:   -bash
Address   Kbytes     RSS    Anon  Locked Mode   Mapping
00393000     104       -       -       - r-x--
003b1000    1272       -       -       - r-x--
00520000       8       -       -       - r-x--
0053f000      12       -       -       - r-x--
0084d000      76       -       -       - r-x--
00c57000      32       -       -       - r-x--
00c8d000      36       -       -       - r-x--
b7d6c000    2048       -       -       - r----  locale-archive
bfd10000      84       -       -       - rw---    [ stack ]
-------- ------- ------- ------- -------
total kB    4796       -       -       -

To display the device information of the process maps use ‘pamp -d pid’.

11. Netstat

Netstat command displays various network related information such as network connections, routing tables, interface statistics, masquerade connections, multicast memberships etc.,

The following are some netstat command examples.

List all ports (both listening and non listening) using netstat -a as shown below.

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:30037         *:*                     LISTEN
udp        0      0 *:bootpc                *:*                                

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

Use the following netstat command to find out on which port a program is running.

# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        1      0 dev-db:ssh         CLOSE_WAIT  -
tcp        1      0 dev-db:ssh         CLOSE_WAIT  -

Use the following netstat command to find out which process is using a particular port.

# netstat -an | grep ':80'

More netstat examples: 10 Netstat Command Examples

12. IPTraf

IPTraf is a IP Network Monitoring Software. The following are some of the main features of IPTraf:

  • It is a console based (text-based) utility.
  • This displays IP traffic crossing over your network. This displays TCP flag, packet and byte counts, ICMP, OSPF packet types, etc.
  • Displays extended interface statistics (including IP, TCP, UDP, ICMP, packet size and count, checksum errors, etc.)
  • LAN module discovers hosts automatically and displays their activities
  • Protocol display filters to view selective protocol traffic
  • Advanced Logging features
  • Apart from ethernet interface it also supports FDDI, ISDN, SLIP, PPP, and loopback
  • You can also run the utility in full screen mode. This also has a text-based menu.

More info: IPTraf Home PageIPTraf screenshot.

13. Strace

Strace is used for debugging and troubleshooting the execution of an executable on Linux environment. It displays the system calls used by the process, and the signals received by the process.

Strace monitors the system calls and signals of a specific program. It is helpful when you do not have the source code and would like to debug the execution of a program. strace provides you the execution sequence of a binary from start to end.

Trace a Specific System Calls in an Executable Using Option -e

Be default, strace displays all system calls for the given executable. The following example shows the output of strace for the Linux ls command.

$ strace ls
execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0
brk(0)                                  = 0x8c31000
access("/etc/", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000
access("/etc/", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0

To display only a specific system call, use the strace -e option as shown below.

$ strace -e open ls
open("/etc/", O_RDONLY)      = 3
open("/lib/", O_RDONLY)  = 3
open("/lib/", O_RDONLY)       = 3
open("/lib/", O_RDONLY)      = 3
open("/lib/", O_RDONLY)        = 3
open("/lib/", O_RDONLY)       = 3
open("/lib/", O_RDONLY)  = 3
open("/lib/", O_RDONLY)     = 3
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3

More strace examples: 7 Strace Examples to Debug the Execution of a Program in Linux

14. Lsof

Lsof stands for ls open files, which will list all the open files in the system. The open files include network connection, devices and directories. The output of the lsof command will have the following columns:

  • COMMAND process name.
  • PID process ID
  • USER Username
  • FD file descriptor
  • TYPE node type of the file
  • DEVICE device number
  • SIZE file size
  • NODE node number
  • NAME full path of the file name.

To view all open files of the system, execute the lsof command without any parameter as shown below.

# lsof | more
COMMAND     PID       USER   FD      TYPE     DEVICE      SIZE       NODE NAME
init          1       root  cwd       DIR        8,1      4096          2 /
init          1       root  rtd       DIR        8,1      4096          2 /
init          1       root  txt       REG        8,1     32684     983101 /sbin/init
init          1       root  mem       REG        8,1    106397     166798 /lib/
init          1       root  mem       REG        8,1   1454802     166799 /lib/tls/
init          1       root  mem       REG        8,1     53736     163964 /lib/
init          1       root  mem       REG        8,1     56328     166811 /lib/
init          1       root   10u     FIFO       0,13                  972 /dev/initctl
migration     2       root  cwd       DIR        8,1      4096          2 /

To view open files by a specific user, use lsof -u option to display all the files opened by a specific user.

# lsof -u ramesh
vi      7190 ramesh  txt    REG        8,1   474608   475196 /bin/vi
sshd    7163 ramesh    3u  IPv6   15088263               TCP dev-db:ssh->abc-12-12-12-12.

To list users of a particular file, use lsof as shown below. In this example, it displays all users who are currently using vi.

# lsof /bin/vi
vi      7258  root   txt    REG    8,1 474608 475196 /bin/vi
vi      7300  ramesh txt    REG    8,1 474608 475196 /bin/vi

15. Ntop

Ntop is just like top, but for network traffic. ntop is a network traffic monitor that displays the network usage.

You can also access ntop from browser to get the traffic information and network status.

The following are some the key features of ntop:

  • Display network traffic broken down by protocols
  • Sort the network traffic output based on several criteria
  • Display network traffic statistics
  • Ability to store the network traffic statistics using RRD
  • Identify the identify of the users, and host os
  • Ability to analyze and display IT traffic
  • Ability to work as NetFlow/sFlow collector for routers and switches
  • Displays network traffic statistics similar to RMON
  • Works on Linux, MacOS and Windows

More info: Ntop home page

16. GkrellM

GKrellM stands for GNU Krell Monitors, or GTK Krell Meters. It is GTK+ toolkit based monitoring program, that monitors various sytem resources. The UI is stakable. i.e you can add as many monitoring objects you want one on top of another. Just like any other desktop UI based monitoring tools, it can monitor CPU, memory, file system, network usage, etc. But using plugins you can monitoring external applications.

More info: GkrellM home page

17. w and uptime

While monitoring system performance, w command will hlep to know who is logged on to the system.

$ w
09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0            24Oct11  21days 1:05   1:05 /usr/bin/Xorg :0 -nr -verbose
ramesh   pts/0  Mon14    0.00s  15.55s 0.26s sshd: localuser [priv]
john     pts/0  Mon07    0.00s  19.05s 0.20s sshd: localuser [priv]
jason    pts/0  Mon07    0.00s  21.15s 0.16s sshd: localuser [priv]

For each and every user who is logged on, it displays the following info:

  • Username
  • tty info
  • Remote host ip-address
  • Login time of the user
  • How long the user has been idle
  • JCPU and PCUP
  • The command of the current process the user is executing

Line 1 of the w command output is similar to the uptime command output. It displays the following:

  • Current time
  • How long the system has been up and running
  • Total number of users who are currently logged on the system
  • Load average for the last 1, 5 and 15 minutes

If you want only the uptime information, use the uptime command.

$ uptime
 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05

Please note that both w and uptime command gets the information from the /var/run/utmp data file.

18. /proc

/proc is a virtual file system. For example, if you do ls -l /proc/stat, you’ll notice that it has a size of 0 bytes, but if you do “cat /proc/stat”, you’ll see some content inside the file.

Do a ls -l /proc, and you’ll see lot of directories with just numbers. These numbers represents the process ids, the files inside this numbered directory corresponds to the process with that particular PID.

The following are the important files located under each numbered directory (for each process):

  • cmdline – command line of the command.
  • environ – environment variables.
  • fd – Contains the file descriptors which is linked to the appropriate files.
  • limits – Contains the information about the specific limits to the process.
  • mounts – mount related information

The following are the important links under each numbered directory (for each process):

  • cwd – Link to current working directory of the process.
  • exe – Link to executable of the process.
  • root – Link to the root directory of the process.

More /proc examples: Explore Linux /proc File System

19. KDE System Guard

This is also called as KSysGuard. On Linux desktops that run KDE, you can use this tool to monitor system resources. Apart from monitoring the local system, this can also monitor remote systems.

If you are running KDE desktop, go to Applications -> System -> System Monitor, which will launch the KSysGuard. You can also type ksysguard from the command line to launch it.

This tool displays the following two tabs:

  • Process Table – Displays all active processes. You can sort, kill, or change priority of the processes from here
  • System Load – Displays graphs for CPU, Memory, and Network usages. These graphs can be customized by right cliking on any of these graphs.

To connect to a remote host and monitor it, click on File menu -> Monitor Remote Machine -> specify the ip-address of the host, the connection method (for example, ssh). This will ask you for the username/password on the remote machine. Once connected, this will display the system usage of the remote machine in the Process Table and System Load tabs.

20. GNOME System Monitor

On Linux desktops that run GNOME, you can use the this tool to monitor processes, system resources, and file systems from a graphical interface. Apart from monitoring, you can also use this UI tool to kill a process, change the priority of a process.

If you are running GNOME desktop, go to System -> Administration -> System Monitor, which will launch the GNOME System Monitor. You can also type gnome-system-monitor from the command line to launch it.

This tool has the following four tabs:

  • System – Displays the system information including Linux distribution version, system resources, and hardware information.
  • Processes – Displays all active processes that can be sorted based on various fields
  • Resources – Displays CPU, memory and network usages
  • File Systems – Displays information about currently mounted file systems

More info: GNOME System Monitor home page

21. Conky

Conky is a system monitor or X. Conky displays information in the UI using what it calls objects. By default there are more than 250 objects that are bundled with conky, which displays various monitoring information (CPU, memory, network, disk, etc.). It supports IMAP, POP3, several audio players.

You can monitor and display any external application by craeting your own objects using scripting. The monitoring information can be displays in various format: Text, graphs, progress bars, etc. This utility is extremly configurable.

More info: Conky screenshots

22. Cacti

Cacti is a PHP based UI frontend for the RRDTool. Cacti stores the data required to generate the graph in a MySQL database.

The following are some high-level features of Cacti:

  • Ability to perform the data gathering and store it in MySQL database (or round robin archives)
  • Several advanced graphing featurs are available (grouping of GPRINT graph items, auto-padding for graphs, manipulate graph data using CDEF math function, all RRDTool graph items are supported)
  • The data source can gather local or remote data for the graph
  • Ability to fully customize Round robin archive (RRA) settings
  • User can define custom scripts to gather data
  • SNMP support (php-snmp, ucd-snmp, or net-snmp) for data gathering
  • Built-in poller helps to execute custom scripts, get SNMP data, update RRD files, etc.
  • Highly flexible graph template features
  • User friendly and customizable graph display options
  • Create different users with various permission sets to access the cacti frontend
  • Granular permission levels can be set for the individual user
  • and lot more..

More info: Cacti home page

23. Vnstat

vnstat is a command line utility that displays and logs network traffic of the interfaces on your systems. This depends on the network statistics provided by the kernel. So, vnstat doesn’t add any additional load to your system for monitoring and logging the network traffic.

vnstat without any argument will give you a quick summary with the following info:

  • The last time when the vnStat datbase located under /var/lib/vnstat/ was updated
  • From when it started collecting the statistics for a specific interface
  • The network statistic data (bytes transmitted, bytes received) for the last two months, and last two days.
# vnstat
Database updated: Sat Oct 15 11:54:00 2011

   eth0 since 10/01/11

          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB

                     rx      |     tx      |    total    |   avg. rate
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     estimated        29 MiB |      14 MiB |      43 MiB |

                     rx      |     tx      |    total    |   avg. rate
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     estimated         4 MiB |       2 MiB |       6 MiB |

Use “vnstat -t” or “vnstat –top10″ to display all time top 10 traffic days.

$ vnstat --top10

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s

More vnstat Examples: How to Monitor and Log Network Traffic using VNStat

24. Htop

htop is a ncurses-based process viewer. This is similar to top, but is more flexible and user friendly. You can interact with the htop using mouse. You can scroll vertically to view the full process list, and scroll horizontally to view the full command line of the process.

htop output consists of three sections 1) header 2) body and 3) footer.

Header displays the following three bars, and few vital system information. You can change any of these from the htop setup menu.

  • CPU Usage: Displays the %used in text at the end of the bar. The bar itself will show different colors. Low-priority in blue, normal in green, kernel in red.
  • Memory Usage
  • Swap Usage

Body displays the list of processes sorted by %CPU usage. Use arrow keys, page up, page down key to scoll the processes.

Footer displays htop menu commands.

More info: HTOP Screenshot and Examples

25. Socket Statistics – SS

ss stands for socket statistics. This displays information that are similar to netstat command.

To display all listening sockets, do ss -l as shown below.

$ ss -l
Recv-Q Send-Q   Local Address:Port     Peer Address:Port
0      100      :::8009                :::*
0      128      :::sunrpc              :::*
0      100      :::webcache            :::*
0      128      :::ssh                 :::*
0      64       :::nrpe                :::*

The following displays only the established connection.

$ ss -o state established
Recv-Q Send-Q   Local Address:Port   Peer Address:Port
0      52    timer:(on,414ms,0)

The following displays socket summary statistics. This displays the total number of sockets broken down by the type.

$ ss -s
Total: 688 (kernel 721)
TCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11Transport Total     IP        IPv6
*         721       -         -
RAW       0         0         0
UDP       13        10        3
TCP       16        7         9
INET      29        17        12
FRAG      0         0         0


My personal favorite was Ubuntu for desktop (#1 in this list) and Red Hat for servers (#5 in this list).

If you are new to any of the distros listed in the top 5, read the rest of the article to understand little bit more about those distros and find out whether your favorite Linux distribution made it in the top 5.

Linux Distro Review

Fig: Favorite Linux Distribution Voting Results

1. Ubuntu

Ubuntu 8.04 LTS Desktop

Like most of you, Ubuntu is my #1 choice for desktop Linux. I use it both at home and work. Ubuntu is the #1 in the Linux desktop market and some use Ubuntu for the servers also. Ubuntu offers the following three editions.

  • Ubuntu Desktop Edition
  • Ubuntu Server Edition
  • Ubuntu Notebook Remix

Additional Details:

Refer to our Ubuntu Tips and Tricks article series.

2. Debian

Debian 4.0r8, or etch

Debian is also called as Debian GNU/Linux, as most of the basic OS tools comes from the GNU Project. Lot of other famous distributions are based on Debian, which includes our #1 distro Ubuntu and many others — such as Knoppix, Linspire, Damn Small Linux etc.,

Additional Details:

Read more about Debian Distribution at wikipedia.

3. Fedora

Fedora 10 Server Edition

Fedora is sponsored by Red Hat. If you are interested in experimenting with the the leading technologies, you should use fedora, as the release cycle is very short and fedora tends to include the latest technology software/packages in it’s distribution.

Additional Details:

Read more about Fedora Distribution at wikipedia.

4. CentOS

CentOS 5 Linux Distro

If your organization does not want to spend money on purchasing Red Hat support, but still want all the benefits of the red-hat distribution, this is obviously the best choice, as this is totally based on the red-hat enterprise Linux.

As you can imagine the Nort American Enterprise Linux vendor mentioned in the quote below is Red Hat.

From the CentOS website: CentOS 2, 3, and 4 are built from publically available open source SRPMS provided by a prominent North American Enterprise Linux vendor. CentOS is designed for people who need an enterprise class OS without the cost or support of the prominent North American Enterprise Linux vendor.

Additional Details:

Read more about CentOS Distribution at wikipedia

5. Red Hat

Linux Red Hat 4 Enterprise Linux for Server

This is my favorite server distribution.  If an organization doesn’t mind spending dollars on purchasing the red-hat support, this is always my #1 recommendation to any organization who runs mission critical applications.

On a side note, one of the reason I like Red Hat Linux for mission critical production application is that Red Hat tends to take some of the new features from Fedora, which is well tested by the community.

Additional Details:

Read more about Red Hat Distribution at wikipedia.

Awesome Linux Articles

Following are few awesome 15 examples articles that you might find helpful.

Fedora 16 to Ubuntu 11.10

In this article is the first of several articles comparing the recently released Fedora 16 to Ubuntu 11.10. This first article is looking at the boot performance and power consumption from several different notebooks when performing clean installs of Fedora Verne and Ubuntu OneiricOcelot.

There are several significant differences between Ubuntu 11.10 and Fedora 16 that make for an interesting comparison. Fedora 16 is shipping with the Linux 3.1 kernel and the GNOME3.2.1 desktop, including the GNOME Shell. Fedora 16 also furthers its integration with the much talked about systemd init service, after it made its premiere with Fedora 15. Fedora also ships with the bleeding-edge Linux graphics stack. Meanwhile, Ubuntu 11.10 shipped last month with the Linux 3.0 kernel and some GNOME 3.0 packages around Canonical’s Unity desktop. Ubuntu has no plans in the foreseeable future to abandon Upstart in favor of systemd. Both Fedora 16 and Ubuntu 11.10 have some similarities like both using GCC 4.6 and sticking to the EXT4 file-system by default for now.

The battery testing and power consumption comparison is being done from a Lenovo ThinkPad T61, ASUS Eee PC, and Lenovo ThinkPad W510 to represent a few popular notebook/netbook configurations on the market.

Linux desktop performance benchmarks and other articles are forthcoming.

The boot speed was measured using Bootchart and for each clean install of the 64-bit version of Ubuntu 11.10 and Fedora 16, the Phoronix user was set to automatic log-in. All other distribution settings were at their defaults. Each system rebooted three times before capturing the Bootchart result.

Starting with the Bootchart results is the ASUS Eee PC 1301N. This netbook has an Intel Atom 330 dual-core x86_64 CPU with NVIDIA GeForce 9400M graphics on Nouveau, 2GB of RAM, and a 250GB Hitachi 5400RPM SATA HDD.


Bootchart in Fedora measured a start time of 32.72 seconds. Ubuntu 11.10 had a reported boot time of 32.40 seconds on the same hardware.


When running the Lenovo ThinkPad T61 with its Intel Core 2 Duo T9300 CPU, 4GB of RAM, and 100GB Hitachi 7200RPM SATA HDD, Fedora 16 booted in 28.23 seconds. Ubuntu 11.10 meanwhile booted in 22.88 seconds for the Intel Core 2 Duo notebook.

The last notebook being measured today is the Lenovo ThinkPad W510 with an Intel Core i7 720QM quad-core CPU plus Hyper Threading and a 160GB Intel SSD (SSDSA2M160). For this Intel notebook that is still powerful by today’s standards, Fedora 16 booted in 25.81 seconds. Ubuntu 11.10 managed to come in much faster at 12.24 seconds.

 Fedora’s increased usage of systemd would give it a lead in boot performance plus all of the other upstream optimizations and improvements made by the Fedora / Red Hat engineers, this was not the case in comparing Fedora 16 and Ubuntu 11.10. On the Atom netbook the boot speed was comparable between Ubuntu 11.10 and Fedora 16, while for the more powerful Intel notebooks with an HDD and SSD, the Ubuntu 11.10 boot speed was superior. This is a bit surprising because Ubuntu 11.10 has regressed hard on the boot speed, but had there not been this regressing since Ubuntu 10.04 LTS, Oneiric Ocelot would have performed even better.

In terms of the power usage between Fedora 16 and Ubuntu 11.10, first up are the results from the Atom 330 netbook with the NVIDIA ION (GeForce 9400) graphics on Nouveau for both operating systems running on battery.

When both Linux distributions were idling with their respective desktops, Fedora 16 was going through slightly less power than Ubuntu 11.10 for the ASUS Eee PC 1301N.

When running the OpenArena game, Fedora 16 was going through slightly less power Ubuntu 11.10.

OpenArena was also running faster on Fedora 16 with its more bleeding-edge open-source graphics capabilities.

When the poor Intel Atom 330 was being hammered with C-Ray, the power consumption was nearly identical between the Canonical and Red Hat operating systems.

Ubuntu 11.10 was slightly faster this time, although both Linux operating systems are using GCC 4.x.

Now it is onto the power consumption between Fedora 16and Ubuntu 11.10 for the Core 2 Duo Lenovo ThinkPad T61.

For this system, Ubuntu 11.10 ends up with slightly lower power consumption than Fedora 16 when idling.

Ubuntu 11.10 is also slightly more power efficient than Fedora 16 for this Core 2 Duo notebookwith NVIDIA Quadro graphics when running the OpenArena ioquake3-based game.

Fedora 16, however, is much faster than Ubuntu 11.10 thanks to carrying more recent Nouveau driver patches.

The C-Ray power consumption results were close.

This time the ray-tracing test itself was faster under Fedora 16 than Ubuntu 11.10.

Finally it is onto the power consumption results for the Core i7 + NVIDIA Quadro FX 880M notebook, a.k.a. the Lenovo ThinkPad W510.

The power consumption when running the OpenArena game averaged out to be the same between Fedora 16 and Ubuntu 11.10.

However, like all of the other results, the OpenGL performance was much faster under Fedora 16 thanks to its more liberal graphics stack.

There also was not any significant power consumption difference between these two popularLinux distributions when tapping all of the available CPU cores with C-Ray.

The C-Ray test result here was also the same on both distributions.

While Ubuntu 11.10 may commonly be booting faster than Fedora 16, when comparing the power consumption results there is no frontrunner. For the most part, the power consumption is the same between Fedora 16 and Ubuntu 11.10, but depending upon the CPU, GPU, and other factors there can be slight differences. Fortunately, for both operating systems, there are power management improvements coming down the pipe that will hit for Ubuntu 12.04 LTS and Fedora 17, if they do not end up being back-ported.



Vidalia is a cross-platform GUI controller for Tor anonymizing proxy.


Simple Backup Solution

This tool is intended for backup of files, using a desktop GUI.


Partimage is a Linux partition backup utility. It allows you to save partitions in many files formats to image files, compress the image files, split image files for burning, and even save them across network. NTFS support is under development.



Konqueror is a combined browser and file manager for KDE.



XChat is a popular multi-platform chat client. It supports multiple channels and file transfers. As said, it is also available for Windows.



alien is a program that converts between Redhat rpm, Debian deb, Stampede slp, Slackware tgz, and Solaris pkg file formats.


AODC stands for An OpenDocument Converter. This small tool is intended to convert Open Office documents into html files on machines that do not have Open Office installed. This means you can open your documents on any computer. Now, AODC will run on Windows – but it is a tool well suited for Linux users.



Wine is an open-source implementation of Windows API on top of X and Unix. In other words, it allows you run Windows applications on a Linux machine by creating a simulated environment. Wine is nicely complemented with VMware products, which are also available for Windows.

On a side note, to convince you that you can run Windows applications – hell, Windows itself – on Linux, you might want to refer to my article Installing VMware Server & Windows in Linux.

Live CD/DVDs


Read about it in A (sweet) collection of Windows programs under Anonymizers.

Damn Small Linux

Damn Small Linux is a versatile 50MB desktop-oriented Debian-based distribution. You can boot with it from CD, USB drive or even run it inside Windows. It can also be installed onto hard disk. It’s light, fast and packs a solid range of applications, including Gphone, Firefox, Naim, XMMS, Xpdf, and many more.


Elive is a live CD running Enlightenment Windows manager, which is an amazing visual experience while being very low on requirements.  Like all other Linux CDs, it offers a mature and rich package of programs. It offers some very interesting programs like Blender 3D studio, MPlayer, Grip audio ripper, as well as the usual XChat, GAIM, Firefox, Open Office, and others.

Feather Linux

This is another small Linux, intended to provide a user with a safe and comfortable live working environment. It takes only about 120MB and offers in return AbiWord, Dillo, Firefox, CTorrent, NTFS resize support, Samba, Fluxbox, and more.


Gentoo is a combined live and install CD. This allows you to test the feel of the distribution before deciding whether you want to install it (warning: Gentoo is NOT the friendliest distribution for beginners!). It offers a full, complete working environment.


Helix is a dedicated incident response and forensic analysis live CD. It is not intended for beginners. The CD includes many useful tools like e2recover – for recovering files under ext2 file system, ClamAV and F-Prot anti-virus scanners, chkrootkit and rkhunter anti-rootkit scanners, Galleta – cookie analyzer for Internet Explorer, Regviewer – Windows registry analyzer, wipe – for secure file deletion, and more. The full contents of the CD are available here.


Read about it in A (sweet) collection of Windows programs under Live CDs.

Update: Recently, there have been reports of a virus that destroys the Partition Table of hard disks and renders them unbootable. A tool called TestDisk can be used to remedy such a failure, if it occurs. TestDisk is included in the powerful package of utilities that can be found on Knoppix CD. It is also included with GParted live CD.

Puppy Linux

Puppy Linux is another small desktop-oriented live CD. Puppy Linux comes in a wide range of flavors, including the static live CD but also the multi-session CD/DVD, which allows you to save your live sessions to hard media every time you use Puppy and reload them on the next use, virtually eliminating the need for running an operating system from a hard drive. This option can also be useful for people who have to travel a lot. Puppy Linux weighs 50-70MB and offers many useful applications. Puppy comes in many flavors, including custom and specialized derivatives.


In addition to a very powerful desktop operating system, you can also enjoy a SUSE live CD. You can read more about SUSE in my article Installing SUSE Linux – Full tutorial.


This is a live CD specifically geared toward rescue and recovery. The tools package includes some of the most important tools available for Linux user, like GParted, QTParted, Partimage, Grub, Lilo, sfdisk, security tools, network tools, and more. The full list of tools is available here.

Ubuntu 6.06

Ubuntu is a combined live and installation CD. Ubuntu runs with Gnome desktop. You can also try Kubuntu with KDE and Xubuntu with Xfce. You can read more about (K)ubuntu in my article Installing (K)ubuntu Linux – Full tutorial. You can read all about some 50+ live CDs on FrozenTech LiveCD List.

Media manipulation



MP3FS is a read-only FUSE file system which transcodes audio formats to MP3 on the fly when opened and read.

Media Players


MPlayer is a highly versatile media player for Linux, with a very good support of audio and video formats. It will play most MPEG/VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT, NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, and PVA files, supported by many native, XAnim, and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, DivX 3/4/5, and even WMV movies.


xine is a lightweight, powerful media player, capable of playing AVI, MOV, WAV, and MP3 formats. The player has many guises and is constantly being developed.


XMMS is a multimedia player (mainly audio) for UNIX-based systems. It supports MP3, MOD, WAV, and other formats. A variety of plugins is available. XMMS is included on Elive and Knoppix live CDs.



QTParted is a clone of Partition Magic. It is capable of handling NTFS partitions.


Super Grub Disk

Super Grub Disk is intended to run from a floppy disk or CD and is used for system rescue. Most importantly, it can be used to restore boot loaders, including GRUB, LILO and even Windows boot loader.


TestDisk is a utility specially designed to recover lost partitions and make non-booting disks bootable again. This highly useful tool can be found on a number of live CDs, including Knoppix and GParted. It supports NTFS partitions and also comes in Windows flavor.

Security tools

Note: Most Linux security tools are geared toward knowledgeable users. If you are not Linux-savvy, you should not meddle with these programs.



This tool allows you to look for unwanted spies on your machine, not that there should be any/


rkhunter is another tool for uprooting undesired self-hiding toolkits.



FREESCO is a lightweight, powerful firewall based on CISCO. It supports up to 10 network cards, 10 modems, 5 printers, NAT, a whole lot more, and will run from a single 1.44MB floppy. You can use an antique 386 machine to run it.


SmoothWall is a powerful firewall with a self-contained operating system and a web-based GUI. It can be installed on a machine as lowly as a 486.

Intrusion prevention


AppArmor is an application security framework, most easily described as heuristically-inclined HIPS. It will run on Linux distributions based on Red Hat. Mastering AppArmor takes knowledge and patience.


Snort is a very popular open-source network intrusion detection and prevention software. It is intended for experienced users.

Malware control


Truman is a sandbox-like malware analysis tool, running on native hardware. It is NOT recommended for people who do NOT understand the full implications of using this tool.


Useful links

Disclaimer #2: I have NOT personally tested each and every application at the below sites. I cannot guarantee their quality. Treat the below links as a good reference point from which you may expand your searches.

Eric L. Howes’ Linux Privacy & Security

Fresh RPMs – a site compiling listings and download sites for hundreds of packages

FrozenTech LiveCD List – a list of live CDs

Linux Online! – a long list of applications for Linux

Users’ recommendations

Thanks to the following people for their suggestions: Alphalutra1, Ben, dog, Durad, romanlance.

Some of the suggested programs have been incorporated in the list above. All future suggestions will be listed below. Again, the same criteria as for Windows programs apply: the proposed applications should be fairly simple, free beyond any reason of doubt, non-offensive to me, and preferably suggested by a member of a respectable forum.

Here are some of your recommendations:

Amarok – this is a light, simple, beautiful, and highly versatile for Linux running KDE; natively, it does not support MP3 format, but the necessary libraries can easily be added – for example, in Ubuntu or SUSE, via package managers – libxine-extracodecs.

Bluefish – a web editor that supports a range of languages, including CSS, HTML, Java, javascript, Octave, PHP, R, and many others, unlimited undo/redu funtionality, and compliance with both KDE and Gnome environments.

Democracy Player – an Internet TV platform; the player incorporates video RSS feeds, automatic downloads of videos, BitTorrent, and much more.

F-Spot – a photo management program for Gnome desktops; the program supports 16 file types, allows easy editing and tagging of photos, simplifying cataloguing of large batches of images.

Guarddog – a firewall with goal-oriented GUI, intended for beginner and intermediate users.

IEs4Linux– an excellent script that enables you to run Internet Explorer on Linux (with Wine installed); it will offer you three versions of Internet Explorer, making invalid the excuse of not switching to Linux because your favorite site only loads in Internet Explorer.

K3B – is a CD burning utility for KDE, with lots of excellent features, including support for multiple El Torito boot images, audio CD burning, VCD, SVCD, mixed-mode CDs, eMovix CDs, CD copy and CD/DVD ripping, DVD burning, DivX/XviD encoding, blanking of CDR-Ws, writing of ISOs, and a whole lot more.

Kopete – an Instant Messaging program for KDE; Kopete supports AIM, ICQ, MSN, Yahoo, Jabber, IRC, Gadu-Gadu, Novell GroupWise Messenger, and more, as well as message encryption and archiving.

KTorrent – BitTorrent client for KDE.

Openbox – a lightweight, extensible windows manager; it can be used instead of the heavier Gnome and KDE.

pfSense – a firewall based on m0n0wall, using OpenBSD ported Packet Filter; supports a wide range of devices and protocols.

Quanta Plus – a WYSIWYG web development program for KDE, with a wide range of plugins.

ROX-Filer – a fast, lightweight desktop (based on X Windows). It can be a suitable alternative to heavier environments on older systems.

Streamtuner – a stream directory browser, supporting SHOUTcast, Live365 and other stream directories, as well as full support for ID3 and Vorbis metadata editing; it goes well with Streamripper, which allows you to record the streams.

Sylphweed – a lightweight e-mail client; also supports Windows.

General advice

I guess that’s it. By the way, most of the general advice for Windows users also applies here. There’s no need to Ctrl + A  the entire Internet and download it onto your machine. With Linux, you’re in an even greater peril of getting carried away, because there are tens of Linux distributions – whereas Windows is only one.

Don’t download anything and everything – make sure you trust the download site, make sure you understand what you’re doing, visit the forums and ask questions before you start meddling, and always have your personal data backed up. Most importantly, in Linux, when you think something is not working – DO NOT INTERFERE, LET IT BE! It Is working. Believe me. Kernel updates can take as much as a whole day to complete, even more. When you’re downloading packages off the Internet, they are often recompiled locally on your machine to suit your architecture. This process can be quite lengthy – and it is NOT healthy to interrupt. Wait for your machine to tell you it’s failed before you do.

%d bloggers like this: