Sunday, 19 August 2012

Basic UNIX commands


Basic commands
         UNIX is a class of operating systems. There are various different implementations of UNIX. Each of which provides a core set of basic UNIX commands.

$logname – It displays the current user name.
                Eg: $logname
                              Chinnu
$pwd – It displays the present working directory
                              Eg: $pwd
                                /home/Oracle/chinnu
$clear – It clears the creen.
$exit – logout from the current user.
$date – It displays the date and time.
                              Sat  June 30 03:03:09 IST 1987
$Who am i –It displays the current user name and terminal number , date and time which you logged into the system.
                              Chinnu   ty01   mar 4 09:30
                              Chinnu – User name
                              Ty01 –terminal  number
$who –It displays the username info who had logged in currently in the system.
                              Chinnu   ty01   mar 4 09:30
                              Gowtu    ty02   mar 4 10:30
                              Pandu     ty03   mar 4 10:43
                              Nani        ty04   mar 4 11:20
$finger –it displays information about all the users who had logged in.
$cal -it displays previous month, present and next month calendar .
$cal year – It displays the given year calendar
$cal month year –it displays the given month calendar only.
 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

#init –to change the system levels
                   
                    #init   0    -to shutdown the system.
                    #init   1    -to bring system into single user mode.
                    #init   2    -to bring system into multi user mode with no resource shared.
                    #init   3    - to bring system into multi user mode with no resource shared..
                    #init   6    -Halt and reboot the system into default run levels.

$banner  “Chinnu” –  It prints the message in large letters


Pwd command. 
pwd command will print your home directory on screen, pwd means print working directory.
 /u0/ssb/sandeep
is output for the command when I use pwd in /u0/ssb/sandeep directory.
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 -Fxwill list files and directory names will be followed by slash.
  • 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.
Cd command. 
cd sandeep will change directory from current directory to sandeep directory.
Use pwd to check your current directory and ls to see if sandeep directory is there or not.
You can then use 
cd sandeep 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 filename and 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
  • wc -l filename will print total number of lines in a file.
  • wc -w filename will print total number of words in a file.
  • wc -c filename will print total number of characters in a file.
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:    data  
file cal.txt
cal.txt:        ascii text

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 -i oldfile newfile for confirmation prompt.
  • 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.
  • ln -n option will not overwrite existing files.
  • ln -f will force the link to occur.

Diff command. 
diff command will compare the two files and print out the differences between.
Here I have two ascii text files. fileone and file two.

Contents of fileone are
This is first file
this is second line
this is third line
this is different    as;lkdjf
this is 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  dirone only and dirtwo only Page 1

 ./cal.txt                                   ./fourth.txt
./dohazaar.txt                              ./rmt.txt
./four.txt                                  ./te.txt
./junk.txt                                  ./third.txt
./test.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 pattern sleep.
 
ps -ef | grep sleep will display all the sleep processes running in the system as follows.
     ops 12964 25853  0 16:12:24 ttyAE/AAES  0:00 sleep 60
     dxi 12974 15640  0 16:12:25 ttyAH/AAHP  0:00 sleep 60
     ops 12941 25688  0 16:12:21 ttyAE/AAEt  0:00 sleep 60
     ops 12847 25812  0 16:11:59 ttyAH/AAH6  0:00 sleep 60
     ops 12894 25834  0 16:12:12 ttyAE/AAEX  0:00 sleep 60
     dxi 13067 27253  2 16:12:48 ttyAE/ABEY  0:00 sleep 1
     ops 13046 25761  0 16:12:44 ttyAE/AAE0  0:00 sleep 60
     dxi 12956 13078  0 16:12:23 ttyAG/AAG+  0:00 sleep 60
     ops 12965 25737  0 16:12:24 ttyAE/AAEp  0:00 sleep 60
     ops 12989 25778  0 16:12:28 ttyAH/AAHv  0:00 sleep 60
     ssb 13069 26758  2 16:12:49 ttyAH/AAHs  0:00 grep sleep
     pjk 27049  3353  0 15:20:23 ?           0:00 sleep 3600

Options:
  • -b            option will precede each line with its block number.
  • -c            option will only print the count of matched lines.
  • -i             ignores uppercase and lowercase distinctions.
  • -l             lists filenames but not matched lines.
other associated commands with grep are egrep and fgrep. egrep typically runs faster. for more information type man egrep or man fgrep in your system.
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.
  • -ctime +n or -n will find that were changed +n -n or n days ago.
  • -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.
  • -print print or list to standard output (screen).
  • -name pattern find the pattern.
  • -perm nnnfind files whole permission flags match octal number nnn.
  • -size n find files that contain n blocks.
  • -type c Find file whole type is c. C could be or block, c Character special file, d directory, p fifo or named pipe, l symbolic link, or f plain file.

cut, pastesortuniq, awk, sed, vi.

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.
  • -f list will cut the fields identified in list.
  • -s could be used with -f to suppress lines without delimiters.


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.
  • -c checks whether files are already sorted.
  • -d ignores punctuation.
  • -i ignores non-printing characters.
  • -n sorts in arithmetic order.
  • -ofile put output in a file.
  • +m[-m] skips n fields before sorting, and sort upto field position m.
  • -r reverse the order of sort.
  • -u identical lines in input file apear only one time in output.


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:
  • -c print each line once, counting instances of each.
  • -d print duplicate lines once, but no unique lines.
  • -u print only unique lines.


Awk and Nawk command.
awk is more like a scripting language builtin on all unix systems. Although mostly used for text processing, etc.
Here are some examples which are connected with other commands.
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
which is used space.
for more information about awk and nawk command in your system enter 
man awk or man nawk.


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.
  • -f script Apply the set of instructions from the editing script.
  • -n suppress default output.

for more information about sed, enter 
man sed at command line in your system.


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.
    • I inserts text at the curson
    • appends text at the end of the line.
    • appends text after cursor.
    • open a new line of text above the curson.
    • o open a new line of text below the curson.
  • for command mode.
    • <escape> to invoke command mode from insert mode.
    • :!sh to run unix commands.
    • x to delete a single character.
    • dd to delete an entire line
    • ndd to delete n number of lines.
    • d$ to delete from cursor to end of line.
    • yy to copy a line to buffer.
    • P to paste text from buffer.
    • nyy copy n number of lines to buffer.
    • :%s/stringA/stringb /g to replace stringA with stringB in whole file.
    • G to go to last line in file.
    • 1G to go to the first line in file.
    • w to move forward to next word.
    • b to move backwards to next word.
    • $ to move to the end of line.
    • J join a line with the one below it.
  • /string to search string in file.
  • n to search for next occurence of string.





Cu command.
cu command is used for communications over a modem or direct line with another Unix system.
Syntax is
cu options destination
Options
  • -bn process lines using n-bit characters (7 or 8).
  • -cname Search UUCP's device file and select local area network that matches name.
  • -d Prints diagnostics.
  • -e sends even parity data to remote system
  • -lline communicate on this device (line=/dev/tty001, etc)
  • -n prompts for a telephone number.
  • -sn set transmission rate to n(e.g 1200,2400,9600, BPS)
Destination
  • telno is the telephone number of the modem to connect to.
  • system is call the system known to uucp.
  • aadr is an address specific to LAN.


Ftp command (protocol).
ftp command is used to execute ftp protocol using which files are transferred over two systems.
Syntax is
ftp options hostname
options
  • -d enable debugging.
  • -g disable filename globbing.
  • -i turn off interactive prompts.
  • -v verbose on. show all responses from remote server.
ftp hostname by default will connect you to the system, you must have a login id to be able to transfer the files. Two types of files can be transferred, ASCII or Binary. bin at ftp> prompt will set the transfer to binary. Practice FTP by ftping to nic.funet.fi loggin in as anomymous with password being your e-mail address.


Login command.
login command invokes a login session to a Unix system, which then authenticates the login to a system. System prompts you to enter userid and password.


Rlogin command.
rlogin command is used to log on to remote Unix systems, user must have permissions on both systems as well as same userid, or an id defined in .rhosts file. Syntax is
rlogin options host
options
  • -8 will allow 8 bit data to pass, instead of 7-bit data.
  • -e c will let you use escape character c.
  • -l user will let you to login as user to remote host, instead of same as local host.


Talk command.
talk command is used to invoke talk program available on all unix system which lets two users exchange information back and forth in real time. Syntax is
talk userid@hostname 


Telnet command.
Telnet command invokes a telnet protocol which lets you log on to different unix, vms or any machine connected over TCP/IP protocol, IPx protocol or otherwise. Syntax is
telnet hostname 


Vacation command.
vacation command is used when you are out of office. It returns a mail message to sender announcing that you are on vacation. to disable this feature, type 
mail -F " " .
syntax is
vacation options
Options
  • -d will append the date to the logfile.
  • -F user will forward mail to user when unable to send mail to mailfile.
  • -l logfile will record in the logfile the names of senders who received automatic reply.
  • -m mailfile will save received messages in mailfile.


Write command will initiate an interactive conversation with user. Syntax is
write user tty 


No comments:

Post a Comment