0% found this document useful (0 votes)
80 views

1 Using Linux Tools

The document provides an overview of using Linux tools. It covers topics like getting started with Linux, file handling basics, the Linux file hierarchy and permissions, viewing file contents, the shell, and miscellaneous tools. The document is part of a training module on Linux tools for a Computer Science department. It includes examples and explanations of common Linux commands.

Uploaded by

Manu Sankar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views

1 Using Linux Tools

The document provides an overview of using Linux tools. It covers topics like getting started with Linux, file handling basics, the Linux file hierarchy and permissions, viewing file contents, the shell, and miscellaneous tools. The document is part of a training module on Linux tools for a Computer Science department. It includes examples and explanations of common Linux commands.

Uploaded by

Manu Sankar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 83

Using Linux Tools

Dept. of CS(SSV College)

Using Linux Tools

1/83

Outline
1 2
3 4

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 2/83

Outline
1 2
3 4

Introduction

Introduction Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 3/83

Introduction

What is the Linux OS? Free Open Source Operating System Free Free as in Free Speech, not Free Beer Open-Source Permit modifications and redistribution of source code Unix-inspired Linux Kernel + Application software Runs on a variety of hardware Also called GNU/Linux

Dept. of CS(SSV College)

Using Linux Tools

4/83

Why Linux?

Introduction

Free as in Free Beer Secure & versatile Why Linux for Scientific Computing? Free as in Free Speech Can run for ever Libraries Parallel Computing

Dept. of CS(SSV College)

Using Linux Tools

5/83

Outline
1 2
3 4

Getting Started

Introduction

Getting Started
Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 6/83

Logging in

Getting Started

GNU/Linux does have a GUI Command Line for this module Hit Ctrl + Alt + F1 Login

logout command logs you out

Dept. of CS(SSV College)

Using Linux Tools

7/83

Where am I?

Getting Started

Logged in. Where are we?

pwd command gives the present working directory


$ pwd /home/user

Dept. of CS(SSV College)

Using Linux Tools

8/83

What is in there?

Getting Started

ls command lists contents of pwd $ ls jeeves.rst psmith.html blandings.html Music


Can also pass directory as argument

$ ls Music one.mp3 two.mp3 three.mp3


the Unix world is case sensitive

Dept. of CS(SSV College)

Using Linux Tools

9/83

New folders

Getting Started

mkdir creates new directories $ mkdir sees $ ls


Special characters need to be escaped OR quoted

$ mkdir software\ engineering $ mkdir "software engg"


Generally, use hyphens or underscores instead of spaces in names

Dept. of CS(SSV College)

Using Linux Tools

10 / 83

Moving around

Getting Started

cd command changes the pwd $ cd sees $ pwd /home/user/sees/


Alternately written as cd ./sees Specifying path relative to pwd .. takes one level up the directory structure

$ cd ..
We could use absolute path instead of relative

$ cd /home/user/sees/
Dept. of CS(SSV College) Using Linux Tools 11 / 83

New files

Getting Started

touch command creates a blank file $ pwd /home/user $ cd sees $ touch first $ ls first

Dept. of CS(SSV College)

Using Linux Tools

12 / 83

Outline
1 2
3 4

Getting Help

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 13 / 83

What does a command do?


whatis gives a quick description of a command

Getting Help

$ whatis touch touch (1) - change file timestamps


man command gives more detailed description

$ man touch
Shows all tasks that the command can perform Hit q to quit the man page For more, see the man page of man

$ man man
Dept. of CS(SSV College) Using Linux Tools 14 / 83

Using additional options


-h or -help give summary of command usage $ ls --help
List out all files within a directory, recursively

Getting Help

$ ls -R
Create a new directory along with parents, if required

$ pwd /home/user/ $ ls sees/ $ mkdir -p sees/linux-tools/scripts


Dept. of CS(SSV College) Using Linux Tools 15 / 83

Searching for a command

Getting Help

apropos searches commands based on their descriptions $ apropos remove


Returns a list of all commands that contain the search term In this case, we are interested in rm, rmdir

Dept. of CS(SSV College)

Using Linux Tools

16 / 83

Outline
1 2
3 4

Basic File Handling

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 17 / 83

Removing files

Basic File Handling

rm is used to delete files $ rm foo rm works only for files; not directories
Additional arguments required to remove a directory -r stands for recursive. Removes directory and all of its content

$ rm -r bar rmdir can also be used; Explore


Dept. of CS(SSV College) Using Linux Tools 18 / 83

Copying Files

Basic File Handling

cp copies files from one location to another

$ cp linux-tools/scripts/foo linux-tools/
New file-name can be used at target location foo copied to new location with the name bar

$ cp linux-tools/scripts/foo linux-tools/bar cp overwrites files, unless explicitly asked not to


To prevent this, use the -i flag

$ cp -i linux-tools/scripts/foo linux-tools/b cp: overwrite bar?


Dept. of CS(SSV College) Using Linux Tools 19 / 83

Copying Directories

Basic File Handling

-r is required to copy a directory and all its content


Copying directories is similar to copying files

$ cd /home/user $ cp -ir sees course

Dept. of CS(SSV College)

Using Linux Tools

20 / 83

Moving Files

Basic File Handling

cp and rm would be one way mv command does the job Also takes -i option to prompt before overwriting

$ cd /home/user # Assume we have course directory already cre $ mv -i sees/ course/


No prompt! Why?

$ ls course sees became a sub-directory of course mv command doesnt over-write directories -i option is useful when moving files around mv to rename move to same location with new name
Dept. of CS(SSV College) Using Linux Tools 21 / 83

Outline
1 2
3 4

Linux File Hierarchy, Permissions & Ownership

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership

5
6 7

Looking at files
The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 22 / 83

Linux File Hierarchy

Linux File Hierarchy, Permissions & Ownership

/ is called the root directory It is the topmost level of the hierarchy For details man hier

Dept. of CS(SSV College)

Using Linux Tools

23 / 83

Permissions and Access control


In a multi-user environment, access control is vital Look at the output of ls -l

Linux File Hierarchy, Permissions & Ownership

drwxr-xr-x

5 root users

4096 Jan 21 20:07

The first column shows the permission information First character specifies type of the file Files have -; Directories have d 3 sets of 3 characters for user, group and others r, w, x for read, write, execute Either the corresponding character or - is present

Dept. of CS(SSV College)

Using Linux Tools

24 / 83

Changing the permissions


Permissions can be changed by owner of the file

Linux File Hierarchy, Permissions & Ownership

chmod command is used -R option to recursively change for all content of a directory
Change permissions of foo.sh from -rw-r--r-- to

-rwxr-xr--

$ ls -l foo.sh $ chmod ug+x foo.sh $ ls -l foo.sh

Dept. of CS(SSV College)

Using Linux Tools

25 / 83

Symbolic modes

Linux File Hierarchy, Permissions & Ownership

Reference Class Description u user the owner of the file g group users who are members of the files group o others users who are not hte owner of the file or members of a all all three of the above; is the same as ugo Operator Description + adds the specified modes to the specified classes removes the specified modes from the specified classes = the modes specified are to be made the exact modes for the spe Mode Name Description r read read a file or list a directorys contents w write write to a file or directory x execute execute a file or recurse a directory tree
Dept. of CS(SSV College) Using Linux Tools 26 / 83

Changing Ownership of Files

Linux File Hierarchy, Permissions & Ownership

chown changes the owner and group


By default, the user who creates file is the owner The default group is set as the group of the file

$ chown alice:users wonderland.txt


Did it work? Not every user can change ownership Super-user or root user alone is empowered

Dept. of CS(SSV College)

Using Linux Tools

27 / 83

Outline
1 2
3 4

Looking at files

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership

5
6 7

Looking at files
The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 28 / 83

cat

Looking at files

Displays the contents of files

$ cat foo.txt
Concatenates the text of multiple files

$ cat foo.txt bar.txt


Not-convenient to view long files

Dept. of CS(SSV College)

Using Linux Tools

29 / 83

less

Looking at files

View contents of a file one screen at a time

$ less wonderland.txt
q: Quit Arrows/Page Up/Page Down/Home/End: Navigation ng: Jump to line number n

/pattern: Search. Regular expressions can be used h: Help

Dept. of CS(SSV College)

Using Linux Tools

30 / 83

wc

Looking at files

Statistical information about the file the number of lines in the file the number of words the number of characters

$ wc wonderland.txt

Dept. of CS(SSV College)

Using Linux Tools

31 / 83

head & tail

Looking at files

let you see parts of files, instead of the whole file head - start of a file; tail - end of a file show 10 lines by default

$ head wonderland.txt -n option to change the number of lines $ head -n 1 wonderland.txt tail is commonly used to monitor files -f option to monitor the file Ctrl-C to interrupt $ tail -f /var/log/dmesg
Dept. of CS(SSV College) Using Linux Tools 32 / 83

cut

Looking at files

Allows you to view only certain sections of lines Lets take /etc/passwd as our example

root:x:0:0:root:/root:/bin/bash
View only user names of all the users (first column)

$ cut -d : -f 1 /etc/passwd -d specifies delimiter between fields (default TAB)

-f specifies the field number


Multiple fields by separating field numbers with comma

$ cut -d : -f 1,5,7 /etc/passwd


Dept. of CS(SSV College) Using Linux Tools 33 / 83

cut

Looking at files

Allows choosing on the basis of characters or bytes Example below gets first 4 characters of /etc/passwd

$ cut -c 1-4 /etc/passwd


One of the limits of the range can be dropped Sensible defaults are assumed in such cases

$ cut -c -4 /etc/passwd $ cut -c 10- /etc/passwd

Dept. of CS(SSV College)

Using Linux Tools

34 / 83

paste

Looking at files

Joins corresponding lines from two different files

students.txt Hussain Dilbert Anne Raul Sven

marks.txt 899285 984767 678276 789760 676869

$ paste students.txt marks.txt $ paste -s students.txt marks.txt

-s prints content, one below the other


If first column of marks file had roll numbers? How do we get a combined file with the same output as above (i.e. without roll numbers). We need to use cut & paste together. But how?
Dept. of CS(SSV College) Using Linux Tools 35 / 83

Outline
1 2
3 4

The Command Shell

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 36 / 83

Redirection and Piping

The Command Shell

$ cut -d " " -f 2- marks1.txt \ > /tmp/m_tmp.txt $ paste -d " " students.txt m_tmp.txt
or

$ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt The first solution used Redirection The second solution uses Piping

Dept. of CS(SSV College)

Using Linux Tools

37 / 83

Redirection

The Command Shell

The standard output (stdout) stream goes to the display Not always, what we need First solution, redirects output to a file > states that output is redirected; It is followed by location to redirect

$ command > file1 > creates a new file at specified location appends to a file at specified location

Dept. of CS(SSV College)

Using Linux Tools

38 / 83

Redirection . . .

The Command Shell

Similarly, the standard input (stdin) can be redirected

$ command < file1


input and the output redirection could be combined

$ command < infile > outfile


Standard error (stderr) is the third standard stream All error messages come through this stream

stderr can also be redirected

Dept. of CS(SSV College)

Using Linux Tools

39 / 83

Redirection . . .

The Command Shell

Following example shows stderr redirection Error is printed out in the first case Error message is redirected, in the second case

$ cut -d " " -c 2- marks1.txt \ > /tmp/m_tmp.txt $ cut -d " " -f 2- marks1.txt 1> \ /tmp/m_tmp.txt 2> /tmp/m_err.txt
1> redirects stdout; 2> redirects stderr

$ paste -d " " students.txt m_tmp.txt


Dept. of CS(SSV College) Using Linux Tools 40 / 83

Piping

The Command Shell

$ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt - instead of FILE asks paste to read from stdin cut command is a normal command the | seems to be joining the two commands Redirects output of first command to stdin, which becomes input to the second command This is called piping; | is called a pipe

Dept. of CS(SSV College)

Using Linux Tools

41 / 83

Piping

The Command Shell

Roughly same as - 2 redirects and a temporary file

$ command1 > tempfile $ command2 < tempfile $ rm tempfile


Any number of commands can be piped together

Dept. of CS(SSV College)

Using Linux Tools

42 / 83

The Command Shell

Tab-completion

Features of the Shell

Hit tab to complete an incompletely typed word Tab twice to list all possibilities when ambiguous completion Bash provides tab completion for the following.
1 2 3 4 5 6

File Names Directory Names Executable Names User Names (when they are prefixed with a ) Host Names (when they are prefixed with a @) Variable Names (when they are prefixed with a $)

Dept. of CS(SSV College)

Using Linux Tools

43 / 83

The Command Shell

History

Features of the Shell

Bash saves history of commands typed Up and down arrow keys allow to navigate history Ctrl-r searches for commands used

Dept. of CS(SSV College)

Using Linux Tools

44 / 83

The Command Shell

Shell Meta Characters

Features of the Shell

"meta characters" are special command directives

File-names shouldnt have meta-characters

/<>!$%^&*|{}[]"~; $ ls file.*
Lists file.ext files, where ext can be anything

$ ls file.?
Lists file.ext files, where ext is only one character

Dept. of CS(SSV College)

Using Linux Tools

45 / 83

Outline
1 2
3 4

More text processing

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 46 / 83

sort

More text processing

sort can be used to get sorted content Command below prints student marks, sorted by name

$ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt - \ | sort


The default is sort based on the whole line sort can sort based on a particular field

Dept. of CS(SSV College)

Using Linux Tools

47 / 83

More text processing

sort . . .
The command below sorts based on marks in first subject

$ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt -\ | sort -t " " -k 2 -rn -t specifies the delimiter between fields -k specifies the field to use for sorting -n to choose numerical sorting -r for sorting in the reverse order

Dept. of CS(SSV College)

Using Linux Tools

48 / 83

grep

More text processing

grep is a command line text search utility Command below searches & shows the marks of Anne alone $ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt | grep Anne grep is case-sensitive by default

Dept. of CS(SSV College)

Using Linux Tools

49 / 83

More text processing

grep . . .
-i for case-insensitive searches $ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt | grep -i Anne -v inverts the search To see everyones marks except Annes $ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt | grep -iv Anne

Dept. of CS(SSV College)

Using Linux Tools

50 / 83

tr

More text processing

tr translates or deletes characters


Reads from stdin and outputs to stdout Given, two sets of characters, replaces one with other The following, replaces all lower-case with upper-case

$ cat students.txt | tr a-z A-Z


-s compresses sequences of identical adjacent characters in the output to a single one Following command removes empty newlines $ tr -s \n \n
Dept. of CS(SSV College) Using Linux Tools 51 / 83

tr . . .

More text processing

-d deletes all specified characters Only a single character set argument is required The following command removes carriage return characters (converting file in DOS/Windows format to the Unix format) $ cat foo.txt | tr -d \r > bar.txt -c complements the first set of characters The following command removes all non-alphanumeric characters $ tr -cd [:alnum:]
Dept. of CS(SSV College) Using Linux Tools 52 / 83

uniq

More text processing

uniq command removes duplicates from sorted input


$ sort items.txt | uniq

uniq -u gives lines which do not have any duplicates uniq -d outputs only those lines which have duplicates -c displays the number of times each line occurs
$ sort items.txt | uniq -u $ sort items.txt | uniq -dc

Dept. of CS(SSV College)

Using Linux Tools

53 / 83

Outline
1 2
3 4

Simple Shell Scripts

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators

5
6 7

8 9 10 11

Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 54 / 83

Shell scripts

Simple Shell Scripts

Simply a sequence of shell commands in a file


To save results of students in results.txt in marks dir

#!/bin/bash mkdir ~/marks cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt - \ | sort > ~/marks/results.txt

Dept. of CS(SSV College)

Using Linux Tools

55 / 83

Shell scripts . . .

Simple Shell Scripts

Save the script as results.sh Make file executable and then run

$ chmod u+x results.sh $ ./results.sh


What does the first line in the script do? Specify the interpreter or shell which should be used to execute the script; in this case bash

Dept. of CS(SSV College)

Using Linux Tools

56 / 83

Variables & Comments

Simple Shell Scripts

$ name=FOSSEE $ count=wc -l wonderland.txt $ echo $count # Shows the value of count


It is possible to create variables in shell scripts
Variables can be assigned with the output of commands

NOTE: There is no space around the = sign


All text following the # is considered a comment

Dept. of CS(SSV College)

Using Linux Tools

57 / 83

echo

Simple Shell Scripts

echo command prints out messages #!/bin/bash mkdir ~/marks cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt - \ | sort > ~/marks/results.txt echo "Results generated."

Dept. of CS(SSV College)

Using Linux Tools

58 / 83

Command line arguments


Shell scripts can be given command line arguments Following code allows to specify the results file

Simple Shell Scripts

#!/bin/bash mkdir ~/marks cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt - \ | sort > ~/marks/$1 echo "Results generated." $1 corresponds to first command line argument $n corresponds to nth command line argument It can be run as shown below $ ./results.sh grades.txt
Dept. of CS(SSV College) Using Linux Tools 59 / 83

PATH

Simple Shell Scripts

The shell searches in a set of locations, for the command


Locations are saved in "environment" variable called PATH

echo can show the value of variables $ echo $PATH


Put results.sh in one of these locations It can then be run without ./

Dept. of CS(SSV College)

Using Linux Tools

60 / 83

Outline
1 2
3 4

Control structures and Operators

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 61 / 83

5
6 7

8 9 10 11

Control Structures
if-else for loops while loops

Control structures and Operators

test command to test for conditions


A whole range of tests that can be performed STRING1 = STRING2 - string equality INTEGER1 -eq INTEGER2 - integer equality -e FILE - existence of FILE man page of test gives list of various tests

Dept. of CS(SSV College)

Using Linux Tools

62 / 83

if

Control structures and Operators

Print message if directory exists in pwd

#!/bin/bash if test -d $1 then echo "Yes, the directory" \ $1 "is present" fi

Dept. of CS(SSV College)

Using Linux Tools

63 / 83

Control structures and Operators

if-else
Checks whether argument is negative or not

#!/bin/bash if test $1 -lt 0 then echo "number is negative" else echo "number is non-negative" fi

$ ./sign.sh -11

Dept. of CS(SSV College)

Using Linux Tools

64 / 83

[ ]-aliasfortest

Control structures and Operators

Square brackets ([]) can be used instead of test

#!/bin/bash if [ $1 -lt 0 ] then echo "number is negative" else echo "number is non-negative" fi
spacing is important, when using the square brackets

Dept. of CS(SSV College)

Using Linux Tools

65 / 83

Control structures and Operators

if-else
An example script to greet the user, based on the time

#!/bin/sh # Script to greet the user # according to time of day hour=date | cut -c12-13 now=date +"%A, %d of %B, %Y (%r)" if [ $hour -lt 12 ] then mess="Good Morning \ $LOGNAME, Have a nice day!" fi

Dept. of CS(SSV College)

Using Linux Tools

66 / 83

if-else . . .

Control structures and Operators

if [ $hour -gt 12 -a $hour -le 16 ] then mess="Good Afternoon $LOGNAME" fi if [ $hour -gt 16 -a $hour -le 18 ] then mess="Good Evening $LOGNAME" fi echo -e "$mess\nIt is $now" $LOGNAME has login name (env. variable)
backquotes store commands outputs into variables

Dept. of CS(SSV College)

Using Linux Tools

67 / 83

for

Control structures and Operators

Problem Given a set of .mp3 files, that have names beginning with numbers followed by their names 08 - Society.mp3 rename the files to have just the names. Also replace any spaces in the name with hyphens. Loop over the list of files Process the names, to get new names Rename the files

Dept. of CS(SSV College)

Using Linux Tools

68 / 83

for

Control structures and Operators

A simple example of the for loop

for animal in rat cat dog man do echo $animal done


List of animals, each animals name separated by a space Loop over the list; animal is a dummy variable Echo value of animal each name in list

for i in {10..20} do echo $i done


Dept. of CS(SSV College) Using Linux Tools 69 / 83

for

Control structures and Operators

Lets start with echoing the names of the files

for i in ls *.mp3 do echo "$i" done


Spaces in names cause trouble! The following works better

for i in *.mp3 do echo "$i" done


Dept. of CS(SSV College) Using Linux Tools 70 / 83

Control structures and Operators

tr & cut
Replace all spaces with hyphens using tr -s Use cut & keep only the text after the first hyphen

for i in *.mp3 do echo $i|tr -s " " "-"|cut -d - -f 2done


Now mv, instead of just echoing

for i in *.mp3 do mv $i echo $i|tr -s " " "-"\ |cut -d - -f 2- done


Dept. of CS(SSV College) Using Linux Tools 71 / 83

while

Control structures and Operators

Continuously execute a block of commands until condition becomes false program that takes user input and prints it back, until the input is quit

while [ "$variable" != "quit" ] do read variable echo "Input - $variable" done exit 0

Dept. of CS(SSV College)

Using Linux Tools

72 / 83

Environment Variables
Pass information from shell to programs running in it
Behavior of programs can change based on values of variables Environment variables vs. Shell variables Shell variables - only current instance of the shell

Control structures and Operators

Environment variables - valid for the whole session Convention - environment variables are UPPER CASE

$ echo $OSTYPE linux-gnu $ echo $HOME /home/user

Dept. of CS(SSV College)

Using Linux Tools

73 / 83

Environment Variables . . .
The following commands show values of all the environment variables

Control structures and Operators

$ printenv | less $ env


Use export to change Environment variables The new value is available to all programs started from the shell

$ export PATH=$PATH:$HOME/bin

Dept. of CS(SSV College)

Using Linux Tools

74 / 83

Outline
1 2
3 4

Miscellaneous Tools

Introduction
Getting Started Getting Help Basic File Handling Linux File Hierarchy, Permissions & Ownership Looking at files The Command Shell Features of the Shell More text processing Simple Shell Scripts Control structures and Operators Miscellaneous Tools
Dept. of CS(SSV College) Using Linux Tools 75 / 83

5
6 7

8 9 10 11

find

Miscellaneous Tools

Find files in a directory hierarchy Offers a very complex feature set Look at the man page! Find all .pdf files, in current dir and sub-dirs

$ find . -name $ find . -type d

*.pdf

List all the directory and sub-directory names

Dept. of CS(SSV College)

Using Linux Tools

76 / 83

cmp

Miscellaneous Tools

Compare two files

$ find . -name quick.c ./Desktop/programs/quick.c ./c-folder/quick.c $ cmp Desktop/programs/quick.c \ c-folder/quick.c


No output when the files are exactly the same Else, gives location where the first difference occurs

Dept. of CS(SSV College)

Using Linux Tools

77 / 83

diff

Miscellaneous Tools

We know the files are different, but want exact differences

$ diff Desktop/programs/quick.c \ c-folder/quick.c


line by line difference between files > indicates content only in second file

< indicates content only in first file

Dept. of CS(SSV College)

Using Linux Tools

78 / 83

tar

Miscellaneous Tools

tarball - essentially a collection of files May or may not be compressed Eases the job of storing, backing-up & transporting files

Dept. of CS(SSV College)

Using Linux Tools

79 / 83

Extracting an archive

Miscellaneous Tools

$ mkdir extract $ cp allfiles.tar extract/ $ cd extract $ tar -xvf allfiles.tar -x Extract files within the archive -f Specify the archive file -v Be verbose

Dept. of CS(SSV College)

Using Linux Tools

80 / 83

Creating an archive

Miscellaneous Tools

$ tar -cvf newarchive.tar *.txt -c Create archive


Last argument is list of files to be added to archive

Dept. of CS(SSV College)

Using Linux Tools

81 / 83

Compressed archives

Miscellaneous Tools

tar can create and extract compressed archives


Supports compressions like gzip, bzip2, lzma, etc. Additional option to handle compressed archives Compression Option gzip -z -j bzip2 lzma --lzma

$ tar -cvzf newarchive.tar.gz *.txt

Dept. of CS(SSV College)

Using Linux Tools

82 / 83

Customizing your shell

Miscellaneous Tools

Bash reads /etc/profile, ~/.bash_profile, ~/.bash_login, and ~/.profile in that order, when starting up as a login shell.

~/.bashrc is read, when not a login shell Put any commands that you want to run when bash starts, in this file.

Dept. of CS(SSV College)

Using Linux Tools

83 / 83

You might also like