User Tools

Site Tools


unix_survival

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
unix_survival [2020/04/08 21:24]
joshd
unix_survival [2020/04/08 23:09]
joshd
Line 1: Line 1:
 **UNIX Command Reference** **UNIX Command Reference**
  
-The command prompt in UNIX is called the //shell// Here is a list of common UNIX commands which will work across many different versions of UNIX with discrepancies in Example/Notes.+The command prompt in UNIX is called the //shell//, which typically uses a dollar sign ($) as its prompt.  Here is a list of common UNIX commands which will work across many different versions of UNIX with discrepancies in Example/Notes.
  
 ||Command||Description||Examples||Notes|| ||Command||Description||Examples||Notes||
Line 142: Line 142:
 <code> <code>
 $ cc table.c $ cc table.c
-./a.out+./a.out
 1 x 1 = 1       1 x 2 = 2       1 x 3 = 3       1 x 4 = 4 1 x 1 = 1       1 x 2 = 2       1 x 3 = 3       1 x 4 = 4
 2 x 1 = 2       2 x 2 = 4       2 x 3 = 6       2 x 4 = 8 2 x 1 = 2       2 x 2 = 4       2 x 3 = 6       2 x 4 = 8
Line 150: Line 150:
 </code> </code>
  
 +** Shell Programming **
 +
 +The shell itself is programmable via /shell scripts/ As with C, a complete tutorial is beyond the scope of this page but we'll provide a few examples to get you started.  The below examples are for // /bin/sh//, the //Bourne shell//, as this is available on all online UNIX systems.  Other common shells are //ksh, csh, tcsh, and bash//.
 +
 +As with the C examples above, we'll use //ed// to create our source files.  (Short shell scripting can also be done interactively at the command line.)
 +
 +<code>
 +$ ed hello.sh
 +#!/bin/sh
 +
 +echo "Hello, world!"
 +.
 +w
 +33
 +q
 +$
 +</code>
 +
 +The first line (//#!/bin/sh) is sometimes referred to as the "shebang" line (because UNIX programmers are weird) and tells the operating system what shell to invoke to execute the script file.
 +Now we've created the script, and there it is on disk:
 +
 +<code>
 +$ ls -l hello.sh
 +-rw-rw-rw-   1 user       user             33 Apr  9 05:56 hello.sh
 +</code>
 +
 +But if we try to run it, we get:
 +
 +<code>
 +$ ./hello.sh
 +sh: ./hello.sh: Execute permission denied.
 +</code>
 +
 +(The exact message may vary depending on what UNIX you're on.)  This is telling us that the script we created doesn't have the //execute bit// set (only the //read// and //write// bits indicated by //rw//) -- so it cannot be run.  The //chmod// command can be used to set the execute bit on our new shell script:
 +
 +<code>
 +$ chmod u+x hello.sh
 +$ ls -l hello.sh
 +-rwxrw-rw-   1 root       sys             33 Apr  9 05:56 hello.sh
 +$
 +</code>
 +
 +As you can see the hello.sh file now has the //execute bit// set (see the "x" in the file listing above).  Now it can be executed:
 +
 +<code>
 +$ ./hello.sh
 +Hello, world!
 +$
 +</code>
  
unix_survival.txt · Last modified: 2020/04/08 23:16 by joshd