Monday, August 29, 2011

USER & GROUP MANAGEMENT

User Management
#useradd username (OR) #useradd username used to create a new user.
#passwd username It changes password for the corresponding user.
User add can also be done by specifying a no: of attributes like
#useradd –u uid –s shell –c command –d home_directory –g group –G groups username
uid user identification no, 0-99 for system purpose, 0 reserved for root,
100-60,000used for general purpose.
gid group identification no, 0-99 for system purpose, 100-600 for general purpose
pid process identification no, to identify all the processes running on your system
groups - maximum of 15 groups is only possible as secondary group for a user.

#usermod attributes username helps to modify already given attributes.
#userdel username only deletes an existing account, not user directory.
#userdel –r username deletes a user account along with home directory.


GROUP
#groupadd groupname adds a new group
#groupadd attributes groupname adds a new group along with its attributes.
#groupmod groupname modifies the attributes of a group
#groupdel groupname deletes an existing group

#id –u username displays the userid no of the user specified
#id username displays uid,gid and all secondary groups that user
#groups displays the default groups in your machine

Switch User
#su username to change from current user to user specified
#su – username change to the specified user along with his home directory.


/etc/profile
Contains several information regarding the history size, the umask value etc, which is applicable to all the users.

#vi /etc/profile
:
HISTSIZE =1010 [this entry helps to change the history size]
:
echo [this entry will help display what ever written after it]
echo Welcome $USER [helps display “Welcome root” if u have logged as root]

echo
sleep 2 [waits for a period of 2 seconds]
clear [helps to obtain a clear window]

After editing this file quit from vi. All this will become applicable if u login again.

#vi /home/nas/.bash_profile helps to change the login contents if u login as a normal user (here the user is nas)

#vi /home/nas/.bash_logout helps to create log out contents for a user(here it is nas)

#vi /etc/issue helps to change the appearance of the log in screen

#vi /etc/issue.net for networking ie, when u log in using network(ie like telnet etc) then the screen appearance for them can be set using this.

#vi /etc/syslog.conf all the log files generated during boot time are kept here

#vi /etc/motd displays the message of the day.

/etc/passwd user id information resides here.
#vi /etc/passwd

nas:x:509:509: :/home/nas:/bin/bash

GID home dir Login shell
UID comment
password
user name

Here the ‘:’ is called the delimiter. Here ‘x’ represents the password, which resides in another file /etc/shadow
#vi /etc/shadow

nas:$1$Dn……………..
This contains 9 fields, which are
Loginid:password:lastchange:min:max:warning:inctive:expiry:


/etc/group  the group id information resides here.
#vi /etc/group

groupname:passwd:gid:users list


FILE PERMISSIONS
We can change the permissions of a file in either using the Symbolic Mode or by using the Absolute Mode.
1.Symbolic Mode :-here we use r for read, w for write , x for execute and
‘+’ to append a permission,’-‘ to remove a permission.
chmod is the command used to change permission bits.
#chmod u=rwx,g=rx,o=r filename
#chattr change the attributes of file ie, who all can delete or add files
’+’ is used to add and ‘-‘ is used to remove permissions.
Eg:- #chattr +i filename - now none will be able to change the file contents.
#chattr –i filename - then it is removed & all functions can be performed

2.Absolute Mode:-here we use nos from 0 to 7.

Value Indications Permissions
0 - - - No permission
1 - - x Only execute
2 - w - Write only
3 - w x Write and execute
4 r - - Read only
5 r – x Read and execute
6 r w - Read and write
7 r w x Full permission

Eg:-#chmod 765 filename full permission for owner, read & write for group members, read & execute permission for others.

Sticky bit
#chmod 1000+file_permission filename here the value 1000 implies it’s a sticky bit
#chmod 1766 f1 implies it is a sticky bit.
#ls –l -rwxrw-rwT
#chmod 1767 f2 I implies it is a sticky bit.
#ls –l -rwxrw-rwt
here T  sticky bit is enabled and executable bit for others is OFF
and t  sticky bit is enabled and executable bit for others is ON
i. When sticky bit is set on a dir,files in that dir may be unlinked or renamed only by the root user or by its owner.
ii. Commonly found in dir like /tmp, that are world –writable.

Set UID & GID :- is applicable to an executable file & is used for project sharing.
#chmod 4000+file_permissions filename  here 4000 implies enable UserID

#chmod 2000+file_permissions filename  here 2000 implies enable GroupID
Eg:- #chmod 4777 file4
#chmod 2777 file5
#ls –l
-rwsrwxrwx ……………… file4
-rwxrwsrwx ……………… file5

#umask whenever a user creates a file, the OS assigns default permissions to the file with out the intermission of the user. It is defined by the umask value specified in /etc/profile. the default umask value os 022, but the value 027 is more effective. So the default file permission is 666 & that of a directory is 777.

Change ownership:-
Root is the only user who has the permission to change ownership of a file. So in case, if u have logged in as a normal user, u have to log in as root to do this. The cmnd used for this purpose is ‘chown’

#chown nas f3 to change the ownership of the file f3 from current owner to nas

Sunday, August 28, 2011

EDITORS

EDITORS

Different types of editors are available.Some of them are vi, emacs, joe, pico etc.

Here we are going to deal with vi editor.

VI EDITOR

#vi is the command used to open vi editor. Inorder for this editor to work successfully, one has to use both command mode and insert mode.
Command mode (press Esc key)
Insert mode (press I or Insert key)—data entering is possible only in this mode.
#vi filename opens an existing file or creates a new file

To exit from vi first go to cmnd mode (ie, press Esc), then press
:q to simply quit
:q! to quit forcefully
:w save the changes or entries given
:w newfilename - to save the file in a new name (similar to copy cmnd)
:wq to write and quit

To edit, delete & change text using a vi editor, first go to cmnd mode, then
(i) press x to delete a character from the cursor position
(ii) press dd to delete or cut a line
press 2dd deletes 2 lines from cursor position
(iii) press r to replace a character
(iv) press yy to copy text
press 4yy copy 4 lines from current cursor position
(v) press p to paste the copied or cut lines
(vi) press u undo
(vii) type :set nu to display line numbers, temporarily
(viii) type :set nonu remove the line numbers
(ix) type :sh to return to shell prompt with out leaving the vi editor. To go back to vi editor from this shell prompt, type exit
(x) :!ls used to display directory contents in vi editor.

To search a string in an editor, first go to cmnd mode, then type
/var to search a string named var in the file opened in the vi editor.

To search and replace string in an editor, first go to cmnd mode, then type
:g/redhat/s//nascent/g the word redhat is searched and replaced with nascent.

DEVICE CONFIGURATION

#timeconfig used to configure time zone
#mouseconfig to configure mouse
#setup used for configuring devices like mouse,network,printer,system services,etc
#printconf used to configure printer
#netconfig to configure network.It replaces existing configuration file (/etc/sysconfig/networking/ifcfg-eth0).

Device Configuration in X-window Mode

# system -config-time for time settings
# system -config-keyboard for keyboard settings
# system -config-languages to configure language options
# system -config-mouse configure mouse
# system -config-network configures networking
# system -config-printer to configure printer
# system -config-xfree86 works in both text and graphical mode(display card)
# system -config-sevices configure system services
# system -config-securitylevel used for firewall configuration
# system -config-soundcard configures soundcard
# system -config-users configure users and groups
# system -config-packages to install or uninstall packages(like add/remove in windows)

DISK MOUNTING
CDROM
#mount /dev/cdrom /mnt/cdrom (OR) #mount /mnt/cdromcmnd used to mount a cdrom
to read the contents of a cdrom, you have to use the cmnd
#cd /mnt/cdrom then use ls cmnd and read.
To unmount a cdrom, first u have to come out of the cdrom’s directory and then
#umount /mnt/cdrom then give the cmnd #eject

FLOPPY DISK
#mount /mnt/floppy (OR) #mount /dev/fd0 /mnt/floppy.
To unmount a floppy, use the cmnd
#umount /mnt/floppy

FDD & CDROM gets automatically mounted in the case of X-Window mode.

The file /etc/mtab contains already mounted file systems.

#mount –a mounts all file systems (other than the ones with auto)
#umount –a unmounts all file system types.

Files to be mounted at boot time:
The file named /etc/fstab contains the file system to be mounted during system startup.

#cat /etc/fstab (contains the following entries)

LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
/dev/cdrom /mnt/cdrom udf iso9668 noauto,owner,kudzu……
/dev/fd0 /mnt/floppy auto noauto owner,kudz……

This file /etc/fstab contains 6 columns.
1st column indicates device information
2nd column indicates mount points
3rd column indicates file system (FAT,ext2/3 etc)
4th column indicates mount point options available with file systems
5th column indicates dump option (ie, if it has to be checked at rebooting)
6th column indicates the order in which file system checks are done at reboot time (here 1,2…indicates the priority)



DISK PARTITIONING and FORMATING
#fdisk command used for disk management (disk partitioning tool)
#fdisk /dev/hda hard disk then press Enter key.

Command (m or ? for help):m [displays help]
:p available partitions
:n adds a new partition
:d deletes a partition
:q quit
:w write/save partitions
:l list known partition types
:t changes a partitions system id

#mkfs –t file_systemtype partition_no: -->creates a file system(cmnd used to format) eg:- #mkfs –t ext3 /dev/hda….
#tune2fs used to adjust tunable file system parameters
#e2fsck check a Linux partition manually(like scan disk in windows)
#fdformat /dev/fd0 cmnd used to format floppy disk.

RUN LEVELS
The default run level information resides in /etc/inittab and the run control scripts for all run levels resides in /etc/rc.d/…

The default run levels used by Red Hat systems is :

#init 0 halt or shut down the machine
#init 1 single user mode or the maintenance mode
#init 2 multi-user mode with out NFS
#init 3 full multi-user mode
#init 4 unused (User-Defined)
#init 5 X-window mode
#init 6 Reboot

If we edit the file /etc/inittab, then we can change the default run level.


Messaging & Scheduling Shutdown
#wall ‘message’ broadcast the message typed to all users in that n/w
#write usrname/terminal [press enter] message [press cntrl+z] used to send message to a particular user.
#write nas [press enter] Hello [press cntrl+z]will send Hello to nas
#write nas tty3 [press enter] there? [press cntrl+z]if more than one person has logged in as nas and if u want to send to a person who is in
terminal3, then this cmnd helps to do so.
#mesg n ->controls/blocks user messages (only normal users not root users)
#shutdown –f –h +60 “message” server will shutdown automatically in 60 mins
#shutdown –c will cancel the scheduled shutdown process.

PACKAGE MANAGEMENT
In x-window mode, the command used to add/remove packages is
#redhat-config-packages

In text mode, we use rpm (red hat package management) command. For this
1st mount your Linux CD #mount /mnt/cdrom
then go to the dir #cd /mnt/cdrom/RedHat/RPMS
the extension of all files in this dir will be .rpm

#rpm –ivh packagename to install the specified package
eg:- #rpm –ivh telnet-serve… .rpm to install telnet server

Here ivh install verify hash(show #)
#rpm –e packagename to remove an existing package
#rpm –Uvh packagename will install if package is absent or upgrade an existing one
#rpm –ivh - -nodeps - -force packagename install packages with out dependencies.
#rpm –qa shows all installed packages
#rpm –q packagename shows if the mentioned package is installed or not
#rpm –qa | grep ‘string’ to display installed packages that has the specified string in it
#rpm –ql file_name To display package to which that file belongs to .

After installing or removing a package, u must update using the command #updatedb

Thursday, August 25, 2011

LINUX BASIC COMMANDS

LINUX BASIC COMMANDS

#clear clears the screen
#date displays date and time
#cal displays calendar of current month
#cal 1980 displays calendar of year 1980
#cal 5 2020 displays calendar of 5th month of the year 2020.
#hostname to display the host or machine name
#hostname Nascent changes the host name to Nascent from the current one
#domainname to display the current domain name or FQDN
#domainname nas.com changes the domain name to nas.com

The hostname , domain name & network information resides in the following file:
/etc/sysconfig/network

X-Window Mode:-

#startx to enter Linux graphical mode from a text mode.
#init 5 also used to enter graphical mode from a text mode.

Cntrl+Alt+Backspace to quit from x-window mode.

Shut down from LINUX:-

#logout is the command used to logout from a user session
#reboot is the command used to restart or reboot
#init 6 also helps to restart or reboot the system.
#init 0 is the command used to shut down the system.
#halt ,
#poweroff can also be used to shut down the system.

ctrl+d to logout from a user session
ctrl+c interrupts a currently running process and quit from it.
ctrl+w helps to remove word by word
ctrl+u helps to remove a line

#whoami displays the name of currently logged in user.
#who am i displays effective userid (if using ‘su’ cmnd).

#who displays information of all users who have currently logged in.
#finger displays the full information of a user
#users displays all users who have currently logged in
#groups displays all groups
#w displays the information about the users currently logged in along with their processes
#pwd shows the present working directory
#echo $PATH displays the current path of that user.
#uptime tells how long the system has been on
#last show listing of last logged in users.
#dmesg helps to view all boot time messages.
#ps list running processes
#ls displays the directory contents

#ls -l displays files with their attributes. Eg: --rw-r-
#ls -a shows all files including hidden files
#ls -al shows all files along with hidden files and the attributes of each file
#ls -i displays files and its nodes
#ls -sh to display size of a file in human readable form like KB, MB etc.
#ls | more displays directory contents page wise.
#ls a* displays all files starting with ‘a’
#lp to print linux documents
#uname print system information
#uname –a print all information
#uname –m prints all machine information
#uname –r prints kernel release version
#uname –s prints kernel name
#uname –o prints the name of the OS

#Whereis cmnd locate the binary, source, man page files.
#info cmnd displays the information/help of the command given.
| more to display page by page. Eg: -ls | more
| sort to display in alphabetical order. Eg: - ls |more | sort

Directory and File Manipulation: -
#touch filename creates null or zero content files.
#cat > filename creates a new file
#cat filename displays the content of that file.
#cat f1 >f2 creates a copy of the file f1 as f2.
#cat >> f4 helps to append a line to the end of a created file.

#mv helps to rename or move location of files/directories.
#mv f3 f5 renames f3 to f5
#mv f4 /etc/ moves the file from current location to given location.


#rm f4 deletes a file named f4.
#mkdir directoryname creates a new directory.
#mv d1 d2 changes directory name from d1 to d2
#cd d3 used to change to directory d3.
#cd .. used to change to previous directory.
#cd / used to change to root directory.
#rmdir dirname to delete an empty directory
#rm –r dirname to delete a directory which is not empty and also needs confirmation.
#rm –rf dirname to delete a directory forcefully with out asking for confirmation.
#cp f1 f2 used to copy file f1 to f2
#cp –R dirname copies a dir along with all its contents(subdirectories)
#less filename to display file content page wise.
#head –2 filename displays the first 2 lines of the file specified.
#tail –5 filename displays the last 5 lines of the mentioned file.
#diff f1 f3 displays the difference between the files f1 and f3.
#cmp f1 f3 compares the 2 files f1 and f3.
#wc –l filename displays the no: of lines in the particular file.
#wc –c filename displays the no: of characters in specified file.
#df –m displays all Linux partitions with memory size in MB.
#fdisk command used for disk management

File Attributes

LINK
Links can be classified into 2 types, they are Soft link and Hard link.

#ln filename link-name used to create Hard link
Here the inode value is same for both file and link. Here even if the source is gone, the link will still exist. Hard link cannot be created for a directory.

#ln –s file/dir_name link-name used to create Soft Link
Here the inode value is different for file and link. Here if the source is gone, the link not work.


Search a File from Command Mode: -
#find directory –name filename
Eg:- #find /etc –name god to search a file named god in the directory /etc.
#grep ‘string’ filename search a particular string/text in the given file.
Eg:- #grep ‘default’ /etc/inittab to search a string named default in this file.
#ls | grep ‘string’ to search all files/dir starting with the given string
Eg:- #ls | grep ‘init’ to search all files starting with init
#whatis lists directory contents
#locate item to be searched to search that particular item
Eg: -locate binaries search for binaries.

Wednesday, August 24, 2011

INSTALLATION AND PLANNING

INSTALLATION AND PLANNING
The first step in installation planning is to determine the need that the system must satisfy. Installation will go more smoothly if you have collected information about the hardware on the system.
Before beginning the installation, you will have to gather the following details:
 CPU: type and speed
 Motherboard: bus type such as ISA, EISA, VESA, PCI, MCA and so on.
 System RAM: size
 Network Adapters
 Modems: IRQ, DMA and IO ports used.
 Sound cards: make and model
 Serial and Parallel ports
 Mouse: type (serial, PS2 or Bus)
 Video Cards: make, model, chipset, amount of RAM and color
 Monitor: Make horizontal sync range and vertical sync range.

If your system will be attached to a network, you should have the following information available:

 Method of IP address assignment: static, DHCP, BOOTP
 For statically defined hosts, you should have the following information available:

o IP address
o Netmask

o Gateway
o Fully qualified domain name (FQDN)

Selecting the Installation User Interface

Red Hat Linux supports different installation types:
Beginners generally find the graphical mode installation procedure easier to use. However, you may prefer the text mode installation for the following reasons.

 The graphical mode installation procedure may fail if the target system has unusual video characteristics, such as an old uncommon video adapter.
 The text mode installation can recover from some errors – such as running out of disk space – that cause the graphical mode installation procedure.
 The text mode installation will run better and faster than the graphical mode installation on computers having slow processor or a small amount of RAM.
Selecting the Installation Class

The Red Hat Linux installation procedure provides three default installation classes or configuration.
 GNOME Workstation (Only install GNOME desktop manager. It doesn’t disturb other non Linux partitions in the Hard Disk)
 KDE Workstation (Only install KDE desktop manager. It doesn’t disturb other non Linux partitions in the Hard Disk)
 Server (It disturbs other non-Linux partitions in the Hard Disk. So other file system may be corrupt.)
 Custom (You can customize your installation. It doesn’t disturb other non Linux partitions in the Hard Disk )

During Installation you will have to create at least two partitions named Linux native (ext3 file system) partition and Linux SWAP partition. Minimum of 3 GB space required for Full Installation in the case of Red Hat 7.2.

The main partitions are:
 A swap partition: Its size may be 2-3 times of available RAM and create up to 8 swap partition but total swap space can’t exceed 4GB.
 A boot partition: 16MB – 30MB (/boot)
 A root partition (/): That uses the remaining free disk spaces.

Partitioning the Hard Disk

If you select either of the workstation installation classes or the Server installation class, the installation procedure partitions your hard disk drive

automatically. However, if you select the Custom installation class, you must manually partition the hard disk.


Directories that are often made mount point of separate partition include:

/home /opt /tmp /usr /var

/boot: It should be kept in a separate partition with in 1024 cylinder region (between 9 GB space), that is addressable by the system’s BIOS.

In designing the partition structure, the following directories should be kept in a single partition:

/ /etc /bin /sbin /lib

/dev /mnt

Using fips

Often, a target system has insufficient free disk space for installing Linux. If an MS-DOS (FAT or FAT32) partition contains unused space, you can use to split the partition, creating empty partition into which you can install Linux.

To use fips, follow these steps:
1. Use scandisk to check the partition for errors.
2. Use defrag to move the file to the low end of the partition.
3. Disable virtual memory by using the system control panel applet.
4. Create MS-DOS boot floppy by using the Add/Remove programs Control Panel applet.
5. Copy the following files from the installation CDROM to the floppy disk. Restrrb.exe, fips.exe, errors.txt from Linux CD (\DosUtils\fips20)
6. Boot from the floppy and run fips

Note: we can use any other third Party disk Partitioning Tool (eg: Partition Magic)

Booting from a Boot Floppy Disk
Dos/Win Linux/Unix
Install Floppy  Insert a formatted floppy.
 cd \dosutils
 rewrite
 Image file is …\images\bootdisk.img
 destination is a:  Insert a formatted floppy
 mount /mnt/cdrom
 dd if=/mnt/cdrom/images/bootdisk.img of=/dev/fd0 bs=1440k

Boot Disk  mkbootdisk --device /dev/fd0 2.2.12-2.0


Note:
We can select installation media via following methods.
Local CDROM, FTP, HTTP, NFS


Console and Message Logs
Console Keystrokes Contents
1 Ctrl+Alt+F1 Text-based installation procedure
2 Ctrl+Alt+F2 Shell prompt
3 Ctrl+Alt+F3 Messages from installation
4 Ctrl+Alt+F4 Kernel messages
5 Ctrl+Alt+F5 Other messages, including file system creation messages
7 Ctrl+Alt+F7 Graphical installation procedure

Boot Loaders
A boot loader is the first software program that runs when a computer starts.It is responsible for loading and transferring control to an operating system “kernel” software. The kernel, in turn, initializes the rest of the operating system.
Linux Loaders:- There are two types of Linux loaders. They are LILO and GRUB.

LILO :- LInux LOader is available in almost all Linux flavours. Lilo configuration file resides in /etc/lilo.conf

lilo –v installs a boot loader that will be activated next time you boot

GRUB:- Grand Unified Boot loader is a flexible and powerful boot loader programmed for PC’s. It can load a wide variety of free operating systems. GRUB understands file systems and kernel executable formats without recording the physical

position of your kernel on the disk. GRUB configuration files resides in /etc/grub.conf

grub-install installs grub on your drive.

Monday, August 22, 2011

The UNIX files structure

The UNIX files system internal structure
The boot block
The boot block is usually a part of the disk label. A special set of blocks containing information on the disk layout. The boot block holds the loader to boot the operating system.

The super block
Each UNIX partition usually contains a special block called the super block. The super block contains the basic information about the entire file system. This includes the size of the file system the list of free and allocated blocks the name of the partition, and the modification time of the file system.

Inodes
Information about each file in the file system is kept in a special kernel structure called an inode. The inode contains a pointer to the disk blocks containing the data in the file, as well as other information such as the type of file, the permission bits, the owner and group, the file size, the file modification time, and so on. The inode does not however contain the name of the file. The name of each file is listed in the directory the file associated with. A directory is really just special type of file containing a list of filenames and associated Inodes; When a user attempts to access a given file by name, the name is looked up in the directory where the corresponding inode is found.

The inode structure is used to explain the difference between a hard link and a symbolic link. A hard link is just another directory entry corresponding to the inode of the file. Neither link is considered to be the real file; both of them are. By adding a hard link to a file, the file has multiple names associated with it. Any changes made to one will affect the other. A file is considered deleted when all of the hard links to it (including the original link to the file) are removed. Renaming one of the links or even the original file will not affect the validity of the other links.

By contrast, a symbolic link is actually a special type of file that contains the name of the file it points to. This file has its own inode and is distinct from the original; it contains only a reference to the pathname of the file

being linked to. When the kernel accessed a symbolic link, it recognizes that it is a pointer to another file, and attempts to find that file. This is why symbolic links will become bad if the original file is moved or deleted; they reference only the name of the original file, not the actual data of the file.

#ls –i displays inode values and file names.

Understanding the Red Hat Linux file system

Like other Unix systems, red hat Linux has a hierarchical file system. The top most directory known as root directory of the file system contains several other directories, sometimes called subdirectories. These directories in turn generally contain subdirectories and files.

The directory structure is not arbitrary. For packages to work properly, the location of important files and directories must be standardized.

The Root (/) Directory

The root directory (/) of a Linux system is the directory that contains all other directories and files. Other directories may be separately mounted and the may or may not be present at system startup. Therefore the file system that contains the root directory must contain all files necessary to operate the system in single user mode. The root directory also contains all files needed to shutdown and recovers or repairs the system.

The following directories are essential and must be part of the root file system.

/bin, which contains binary files used by the system administrators and other users.
/sbin, which contain binary files used by the system administrator
/dev, which contains device files
/etc, which contains host specific configuration data
/lib, which contains system libraries

Linux systems typically include several other directories, which may be used as mounting points for non root file systems or which may be used mounting points for non root file systems or which may contain directories and files that reside on the root file system. Some commonly used directories include

/boot, which contains files needed by the boot loader when booting the system. These files could be placed in the root partition. However, Red Hat, inc. recommends that they be placed in a separate partition to overcome common PC BIOS limitations on the location of boot data

/home, which contains users home directories
/lost + found, which contains files recovered during file system rebuilds

/mnt, which contains mount points for temporarily mounted file systems
/proc, which contains system information
/root, which contains the home directory of the root user.
/tmp, which contains temporary files
/usr, which contains shareable, files not essential to basic system operation
/var, which contains non shareable file snot essential to basic system operation
/media, which contains cdrom ,floppy drives only (only in EL-4)

/bin: The Essential Binary Files

It contains files that are generally commands.
Example: df, netstat, kill, su, ping, echo, pwd, touch, cat , ls, rm ,umount, rmdir, uname, chmod, mkdir, rpm, vi, cp, more

/boot: Boot Loader Files

Many PCs contain BIOS code that cannot load a boot record unless the boot record is stored below a given cylinder (usually 1024) of a disk drive. Red Hat recommends that you avoid boot problems by placing boot loader files in a separate partition and placing the partition on a region of the disk that is accessible to the BIOS
The /boot partition generally contains the first stage of the Linux loader (LILO) in its MBR, located on the first cylinder of the partition. It also contains files such as:
Boot.b, vmlinuz, etc.

/dev: Device Files

The Linux /dev directory includes a variety of device files. Most important device files are
1. /dev all device files resides in this directory.


/dev/lp0 parallel port 1 (LPT1 under DOS)
/dev/lp1 parallel port 2 (LPT2 under DOS)
/dev/sr* SCSI cdrom (* implies a,b,etc)
/dev/st* SCSI tape
/dev/md* RAID array (Redundant Array of Inexpensive Disk)
/dev/eth0 Ethernet card 1
/dev/eth1 Ethernet card 2



Device File Device
/dev/fd0, fd1 Implies 1st and 2nd floppy drive (ie, A:, B: under DOS or windows)
/dev/hd* IDE Hard disk or CD Rom


/dev/hda - primary master
/dev/hda1 - 1st partition of primary master (1,2,3,4, represents partition no:)
/dev/hdb - primary slave
/dev/hdb1 - 1st partition of primary slave
/dev/hdc - secondary master
/dev/hdc1 - 1st partition of secondary master.
/dev/hdd - secondary slave
/dev/hdd1 - 1st partition of secondary slave

/dev/sd* SCSI Hard Disk

/dev/sda -1st hard disk of SCSI
/dev/sda1 -1st partition of SCSI device
/dev/ttyS0 -serial communication port 1 (COM1 under DOS)
/dev/ttyS1 -serial communication port 2 (COM2 under DOS)
/dev/sr* SCSI CD Rom
/dev/st* SCSI Tape
/dev/lp* Parallel Port
/dev/ttyS* Serial Communication Port
/dev/md* RAID array


/etc: Host-Specific Configuration files

It contains files and directories that are specific to local host.

Important files in /etc
Files Content
fstab File system table
fdprm Floppy disk parameters
gettydefs Login terminal characteristics
group User Groups
inittab System Startup Configuration
lilo.conf Linux Loader Configuration
motd Message of the day
mtab Mounted file system table
nsswith.conf List of sources for information on users, hosts, networks, and services
passwd User accounts
profile Shell initialization script
securetty List of secure login terminals
shadow User accounts encrypted passwords, if shadow password enabled
shells List of approved shells
syslog.conf System log configurations

exports List of nfs exports
ftp* FTP configurations files
host.conf Host name resolution configuration
hosts List of known hosts
host.allow List of hosts allowed access to services
host.deny Hosts denied access to services
host.eqiv List of trusted hosts
xinetd.conf List of internet super server
networks List of known networks
printcap Printer configuration
protocols List of known protocols
resolv.conf Host name resolution configuration
rpc List of rpc services
services List of TCP/IP services

Important subdirectories of /etc/
Subdirectory Contents
httpd Configuration of http service
pcmcia Configuration of PCMCIA slots and device
rc.d System initialization files
security Security configuration
skel User environment templates
sysconfig System configuration
X11 X windows system configuration


/home: User home directories

It contains home directories of users other than root users (whose home directory is /root). By default, a users home directory is a subdirectory of /home having the same name as user login.

/lib: Shared libraries and kernel modules

It contains libraries and modules needed to boot the system and run programs residing in the /sbin and /bin directories; other libraries resides in /usr/lib, /usr/X11R6/lib. Modules reside in subdirectories of /lib/modules. (Store files like .dll files in Windows)

Example: /lib/modules/2.2.9-15

/lost+found: Recovered files
When u recover a file system, files and data may be partially recovered resides in this directory.

/mnt: Mount point for temporarily mounted file systems

Mount point of CD-ROM (/mnt/cdrom) and floppy drive (/mnt/floppy)


/proc: System information virtual file system

It is a pseudo file system provided by the kernel that contains files and directories that let system administrators and programmers access system information.

Example:

File or Subdirectory Content
Cpuinfo Various architecture depend information
Devices Major device numbers and device group
Dma Registered ISA DMA channel in use
filesystems File system type supported by the kernel
interrupts Information on interrupts and IRQ
Kmsg Kernel message logs
Lodavg Average number of jobs in the urn queue
meminfo Memory allocation information
modules List of loaded modules
Net Network status information
Pci Configuration of PCI devices
Uptime System uptime and idle time
version The version number of running kernel

/sbin: Essential system binaries

It contains essential system binary files used by system administrator.
Example:

Halt, lilo, ifconfig, ifport, chkconfig, poweroff, init, probe, ctrlaltdel, shutdown, dump, e2fsck, mke2fs, ipchains, fdisk, fsck, reboot.

/tmp: Temporary files

It contains temporary files and subdirectories that are automatically deleted ( by default 10 days)

/usr: Sharable Files

./usr file may not be available, so it contains no files or directories that are essential for system operation. Soure codes are stored in /usr/src dir .

Important subdirectories of /usr


Subdirectory Content
/usr/bin Commands used by the ordinary

users
/usr/include Header files
/usr/lib Programming libraries
/usr/man Man files
/usr/src Soruce code

/var: Non-sharable files

It may not be available, and so it contains no essential files or directories.

Important subdirectories of /var

Subdirectory Content
/var/log Log and accounting files
/var/run System information files
/var/spool Spool files including lpd and sendmail
/var/pnp Temporary files
/var/yp NIS files

Sunday, August 21, 2011

What is Linux

What is Linux?
Linux is an Operating System, which acts as a communication service between the hardware (or physical equipment of a computer) and the software (or applications which use the hardware) of a computer system.
The Linux Kernel (the core, much like a popcorn kernel) contains all of the features that you would expect in any Operating System. Some of the features included are:
• Multitasking (a technique for sharing a single processor between several independent jobs)
• Virtual Memory (allows repetitive, extended use of the computer's RAM for performance enhancement)
• Fast TCP/IP Drivers (for speedy communication)
• Shared Libraries (enable applications to share common code)
• Multi-user Capability (this means hundreds of people can use the computer at the same time, either over a network, the Internet, or on laptops/computers or terminals connected to the serial ports of those computers).
• Protected Mode (allows programs to access physical memory, and protects stability of the system)
Benefits of Linux

Linux can give you:

 A modern, very stable, multi-user, multitasking environment on your inexpensive PC hardware, at no (or almost no) monetary cost for the software. Linux is a rich and powerful platform--don't think of it as a "poor people" operating system. Out-of-box Linux has as much capability as MS Windows NT with $5000 in


software add-ons, is more stable, and requires less powerful hardware for comparable tasks.

 Unsurpassed computing power, portability, and flexibility. A Linux cluster recently (April 1999) beat a Cray supercomputer in a standard benchmark. Linux is VERY standard--it is essentially a POSIX compliant UNIX. (Yes, Linux is a best-of-the-breed UNIX. The word "UNIX" is not used in conjunction with Linux because "UNIX" is a registered trademark.) Linux is most popular on Intel-based PCs (price), but it runs very well on numerous other hardware platforms, from toy-like to mainframes.

 Connectivity to Microsoft, Novel, and Apple proprietary networking. Reading/writing to your DOS/MS Windows and other disk formats. This includes "transparent" use of data stored on the MS Windows partition of your hard drive(s).

 Dozens of excellent and free, general-interest applications.

 Thousands of free applets, tools, and smaller programs. "Small is beautiful" goes well with Linux philosophy.

 Scores of top-of-the line commercial programs including WordPerfect and all the big databases (e.g., Oracle, Sybase, but no Microsoft's). Many (most?) of these are offered free for developers and for personal use.

 State-of-art development platform with many best-of-the-kind programming languages and tools coming free with the operating system. Access to all the operating system source codes, if you require it, is also free.

 Freedom from viruses, software manufacturer "features", invasion of privacy, forced upgrades, licensing and marketing schemes, high software prices, and pirating. How is this? Linux has no viruses because it is too secure an operating system for the viruses to spread with any degree of efficiency. The rest follows from the open-source and non-commercial nature of Linux.
The operating platform that is guaranteed "here-to-stay". Since Linux is not owned, it cannot possibly be put out of business. The Linux General Public License (GPL) insures that development and support will be provided as long as there are Linux users.

FAQ
Can I run GUI Programs on Linux?
Linux has a free X Windows Graphical User Interface (GUI), similar to Microsoft Windows which allows most X Based programs to run under

Linux without any modification. Windows programs can run inside of X-Windows with the help of an emulator called WINE. Usually, Windows programs can run up to 10 times faster, due to Linux' buffering capabilities!

Will Linux work well with my network?
Networking support in Linux is advanced and superior to most other Operating Systems. Since the people developing Linux collaborated and used the Internet for their development efforts, networking support came early in Linux development. As an Internet server, Linux is a very good choice, often outperforming Windows NT, Novell and most UNIX systems on the same hardware (even multiprocessor boxes). Linux is frequently chosen by leading businesses for superior server and network performance.
Linux supports all of the most common Internet protocols, including Electronic Mail, Usenet News, Gopher, Telnet, Web, FTP, Talk, POP, NTP, IRC, NFS, DNS, NIS, SNMP, Kerberos, WAIS and many more. Linux can operate as a client or as a server for all of the above and has already been widely used and tested.
Linux also fits easily and tightly into Local Area Networks (LANs), regardless of system combinations, providing full and seamless support for Macintosh, DOS, Windows, Windows NT, Windows 95, Novell, OS/2, using their own native communication protocols. Linux can do all of this with low memory requirements.

What is a Linux Distribution?
Linux is distributed by a number of commercial and non-commercial organizations who add to, or enhance the basic functions (or kernel) of the operating system. SuSE Linux, for example, is a distribution of Linux with features of the core Linux Kernel and enhancements, which are specific to that distribution. Linux distributions come completely pre-configured to specifications set by that organization, and include configuration utilities and installers.

The Linux was first made available; setting up a working Linux system was quite a task. However Linux fans soon created Linux distributions, suits of software that made it relatively easy to install, configure, and use Linux. Two of the most popular early distributions were Soft Landing Systems (SLS) and slack ware.

Red Hat, Inc. was founded in 1994 by Bob Young and Marc Ewing. Soon thereafter, in 1995, Red Hat, Inc, created a linux distribution called Red Hat linux.

Red Hat is the dominant Linux distribution. It has won infoworld awards for three consecutive years an unprecedented achievement.

Major Linux distributors
Red Hat, Caldera systems, Corel, Debian, Mandrake, Slack ware, SuSe, Turbo Linux.

Will Linux run on my Mac?
Linux continues to develop quickly, with distributions for PowerPC, Macintosh, Amiga and some Atari's. What if Linus Torvalds stops working on Linux?
Linux is written and maintained by Linus Torvalds and programmers worldwide using the Internet as a communication tool. Linux aims towards POSIX compliance (a set of standards that show what a UNIX should be). If Linus Torvalds ever decided to abandon the project, since we have the full source code available, somebody else could take his place. The Linux kernel development will still continue no matter what happens to Linus.

What are the license restrictions?
The Linux Kernel is Copyright (c) Linus B. Torvalds under the terms of the General Public License (GPL). The GPL states that the source code must be freely distributed and that anyone is allowed to make copies for their own use, or to sell or give to other people (with a few restrictions). While most Linux software is GPL'd, this does not mean that all software developed or ported to Linux has to be. Many other licenses exist, with some commercial software packages having more restrictive licenses, such as the common copying restrictions faced by Windows users.

Are there any applications that run on Linux?
There are thousands of applications running on Linux worldwide. See "What is Linux Used For?" for a small sampling of the many ways Linux is used today.


Why is there a Penguin on Linux stuff?
Tux is the Linux mascot, chosen by Linus Torvalds, who said, "I was looking for something fun and sympathetic to associate with Linux. A slightly fat penguin that sits down after having had a great meal fits the bill perfectly.... Don't take the penguin too seriously. It's supposed to be kind of goofy and fun, that's the whole point. Linux is supposed to be goofy and fun (it's also the best operating system out there, but it's goofy and fun at the same time!)."

What is Linux used for?
Application Servers, Database Servers, Workstations, X Terminal Clients, Unix Development, Network Servers, Internet Servers Cluster Computing, Embedded systems, University systems Vertical Solutions such as Hotels, Medical offices, Reservation systems, Legal offices, Petroleum companies, Governments, Media, Telecommunications, ISPs, Resellers, Manufacturers, Retail, Financial, Trader Workstations, Corporate Developers, and more...

Saturday, August 20, 2011

Basic Linux For Beginners

Overview of UNIX operating system

UNIX is a multi-user, multitasking operating system from AT&T that runs on a wide variety of computer systems. It is relatively simple to use and to administer, and also has a high degree of security. UNIX is written in C programming language, which was also developed at AT&T’s Bell Laboratories.

Popular UNIX systems are

AIX (on IBM), HP-UX (on HP), Linux, OSF/1 (on DEC), Solaris (SUN)
Dennis Ritchie and Thompson developed UNIX operating system in 1973.

GNU (Gnu is not UNIX)

Richard Stallman launched the GNU (Gnu is not UNIX) project, which focused on creating a UNIX like operating system that could be freely distributed. As a vehicle in support of the GNU, Stallman and others created the Free Software foundation (FSF) in 1984

The FSF prompts free software, but free software is not necessarily cost free software. The FSF intends the word free in the sense of freedom. Free software is software with which you can do the following
• Use for any purpose
• Study to learn how it works, and adapt meet your needs
• Copy and redistribute
• Distribute as part of an improved software system

GPL (GNU General Public License)

Perhaps the most significant contribution of the GNU project is a license known as GNU general public license or simply the GNU GPL.

UNIX / LINUX OS STRUCTURE

The UNIX OS consists of three layers. The inner most layer or kernel containing a process scheduler and a mechanism for process to communicate with each other. The middle layer of OS is called the shell, the layer that a use interfaces with. This layer containing the command interpreter which decodes and carrier out user entered commands. The outer most layer containing programming tools such as editors, assemblers, compilers, debuggers etc and application programs such as accounting packages.











Fig 1 (Unix/Linux OS Structure)


KERNEL

The core of the UNIX system is the kernel the operating system program. The kernel controls the computer’s resources allotting them to different users and to different tasks. It interacts directly with the system hardware, thus making the programs easy to write and portable across different platforms of hardware. The kernel does not deal directly with a user. Instead, it starts up a separate, interactive program, called a shell, for each user

• Controls user access by checking every login attempt for a legitimate user ID and password
• Manages program execution allocating memory and CPU time to every process, and assigning to them
• Manages file system
• Runs and manages the shell through which you converse with the OS
• Carries out the exchange of data between memory, processor, and source or destination devices like printers, tapes, and so on

SHELL
Shell is the UNIX system command processor. The shell accepts commands from the user, interprets them, and passes them on to the operating system for processing.

The shell is itself a program, run automatically by the kernel for every user each time he or she logs in. It’s the shell’s job to

• Let you know it’s ready to work, that is to allow you to enter commands
• Accepts commands you type
• Accept what the kernel produces as a result
• Return those results to you
• Let you know that it’s ready to move on to the next command

Types of shells

The shell urns like any other program under the UNIX system.

Bourne shell.

This is the original command processor developed at AT&T and named after its developer. Stephen R. Bourne. This is the official shell that is distributed with UNIX systems. The Bourne shell is the fastest UNIX command processor available and can be used on all UNIX systems. The Bourne shell is the most widely used shell at present. The executable file name is sh.

Bash.
The Bourne-again shell. It is similar to the korn shell

C shell
This is another command processor developed by William joy and others at the University of California at Berkeley, and gets its name from its programming language which resembles the c programming language in syntax. The executable file-name is esh

Korn shell
Developed by David Korn, this combines the best features of both the above shells. The executable file name is ksh

Rc
A small compact shell with a strong C flavour but without a command line editing or job command

Tcsh
An enhanced version of the C shell

Zsh
A large shell that seems to offer all the features present in all the other shells.

Linux Kernel

In the early days of UNIX, universities used UNIX as a vehicle for teaching compute science students about operating systems. When AT&T asserted is proprietary claims to UNIX, university needed a replacement. Andrew Tunnenbaum created a UNIX like operating system called Minix, which became popular as a teaching tool. However, unlike UNIX, Minix was designed primarily as educational tool and performed relatively poorly.
In 1990, Finnish computer science student Linus Torvald began work on a memory manager for Intel architecture PCs. At some point he realized that his work could be extended to operate as a UNIX kernel. In august 1991, he posted his work-in-progress to the internet newsgroup comp.os.minix, inviting others to request features to be considered for implementation.


Torvalds called his operating system kernel Linux, for Linus’s Minix. Unix programmers eagerly offered help in developing Linux. Because Stallman’s GNU project had completed almost all of the components needed for its UNIX like operating system except the kernel, Linux and gnu were a natural marriage. In 1994
about three years after Torvalds posting, Linux 1.0 was released under the terms of GPL.

Linux kernel is numbered using even/odd system. An even number kernel- for example, Linux 2.2-is called stable kernel. Changes are generally made to a stable kernel only to fix bugs and problems. An odd numbered kernel-for example, Linux 2.3 is called a development kernel. Development kenels are works-in-progress and some times contains bugs, some of which are serious. Most Linux users work with stable kernel.

Linux kernel available in http://www.kernel.org/

What is Linux?

Linux is an Operating System, which acts as a communication service between the hardware (or physical equipment of a computer) and the software (or applications which use the hardware) of a computer system.
The Linux Kernel (the core, much like a popcorn kernel) contains all of the features that you would expect in any Operating System. Some of the features included are:
• Multitasking (a technique for sharing a single processor between several independent jobs)
• Virtual Memory (allows repetitive, extended use of the computer's RAM for performance enhancement)
• Fast TCP/IP Drivers (for speedy communication)
• Shared Libraries (enable applications to share common code)
• Multi-user Capability (this means hundreds of people can use the computer at the same time, either over a network, the Internet, or on laptops/computers or terminals connected to the serial ports of those computers).
• Protected Mode (allows programs to access physical memory, and protects stability of the system)
Benefits of Linux

Linux can give you:

 A modern, very stable, multi-user, multitasking environment on your inexpensive PC hardware, at no (or almost no) monetary cost for the software. Linux is a rich and powerful platform--don't think of it as a "poor people" operating system. Out-of-box Linux has as much capability as MS Windows NT with $5000 in


software add-ons, is more stable, and requires less powerful hardware for comparable tasks.

 Unsurpassed computing power, portability, and flexibility. A Linux cluster recently (April 1999) beat a Cray supercomputer in a standard benchmark. Linux is VERY standard--it is essentially a POSIX compliant UNIX. (Yes, Linux is a best-of-the-breed UNIX. The word "UNIX" is not used in conjunction with Linux because "UNIX" is a registered trademark.) Linux is most popular on Intel-based PCs (price), but it runs very well on numerous other hardware platforms, from toy-like to mainframes.

 Connectivity to Microsoft, Novel, and Apple proprietary networking. Reading/writing to your DOS/MS Windows and other disk formats. This includes "transparent" use of data stored on the MS Windows partition of your hard drive(s).

 Dozens of excellent and free, general-interest applications.

 Thousands of free applets, tools, and smaller programs. "Small is beautiful" goes well with Linux philosophy.

 Scores of top-of-the line commercial programs including WordPerfect and all the big databases (e.g., Oracle, Sybase, but no Microsoft's). Many (most?) of these are offered free for developers and for personal use.

 State-of-art development platform with many best-of-the-kind programming languages and tools coming free with the operating system. Access to all the operating system source codes, if you require it, is also free.

 Freedom from viruses, software manufacturer "features", invasion of privacy, forced upgrades, licensing and marketing schemes, high software prices, and pirating. How is this? Linux has no viruses because it is too secure an operating system for the viruses to spread with any degree of efficiency. The rest follows from the open-source and non-commercial nature of Linux.
The operating platform that is guaranteed "here-to-stay". Since Linux is not owned, it cannot possibly be put out of business. The Linux General Public License (GPL) insures that development and support will be provided as long as there are Linux users.