Unix Commands For Etl Testing
Unix Commands For Etl Testing
man man This is help command, and will explains you about online manual pages you can also use
man in conjunction with any command to learn more about that command for example.
man ls will explain about the ls command and how you can use it.
man -k pattern command will search for the pattern in given command.
Banner command.
banner prints characters in a sort of ascii art poster, for example to print wait in big letters. I will type
banner wait at unix command line or in my script. This is how it will look.
#
#
#
#
#
#
# ## #
## ##
#
#
##
#
#
#
#
#
#
#
#
#
######
#
#
#
#
#####
#
#
#
#
#
Cal command
cal command will print the calander on current month by default. If you want to print calander of
august of 1965. That's eightht month of 1965.
cal 8 1965 will print following results.
August 1965
S M Tu W Th F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Clear command
clear command clears the screen and puts cursor at beginning of first line.
Calendar command
calendar command reads your calendar file and displays only lines with current day.
For example in your calendar file if you have this
12/20
Test new software.
1/15
Test newly developed 3270 product.
1/20
Install memory on HP 9000 machine.
On dec 20th the first line will be displayed. you can use this command with your crontab file or in your
login files.
Nohup command.
nohup command if added in front of any command will continue running the command or process
even if you shut down your terminal or close your session to machine. For exmaple, if I want to run a
job that takes lot of time and must be run from terminal and is called update_entries_tonight .
nohup update_entries_tonight will run the job even if terminal is shut down in middle of this job.
Tty command
-s will return only the codes: 0 (a terminal), 1 (not a terminal), 2 (invalid options) (good for
scripts)
Ls command
ls command is most widely used command and it displays the contents of directory.
options
ls will list all the files in your home directory, this command has many options.
ls -l will list all the file names, permissions, group, etc in long format.
ls -a will list all the files including hidden files that start with . .
ls -lt will list all files names based on the time of creation, newer files bring first.
ls -Rwill lists all the files and files in the all the directories, recursively.
ls -R | more will list all the files and files in all the directories, one page at a time.
Mkdir command.
mkdir balaji will create new directory, i.e. here balaji directory is created.
Cd command.
cd balaji will change directory from current directory to balaji directory.
Use pwd to check your current directory and ls to see if balaji directory is there or not.
You can then use cd balaji to change the directory to this new directory.
Cat command
cat cal.txt cat command displays the contents of a file here cal.txt on screen (or standard out).
Head command.
head filename by default will display the first 10 lines of a file.
If you want first 50 lines you can use head -50 filename or for 37 lines head -37 filenameand so forth.
Tail command.
tail filename by default will display the last 10 lines of a file.
If you want last 50 lines then you can use tail -50 filename.
More command. more command will display a page at a time and then wait for input which is
spacebar. For example if you have a file which is 500 lines and you want to read it all. So you can
use
more filename
Wc command
wc command counts the characters, words or lines in a file depending upon the option.
Options
File command.
File command displays about the contents of a given file, whether it is a text (Ascii) or binary file. To
use it type
file filename. For example I have cal.txt which has ascii characters about calander of current month
and I have resume1.doc file which is a binariy file in microsoft word. I will get
file resume.doc
resume1.doc:
file cal.txt
cal.txt:
data
ascii text
Cp command.
cp command copies a file. If I want to copy a file named oldfile in a current directory to a file named
newfile in a current directory.
cp oldfile newfile
If I want to copy oldfile to other directory for example /tmp then
cp oldfile /tmp/newfile. Useful options available with cp are -p and -r . -p options preserves the
modification time and permissions, -r recursively copy a directory and its files, duplicating the tree
structure.
Rcp command.
rcp command will copy files between two unix systems and works just like cp command (-p and -i
options too).
For example you are on a unix system that is called Cheetah and want to copy a file which is in
current directory to a system that is called lion in /usr/john/ directory then you can use rcp command
rcp filename lion:/usr/john
You will also need permissions between the two machines. For more infor type man rcp at command
line.
Mv command.
mv command is used to move a file from one directory to another directory or to rename a file.
Some examples:
mv oldfile newfile will rename oldfile to newfile.
mv -f oldfile newfile will force the rename even if target file exists.
mv * /usr/bajwa/ will move all the files in current directory to /usr/bajwa directory.
Ln command.
Instead of copying you can also make links to existing files using ln command.
If you want to create a link to a file called coolfile in /usr/local/bin directory then you can enter this
command.
ln mycoolfile /usr/local/bin/coolfile
Some examples:
ln -s fileone filetwo will create a symbolic link and can exist across machines.
Rm command.
To delete files use rm command.
Options:
rm -r option will delete the entire directory as well as all the subdirectories, very dangerous
command.
Rmdir command.
rmdir command will remove directory or directories if a directory is empty.
Options:
rmdir -p will remove directories and any parent directories that are empty.
is
is
is
is
is
first file
second line
third line
different
as;lkdjf
not different
filetwo contains
This is first file
this is second line
this is third line
this is different
xxxxxxxas;lkdjf
this is not different
diff fileone filetwo will give following output
4c4
< this is different
as;lkdjf
--> this is different
xxxxxxxas;lkdjf
Cmp command.
cmp command compares the two files. For exmaple I have two different files fileone and filetwo.
cmp fileone filetwo will give me
fileone filetwo differ: char 80, line 4
if I run cmp command on similar files nothing is returned.
-s command can be used to return exit codes. i.e. return 0 if files are identical, 1 if files are different, 2
if files are inaccessible.
This following command prints a message 'no changes' if files are same
cmp -s fileone file1 && echo 'no changes' .
no changes
Dircmp Command.
dircmp command compares two directories. If i have two directories in my home directory named
dirone and dirtwo and each has 5-10 files in it. Then
dircmp dirone dirtwo will return this
Dec
9 16:06 1997
./cal.txt
./dohazaar.txt
./four.txt
./junk.txt
./test.txt
./fourth.txt
./rmt.txt
./te.txt
./third.txt
Grep Command
grep command is the most useful search command. You can use it to find processes running on
system, to find a pattern in a file, etc. It can be used to search one or more files to match an
expression.
It can also be used in conjunction with other commands as in this following example, output
of ps command is passed to grep command, here it means search all processes in system and find
the pattern sleep.
ps -ef | grep sleep will display all the sleep processes running in the system as follows.
ops
dxi
ops
ops
ops
dxi
ops
dxi
ops
ops
ssb
pjk
12964
12974
12941
12847
12894
13067
13046
12956
12965
12989
13069
27049
Options:
25853
15640
25688
25812
25834
27253
25761
13078
25737
25778
26758
3353
0
0
0
0
0
2
0
0
0
0
2
0
16:12:24
16:12:25
16:12:21
16:11:59
16:12:12
16:12:48
16:12:44
16:12:23
16:12:24
16:12:28
16:12:49
15:20:23
ttyAE/AAES
ttyAH/AAHP
ttyAE/AAEt
ttyAH/AAH6
ttyAE/AAEX
ttyAE/ABEY
ttyAE/AAE0
ttyAG/AAG+
ttyAE/AAEp
ttyAH/AAHv
ttyAH/AAHs
?
0:00
0:00
0:00
0:00
0:00
0:00
0:00
0:00
0:00
0:00
0:00
0:00
sleep 60
sleep 60
sleep 60
sleep 60
sleep 60
sleep 1
sleep 60
sleep 60
sleep 60
sleep 60
grep sleep
sleep 3600
Find command.
Find command is a extremely useful command. you can search for any file anywhere using this
command provided that file and directory you are searching has read write attributes set to you ,your,
group or all. Find descends directory tree beginning at each pathname and finds the files that meet
the specified conditions. Here are some examples.
Some Examples:
find $HOME -print will lists all files in your home directory.
find /work -name chapter1 -print will list all files named chapter1 in /work directory.
find / -type d -name 'man*' -print will list all manpage directories.
find / -size 0 -ok rm {} \; will remove all empty files on system.
conditions of find
-atime +n |-n| n will find files that were last accessed more than n or less than -n days or n
days.
-depth descend the directory structure, working on actual files first and then directories. You
can use it with cpio command.
-exec commad {} \; run the Unix command on each file matched by find. Very useful
condition.
-perm nnnfind files whole permission flags match octal number nnn.
Text processing
Cut command.
cut command selects a list of columns or fields from one or more files.
Option -c is for columns and -f for fields. It is entered as
cut options [files]
for example if a file named testfile contains
this is firstline
this is secondline
this is thirdline
Examples:
cut -c1,4 testfile will print this to standard output (screen)
ts
ts
ts
It is printing columns 1 and 4 of this file which contains t and s (part of this).
Options:
-c list cut the column positions identified in list.
Paste Command.
paste command merge the lines of one or more files into vertical columns separated by a tab.
for example if a file named testfile contains
this is firstline
and a file named testfile2 contains
this is testfile2
then running this command
paste testfile testfile2 > outputfile
will put this into outputfile
this is firstline
this is testfile2
it contains contents of both files in columns.
who | paste - - will list users in two columns.
Options:
-d'char' separate columns with char instead of a tab.
-s merge subsequent lines from one file.
Sort command.
sort command sort the lines of a file or files, in alphabetical order. for example if you have a file named
testfile with these contents
zzz
aaa
1234
yuer
wer
qww
wwe
Then running
sort testfile
will give us output of
1234
aaa
qww
wer
wwe
yuer
zzz
Options:
-b ignores leading spaces and tabs.
-d ignores punctuation.
+m[-m] skips n fields before sorting, and sort upto field position m.
Uniq command.
uniq command removes duplicate adjacent lines from sorted file while sending one copy of each
second file.
Examples
sort names | uniq -d will show which lines appear more than once in names file.
Options:
Examples:
df -t | awk 'BEGIN {tot=0} $2 == "total" {tot=tot+$1} END {print (tot*512)/1000000}' Will give total
space in your system in megabytes.
Here the output of command df -t is being passed into awk which is counting the field 1 after pattern
"total" appears. Same way if you change $1 to $4 it will accumulate and display the addition of field 4
Sed command.
sed command launches a stream line editor which you can use at command line.
you can enter your sed commands in a file and then using -f option edit your text file. It works as
sed [options] files
options:
-e 'instruction' Apply the editing instruction to the files.
Vi editor.
vi command launches a vi sual editor. To edit a file type
vi filename
vi editor is a default editor of all Unix systems. It has several modes. In order to write characters you
will need to hit i to be in insert mode and then start typing. Make sure that your terminal has correct
settings, vt100 emulation works good if you are logged in using pc.
Once you are done typing then to be in command mode where you can write/search/ you need to
hit :w filename to write
and in case you are done writing and want to exit
:w! will write and exit.
options:
i for insert mode.