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