Tuesday, 15 April 2014

Centos 6/RHEL directories and usage.


The Linux directory tree starts at "\" which sits at the top with all the other directories below it (including the home directory which houses the various users who are not root). Each directory has a specific use and contains the necessary sub files and folders to facilitate this.


Centos 6 directories


/bin

Contains small executable programs (binaries) which are often considered to be part of the operating system itself – but they are not. For instance, when you type the ls command at a prompt, to list the contents of a directory, Linux executes the ls program that is located in the bin directory. This directory is, broadly speaking, equivalent to the C:\ Windows directory in Microsoft’s Windows.




/sbin

Contains executable system programs (binaries) that are only used by the root superuser and by Linux when the system is booting up or performing system recovery operations. For instance, the clock program that maintains the system time when Linux is running is located in the /sbin directory. This directory is equivalent to the C:\Windows\system directory in Windows.




/lib

Contains binary library files which are used by the executable programs in the /bin and /sbin directories. These shared libraries are particularly important for booting the system and and executing commands within the root file system. They are roughly equivalent to the DLL (Dynamic Link Library) files in Windows but are all in one place. Having a specific directory for support libraries avoids the common problem in Windows where multiple libraries have been installed and the system has been confused about which one to use.




/dev

Dev contains special file system entries which represent devices that are attached to the system. These allow programs access to the device drivers which are essential for the system to function properly - although the actual driver files are located elsewhere. For instance, typically the entry /dev/fd0 would represent the floppy drive if used and an entry of /dev/cdrom0 represents the CD drive.




/boot

This contains the Linux kernel - the heart of the operating system. Many people incorrectly use the term "operating system" to refer to the Linux environment but it is the KERNEL which is the operating system. It is the program which controls access to all the hardware devices the computer supports and allows multiple programs to run concurrently and share that hardware. Typically the program is called "vmlinuz" - other programs complementing the kernel are located in the /bin and /sbin directories.





/etc

Contains system configuration files storing information about everything from user passwords and system initialization to screen resolution settings.


All these are plain text files that can be viewed in any text editor such as gedit or vim - there should not be any binary files in this directory. They control all the configuration settings which are not user-specific. So these files are roughly equivalent to the combination of .ini files and the Registry entries found within the Windows operating system.



/proc 


Contains special files that relay information to and from the kernel. The hierarchy of "virtual files" within this directory represent the current state of the kernel - allowing applications and users to peer in to the kernels view of the system. As an example type in to the terminal



more /proc/cpuinfo



more /proc/meminfo



To obtain relevant information about cpu and memory.



Virtual files are listed as zero bytes and are time stamped to reflect the fact that they are constantly updating.



/mnt

Contains sub-directories that act as gateways to temporarily mounted file systems. This is the default location where most distros attach mounted file systems to the Linux directory tree.


Typically, when peripheral drives have been mounted, the /mnt/cdrom directory lets you access files on a CD-Rom loaded into the CD Drive. If you have a dual boot set up then /mnt/windows can reveal files on the Windows partition although accessibility can be restricted on NTFS file systems.



/usr

This contains sub directories storing programs that can be run by any user of that system. For instance, games, word processors and media players. It is broadly speaking, the equivalent of C:<Program Files in Windows. The /usr/local sub--directory is intended for use by the system administrator, when installing software locally, to prevent it being overwritten when the system software is being updated.




/var

This contains variable data files which store information about ongoing system status, particularly logs of system activity. The system administrator (root superuser) can type the following command at a root prompt to see a record of system activity messages




more /var/log/messages



/home

Contains a sub-directory for each user account to store personal data files. If there is a user account called @fred@ there will be a /home/fred directory where that user can store personal files - others can not save files there. This directory is where you store all your working documents, images and media files and is the roughly equivalent of the My Documents folder within Microsoft's Windows operating system.




/tmp

Contains temporary files that have been created by running programs/ Usually these are deleted when the program gets closed but some do get left behind - periodically these should be deleted. This directory corresponds to the C:<Windows/Temp folder in Windows.




/root

This is the home directory for the root account superuser - for security reasons regular users cannot access this directory.. If you log in to Linux as root and open that accounts home directory it's at/root rather than a sub directory of /home like a regular user.




/initrd

Contains only a text file warning that this directory should not be deleted. It is used during the boot process to mount the Linux file system itself. Removing this directory will leave the computer unable to boot Linux and will generate a kernel panic error.




/opt

Contains nothing initially,but this directory provides a special area where large static application software packages can be deployed. A package placing files in /opt creates a sub-directory bearing the same name as the package. This sub-directory contains files that would otherwise be scattered around the file system, giving the system admin an easy way to determine the role for each file.. For instance, if "example" is the name of a particular software package in the /opt directory, then all its files could be placed within sub-directories of the /opt/example directory. Binaries would be in /opt/example/bin, man pages in /opt/example/man etc. 


Usually the application can be removed by simply deleting the contents of the directory. 

As you can see in the above image there may be additional directories such as selinux (security) srv (web server) which accommodate extra functionality depending upon your set up.

See also partitioning and directories.





Sunday, 13 April 2014

Centos 6/RHEL partitions and directory tree

It can get confusing when manually making partitions and mount points as to what should be assigned to where, but it is fairly straightforward to do.

Below is an illustration of a typical directory tree for a Linux system.


Linux Directory Tree
 It does not matter where a directory is in a hierarchy, it can still be mounted according to taste and below is an example of partitioning and mounting a 250GB Hard Drive.(Approximate values)


/boot                  800MB         ext4

swap                  2200MB         swap

/                   20,000MB         ext4

/home              215,000MB         ext4


You can see that the home directory is mounted to a much larger space than others as it is likely to contain more users whereas the top '/' of the tree typically just has a root directory so does not require as much space.

The above is if we are using standard file-system types as opposed to the Logical Volume Groups. Below are some points to remember about the Linux operating system.


  • Linux is case-sensitive whereas Windows is not.
  • Linux files and directories have ownership permissions.
  • Linux is a multi user network operating system.
  • Desktop users usually can not change system settings unless they know the root password.
  • Linux partitions are ext3 or 4 files system (usually).
  • Linux path names contain forward slash characters as opposed to Windows which have back slashes.Examples are a Linux path /usr/bin and a Windows path C:\mysql\bin
Linux does not have any drive letters.

See also an analysis of the individual directories.

Sunday, 6 April 2014

Centos 6/RHEL install google-chrome-stable

Support for Google Chrome has been discontinued for Centos 6 recently, but Richard Lloyd has written a script which fetch's the required dependencies and installs it.

If you do not wish to read the entire post you can follow the guide below to install it.

First change to root user.

$ sudo su

# wget http://chrome.richardlloyd.org.uk/install_chrome.sh

# chmod u+x install_chrome.sh

# ./install_chrome.sh


To run it just use the command google-chrome-stable as below, or you can add it to your user/.fluxbox/.keys file if using Fluxbox.

Centos 6 Google Chrome
Gnome desktop users should see it appear in the menu selection guidev under applications.