170 likes | 311 Views
Unix Primer. Unix Shell. The shell is a command programming language that provides an interface to the UNIX operating system. The shell is a “regular” program. It displays a prompt, waits for user input, and interprets the command line entered by the user.
E N D
Unix Shell • The shell is a command programming language that provides an interface to the UNIX operating system. • The shell is a “regular” program. It displays a prompt, waits for user input, and interprets the command line entered by the user. • It goes back to the prompt again after interpreting a command line • There are several different shells available, such as bsh, csh, tcsh, etc. • We will be using the shell on UCFileSpace (Bourne-again shell or Bash)
Accessing Unix shell in this course • Go to https://ucfilespace.uc.edu/ • Search for Unix • A description of accessing the Unix shell is given on Ucfilespace: • On Windows, PuTTY: https://ucfilespace.uc.edu/wiki/search/109 • On Mac, using ssh command: https://ucfilespace.uc.edu/wiki/search/108
Editors • Vim For Vim tutorial type on command line vimtutor • Emacs For Emacs tutorial, while in Emacs type <ctrl-h> t • for reference cards on Emacs and Vim See Supporting Material on CascadeLMS https://cascade.ceas.uc.edu/
Directories The shell should start you in your home directory. This is your individual space on the UNIX system for your files. You can find out the name of your current working directory by typing: pwd The system normally will display : /Users/username Change to a sub-directory “sub” by typing: cd sub No matter where in the directory structure you are, you can always get back to your home directory by typing: cd(without specifying a directory name). From your home directory, create a new subdirectory named "primer" for working through this tutorial: mkdir primer You can remove an empty subdirectory with the following command (but don't do this right now): rmdir primer Now change to the "primer" subdirectory, making it your current working directory: cd primer
Files (1) Since you just created the directory “primer”, nothing will be listed because the directory is empty. Create your first file called first using the Emacs or Vim text editor to type in text: My name is Joe Doe. This is my first file. Now when you list your files, you will see file "first" listed: lsfirst You can view a text file with the following command: cat firstMy name is Joe Doe. This is my first file. ("cat" is short for concatenate - you can use this to display multiple files together on the screen.) If you have a file that is longer than your 24-line console window, use instead "more" to list one page at a time or "less" to scroll the file down and up with the arrow keys. Don't use these programs to try to display binary (non-text) files on your console - the attempt to print the non-printable control characters might alter your console settings and render the console unusable.
Files (2) Copy file "first" using the following command: cp first 2ndBy doing this you have created a new file named "2nd" which is a duplicate of file "first". The file listing reveals: ls2nd first Now rename the file "2nd" to "second": mv 2nd secondListing the files still shows two files because you haven't created a new file, just changed an existing file's name: lsfirst second If you "cat" the second file, you'll see the same sentence as in your first file: cat secondMy first file. "mv" will allow you to move files, not just rename them. Perform the following commands: mkdir sub mv second sub ls subsecond lsfirst sub
Files (3) You can list even more information about files by using the "-l" option with "ls": ls -l-rw-r--r-- 1 username group 15 Jan 4 16:26 firstdrwxr-xr-x 2 username group 512 Jan 4 17:11 sub(where "username" will be your username and "group" will be your group name). Among other things, this lists the creation date and time, file access permissions, and file size in bytes. The letter 'd' (the first character on the line) indicates the directory names. Next perform the following commands: cd sub pwd/Users/username/primer/sub ls -l-rw-r--r-- 1 username group 4 Jan 4 16:55 second cd .. pwd/Users/username/primer Finally, clean up the duplicate files by removing the "second" file and the "sub" subdirectory: rm sub/second rmdir sub ls -l-rw-r--r-- 1 username group 15 Jan 4 16:26 first
Online manual man - command for online manual
Path Names dir name + file name • Absolute pathname: starting from root • E.g. /user/doej/bin/myProg.cpp • Relative pathname myProg.cpp (a file under current dir) bin/myProg.cpp (a file under subdir “bin” of current dir • The system maintains a “current working directory”, and will prefix it to a relative pathname
Special Directories • The first two members of any subdirectories are two special directories “.” and “..” • “.” : self • Will show how to use it • “..”: parent dir E.g.: cd .. • Go to the parent directory pwd sub1 cd ../sub2
Source Code Naming Convention .cpp : C++ source code file
How to use GNU C++ compiler/linker g++ g++ myProg.cpp Compiles myProg.cpp, generates an object file, link the object file (with libraries), and generates an executable file called “a.out”. g++ myProg.cpp –o myProg Same as above, however the executable has a name “myProg”
How to execute your program • Find the executable from the current directory, and run it • Unix can take any file extension as executable • Does not have to use a “.exe” extension name • As long as the file is marked as executable For example, using default name a.out for executable, enter on command line: uc ./a.out DON’T forget ./ to indicate current directory
Redirection of Input and Output • < filename take standard input from that filename • > filename send standard output to filename • Examples: ls > myfiles more < myfiles cat < myfiles > myfilesoutput
The UNIX pipe • ls | more • Same as ls > temp more < temp rm temp