Presentation is loading. Please wait.

Presentation is loading. Please wait.

RHCE-I Part Durgesh Tomar Linux History and Introduction

Similar presentations


Presentation on theme: "RHCE-I Part Durgesh Tomar Linux History and Introduction"— Presentation transcript:

1 RHCE-I Part Durgesh Tomar Linux History and Introduction
Welcome! RHCE-I Part Durgesh Tomar Linux History and Introduction

2 Overview: Linux History and Introduction

3 What is Linux ? A fully-networked 32/64-Bit Unix-like Operating System
Multi-user, Multitasking, Multiprocessor Has the X Windows GUI Coexists with other Operating Systems Runs on multiple platforms Includes the Source Code

4 Why Linux Virus free Linux is Unix like OS.
Multi-user and multi-tasking i.e. one person can be logged on to the same Linux computer at the same time. the same user could even be logged into their account from two or more terminals at the same time. a user can have more than one process (program) executing at the same time. Virus free

5 Linux Origin Richerd Stallman Linus Torvalds

6 Linux Origin In 1984 Richard Stallmon - The GNU Project a Free Software Foundation project .The idea was to provide a complete working UNIX like Operating System at the earliest. The development of a complete OS was going to take a long time ,to speed up his project, Richard’s looked for utilities already available with source that can be added to GNU Project. Most of the work was completed but still the core kernel was not available. Around the same period i.e. in the late 80’s and early 90’s , Linus Torvalds a Graduate student in Finland, began developing UNIX like kernel and in 1991 he first announced his work in message on the comp.os.minux mailing list. This was what Richard Stallmon looking for, and added it in his Free Software Foundation project.

7 What is GNU Open Source? Freedom 0: The freedom to run the program, as you wish Freedom 1: The freedom to study the source code and change it to do what you wish Freedom 2: The freedom to copy and redistribute the program when you wish Freedom 3: The freedom to distribute modified versions, when you wish

8 Linux Destros Distribution Concept Free Distributions
Fedora Core Debian and Ubuntu Gentoo Slackware Knoppix centOS Many, many more Commercial Distributions Red Hat Enterprise Suse Yellow Dog

9 Red Hat Distribution Red Hat Enterprise Linux Fedora Project
Stable, thoroughly tested software Audience are corporate and enterprise users. Fedora Project More new applications Red hat sponsored project, but no official Red Hat support Community supported. Audience are personal systems.

10 Red Hat Enterprise Linux
Commercial Distribution Enterprise-targeted operating system Focused on mature open source technology 12-18 month release cycle Versions available started from 2.1, 3.0, 4.0 now 5.0 Support available up to 24 x 7 coverage plans Supports many processor architectures Intel x86-compatible, Intel Itanium 2, AMD64, IBM PowerPC on eserver iSeries and eServer pSeries and IBM Mainframe on eServer zSeries and S/390

11 The Fedora Project Red Hat-sponsored open source project
Focused on latest open source technology Rapid four to six month release cycle Available as free download from the internet An open, community-supported proving ground for technologies which may be used in upcoming enterprise products Red Hat does not provide formal support for Fedora Project

12 Installation of Red Hat Enterprise Linux

13 Types of Installations
Fresh Installation ( New )‏ Upgradation Methods of Installations Attended Unattended Modes of Installations GUI Based (Graphical Installation)‏ CLI Based (Text Based Installation)‏

14 Sources of Installation
CD-ROM Hard Disk Network NFS Server FTP Server HTTP Server PXE installation

15 Conventions for Naming the Disks and Partitions
Linux uses a very different naming scheme that provides far more information than that used by MSDOS or Microsoft Windows /dev/xxyN The dev refers to the devices directory. The devices directory is where all information about devices is stored The xx refers to the type of hard disk. The xx is replaced by hd for an Integrated Drive Electronics (IDE) hard disk and by sd for a Small Computer Systems Interface (SCSI) hard disk IDE Hard Disk = /dev/hd SCSI Hard Disk = /dev/sd

16 Primary Master = /dev/hda Primary Slave = /dev/hdb
/dev/xxyN Primary Master = /dev/hda Primary Slave = /dev/hdb Secondary Master = /dev/hdc Secondary Slave = /dev/hdd The y is replaced by a letter representing each disk. For example, a would be the first disk and b the second

17 /dev/xxyN The N is replaced by a number for each partition on a drive. For example, 1 would be the first partition and 2 the second

18 Primary partitions are represented by the numbers 1, 2, 3, and 4
Primary partitions are represented by the numbers 1, 2, 3, and 4. Logical partitions start with 5. /dev/hda1 is the device file for the first primary partition on the first EIDE disk /dev/hda5 is the first logical partition on the second IDE disk

19 Mount Point The Linux operating system is a filing system
Whenever you want to attach another filing system to Linux, you must tell Linux where to see the contents of the file system you are attaching. This is called the mount point. The mount point for the CD-ROM file system is /media/cdrom

20 You may install the boot loader in one of two places:
The master boot record (MBR) — This is the recommended place to install a boot loader, unless the MBR already starts another operating system loader, such as System Commander. The MBR is a special area on your hard drive that is automatically loaded by your computer's BIOS, and is the earliest point at which the boot loader can take control of the boot process. If you install it in the MBR, when your machine boots, GRUB presents you the grub menu which can be configured to boot Red Hat Enterprise Linux or any other operating system. The first sector of your boot partition — This is recommended if you are already using another boot loader on your system. In this case, your other boot loader takes control first. You can then configure that boot loader to start GRUB, which then boots Red Hat Enterprise Linux.

21 What is SWAP Partition ? swap partitions are used to support virtual memory. In other words, data is written to a swap partition when there is not enough RAM to store the data your system is processing.

22 Size of SWAP ? At least 256 MB Twice the amount of RAM on your machine
Swap should equal 2x physical RAM for up to 2 GB of physical RAM, and then 1x physical RAM for any amount above 2 GB, but never less than 32 MB. Red Hat Enterprise Linux supports up to 32 swap files

23 Sample Partition Structure
Mount Point Size /boot MB / MB /usr MB /var MB /home MB SWAP Use recommended size

24 Thank You !!!

25 Logging in to a Linux System
Access to a system requires authentication. Whether it is a text base or graphical login, you need to provide a correct username and password, to login into the system.

26 Switching between Virtual consoles and GUI environment
Linux system will run six virtual consoles and one Graphical consoles You can switch between Virtual Consoles by pressing CTRL+ALT+F[1-6] You can switch to Graphical Console by pressing CTRL+ALT+F7 Each Virtual consoles keep his own history of data displayed on the screen in video memory. But as the information is in buffers, the information is lost when you change to another virtual console. User can scroll the screen using Shift+PgUp an Shift+ PgDn.

27 X Windows System RHEL’s graphical environment is the X Window System.
Where X is a client/server protocol that regulates the communication between applications(client) and the System that provides display services (Server). X does not define the look or behavior but it defines the communication between server and client. The actual look and behavior of the graphical environment is determined by the Desktop environment. RHEL provide two desktop environment: GNOME (GNU Network Object Model Environment). KDE (K-Desktop Environment).

28 Starting the X Server If system come up in virtual console, user can start X Server manually by executing command startx & Here & is not the part of startx but merely make this process a background process (& is covered later in the course). When startx is executed the system will start X Server on CTRL+ALT+F7 automatically and will automatically switch to the X Server. You can still return to virtual console(s) by pressing CTRL+ALT+F1 to CTRL+ALT+F6 and can return back to X Server by pressing CTRL+ALT+F7.

29 Starting the terminal under X Server
You can right click on the Desktop and select “Open Terminal”. You can click the Applications > Accessories > Terminal Press ALT+F2, write gnome-terminal and press run.

30 Changing password You can change your password by executing passwd command. Password Policy for Privileged user (root): Can change password of anyone. Can give password less than eight characters (but will be warned during password change). Can use dictionary words (but will be warned during password change). Not asked for current password, while changing the password. Password Policy for Un-Privileged user: Can only change his own password. Cannot give password less than eight characters. Cannot use dictionary words. Need to supply current password, before he can change the password. General Password policy: Password is case sensitive. Can use numbers, spaces, lower, upper case letters, punctuation and other special characters.

31 The root user The root is a special administrative account and is also called SuperUser and has complete control over the system. Thus root user can do unlimited damage to the system. Do not login as root unless necessary.

32 Changing identity su – <username> can be used to change identity. Without <username> su assumes that you wish to become root. When – is passed as an argument to su a login shell of that user/root is created.

33 Who are u? whoami command can be used to check who am i.
id command is another useful command which provide details about the who you are and what groups you are in. If id command is executed with a username it provides details about that user. id command is in /usr/bin/ and can be used by unprivileged user as well. Id command can also be used to display SELinux context when with -Z switch.

34 Text Editors nano vim gedit

35 Running commands and Getting Help

36 Running commands Commands have the following syntax:
command options arguments Where options modify a command’s behavior. Single letter options usually precede by – Full word options usually precede by -- Arguments are on which command will take action. If you enter a command and do not get a prompt back, the command may be busy executing or may be waiting for input. You can interrupt a command by pressing CTRL+c You can separate multiple commands on the same line with semicolons. mkdir backups; cp *.txt backups/

37 Simple command date command Print or set the system date and time.
date without any parameter prints the current system date. You can print date is specific format by specifying format in +“format” -s option is used to set the system date and time.

38 Simple command cal command : Display a calendar
cal without any parameter will display calendar for the current month and year. . cal –y 2009 will display complete calendar for the year 2009 cal will display calendar for September 2009

39 Getting help whatis command --help man info Extended Documentation
Red Hat Documentation

40 whatis <command>
Searches for the given command name in a database of short descriptions. If it finds a match, the description is printed to your screen. e.g.: root]# whatis cal cal (1) - displays a calendar (1) represents “chapter” of the Linux Manual where more through documentation can be found. The database is regenerated automatically every night (automatic update). This means that on newly-installed system whatis will not work at first because the database does not yet exist. Running makewhatis command as root regenerate whatis database.

41 <command> --help
provides short help (but more than whatis) on usage, arguments(long and short arguments) etc. Not every command provide this type of help e.g. cal command.

42 man <command> Man pages normally contain sections:
Its NAME and a short description of what it does A SYNOPSIS of its usage, including available switches A longer DESCRIPTION of the command's functionality A switch-by-switch listing of its OPTIONS Any FILES associated with this command. Any known BUGS in the command. EXAMPLES, showing how to use the command. A SEE ALSO section for further reference.

43 man <command> - contd…
The linux man page is divided into sections, each of which covers a particular topic, and every man page is associated with exactly one of these sections. The sections are: 1) User commands 2) System calls 3) Library calls 4) Special files 5) File formats 6) Games 7) Miscellaneous 8) Administrative commands e.g. man [<chapter>] <command> man 1 passwd -> refers to the user command man 5 passwd -> refers to the file format

44 man <command> - contd…
Navigating man page: Navigate with arrows, pgup, pgdown /<text> Search for text n/N Next / Previous match q quit viewing page -k option searches and list all commands in whatis database whose short description match the specified keyword e.g. man -k delete Note that this uses the “whatis” database.

45 info <command> Similar to man, but often more in-depth.
Sometimes they are just copies of the corresponding man page. The structure of an info page is similar to that of a website. Links are denoted by a preceding asterisk (*). Navigating info page: Navigate with arrows, pgup, pgdown. Tab move to next link Enter follow link the cursor is on n/p/u view next/previous/up-one node s[<text>] search for text q quit viewing page

46 Extended Documentation
Located at /usr/share/doc directory It can contain : sample configuration files, HTML/PDF/PS documentation License details

47 Red Hat Documentation Available on docs CD or Red Hat website
These docs are available in html format and HTML. The documents contains books on Installation Guide Deployment Guide Virtualization Guide Knowledge base is the another option to get help, which contains common questions and their solutions:

48 Browsing the Filesystem

49 Filesystem Basics File and directories are organized into a single-rooted inverted-tree structure. The base of the inverted-tree hierarchy is know as / (root), the top of the file structure. A forward slash separate elements of a pathname e.g. /var/ftp/pub Names in linux are case-sensitive. .. Refers to the parent directory of any particular directory – i.e. one level up the current working directory in the file hierarchy. . Refers to the current directory. Files and directories whose name begin with a . are hidden.

50 home directories Every user has a home directory.
When a user logs in, he begins in his home directory. Root's home directory is /root. Most non-root /unprivileged user’s home directories are in the /home tree, usually named after the user.

51 Some Important Directories
Home Directories: /root : root’s home directory. /home/username : non-root users home directory User executables: /bin : Essential user binaries /usr/bin : Non-essential user binaries /usr/local/bin : Third party user binaries System Executables: /sbin : Essential system binaries /usr/sbin : Non-essential system binaries /usr/local/sbin : Third party system binaries

52 Some Important Directories
Mountpoints: /media : The /media/ directory contains subdirectories used as mount points for removeable media such as usb storage media, DVDs, CD-ROMs, and Zip disks /mnt : Filesystems that are non-removable media but are not part of the Red Hat Enterprise Linux hierarchy are usually mounted here, such as NFS file system mounts. Configuration files: /etc : Most of the configuration files are stored in the directory Temporary files: /tmp/ : used by application to store temporary data.

53 Some Important Directories
Kernels and bootloader: /boot : boot loader, Kernel, initrd and loader’s configuration files are stored. Server Data: /var : contains regularly changing system files, such as log, print spools. Shared Library: /lib, /usr/lib, /usr/local/lib contains library that provide shared code used by many linux applications. System Information: /proc provide information about a running Linux system and allows some tweaking while a system is running. /sys provide information about hardware.

54 Some Important Directories
Device files: /dev/ : The /dev/ directory contains device nodes that either represent devices that are attached to the system or virtual devices that are provided by the kernel.

55 Current working directory
The current working directory is the directory in which you are currently working. You can type pwd at the command line, which will return the absolute path to you current working directory.

56 File and directory names
Names may be up to 255 characters. All characters (including special characters) are valid, except the forward-slash. Names are case-sensitive meaning thereby MAIL, mAIL, Mail are three different names.

57 Absolute and relative pathname
The location of a directory or file can be specified by either of two methods: By its absolute pathname or its relative pathname

58 Absolute and relative pathname
Absolute path: Absolute pathnames being with a slash (/). Absolute path contains the name of each directory that must be traversed form the root file system, in order, to reach the object being named. The absolute pathname specifies a 'road map' from the root of the file tree to its location in the file system. This 'road map' is valid regardless of the current directory. e.g.: cd /var/ftp/pub

59 Absolute and relative pathname
Relative Pathnames Relative pathnames do not begin with / It contains the name of each directory that must be traversed from the current directory to reach the object being named. The first component of the pathname must exist in the current directory for the pathname to be valid. The special directory name .. refers to the parent of the current directory, and can be used as part of a pathname.

60 Changing Directories cd command is used to change directory
cd without any argument will move the user to his home directory. ~ represents users home directory. Thus cd ~ will also move the user to his home directory. cd .. will switch the user to the parent of his current directory. – represents the last working directory, thus cd – will move the user to the previous working directory. cd path-to-directory will move the user to the directory who’s path is mentioned. Here path-to-directory can be relative or absolute.

61 Listing Directory Contents
ls command will display directory contents ls [option] [file or directory] ls –a : display contents including hidden files ls –l : display extra information ls –R <dir> : traverse directory recursively and display contents. ls –ld <dir> : display information about the specified directory ls –lh : displays the size in readable format i.e. 1K 1M 1G etc.

62 Copying files and directories
cp command – copy files and directories cp [options] source-name destination -R : recursively copy the specified directory -p : Preserve permissions, ownership and time stamps -a : copies file and directories recursively while preserving permission When more than two arguments are given, the last argument is interpreted as a destination directory and the rest are treated as source. If the destination is a directory, the copy is place there If the destination is a file, the copy command overwrites the destination If the destination does not exist, the copy is renamed.

63 Moving and renaming files and directories
mv – move and / or rename files and directories mv [option] <source_file> <destination> mv [option] <source_file1> <source_file2> <source_file3> <destination> More than one file may be moved at a time if the destination is a directory. mv /etc/*.conf . Moves all conf file from /etc to current dir When the source path and the destination path are same the file is renamed.

64 Create and removing files
Creating file touch command : create empty files or update file timestamps If the last time you accessed a file was at 10:02pm and you touch the file at 10:45pm, the file will show its last access at 10:45pm. If you touch a file that does not exist, an empty file will be created. cat command: cat command can also be used to create a file. cat > sunil.txt This is my first cat file. Press ctrl+d Removing files rm command– remove files. One or more files can be removed. By default, rm will not remove directories. -r will delete directories and its contents recursively. -i ask before removing -f suppress warnings about write protected files

65 Create and removing directories
mkdir command can be used to create directories. mkdir directory-name will create a directory with a name “directory-name” -p Make any missing parent directories for each argument. rmdir command can be used to delete an empty directory. rm –r command will recursively remove a directory tree.

66 Using Nautilus Context menu Right click to rename, cut, copy or paste
Drag and drop Drag : move on same filesystem, copy on different filesystem Ctrl + Drag : always copy Alt+ Drag : ask whether to copy, move or create symbolic link.

67 Determining file content
file command can be used to check file type e.g.

68 Thank You !!!

69 Users, groups and permissions

70 Linux Security Model Users and groups are used to control access to files and resources Users log in to the system by supplying their user name and password Every file on the system is owned by a user and associated with a group and can only access the resources its owner or group can access.

71 Users Every user of the system is assigned a unique User ID number (the uid) which normally starts from 500. User's names and uids are stored in /etc/passwd Users are assigned a home directory present in /home and have full access to their home directories. Users cannot read, write or execute each others files without permission, although there are some exceptions.

72 Groups Users are assigned to groups with unique group ID numbers (the gid) which normally starts from 500. gids are stored in /etc/group. Each user is given their own private group. They can also be added to other groups to gain additional access. All users in a group can share files that belong to the group. By default, a user belongs to a group that is named the same as their username. A user's primary group is defined in the /etc/passwd file and secondary groups are defined in the /etc/group file. The primary group is important because files created by this user will inherit that group affiliation.

73 What is Permission ? Specifies what rights are you granting to users to access the resources are available in the computer, so that important resources such as files are protected from unauthorized users. Every file and directory has permissions set that determine who can access it. Permission are set for: The owner of the file. The group members All others Permissions that are set are called read, write and execute permissions.

74

75 Permissions Others do not have write - Others have read r
Group has execute x Group does not have write Group has read Owner has execute Owner has write w Others have execute Owner has read Permissions

76 Methods of Implementing Permissions
Symbolic Method Numeric Method

77 Permissions- Symbolic Method
Four symbols are used when displaying and applying permissions r Permission to read a file or list a directory’s contents w Permission to write to a file or create and remove files from a directory x Permission to execute a program or change into a directory and do a long listing of the directory - no permission ( in place of the r, w, or x ) u user g group o others a all three categories + Add a permission - Remove a permission = Assign a permission

78 Applying Permission with Symbolic Method
chmod command is used to change access modes. When –R is used permission are changed recursively. Symbolic Method chmod u+w,go-w somefile  file name ( Grants write access to owner but denies it to group and other. ) chmod u=rw somefile  file name ( Sets read and write permission to owner, with execute turned off, regardless of the current permission ) chmod +r somefile  file name ( Make the file world-readable ) [ Note : +, - and = are operators to add, remove or overwrite the permission ]

79 Permissions- Numeric Method
Four numbers are used when displaying or applying permissions 4 Permission to read a file or list a directory’s contents 2 Permission to write to a file or create and remove files from a directory 1 Permission to execute a program or change into a directory and do a long listing of the directory 0 no permission ( in place of the 4, 2, or 1 )

80 Applying Permission with Numeric Method
chmod command is used to change access modes Numeric Method chmod 664 somefile  file name ( Grants Read and Write access to owner and group but read only it to and other. ) chmod 600 somefile  file name ( Sets read and write permission to owner, with execute turned off, with others and group have no permissions ) chmod 444 somefile  file name ( Make the file world-readable )

81 Permissions on files Read permission means the contents of the file can be examined with a command, such as cat or less. Write permission means the file can be edited and saved. Execute permission means the shell will attempt to execute the file when its name is entered as a command.

82 Permissions on directories
Read permission means the contents of the directory can be listed with ls. Write permission means the file may be created in the directory. Execute permission means that the user can cd to that directory and do a long listing (read permission without execute permission permits a listing, but not a long listing). A file may be removed by anyone who has write permission to the directory in which the file resides regardless of the ownership or permission on the file itself.

83 Changing ownership and group
chown [-R] user_name <file or directory> Changing group: chgrp [-R] group_name <file or directory> Changing owner and group: chown [-R] user_name:group_name <file or directory> -R operate on file and directories recursively.

84 Linux Process Security
When a process tries to access a file, the security context of the process is matched against the owner and group affiliation of the file. If the user is the owner of the file, the user permissions apply regardless of the group and other permissions. If the user is the member of the file's group, the group permissions apply, regardless of the other permission. If the user is neither owner of the file nor the group of the file, then the other permissions apply.

85 Umask umask is a value which is subtracted from default to determine new file / directory permissions Default permission for files is 666 Default permission for directories is 777 Default Permission – Umask = Effective Permission Non-Privileged Users umask is 002 root’s umask is 022 Example :- 666 – 002 = 664 666 – 022 = 644 777 – 022 = 755 The umask is set in file /etc/bashrc at line 9 and 11

86 Using the Bash Shell

87 Wildcard expansion ls chap* Displays all the files starting with chap along with file chap ls chap?? Displays files having name chap with exactly two any character after chap. ls chap[ijk] Display files having name chap with either i, j or k after chap. ls chap[c-f] Display files having name chap with the next letter c, C, d, D, e, E, f. RHEL uses UTF- 8 encoding of characters, which means that each capital letter comes directly after the corresponding lower-case letter. This means chapF will not be display. ls *[a-Z] will display all files which either contains only characters or end with character. ls [a-Z]* will display all files which either contains only characters or begin with character.

88 Command Line shortcuts – The Tab Key
Tab key can be used to complete command line. Type ls e<tab> As the directory contain a only file named elephant.ppt which begin with letter e, the whole command will be completed as: ls elephant.ppt If there are two files elephant.ppt and encyclopedia.ppt the command will not be completed as there will be a confusion that which file name should be used to complete the command.

89 History Bash stores a history of commands you have entered, which can be used to repeat instead of re-typing. The history is stored in every users home directory in bash_history file. !! - repeat last command. !c - repeat last command that started with c. !n - repeat a command by its number in history output. !?abc - repeat last command that contains Repeat the last command with old changed to new, e.g.: # cp filter.c /usr/local/src/project # ^filter^frontend cp frontend.c /usr/local/src/project

90 History Tricks Use up and down arrow keys to scroll through previous commands. ctrl+r to search for a command in command history (reverse-i-search)`': To recall last argument from previous command esc Alt !$

91 Command Line expansion
Tilde (~) refer to users home directory. cat ~/.bash_profile will print details of .bash_profile present in users home directory. Command Expansion: $() or ` ` echo “This system’s name is $(hostname)” echo “This system’s name is `hostname`” Both the above will display This system’s name is station35.example.com

92 Command Line expansion
Brace Expansion: { } echo file{1,2,3} above will display file1, file2 and file3 mkdir -p work/{inbox,outbox,pending}/{normal,urgent,imp}

93 Bash variables variables are named values, useful for storing data or command output. Value of the variable can be set as variable=value Values can be referred as $variable e.g.: files=$(ls /etc) echo $files

94 Scripting basics text files that contain a series of commands or statements to be executed. useful for automating commonly used commands performing system administration and troubleshooting. creating simple applications manipulation of text or files.

95 Creating Shell scripts
Step 1: use a text editor such as vi to create a text file. First line contains the magic “shbang” sequence #!, which this tells the operating system which interpreter to use in order to execute the script. #!/bin/bash Comment start with a # Step2: make the script executable: chmod a+x myscript.sh To execute the new script: ./myscript.sh

96 Sample shell script #!/bin/bash
#This script displays some information about your environment echo “Greetings, the date and time are $(date)” echo “Your working directory is: $(pwd)”

97 shell script Use mutt to check mail. The user sunil datta and rakhi should exist.

98 shell script

99 File Tests operator Meaning -d FILE True if file is a directory
-e FILE true if file exists -f FILE true if file exists and is a regular file -h FILE true if file is a symbolic link -r FILE true if file is readable by you -s FILE true if file exists and is not empty -w FILE true if the file is writable by you -x FILE true if the file is executable by you -O FILE true if the file is effectively owned by you -G FILE true if the file is effectively owned by your group

100 shell script

101 Thank You !!!

102 Standard I/O and Pipes

103 Standard Input and Output
Linux Provides three I/O channels to processes Standard input Standard Output Standard Error

104 Standard input Standard input: The stream can come from
keyboard(default), a file (using a feature called redirection). Another program (using the concept of a pipeline) Standard Output: The standard output stream also has three similar destinations: From terminal(default). from a file. Input from another program. The standard output of commands, which ordinarily displays on the terminal, can be redirected into a file or piped into another command.

105 Standard Input and Output
Standard Error: The standard error stream includes all error messages written to the terminal. The output may be generated either by the command or by the shell, but in either case, the default destination is the terminal. The standard error, which also ordinarily displays on the terminal, can be redirected into a file.

106 Standard Input and Output
Each of these three streams have a number, called file descriptor, which is used for identification. The file number 0 represented by standard input (STDIN), While 1 signifies the standard output file (STDOUT). The standard error file is represented by the descriptor 2 (STDERR). These descriptors are implicitly prefixed out the redirection symbols. The fact that there are two output channels allows separation of error messages from normal output.

107 Redirecting output to a file
STDOUT and STDERR can be redirected to files. Supported operators include > redirect STDOUT to file 2> redirect STDERR to file &> redirect all (STDOUT and STDERR) to file. < send file as input to command >> will append the data to file and > will overwrite the file contents.

108 Redirecting example Below command will find passwd file in /etc
find /etc –name passwd Will direct output to file and error on screen find /etc –name passwd > output.txt Will direct output on screen and error to file find /etc –name passwd 2> error.txt Will direct both output and error to file find /etc –name passwd &> output_error.txt

109 Redirecting example Will direct output to find.out and error to find.err find /etc –name passwd > find.out 2> find.err Will direct output to file.txt and error to /dev/null find /etc –name passwd > find.txt 2> /dev/null Will forward STDOUT and STDERR to program less find /etc –name passwd 2>&1 | less

110 Redirecting STDOUT to a program (piping)
Redirect STDOUT to tr command. ls –C | tr ‘a-z’ ‘A-Z’ tr command translate characters

111 Redirecting to Multiple Targets (tee)
tee command read from standard input and write to standard output and files. ls | tee ls.txt | less In above command tee will store the output of ls in file ls.txt and will also pipe the output of less to STDOUT .

112 Redirecting STDIN from a file
< can be used to redirect STDIN from file to a command tr ‘A-Z’ ‘a-z’ < .bash_profile This command will translate the uppercase characters in .bash_profile to lowercase. The above command is equivalent to cat .bash_profile | tr ‘A-Z’ ‘a-z’

113 Text Processing Tools

114 Viewing file contents less and cat
cat [option] command dump one or more files to STDOUT. If you dump the content of a binary file with cat, you will make it unusable. You can use reset to clean up your garbled terminal. cat –b command will print number before each non-blank line. less command view file one page at a time. e.g. ls –l | less /text searches for text n/N repeats the last search down/up respectively.

115 Viewing file head and tail
head command displays first few lines (default: 10 lines) of text in a file. -n or --lines displays specific no. of lines. head -n 3 /etc/passwd displays first 3 lines. tail command displays last few lines (default: 10 lines) of text in a file. tail -n 3 /etc/passwd displays last 3 lines. using -f causes tail to continue to display the file in “real time”, showing additions to the end of the file as they occur. useful for watching growing files. E.g.: tail –f /var/log/messages

116 grep command grep scans a file for the occurrence of a pattern and can display the lines having selected pattern. grep can also select lines not containing the pattern. grep options pattern filename(s) -i case-insensitive search. -n print line numbers of matches -v print lines not containing pattern -r recursively search a directory

117 grep command Examples create a file have no director record
grep -v 'director' emp.lst > otherlist Search for cat and Cat in file pets grep ‘[cC]at’ pets Extract line containing word passwd from the output of ls /etc command ls /etc | grep passwd

118 Extract text by column or field cut
Display specific columns of file data -f field-list : specifies field or column. -d input_delim_byte : specifies field delimiter (default tab). -c character-list : cut by characters. e.g. Will display 3 field -d: specifies that the separator is : cut -f3 -d: /etc/passwd display first 2 characters of each line. cut -c1-2 /etc/passwd Retrieve ip address from the output of ifconfig: ifconfig | grep ‘inet addr’ | cut –d: -f2 | cut –d ‘ ’ –f1

119 wc command - word count wc - also counts lines and characters
– l for only line count – w for only word count – c for only character count Without any option wc prints New line count, words, total characters

120 sort command sorts text to stdout – original file unchanged sort [options] file(s) common options –r perform reverse sort (descending) –n perform numeric sort, else alphabetic sort –f ignore case of characters in strings –u unique(remove duplicate lines in output) –tx 'x' – use x as field separator –k p1 sort from field p1 –k p1,p2 sort from field p1, ending at p2 sort /etc/passwd by the field uid, treat : as column separator, -n treat it as numeric sort. sort -t : -k 3 -n /etc/passwd

121 uniq command – eliminating duplicate lines
print only unique line occurrences in a file. input to uniq must first be sorted. -fn avoid comparing first n lines. -sn avoid comparing first n characters. -u only print unique lines. -d print only duplicate lines -c prefix lines by the number of times that line was repeated. e.g. sort userlist.txt | uniq –c

122 Compare files with diff command
Compare files line by line. diff list1.txt list2.txt 4c4 < meeta --- > sonu 9c9 < sana > beena 4th line and on 9th line doesn’t match.

123 Duplicating file changes - patch command
patch command is used to store the output of a diff –u to an original file. diff –u file1.txt file2.txt > file.patch patch –b file1.txt file.patch Here –u use the unified output format. –b will make a backup file before patching.

124 aspell and look command
aspell command is an interactive spell checker. It offers suggestions for corrections via a simple menu-driven interface. check option is used to spell check a file. e.g.: aspell check errorfile.txt look command A quick spelling dictionary lookup can be performed with look. look exer

125 sed command – text manipulator
The entire pets file will be sent to standard output, but the replacement of first occurrence of cat for dog will be performed on line 10 through 35. sed ‘10,35 s/cat/dog/’ pets In this example first occurrence of cat will be replaced with dog, the replacement will start from line having word digby and will end at line having word duncan. sed ‘/digby/,/duncan/s/cat/dog/’ pets Multiple editing can be done using –e option. Here cat will be replaced with dog and cow will be replaced with goat in the entire file in the entire file because of option g. sed –e ‘s/cat/dog/g’ –e ‘s/cow/goat/g’ pets

126 sed command – text manipulator
When there are numerous editing instructions to be performed, it will be better to use the –f option to accept instructions from a file. Create an instruction in a file named myedits with the following contents: s/cat/dog/g s/cow/goat/g s/donkey/monkey/g Now execute the following sed command, which will execute multiple instruction sed –f myedits pets

127 Special characters for complex searches regular expression
^ represents beginning of line $ represents end of line Used with grep, sed Will match lines beginning with “C or c” followed by “hapter” grep ^[Cc]hapter /etc/passwd Will match lines having O or o followed by ne at the end grep [Oo]ne$ /etc/passwd

128 Vim – An Advanced Text Editor

129 vi editor vi - the basic text editor three modes
Command mode (default) : Move cursor, cut/past text, change mode Insert mode : Modify text esc mode : Save and quit etc To enter insert mode press i key To exit insert mode press ESC key To start vim editor vim filename

130 Modifying a file – Insert mode
i begins insert mode at the cursor A append to end of line I Insert at beginning of line o Insert new line after current cursor position O Insert new line before current cursor position

131 Saving a file and Exiting vim – Ex mode
: w write the file to disk :w! write the file to disk forcibly :wq write the file to disk and quit :q quit vim editor :q! Quit vim editor forcibly

132 Moving around – command mode
Move by word w, b Move by sentence ), ( Move by paragraph }, { Jump to line :x or xG Jump to end G

133 Search and replace – command mode
/text search text downward ?text search text upward n/N search above/below 1,5s/cat/dog replace cat with dog at line 1 to 5 %s/cat/dog replace first occurrence of cat with dog in complete file %s/cat/dog/g replace cat with dog in complete file

134 Manipulating text – Command Mode
Change (replace) Delete (cut) Yank (copy) Line cc dd yy Letter cl dl yl Word cw dw yw Sentence ahead c) d) y) Sentence behind c( d( y( Paragraph above c{ d{ y{ Paragraph below c} d} y}

135 Put (paste) p put the data below the current line.
P put the data above the current line.

136 Undoing changes – command mode
u undo changes Ctrl + r redo last undone change

137 Configuring vim Display number on the left margin before each line.
:set nu or : set number Causes searches to be case-insenstive: :set ic or :set ignorecase

138 Basic system configuration

139 Managing Ethernet connection
The Ethernet devices have the prefix eth. The first detected Ethernet card is assigned the name eth0, the second eth1 and so forth. Every system also has a special network device called the lo, which represents the loopback device with address You can view the basic settings of the network device by running the ifconfig command. E.g.: ifconfig ifconfig ethx If the network interface is down, it will not be shown in ifconfig’s output. Device can be brought up and down by an administrator using the ifup and ifdown command. E.g.: ifup ethx ifdown ethx system-config-network provides a graphical interface for managing all the network settings.

140 Network configuration file
/etc/sysconfig/network-scripts/ifcfg-ethX Complete list of options are in /usr/share/doc/initscripts-*/sysconfig.txt Dynamic configuration Static configuration Device=ethX HWADDR=0:2:8A:A6:30:45 BOOTPROTO=dhcp ONBOOT=yes Type=Ethernet IPADDR= NETMASK= GATEWAY=

141 Network configuration file
DEVICE: specifies the device alias HWADDR: Associates the configuration with a specific device, identified by a MAC address. BOOTPROTO: From where IP address should be retrieved. DHCP or STATIC. IPADDR and NETMASK: Basic IP settings. Only necessary when not using DHCP. GATEWAY: IP address of the system to send messages destined for hosts on another network. ONBOOT: whether to bring the device up automatically on boot. yes or no. Default no. USERCTL: whether to allow non-root users to bring this device up and down. yes or no, default no. TYPE: specifies the type of network interface, Ethernet or Wireless. Setting to Wireless would cause supplementary configuration scripts to run and look for wifi-specific settings.

142 Global Network Settings
Global network settings are stored in /etc/sysconfig/network NETWORKING=yes HOSTNAME=server1.example.com GATEWAY= NETWORKING: whether to enable networking. GATEWAY: The IP address of the system to send messages destined for hosts on another network. HOSTNAME: The system’s hostname. If DHCP is configured to provide HOSTNAME, it is probably not necessary to define this. If you do not define this and your system is not using DHCP then it will ask DNS what name is associated with your IP address and use that. IF DNS does not have a name associated with your IP, your system will be assigned the name localhost.localdomain.

143 Network configuration files – DNS configuration
DNS, allows name to be assigned to and used in place of IP addresses. Local DNS configuration is performed using the /etc/resolv.conf. There are generally two settings in /etc/resolv.conf: search example.com cracker.org specifies domains that should be tried when an incomplete DNS name is given to a command. nameserver specifies that IP address of a DNS server your system should use. If I run the command ping server1, the system will first attempt to resolve the name server server1.example.com, if fails then tries the name server server1.cracker.org.

144 Printer in Linux Printers may be local or networked.
Supported Printer connections: Local (parallel, serial or usb) Unix/Linux Printer server Windows Print Server Netware print sever HP JetDirect Printer can be configured by: system-config-printer System > Administration > Printing localhost:631/ Configuration file: /etc/cups/printers.conf /etc/cups/cupsd.conf

145 Printer in Linux lpr sends a job to the queue to be printed.
lpr –P accounting -#5 report.ps -P <Printer name> -#5 specifies number of copies lpq views the contents of the queue. lpq –P accounting lprm removes a job from the queue. lprm –P accounting 916 Where 916 is the job id, that can be checked using lpq command Command line management tool: lpadmin

146 Utilities evince : views PDF documents
lpstat command: Shows print cups status information –d shows the current default destination. –p shows the printers and whether or not they are enabled for printing. –l Shows a long listing of printers, classes, or jobs. ps2pdf : converts Postscript to pdf

147 Investigating and Managing Processes

148 What is a Process? A process in an executing program with several components and properties. A process is a shell command or a program in execution. When you log in, a process is created. This process is executing the shell When you execute a shell command, a new process is created. When the command terminates, the process dies. A single user can have many processes executing at the same time

149 ps command The command ps is used to determine the status of active processes. The command returns the process id (PID) number and other information such as the amount of CPU time the process has used (TIME) and the command which invoked the process (CMD). Options may be combined. a includes processes on all terminal x includes processes not attached to terminal u vikas prints process owner information o property1, property2 …. Where property is pid, comm, %cpu, %mem, state, tty, euser, ruser E.g.: ps axo pid,%cpu,comm

150 Process State Every process has a state property, which describes whether the process is actively using the cpu, in memory but not doing anything (sleep), waiting for a resource to become available (uninterruptable sleep) or terminated, but not flushed from the process list (Zombie). Uninterruptable sleep: Process is sleeping and can not be woken up until an event occurs. It can not be woken up by a signal. Typically, the result of an I/O operation, such as a failed network connection (for NFS hard mounts). Just before a process dies, it sends a signal to its parent and waits for an acknowledgement before terminating. Even if the parent process does not immediately acknowledge this signal, all resources except for the process identity number (PID) are released. These are called ZOMBIE PROCESSES and are cleared from the system during the next system reboot and do not adversely affect system performance.

151 Finding Processes Lookup for processes pgrep –U root pgrep –G student
-U Only match processes whose real user id is listed. -G only match processes whose real groupid is listed. Find a process ID of a running program. pidof gedit pgrep gedit

152 signals Signals are simple messages that can be communicated to process with commands like kill. Signal 15, TERM (default) - Terminate cleanly Signal 9, KILL Terminate immediately Signal 1, HUP - Re-read configuration files Most services are programmed to reload their configuration when they received a HUP.

153 Sending Signals to Processes
Kill can send many signals, but processes only respond to the signals they have been programmed to recognize. kill 3428 kill kill –TERM 3428 User pidof gedit or pgrep gedit can be used to know the process id of the process, gedit in this case. killall – kill process by name killall gedit

154 Scheduling priority Scheduling priority determines access to the CPU.
Values ranges from -20(highest) to 19(lowest), default is 0. nice - run a program with modified scheduling priority. nice -n 15 myprog Where –n specifies the priority number. non-privileged users may not set niceness value to less than zero.

155 Scheduling priority renice - alter priority of running processes
only the superuser is permitted to raise the priority of currently running process. Non super-users can not increase scheduling priorities of their own processes, even if they were the ones that decreased the priorities in the first place. can be used to modify the priority of all of the processes of a particular user. renice -15 -u joe Can be used to modify the priority of a process renice -15 –p pid

156 Process Management Tools
CLI: top command GUI: gnome-system-monitor Capability: Display real-time process information Allow sorting, killing and renicing.

157 Job Control When a process is started from a terminal's command line, it is normally running in the foreground. When a command is entered, the shell will not process further input until the process is completed and the shell prompt is redisplayed. The typeahead buffer allows you to type other commands, but they will not be processed until the pending process completes, or “returns”. running a command in the background allows another process to run concurrently on the same terminal. A background process is still the child of the processes that spawned it. the parent process, however, does not wait for the child process to terminate before continuing. When a process is started in the background, a new bash “sub-shell” is created.

158 Job Control Both find and ps now have the same PPID, the pid of the shell. the shell has spawned two processes, one running in the foreground, and the other in the background. ~]# find / -name abc.txt & [1] 3600 ~]# ps -f UID PID PPID C STIME TTY TIME CMD root :46 pts/2 00:00:00 bash root :36 pts/2 00:00:00 find / -name abc.txt root :36 pts/2 00:00:00 ps -f

159 Job Control You can run as many jobs in the background as the system load permits. Make sure that both standard output and standard error are redirected suitable, using /dev/null, if necessary. shell dies on logout, but not its child. Kernel reassign the PPID of the find process to the process that has a PID 1. This is the system process init, which is the parent of all shells. when the user logs out, init takes over the parentage of the find process.

160 Suspending a Process Below command check the process “find”.
ps -x | grep find Foreground jobs can be suspended: temporarily stopped, without being killed, using the <ctrl-z> keystroke. once a process is suspended, it can be resumed in the background, using the bg command, or resumed in the foreground, using the fg command. job numbers are referenced with %. Syntax fg [%job_number] bg [%job_number]

161 Listing Background and Suspended Jobs
Jobs displays all process running in the background or that are suspended. the number in brackets is a job number, used to kill jobs or bring them back to the foreground. ~]# jobs [1]+ Stopped find / -name abc.txt

162 Scheduling a process to execute later
at time-executes commands at a specified time. ~]# at 11:56 am at> find / -name abc.txt >>findresult.txt at> <EOT> #press <ctrl-d> job 3 at :56 ~]# at –l list at –c jobnum show details at –d jobnum Delete the job having job number jobnum

163 crontab cron file settings are:
min      hour      day_of_month      month      day_of_week      command min            :   0-59 hour            :   0-23                 ;0 means 12AM day_of_month   :   1-31 month          :   1-12 or Jan, Feb,    ;not case sensitive day_of_week    :   0-7       ;0 & 7-Sunday, 1-Monday, not case sensitive *      :      every Range are separated by e.g hours Non-continuous range are separated by , e.g. 8,9,11 hours Mixed range are as e.g.: 0-4,8-12 hours 0-23/2 at hour position means every other hour i.e. 0,2,4,6,8,10,12,14,16,18 */2 at hour position means every two hour

164 crontab If there is a mismatch as below: 30 4 1,15 * 5
Will run command at 4:30AM on the 1st and 15th of each month, plus every Friday. Pound-sign (#) are comments Job files created by each user is stored in /var/spool/cron which is not accessible by non privileged users. E.g.: * * * * * touch > /root/hello.txt

165 crontab Cron job of user sunil can be Created/Edit cron by root using -e switch: crontab -u sunil -e                 ;Creating/Edit cron for user sunil by root crontab -e                          ;Creating/Edit cron by user himself View cron jobs: Cron jobs can be viewed by using l switch as: crontab -lu sunil                   ;View cron jobs of user sunil by root crontab -l                          ;View cron jobs for himself To remove crontab: cron jobs can be removed using r switch as: crontab -ru sunil                   ;remove crontab job of user sunil by root crontab -r                          ;To remove crontab job by user himself Job files created by each user is stored in /var/spool/cron which is not accessible by non privileged users

166 System crontab files /etc/crontab is master crontab file which runs executables in /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly /etc/crontab and /etc/cron.d/ are different from user crontabs. Here sixth field is a username which will be used to execute the command in the seventh field.

167 cron access control If neither /etc/cron.allow nor /etc/cron.deny exists only root is allowed to install new crontab files. If cron.allow does not exist, all users listed in cron.deny are not allowed to use cron. If the file cron.allow exists, only users listed in it are allowed to use cron, and the cron.deny file is ignored. The format of both access control files is one username on each line. Whitespace is not permitted in either file. The cron daemon (crond) does not have to be restarted if the access control files are modified. The access control files are read each time a user tries to add or delete a cron task. Note that denying a user through the user of the above files does not disable their installed crontab.

168 The anacron system The anacron run cron jobs that did not run when the computer is down Configuration file: /etc/anacrontab Field 1: if the job has not been run in this many days Field 2: wait this number of minutes after reboot and then run it. Field 3: job identifier Field 4: The job to run.

169 Grouping Command Suppose you want to maintain a count of the number of users logged on, along with a time /date stamp, in the log file. date >> logfile who | wc –l >> logfile This can also be done as: (date; who | wc –l) >> logfile Command inside parentheses are run in their own instance of bash, called a SUBSHELL. The output of all commands run inside a subshell are sent to the subshell’s STDOUT and STDERR, making it possible to send multiple programs through the same pipe.

170 Configuring the Bash shell

171 Environment Variables
Bash variables are local to a single shell by default Set with VARIABLE=VALUE Environment variables are inherited by child shells. HI=“Hello, pleased to meet you.” echo $HI The set, env, and echo commands can be used to display all variables, environment variables, and a single variable value respectively. set | less env | less echo $HOME

172 Common Local Variables
HISTORYFILE specifies the file in which history commands are stored on logout. HISTSIZE specifies the number of history commands to keep while operating interactively. HISTFILESIZE determines how many commands to be saved in the history file on logout. COLUMNS sets the width of the terminal PS1 - sets the prompt

173 Changing prompt PS1 can be changed each time it is displayed by using special escaped sequences. \d the date \h short hostname \t the current time \u user name \w the current working directory \! The history number of the current command \$ show $ if you are a non-privileged user and a # if you are a privileged user e.g.: ,\!>\$’ default PS1 variable has the value: \w]\$’

174 Aliases aliases are shortcut names for longer commands.
alias dir='ls –l’ use alias by itself to see all set aliases. use alias followed by an alias name to see alias value. alias dir To remove alias use unalias command as unalias dir

175 Preventing expansion Backslash (\) makes the next character literal
echo “your cost: \$5.00” E.g.: To find a final with name foo* : find / -name foo\* Avoid using echo \*\*\* SALE \*\*\* Use echo '*** SALE ***' or echo “*** SALE ***” Using as last character on line to “continue command on next line” e.g.: echo “this long sample string \ will be echoed back as one long line.”

176 Preventing expansion Quoting prevents expansion:
Single quotes ‘ inhibit all expansion echo 'The current date is `date`' The current date is `date` Double quotes “ inhibit all expansion except $ variable expansion ` command substitution \ single character inhibition ! History substitution E.g.: echo “The current date is `date`” The current date is Sat Apr 27 17:45:25 EDT 2000

177 Login vs no-login shells
Startup is configured differently for login and non-login shells: Login shells are: Any shell created at login (including X login) su - Non-login shells are: su Graphical terminal Executed scripts Any other bash instances

178 Script executed at login time
/etc/motd can be used to store message of the day. /etc/profile /etc/profile.d/ ~/.bash_profile ~/.bashrc /etc/bashrc

179 script executed in no-login shell
~/.bashrc /etc/bashrc /etc/profile.d/

180 script executed during logout
~/.bash_logout Run when a login shell exits Used for Creating automatic backups Cleaning out temporary files.

181 profile Stored in /etc/profile (global) and ~/.bash_profile
The profile shell script is the first startup script run when a login shell is started. It only runs for login shells, no-login shells do not invoke this script. The profile set series of variable including PATH, USER, LOGNAME, MAIL, HOSTNAME, HISTSIZE, and INPUTRC. PATH variable is set in the /etc/profile script and is then modified in ~/.bash_profile script.

182 bashrc Stored in /etc/bashrc (global) and ~/.bashrc (user)
umask and PS1 for privileged and unprivileged user is stored in /etc/bashrc Aliases are stored in ~/.bashrc e.g.: aliasing for cp –i is stored in ~/.bashrc. Any changes made in bashrc will be available in new terminal, but not in the terminal already opened. However, the original terminal where you made those changes still has the old settings. From the original terminal, run one of the following: . /etc/bashrc or source /etc/bashrc

183 Finding and Processing Files

184 locate Find files by name
Locate queries a pre-built database of files looking for files that corresponds to search criteria. The database must be generated by an administrator running the updatedb command. Can also be automated by an administrator enabling the DAILY_UPDATE option in /etc/updatedb.conf. -i performs a case-insensitive search -n x shows only the first x matches E.g. locate –in 5 passwd

185 find find [directory . . .] [criteria . . .]
find - search for files in a directory hierarchy. searches directory trees in real-time. Can be configured to execute commands when file is found. find file ending with name .png starting from / root. find / –name “*.png” Case-insensitive search for file with name ending with .png find –iname “*.png” Search file in /etc that contains *.png in their name find /etc –iname *.png Search all the file owned by user joe and the group joe find /home –user joe –group joe

186 find and Logical operator
-or -o -not ! -and -a find file having owner joe but which does not belong to group joe find –user joe –not –group joe find file having owner either joe or sunil find –user joe –or –user sunil Find file having owner joe and group admin find –user joe –and –group admin Find files having user other than joe or jane find –not \(– user joe –or –user jane \)

187 find and permissions -perm mode, -perm +mode, -perm –mode
Find file having permission 755 find –perm 755 Find file on which everyone can write find –perm +222 Find file on which anyone can write find –perm -222 Find file on which others can write find –perm -002

188 find and size Size can be specified in k for KB, G for GB etc.
Find file of exactly size 10M find –size 10M Find file of size over 10M find –size +10M Find file of size less than 10M find –size -10M

189 find and date ctime -- In UNIX, it is not possible to tell the actual creation time of a file. The ctime--change time--is the time when changes were made to the file or directory's inode (owner, permissions, etc.). The ctime is also updated when the contents of a file change. It is needed by the dump command to determine if the file needs to be backed up. You can view the ctime with the ls -lc command. atime -- The atime--access time--is the time when the data of a file was last accessed. Displaying the contents of a file or executing a shell script will update a file's atime, for example. You can view the atime with the ls -lu command. mtime -- The mtime--modify time--is the time when the actual contents of a file was last modified. This is the time displayed in a long directoring listing (ls -l).

190 find and date In Linux, the stat command will show these three times.
Examples $ cat file file's atime is updated. $ chmod g+w file file's ctime is updated. $ echo "File contents" > file file's atime, ctime and mtime are updated.

191 find and date [root@ns1 ~]# stat install.log.syslog
File: `install.log.syslog' Size: Blocks: IO Block: regular file Device: 302h/770d Inode: Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: :35: Modify: :01: Change: :01:

192 find and date We will change the permission of the file, and will see that there is a change in ctime. ~]# chmod g+w install.log.syslog ~]# stat install.log.syslog File: `install.log.syslog' Size: Blocks: IO Block: regular file Device: 302h/770d Inode: Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: :35: Modify: :01: Change: :20:

193 find and date now we will cat the file and will see that there is a change in atime. ~]# cat install.log.syslog ~]# stat install.log.syslog File: `install.log.syslog' Size: Blocks: IO Block: regular file Device: 302h/770d Inode: Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: :21: Modify: :01: Change: :20:

194 find and date now we will edit the file and will save it and will see change in access, modify and change time. ~]# stat install.log.syslog File: `install.log.syslog' Size: Blocks: IO Block: regular file Device: 302h/770d Inode: Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: :23: Modify: :23: Change: :23:

195 find and date -mtime file data was last modified.
-ctime when file data or metadata last changed. -atime date of the last time the file was read Find files whose last accessed time stamp is exactly five days ago. find / -atime 5 Find files whose last accessed time stamp is more than five days ago. find / -atime +5 Find file whose last accessed time stamp is less than five days ago. find / -atime -5 stat filename can be used to check file’s mtime, ctime and atime.

196 find and executing command
find file having size more than 100M and prompt to move file to /tmp/largefiles find –size +100M –ok mv {} /tmp/largefiles/ \; -ok ask the user for confirmation before executing. Find file *.conf and copy them with changed extention of .orig find –name “*.conf” –exec cp {} {}.orig \; -exec execute the command without asking. find files with others having write permission and change to deny write. find ~ -perm -002 –exec chmod o-w {} \; Display directories in /home directory find /home –type d –ls -type specified what type and d represents directory. -exec and –ok must end with \;

197 find and xargs Used when you want to execute a command on
find . –type l –print | xargs rm Remove all the symbolic links in your current directory.

198 Network Clients

199 Links and firefox links a non-GUI web brower, provided by elinks rpm
Firefox is a lightweight, feature-rich web broweser

200 wget Retrieves file via HTTP or FTP Useful for shell scripts
Download files, retry 50 times and wait for 30 second before each retry. wget --tries=50 --wait=30 ftp://ftp.site.com/files Mirror a full or partial website, you can limit number of levels of recursive: wget --recursive --level=1 --convert-links --convert-links After the download is complete, convert the links in the document to make them suitable for local viewing.

201 Email and messaging Email client Evolution Thunderbird Mutt Messanger
pidgin

202 FTP client CLI – lftp (lftp-<version>.rpm) lftp ftp.example.com
lftp –u joe ftp.example.com GUI – gFTP (gftp-<version>.rpm) Applications > internet > gFTP

203 rsync Efficiently copies file to or from remote systems. Transfer just the differences between two sets of files. -r act on subdirectories recursively without preserving permission -a act on subdirectories recursively with preserving permission --progress print progress bar --partial continue partially download files rsync *.conf :/home/joe

204 Network Diagnostic Tools
ping used to detect the communication with another system. traceroute displays the computers through which a packet pass to reach another computer. host Performs hostname to IP address transitions, as well as the reverse. dig performs a service similar to host in greater detail.

205 Network Diagnostic Tools
netstat provides a number of network statistics. gnome-nettool a graphical frontend for the tools listed above.

206 The Linux Filesystem in-depth

207 inodes ext2 and ext3 file systems keep a list of files in the file system in a table called an inode table. Individual entry in the inode table is called an inode. Every file and directory has a inode number. Directories have inode numbers associated with files. Inode is referenced by its number, the inode number, which is unique within a file system.

208 inodes Data stored in the inode is: The file type File permissions
Link count: the number of file names associated with the inode number. User id number of the file owner. The group id number of the associated group. Time stamps, including, last access, last modification and inode change time. Location of the data on the hard disk. Display the inode number: ls -il

209 cp and inodes When a file is copied to a new name in the same directory, the cp command allocates a free inode number, placing a new entry in the inode table. ~]# ls -il abc.txt rw-r--r-- 1 root root 1756 Oct abc.txt ~]# cp abc.txt penguin.txt ~]# ls -il penguin.txt rw-r--r-- 1 root root 1756 Oct 7 06:15 penguin.txt

210 mv and inodes When a file is moved, the underling file, either as inode entry or as data on the hard disk does not move. What moves is the entry in a directory. e.g.: ~]# ls -il tux r-xr-xr-x 1 root root Jan 1 02:31 tux ~]# mv tux dump/ ~]# ls -il dump/ Renaming a file using mv command will not change its inode.

211 rm and inodes Decrements the link count, thus freeing the inode number to be reused. The block locations that the file was using are placed on the free list. Removes the directory entry. Data is not actually removed, but will be overwritten when the data blocks are used by another file.

212 Hard links A hard link is a path name that references an inode.
The individual file is referenced by its inode number, the file name is merely for human convenience. Because name of a file is separate from an inode (it is stored in a directory, not in the inode), it is possible to have multiple file names pointing to the same inode number. To create an additional hard link to an existing file, use the ln command: dir1]# ln 2.rar 3.rar dir1]# ls -il total 46944 r-xr-xr-x 2 root root Jan 1 02:31 2.rar r-xr-xr-x 2 root root Jan 1 02:31 3.rar

213 Hard links Hard Link Two files have the exact same node.
There is only one underlying file, but there are two entry points. The link count has been incremented to two, because two path names point to the same file. Restrictions : The two file names must be on the same filesystem, because they share an inode number and an inode table is unique to a file system. It is not possible to use the ln command to create hard links to directories.

214 Soft(Symbolic) links A symbolic link is a file that points to another file. Removing a symbolic link removes the actual link itself, not the underlying file. To create a symbolic link, use the ln command with the -s option: ln –s /etc/passwd password ls –il password /etc/passwd Note that as a symbolic link is a separate file from the original, the original file and the link will have different inode number. Permissions set on the symbolic link are irrelevant. The size of the symbolic link count to the number of character in the path to which the symbolic link is pointing to.

215 Seven Fundamental Filetypes
ls –l symbol File Type - Regular file d Directory l Symbolic Link b Block Special file c Character special file p Named pipe s socket

216 Seven Fundamental Filetypes
c character special file: Files referencing hardware are not regular files; they are one of two type of special files. Character special files are used to communicate with hardware one character at a time. E.g. /dev/pts/1 terminal b block special file: used to communicate with hardware a block of data at a time: 512bytes, 1024 bytes, 2048 bytes. /dev/hda /dev/hda1 /dev/hda2 Generally, block and character special files are located in the /dev/ directory. p named pipe: a file that passes data between processes. E.g. /dev/initctl s socket: a stylized mechanism for inter-process communications. find / -type s | xargs ls –l file /dev/hda

217 Checking Free space df – report disk space usage
Reports total kilobytes, kilobytes used, kilobytes free per file system -h display sizes in easier to read units. du – reports file space usage Reports kilobytes used per directory Includes subtotals for each subdirectory -s option only reports single directory summary. Applications > System Tools > Disk Usage Analyzer or baobab reports disk space usage graphically.

218 tar command The `tar' program is used to create and manipulate `tar' archives. Archiving files is the process of incorporating a copy of files into a single archive file. tar archives are usually created with .tar filename extension. -c : create new archive -x : Extracts members from the archive into the file system. -t : lists the members in an archive. -v : produce verbose messages -f archivename : name of file archive Create an archive of the /etc directory as: tar –cvf /tmp/etc.tar /etc List the contents of the archive: tar –tf /tmp/etc.tar Extract tar archive in current directory: tar –xvf /tmp/etc.tar

219 tar command tar compress the archive using gzip compression tool when –z option is used tar –czvf /tmp/etc.tar.gz /etc tar –tzf /tmp/etc.tar.gz tar –xzvf /tmp/etc.tar.gz tar compress the archive using bzip2 compression tool when –j option is used tar –cjvf /tmp/etc.tar.bz2 /etc tar –tjf /tmp/etc.tar.bz2 tar –xjvf /tmp/etc.tar.bz2 When compressed with –z the archive file suffixes .tar.gz or .tgz and when compresed with –j the archive file suffixes .tar.bz2

220 Other archive tools Other CLI archive tools zip and unzip
GUI archive tools file-roller

221 Thank You !!!

222 Thank You !!!


Download ppt "RHCE-I Part Durgesh Tomar Linux History and Introduction"

Similar presentations


Ads by Google