1 / 32

UNIX BOOT CAMP Intermediate

UNIX BOOT CAMP Intermediate. Department of Computer Science University of Saskatchewan Autumn 2007. Why are we here?. Intended Audience UNIX beginners Command-line beginners Those with some, but limited experience. Desired outcomes Take the edge off of something new.

Télécharger la présentation

UNIX BOOT CAMP Intermediate

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNIX BOOT CAMPIntermediate Department of Computer Science University of Saskatchewan Autumn 2007

  2. Why are we here? • Intended Audience • UNIX beginners • Command-line beginners • Those with some, but limited experience. • Desired outcomes • Take the edge off of something new. • Make your computer time more productive. • Understand more about under-the-covers stuff that goes on when using a computer • Extra confidence in 214, 332 and other courses.

  3. Why are the others here? • There's always someone who knows more than you. • Share in community knowledge building • Teamwork • No one knows everything. • Discover what's worth knowing and what will help you succeed. • Read the rest on a need to know basis. • Know where to look.

  4. Introduction • UNIX, Linux, *BSD form a family of Operating Systems that conform to an interface known as POSIX. • Now, instead of writing for 4 different systems a person can write for POSIX. • Can be assured that ls on BSD has the same functionality as ls on Linux, improving portability. • Sometimes people add extra functionality. • Most modern operating systems use ideas from UNIX. • OSX uses many BSD tools. • Windows uses the BSD TCP/IP stack.

  5. Some bits of UNIX Philosophy • Programs should be small and specific. • A well written program will do one or two things and do them very well. It’s common to connect many programs together at once to get complex behaviour. • Everything is a file. • Files, sockets, pipes and hardware devices can all be accessed in a similar way. • Keep It Simple • Binary file formats are avoided because they require tools to modify. Text files are preferred.

  6. Logging In/Bash Shell • Prompt screen • Username (NSID) and password • Starts a Window manager or shell • KDE is the default window manager • Has all of the nice GUI things people like. • bash is the default shell for Linux. • Sometimes csh ( C-Shell ) is installed. • Interprets commands, executes them, and returns to the prompt. • Has all sorts of nice features. Job control, support for piping, I/O redirection, etc.

  7. Commands • Should look something like this. • [abc123@stealth10:~] • General Format of Commands • ssh stealth10.usask.ca • ssh is the command name. This program is used for getting a shell on remote hosts. • stealth10.usask.ca is the destination host. • cp foo newfoo • cp is the command name. • foo is the source file. • newfoo is the destination file.

  8. More on Commands • Options • Some command options have arguments associated with them, but not always. • ssh -l abc123 -C stealth10.usask.ca • ssh is the command name. • -l specifies a username that’s used to log in. • The argument to -l is “abc123” • The -C option compresses network traffic. It has no argument associated with it. • Which commands have which options? • No rhyme or reason. • This is why the man pages are so important.

  9. File Systems and File System Interaction • Contents of the disk are files. Files are stored in directories. • Files are named sequences of bytes, often (but not always) stored on a disk device • Directory structure has a root and forms a hierarchical structure (tree) • Children nodes off the root can be files or other directories (sometimes called folders) • System files, device directories, user files • /usr, /var, /home, /student, /faculty, /dev • cd - moves between directories

  10. Manipulating Files • Listing contents of a directory • ls • Copying • cp • Moving • mv • Deleting • rm • Linking • ln

  11. Links and More • Symbolic links • More than one way to get to a file • Pathnames • Absolute path '/' • Relative path './' • Parent directory '..', current '.' • Making directories • mkdir • Removing directories • rmdir, rm -rf

  12. Patterns in Files and Automatic Completion • Wildcards in file names • ? matches a single character • * matches 0 or more characters • [ch] matches a 'c' or and 'h' • Completion • many shells allow the use of a command-completion character to complete the remaining unique part of a command or filename. • Saves typing

  13. Everything is a File • File operation metaphor for the entire system • File descriptors • A directory is a file • A disk is a file • A console window/terminal is a file • Standard file descriptors for regular programs • stdin, stdout, stderr (more about this later)

  14. Permissions and Groups • User Groups • User, group, other • Allows a specific set of users access to a specific set of files/directories • Access permissions • Access granted according to type of access • Read, write, execute (for directory, execute is traverse) (Octal number) • ls -l(-rw-rw-r-- 1 abc123 222 Sep 3 8:18 file.c) • permissions for that file are 664 • Super user • not subject to access restrictions

  15. Other things in Filesystem • These are by convention and can vary widely. • /dev - Devices • /etc - Configuration Files • /bin - System binary files. • /sbin - Superuser binary files • /tmp - Temporary files • /proc - Kernel information files. • /lib - Standard programming libraries.

  16. Where to find Files • /usr - User added files. • /usr/bin/ - User added commands. • /usr/include - Standard system header files • /usr/lib/ - User added libraries.

  17. Help and Details for commands • man, apropos • All commands under unix have a “man” page that details what the command does and what its command line options are. • info • An alternative to man pages that have links to related commands. • --help • A common command line option to get more information. It could be also -? or -h. • Google • There are excellent pages available on the web. UNIX gurus love to write.

  18. Locating commands • which • Used to find which version of a command will be used when run. Very useful for figuring out path problems. • locate • Searches for files locally using a database that’s updated nightly.

  19. The VI text editor • Two modes, insert and command. • Very lightweight, but powerful. • Good for editing remotely. • Available on almost all UNIX systems. • Extensible and customizable. • Insert mode • Used for entering text, like you would in most editors. • Enter insert mode (i, a, I, A, Insert) • Exit insert mode (ESC)

  20. VI again • Command mode • Used for doing powerful text modifications. • Look for a pattern in the file. • /pattern • Do a global search and replace. • :%s/search/replace/g • To delete a line, hit “dd” • To yank (copy) a line, hit “yy” • To paste, hit “p” or “P” • Save and Exit • :wq, :q! (quit without save), :w filename

  21. The VIM text editor • Syntax highlighting • Code completion • Visual selection mode • Split Window Editing using -o or -O • Vimdiff advanced diff viewer/editor • Many neat time saving features • Edit compressed files in place • vim file.gz file.bz2

  22. The Emacs text editor • Modeless editor • Always in insert mode • Commands are combinations of ctrl, alt, or esc (Meta) plus series of keys • e.g. save is Ctrl-x Ctrl-s ( ^x^s in shorthand) • quit ^x^c • M->x goto-line • Has a command window version and a GUI version

  23. Emacs, continued • A GUI Modeless editor • Keeps multiple files open at one time via multiple buffers, multiple menus • Has a command window for running commands within the editor • search for pattern in files • automatic compile • Works from menus, can learn keystrokes from the menu

  24. Emacs, one more time • Programmable set of keys • .emacs defines personalized keystroke bindings • examples (ask a guru, a.k.a. Greg Oster) • (define-key ctl-x-map "\^E" 'compile) • (define-key ctl-x-map "\^N" 'next-error) • (define-key ctl-x-map "\^I" 'isearch-forward) • (define-key ctl-x-map "\^L" 'goto-line) • (define-key esc-map "s" 'shell) • (define-key esc-map "t" 'auto-fill-mode) • (define-key esc-map "q" 'query-replace) • (define-key esc-map "r" 'replace-string)

  25. Remote Access • ssh (ssh -X) • Used for remotely logging in to another UNIX box. The -X flag lets you run graphical programs on the remote machine and have them show up on the local machine. • scp provides secure copying over a network. • sftp is a secure ftp implementation using ssh. • rdesktop • Linux program that accesses Windows machines that are accepting remote logins. • The discworld.usask.ca server is available for student use.

  26. Job Control • Foreground • When a command that is running in the foreground control will be returned to the user when it finishes. • Background • When a command is running the background, the user has control and command rolls along by itself. • ^Z (CTRL-Z) • If a command is running, and you hit ^Z, the command will be stopped. From here, you can use fg to bring it to the foreground again.

  27. Job Control II • fg • Brings the command last put in the background into the foreground. • bg • When a command is stopped, you may use bg to put it in the background. • jobs • Shows a list of all of the jobs currently running. Each job has a number associated with it that you can supply as an argument to bg and fg.

  28. Job Control III • How to do this in bash. • cmd • Runs the command cmd in the foreground. • cmd1; cmd2 • Runs cmd1 in the foreground and then starts cmd2 in the foreground when cmd1 is finished. • cmd1 & cmd2 & • Runs cmd1 and cmd2 in the background.

  29. Pipes and Redirection • The really elegant part of UNIX. • stdin defaults to the keyboard, but if redirection is used, we can read stdin from elsewhere. • cmd1 | cmd2 • Runs cmd1 and supplies the output of cmd1 as input to cmd2. • This is very useful for chaining commands. • cmd1 > file • Writes the output of cmd1 to a file. It will overwrite the original contents of the file. • cmd1 >> file • Appends the output of cmd1 to a file. • cmd1 < file • Runs cmd1, the input will be read from a file.

  30. Java • Object Oriented programming language • Very popular • Universal compiler: javac • Run using: java • e.g. • javac myProgram.java • java myProgram

  31. HelloWorld.java • Try it.

  32. Eclipse • What is an IDE? • Integrated Development Environment • Text Editor and much, much more • Why use one? • Good for larger projects • Saves time on programming tasks • Isn’t VI/eMacs easier/simpler/faster? • Sometimes, but not for larger projects • Depends on your point of view...

More Related