Download presentation
Presentation is loading. Please wait.
Published byJoleen Day Modified over 9 years ago
1
Lecture 1: Introduction, Basic UNIX Advanced Programming Techniques
2
Why are we here? What’s a computer Why do we run programs? What is needed to create a program?
3
Structure of a typical OS Applications Shell \ Kernel (OS) Hardware There are many standard applications: file system commands text editors compilers text processing
4
Logging In Create Acct www.cs.drexel.edu/Account.php Cluster PuTTY/SSH Log in Password
5
Home Directory The user’s personal directory. E.g., /home/kschmidt /home/vzaychik Location of many startup and customization files. E.g.:.vimrc.bashrc.bash_profile.forward.signature.plan.logout
6
Unix Filesystem Files Directories Other special files
7
The Filesystem (eg) / binetchome/tmpusr hollid2scullybinetc netprogunixXlswho
8
Pathnames Unique, on a given filesystem Absolute vs. relative./../ ~/
9
Pathname Examples / bin/etc/home/tmp/usr/ Hollid2/scully/bin/local/ netprogunix/Xlswho /usr/bin/ls Syllabus /home/hollid2/unix/Syllabus
10
Commands for Traversing Filesystem ls pwd cd rm cp mv mkdir rmdir
11
Viewing files cat less, more od Comparing files diff cmp
12
Copying, removing, linking rm – remove file mv – move (rename) file cp – copy file ln – create hard (inode) or soft (symbolic) links to a file touch – update file modification time, create an empty file if file doesn’t exist
13
Commands for directories mkdir make directory rmdir remove directory Directories can also be moved or renamed ( mv ), and copied ( cp –r )
14
Commands for Archiving tar – Tape Archive makes a large file from many files gzip, gunzip compression utility tar on Linux does compression with the z option: $ tar czf 571back.tgz CS571 $ tar xzf assn1.tgz
15
File Permissions Three types: readabbreviated r writeabbreviated w execute abbreviated x There are 3 sets of permission: 1. user 2. group 3. other (the world, everybody else)
16
ls -l and permissions -rwxrwxrwx User Group Others Type of file: - – plain file d – directory s – symbolic link
17
Bourne-again Shell (bash) Shells Startup Upon login (interactive), at the shell prompt customization files: /etc/profile .bash_profile .bashrc
18
Command syntax First token is the “command” Come in 3 flavors: alias shell builtin External programs (utilities) $PATH Use type
19
Command Options and Arguments command option(s) arguments Options (flags) Short Long Option args Arguments
20
man Pages man info
21
Some simple commands date – print current date who – print who is currently logged in finger usr – more information about usr ls -ao – lists (long) all files in a directory du -sh – disk usage summary, human readable quota
22
Standard I/O The shell establishes 3 I/O channels: stdin (0) stdout (1) stderr (2) These streams my be redirected to/from a file, or even another command
23
Basic control codes Ctrl-D (^D) set ignoreeof Ctrl-C (^C) Ctrl-U (^U) Ctrl-Z (^Z) Ctrl-L (^L)
24
Shell metacharacters Some characters have special meaning to the shell: I/O redirection | wildcards * ? [ ] others & ; $ ! \ ( ) space tab newline These must be escaped or quoted to inhibit special behavior
25
Shell Variables Values Assignment Reading
26
Shell maintains variables Some common ones: $PATH – list of directories to search for utilities $PS1 – Primary prompt $HOME – user’s home directory $USER – user’s login name $PWD – current working directory
27
set command (shell builtin) The set command with no parameters will print out a list of all the shell variables Sets options in the shell -o -noclobber -ignoreeof
28
Quoting Escape char Strong quoting Weak quoting
29
I/O Redirection > - output to a file (clobber) >> - append < - input from a file 2> - redirect stderr
30
Pipes – connecting processes A pipe is a holder for a stream of data. A pipe can be used to hold the output of one program and feed it to the input of another. prog1 prog2 STDOUT STDIN
31
filters Programs that read some input (but don’t change it), perform a simple transformation on it, and write some output (to stdout) Some common filters… wc – word count (line count, character count) tr – translate grep, egrep – search files using regular expressions sort – sorts files by line (lexically or numerically) cut – select portions of a line uniq – Removes identical adjacent lines head, tail – displays first (last) n lines of a file
32
The Unix Philosophy Stringing small utilities together with pipes and redirection to accomplish non-trivial tasks easily E.g., find the 3 largest subdirectories: $ du –sh * | sort –nr | head -3 120180 Files 22652 Zaychik 9472 tweedledee.tgz
33
pipes and combining filters Connect the output of one command to the input of another command to obtain a composition of filters who | wc -l ls | sort -f ls -s | sort -n ls -l | sort -nr -k4 ls -l | grep ‘^d’
34
Process Control Processes run in a subshell Subshells inherit exported variables Each process is has an ID (pid) and a parent (ppid) Use the ps utility to look at some processes: $ ps PID TTY TIME CMD 350 pts/4 00:00:00 bash 22251 pts/4 00:00:00 vim 22300 pts/4 00:00:00 ps
35
Job Control The shell allows you to manage jobs place jobs in the background move a job to the foreground suspend a job kill a job
36
Editors A text editor is used to create and modify text files. The most commonly used editors in the Unix community: vi (vim on Linux) $ vimtutor emac $ emacs Then, hit ctrl-h t (that’s control-h, followed by ‘t’) You must learn at least one of these editors
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.