BIF703
Miscellaneous Commands
File related commands
grep - print lines matching a pattern head - output the first part of files tail - output the last part of files sort - sort lines of text files diff - find differences between two
files file - determine file type
Utility commands
who – show who is logged in date – print or set the system date and
time which – show the full path of (shell)
commands finger – user information lookup program
mail – send and receive mail
Print commands
lpr – print files lpq – show print queue status lprm – cancel print jobs
grep
grep takes a pattern, read standard input or a list of files, and outputs the lines containing matches for the pattern.
Example:grep foo *
Print lines in any of the files in the current directory that contain the pattern “foo”.
grep options
Major options for grep:
-l display name of the file that has matching line
-r search all the files in the current directory and all its subdirectory for the given pattern
-n prefix each output with line number -w search for matching word
-v output lines that do not contain the given pattern
grep examples
grep -r foo .Print all the lines in all the files in the
current directory and all its subdirectories that contains the pattern “foo”.
grep -lr foo .Similar as above but only print the names
of the files that contains the pattern “foo”
grep examples
Print all the lines in the file “bar” that contains the pattern “foo”[uli@seneca misc]$ grep foo barThis line contains the word foo and bar.Do you like to play football or basket ball?
Same as above but prefix each line of output with the line number within the file “bar”
[uli@seneca misc]$ grep -n foo bar 3:This line contains the word foo and bar. 4:Do you like to play football or basket ball?
grep examples
Print all the lines in the file “bar” that contains the word “foo”[uli@seneca misc]$ grep -w foo barThis line contains the word foo and bar.
Print all the lines in the file “bar” that does not contain the pattern “foo”
[uli@seneca misc]$ grep -v foo bar The name of this file is called bar. This file has only five line. This is the end of the file.
head & tail
head bar Display the first 10 line of the file “bar”
head -5 bar Display the first 5 lines of the file “bar”
tail bar Display the last 10 lines of the file “bar”
tail -5 bar Display the last 5 lines of the file “bar”
sort
Sort line of text filecat numbers2314 5678
345 2231
101 984
4842 6543
98 11001
[root] sort numbers101 9842314 5678345 22314842 654398 11001
[root] sort -n numbers98 11001101 984345 22312314 56784842 6543
Numeric order
Stringorder
sort examples
cat numbers2314 5678
345 2231
101 984
4842 6543
98 11001
sort numbers101 9842314 5678345 22314842 654398 11001
sort -k2 numbers98 11001345 22312314 56784842 6543101 984
Sort by the 1st field
Sort bythe 2nd field
sort examples
cat numbers2314 5678
345 2231
101 984
4842 6543
98 11001
sort numbers101 9842314 5678345 22314842 654398 11001
sort -r numbers98 110014842 6543345 22312314 5678101 984
Sort inreverseorder
diff
Display the differences between two files
Syntax: diff [options] file1 file2
When using “diff” without any options, it produces a series of lines containing:
Add (a) Delete (d), and Change (c) instructions
Each of these lines is followed by the lines from the file that you need to add, delete, or change to make the files the same.
diff examples
cat file1blueredwhiteyelloworange
cat file2blueyellowblackredorange
$diff file1 file22,3d1< red< white4a3,4> black> red
1. Delete line 2 through 3 from file1
2. Append lines 3 through 4 from file2 after line 4 in file1
Steps to convert file1 to file2:
file
Displays the classification (type) of a file. Considered useful if a file extension is missing, or if user is unsure of file extension.
Syntax: file [option] file-list
Examples:file assign01.html
assign01.html: HTML document text
file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
file mydoc.doc
mydoc.doc: Microsoft Office Document
file 1
1: empty
who
Shows which users are logged on to serverPhobos: /home/rchan>$ who
rchan pts/0 Oct 30 02:08 (toronto-hse-ppp3)
sslui pts/1 Oct 30 01:11 (CPE00112f0fe590-)
Phobos: /home/rchan>$ who -H
Name Line Time Hostname
rchan pts/0 Oct 30 02:08 (toronto-hse-ppp3)
sslui pts/1 Oct 30 01:11 (CPE00112f0fe590-)
Phobos: /home/rchan>$ who -qH
Name Hostname
rchan (toronto-hse-ppp3)
sslui (CPE00112f0fe590-)
Total users: 2
who options
Major options for grep:
-H displays column headings
-T includes message reception status: + message reception on - message reception off
-i includes column indicating number of minutes
of user inactivity.
who examples
Show who is logged on who -H
Name Line Time Hostname
root pts/0 Mar 02 09:11 (142.204.20.17)
msaul pts/1 Mar 02 09:21 (CPE0040f4df2fef-)
who -i
root pts/0 Mar 02 09:11 0:03 42368 (142.204.20.17)
msaul pts/1 Mar 02 09:21 . 37790
who -T
root - pts/0 Mar 02 09:11
msaul + pts/1 Mar 02 09:21
Less than 1 minute inactivity
Allows message reception
Column headings
date
Displays the system time and date[ray@localhost week8]$ date
Sun Oct 30 01:48:10 EST 2005
[ray@localhost week8]$ date +"%D"
10/30/05
[ray@localhost week8]$ date +"%T"
01:54:05
[ray@localhost week8]$ date +"%D %T"
10/30/05 01:54:13
Refer to the man page for more formatting codes
which
Shows the full path of (shell) commands
[ray@localhost week8]$ which mkdir/bin/mkdir[ray@localhost week8]$ which type/usr/bin/which: no type in
(/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/ray/bin)
finger
User information lookup program
Phobos: /home/rchan>$ finger rchan
Login name: rchan In real life: Raymond Chan
Directory: /home/rchan Shell: /usr/bin/ksh
On since Oct 30 02:08:55 on pts/0
from toronto-hse-ppp3
(messages off)
No Plan.
Send and receive mail To read your mail on phobos, type the “mail”
command by itself:
Phobos: /home/rchan>$ mailMail [5.2 UCB] [AIX 4.1] Type ? for help."/var/spool/mail/rchan": 1 message 1 new>N 1 rchan Wed Oct 26 00:24 10/340 "Mail testing"
Sending mail
To send a file called “letter” through email on
phobos to the user “rchan”:
Phobos: /home/rchan>$ mail -s “subject” rchan < letter
lpr, lpq, lprm
lpr – submit file for printing
lpr [ -P printer-name ] [ -# copies ] file-name
[ -P printer-name] : send files to the named printer
[ -# copies ] :sets the number of copies to print
between 1 and 100file-name : name of file to be printed
printer queue status
lpq - show printer queue status
lpq [ -P printer-name] [ -a ] [ -l]
[ -P printer-name] : show status on the named printer
[ -a ] : reports jobs on all printers[ -l ] : display more verbose (long) format
Cancel Print Jobs
lprm – cancel print jobs
lprm [ - ] [ -P printer-name] [ job ID(s)]
[ - ] : all print jobs[ -P printer-name] : print jobs on the named
printer[ job ID(s) ]: jobs to be cancel
Additional Resources Here are some Related-Links for Interest
Only:
Linux manual pages (online): http://man.he.net/