Warning: Cannot modify header information - headers already sent by (output started at /hermes/bosweb/web234/b2344/sl.harringtonweb/public_html/pmwiki2.php:2) in /hermes/bosweb/web234/b2344/sl.harringtonweb/public_html/pub/skins/simple/simple.php on line 39

Warning: Cannot modify header information - headers already sent by (output started at /hermes/bosweb/web234/b2344/sl.harringtonweb/public_html/pmwiki2.php:2) in /hermes/bosweb/web234/b2344/sl.harringtonweb/public_html/pmwiki2.php on line 866
Harrington Web : Brian - UNIX Commands

This page shows some examples of how to use basic UNIX commands. If you want more information about a command view the man page by typing man command.

Managing Files and Directories

mkdir, cd

brian-harringtons-computer:~/Work brh$ mkdir tmp
brian-harringtons-computer:~/Work brh$ cd tmp/
brian-harringtons-computer:~/Work/tmp brh$

pwd

brian-harringtons-computer:~/Work/tmp brh$ pwd
/Users/brh/Work/tmp
brian-harringtons-computer:~/Work/tmp brh$

touch

brian-harringtons-computer:~/Work/tmp brh$ touch file
brian-harringtons-computer:~/Work/tmp brh$

ls

brian-harringtons-computer:~/Work/tmp brh$ ls
file
brian-harringtons-computer:~/Work/tmp brh$ ls -a
.       ..      file
brian-harringtons-computer:~/Work/tmp brh$ ls -l
total 0
-rw-r--r--   1 brh  brh  0 Aug 30 17:25 file
brian-harringtons-computer:~/Work/tmp brh$ ls -al
total 0
drwxr-xr-x    3 brh  brh   102 Aug 30 17:25 .
drwxr-xr-x   38 brh  brh  1292 Aug 30 17:20 ..
-rw-r--r--    1 brh  brh     0 Aug 30 17:25 file
brian-harringtons-computer:~/Work/tmp brh$

chmod

brian-harringtons-computer:~/Work/tmp brh$ chmod 755 file
brian-harringtons-computer:~/Work/tmp brh$ ls -l
total 0
-rwxr-xr-x   1 brh  brh  0 Aug 30 17:25 file
brian-harringtons-computer:~/Work/tmp brh$

mv, cp, rm

brian-harringtons-computer:~/Work/tmp brh$ mv file file2
brian-harringtons-computer:~/Work/tmp brh$ ls
file2
brian-harringtons-computer:~/Work/tmp brh$ cp file2 file
brian-harringtons-computer:~/Work/tmp brh$ ls
file    file2
brian-harringtons-computer:~/Work/tmp brh$ rm file2
brian-harringtons-computer:~/Work/tmp brh$ ls
file
brian-harringtons-computer:~/Work/tmp brh$ cp ../hello.cpp .
brian-harringtons-computer:~/Work/tmp brh$ ls
file            hello.cpp
brian-harringtons-computer:~/Work/tmp brh$ cp hello.cpp hello2.cpp 
brian-harringtons-computer:~/Work/tmp brh$ ls
file            hello.cpp       hello2.cpp

diff

brian-harringtons-computer:~/Work/tmp brh$ diff file hello.cpp 
0a1,9
> #include <iostream>
> using namespace std;
> 
> int main()
> {
>       for(int i=0; i<100; i++)
>               cout<<"Hello World "<<i<<" of 100"<<endl;
>       return 0;
> }
brian-harringtons-computer:~/Work/tmp brh$ diff hello.cpp hello2.cpp 
brian-harringtons-computer:~/Work/tmp brh$ diff -s hello.cpp hello2.cpp 
Files hello.cpp and hello2.cpp are identical
brian-harringtons-computer:~/Work/tmp brh$ vi hello2.cpp 
brian-harringtons-computer:~/Work/tmp brh$ diff hello.cpp hello2.cpp 
2d1
< using namespace std;
7c6
<               cout<<"Hello World "<<i<<" of 100"<<endl;
---
>               std::cout<<"Hello World "<<i<<" of 100"<<std::endl;
brian-harringtons-computer:~/Work/tmp brh$

wc

brian-harringtons-computer:~/Work/tmp brh$ wc file 
      0       0       0 file
brian-harringtons-computer:~/Work/tmp brh$ wc hello.cpp 
      9      20     138 hello.cpp
brian-harringtons-computer:~/Work/tmp brh$ wc -l hello.cpp 
      9 hello.cpp
brian-harringtons-computer:~/Work/tmp brh$ wc -w hello.cpp 
     20 hello.cpp
brian-harringtons-computer:~/Work/tmp brh$ wc -c hello.cpp 
    138 hello.cpp
brian-harringtons-computer:~/Work/tmp brh$

g++

brian-harringtons-computer:~/Work/tmp brh$ g++ hello.cpp
brian-harringtons-computer:~/Work/tmp brh$ g++ -o h2 hello2.cpp 
brian-harringtons-computer:~/Work/tmp brh$ ls     
a.out           file            h2              hello.cpp       hello2.cpp
brian-harringtons-computer:~/Work/tmp brh$

>, >>

brian-harringtons-computer:~/Work/tmp brh$ ./a.out > output
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           h2              hello2.cpp
file            hello.cpp       output
brian-harringtons-computer:~/Work/tmp brh$ wc -l output 
    100 output
brian-harringtons-computer:~/Work/tmp brh$ ./a.out >> output
brian-harringtons-computer:~/Work/tmp brh$ wc -l output 
    200 output
brian-harringtons-computer:~/Work/tmp brh$ ./a.out > output
brian-harringtons-computer:~/Work/tmp brh$ wc -l output 
    100 output
brian-harringtons-computer:~/Work/tmp brh$

cat, more/less (press 'q' to exit)

brian-harringtons-computer:~/Work/tmp brh$ cat hello2.cpp 
#include <iostream>

int main()
{
        for(int i=0; i<100; i++)
                std::cout<<"Hello World "<<i<<" of 100"<<std::endl;
        return 0;
}
brian-harringtons-computer:~/Work/tmp brh$ more output 
Hello World 0 of 100
Hello World 1 of 100
Hello World 2 of 100
Hello World 3 of 100
Hello World 4 of 100
Hello World 5 of 100
Hello World 6 of 100
Hello World 7 of 100
Hello World 8 of 100
Hello World 9 of 100
Hello World 10 of 100
Hello World 11 of 100
Hello World 12 of 100
Hello World 13 of 100
Hello World 14 of 100
Hello World 15 of 100
Hello World 16 of 100
Hello World 17 of 100
Hello World 18 of 100
Hello World 19 of 100
Hello World 20 of 100
Hello World 21 of 100
Hello World 22 of 100
output 22%

head, tail

brian-harringtons-computer:~/Work/tmp brh$ head -n 3 output 
Hello World 0 of 100
Hello World 1 of 100
Hello World 2 of 100
brian-harringtons-computer:~/Work/tmp brh$ tail -n 3 output 
Hello World 97 of 100
Hello World 98 of 100
Hello World 99 of 100
brian-harringtons-computer:~/Work/tmp brh$

<, |

brian-harringtons-computer:~/Work/tmp brh$ tail -n 3 < output 
Hello World 97 of 100
Hello World 98 of 100
Hello World 99 of 100
brian-harringtons-computer:~/Work/tmp brh$ cat output | tail -n 3
Hello World 97 of 100
Hello World 98 of 100
Hello World 99 of 100
brian-harringtons-computer:~/Work/tmp brh$

grep

brian-harringtons-computer:~/Work/tmp brh$ grep 27 output
Hello World 27 of 100
brian-harringtons-computer:~/Work/tmp brh$ grep 2[6-7] output
Hello World 26 of 100
Hello World 27 of 100
brian-harringtons-computer:~/Work/tmp brh$

gzip, gunzip, tar

brian-harringtons-computer:~/Work/tmp brh$ gzip hello.cpp 
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           file            hello.cpp.gz    output
endless.cpp     h2              hello2.cpp      typescript
brian-harringtons-computer:~/Work/tmp brh$ gunzip hello.cpp.gz 
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           file            hello.cpp       output
endless.cpp     h2              hello2.cpp      typescript
brian-harringtons-computer:~/Work/tmp brh$ tar -czvf cppfiles.tar.gz *.cpp
endless.cpp
hello.cpp
hello2.cpp
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           endless.cpp     h2              hello2.cpp      typescript
cppfiles.tar.gz file            hello.cpp       output
brian-harringtons-computer:~/Work/tmp brh$ tar -tzvf cppfiles.tar.gz 
-rw-r--r-- brh/brh          57 2006-08-30 18:28:49 endless.cpp
-rw-r--r-- brh/brh         138 2006-08-30 17:31:38 hello.cpp
-rw-r--r-- brh/brh         127 2006-08-30 18:01:23 hello2.cpp
brian-harringtons-computer:~/Work/tmp brh$ tar -xzvf cppfiles.tar.gz 
endless.cpp
hello.cpp
hello2.cpp
brian-harringtons-computer:~/Work/tmp brh$

df, du

brian-harringtons-computer:~/Work/tmp brh$ df -h
Filesystem                Size   Used  Avail Capacity  Mounted on
/dev/disk0s2               74G    32G    42G    44%    /
devfs                      96K    96K     0B   100%    /dev
fdesc                     1.0K   1.0K     0B   100%    /dev
<volfs>                   512K   512K     0B   100%    /.vol
automount -nsl [115]        0B     0B     0B   100%    /Network
automount -fstab [151]      0B     0B     0B   100%    /automount/Servers
automount -static [151]     0B     0B     0B   100%    /automount/static
brian-harringtons-computer:~/Work/tmp brh$ du -h
 44K    .
brian-harringtons-computer:~/Work/tmp brh$

quota

brian-harringtons-computer:~/Work/tmp brh$ quota
Disk quotas for user brh (uid 501): none
brian-harringtons-computer:~/Work/tmp brh$

script

brian-harringtons-computer:~/Work/tmp brh$ script
Script started, output file is typescript
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           h2              hello2.cpp      typescript
file            hello.cpp       output
brian-harringtons-computer:~/Work/tmp brh$ whatis script
script(1)                - make typescript of terminal session
brian-harringtons-computer:~/Work/tmp brh$ exit
exit
Script done, output file is typescript
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           h2              hello2.cpp      typescript
file            hello.cpp       output
brian-harringtons-computer:~/Work/tmp brh$ cat typescript 
Script started on Wed Aug 30 18:19:03 2006
brian-harringtons-computer:~/Work/tmp brh$ ls
a.out           h2              hello2.cpp      typescript
file            hello.cpp       output
brian-harringtons-computer:~/Work/tmp brh$ whatis script
script(1)                - make typescript of terminal session
brian-harringtons-computer:~/Work/tmp brh$ exit
exit

Script done on Wed Aug 30 18:19:14 2006
brian-harringtons-computer:~/Work/tmp brh$

which

brian-harringtons-computer:~/Work/tmp brh$ which perl
/usr/bin/perl
brian-harringtons-computer:~/Work/tmp brh$

echo $?

brian-harringtons-computer:~/Work/tmp brh$ cat status.cpp 
#include <cstdlib>

int main(int argc, char *argv[])
{
        int status=0;
        if(argc>1)
                status=atoi(argv[1]);
        return status;
}
brian-harringtons-computer:~/Work/tmp brh$ g++ status.cpp 
brian-harringtons-computer:~/Work/tmp brh$ ./a.out 
brian-harringtons-computer:~/Work/tmp brh$ echo $?
0
brian-harringtons-computer:~/Work/tmp brh$ ./a.out 45
brian-harringtons-computer:~/Work/tmp brh$ echo $?
45
brian-harringtons-computer:~/Work/tmp brh$

file

brian-harringtons-computer:~/Work/tmp brh$ file ./a.out 
./a.out: Mach-O executable i386
brian-harringtons-computer:~/Work/tmp brh$ file --mime ./a.out 
./a.out: application/octet-stream
brian-harringtons-computer:~/Work/tmp brh$ file hello.cpp 
hello.cpp: ASCII C program text
brian-harringtons-computer:~/Work/tmp brh$ file --mime hello.cpp 
hello.cpp: text/x-c; charset=us-ascii
brian-harringtons-computer:~/Work/tmp brh$

Help

whatis, apropos

brian-harringtons-computer:~/Work/tmp brh$ whatis cd   
cd(ntcl)                 - Change working directory
brian-harringtons-computer:~/Work/tmp brh$ apropos applet      
appleping(1)             - exercises the AppleTalk network by sending packets 
                           to a named host
appletalk(8)             - enables you to configure and display AppleTalk network 
                           interfaces
appletviewer(1)          - Java applet viewer
at_cho_prn(8)            - allows you to choose a default printer on the AppleTalk 
                           internet
atlookup(1)              - looks up network-visible entities (NVEs) registered on the 
                           AppleTalk network system
atprint(1)               - transfer data to a printer using AppleTalk protocols
atstatus(1)              - displays status information from an AppleTalk device
brian-harringtons-computer:~/Work/tmp brh$

man (press 'q' to exit)

brian-harringtons-computer:~/Work/tmp brh$ man apropos

apropos(1)                                                          apropos(1)

NAME
       apropos - search the whatis database for strings

SYNOPSIS
       apropos keyword ...

DESCRIPTION
       apropos  searches a set of database files containing short descriptions
       of system commands for keywords and displays the result on the standard
       output.

SEE ALSO
       whatis(1), man(1).

                                 Jan 15, 1991                       apropos(1)
(END) 

Finding Things

find

brian-harringtons-computer:~/Work/tmp brh$ find . -name hello?.cpp 
./hello2.cpp
brian-harringtons-computer:~/Work/tmp brh$

locate

brian-harringtons-computer:~/Work/tmp brh$ locate perldoc     
/usr/bin/perldoc
/usr/share/man/man1/perldoc.1
/usr/share/zsh/4.2.3/functions/_perldoc
brian-harringtons-computer:~/Work/tmp brh$

About Users

w, who, whoami

brian-harringtons-computer:~/Work/tmp brh$ w
18:20  up 2 days, 10:53, 2 users, load averages: 0.13 0.12 0.08
USER     TTY      FROM              LOGIN@  IDLE WHAT
brh      console  -                Mon07   2days -
brh      p1       -                Mon07       - w
brian-harringtons-computer:~/Work/tmp brh$ who
brh      console  Aug 28 07:27 
brh      ttyp1    Aug 28 07:31 
brian-harringtons-computer:~/Work/tmp brh$ whoami
brh
brian-harringtons-computer:~/Work/tmp brh$

last

brian-harringtons-computer:~/Work/tmp brh$ last -3
brh       ttyp1                     Mon Aug 28 07:31   still logged in
brh       ttyp1                     Mon Aug 28 07:31 - 07:31  (00:00)
brh       console  brian-harrington Mon Aug 28 07:27   still logged in
brian-harringtons-computer:~/Work/tmp brh$

finger

brian-harringtons-computer:~/Work/tmp brh$ finger brh
Login: brh                              Name: Brian Harrington
Directory: /Users/brh                   Shell: /bin/bash
On since Mon Aug 28 07:27 (CDT) on console, idle 2 days 10:53 (messages off)
On since Mon Aug 28 07:31 (CDT) on ttyp1
No Mail.
No Plan.
brian-harringtons-computer:~/Work/tmp brh$

Processes

ps

brian-harringtons-computer:~/Work/tmp brh$ ps -u brh
USER   PID %CPU %MEM      VSZ    RSS  TT  STAT STARTED      TIME COMMAND
brh    254   0.0  0.0    27712    832  p1  S    Mon07AM   0:00.28 -bash
brian-harringtons-computer:~/Work/tmp brh$

kill

brian-harringtons-computer:~/Work/tmp brh$ cat endless.cpp 
#include <iostream>

int main()
{
        for(;;);
        return 0;
}
brian-harringtons-computer:~/Work/tmp brh$ g++ endless.cpp 
brian-harringtons-computer:~/Work/tmp brh$ ./a.out &
[1] 967
brian-harringtons-computer:~/Work/tmp brh$ ps -u brh
USER   PID %CPU %MEM      VSZ    RSS  TT  STAT STARTED      TIME COMMAND
brh    967  98.8  0.0    36500    836  p1  R     6:22PM   0:05.54 ./a.out
brh    254   0.0  0.0    27712    828  p1  S    Mon07AM   0:00.29 -bash
brian-harringtons-computer:~/Work/tmp brh$ kill 967
[1]+  Terminated              ./a.out
brian-harringtons-computer:~/Work/tmp brh$ ps -u brh
USER   PID %CPU %MEM      VSZ    RSS  TT  STAT STARTED      TIME COMMAND
brh    254   0.0  0.0    27712    832  p1  S    Mon07AM   0:00.29 -bash
brian-harringtons-computer:~/Work/tmp brh$

top (press 'q' to exit)

brian-harringtons-computer:~/Work/tmp brh$ ./a.out &
[1] 970
brian-harringtons-computer:~/Work/tmp brh$ top

Processes:  64 total, 4 running, 60 sleeping... 248 threads            18:23:54
Load Avg:  0.54, 0.23, 0.13     CPU usage:  50.9% user, 4.5% sys, 44.6% idle
SharedLibs: num =  181, resident = 50.6M code, 6.48M data, 9.41M LinkEdit
MemRegions: num = 12178, resident =  554M + 21.9M private,  173M shared
PhysMem:   196M wired,  248M active,  872M inactive, 1.29G used,  711M free
VM: 11.3G +  125M   43735(0) pageins, 0(0) pageouts

  PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS RPRVT  RSHRD  RSIZE  VSIZE
  971 top          9.8%  0:01.29   1    18    20   492K   800K  2.26M  26.9M 
  970 a.out      100.2%  0:14.25   1    13    18   140K   728K   404K  35.6M
  716 mdimport     0.0%  0:00.29   3    65    62  1.22M  4.48M  3.95M  39.2M
  664 QuickTime    0.0%  0:45.42   3   127   240  6.91M  19.0M  13.2M   376M
  658 firefox-bi   0.1%  1:21.54   9   178   552  64.4M  30.3M  82.9M   446M
  596 DashboardC   0.0%  0:00.77   4   105   168  7.23M  9.84M  10.8M   363M
  595 DashboardC   0.0%  0:00.38   3    95   157  4.18M  5.81M  6.88M   353M
  594 DashboardC   0.0%  0:04.00   7   157   262  7.07M  13.7M  12.7M   377M
  593 DashboardC   0.0%  0:00.99   3    98   169  5.23M  10.8M  9.33M   375M
  549 Keynote      0.0%  0:06.19   2    96   365  20.3M  40.1M  36.4M   435M
  508 AppleSpell   0.0%  0:00.19   1    46    34   680K  3.20M  1.84M  37.8M
  502 Cyberduck    0.3%  2:41.96  21   558   594  56.6M  31.8M  70.4M   641M
  347 translate    0.0%  0:02.11   5    77    93  9.36M  5.93M  11.2M   115M
  312 JavaApplic   0.3%  4:44.68  19   742   449  62.4M  35.5M  79.7M   638M
  308 Preview      0.0%  0:38.86   1    76   617  13.5M  10.4M  17.7M   363M
  254 bash         0.0%  0:00.29   1    14    17   232K  1.18M   828K  27.1M 

Time

cal

brian-harringtons-computer:~ brh$ cal
    August 2006
 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

brian-harringtons-computer:~ brh$

date

brian-harringtons-computer:~ brh$ date
Wed Aug 30 17:15:25 CDT 2006
brian-harringtons-computer:~ brh$

time

brian-harringtons-computer:~/Work/tmp brh$ time find / -name java > output

real    1m57.148s
user    0m2.600s
sys     0m19.431s
brian-harringtons-computer:~/Work/tmp brh$ time locate java > output

real    0m0.783s
user    0m0.180s
sys     0m0.031s
brian-harringtons-computer:~/Work/tmp brh$
 
Page last modified on August 30, 2006, at 08:03 PM.