270 likes | 662 Views
Introduction to UNIX. Ke Liu http://www.cs.binghamton.edu/~kliu/cs350/ Kliu1@binghamton.edu. Topics. Logging in. Unix Shells and useful shell commands. File System in Unix. Program, Process and Process control. Inter-process communication. Compiling and debugging C programs. Editors.
E N D
Introduction to UNIX Ke Liu http://www.cs.binghamton.edu/~kliu/cs350/ Kliu1@binghamton.edu
Topics. • Logging in. • Unix Shells and useful shell commands. • File System in Unix. • Program, Process and Process control. • Inter-process communication. • Compiling and debugging C programs. • Editors.
UNIX • UNIX is multi-user and multi-tasking operating system. • Multi-tasking: Multiple processes can run concurrently. • Example, different users can read mails, copy files, and print all at once.
Logging In • Enter login name and password ! • System password file: /etc/passwd (usually). • You can change password using the command: passwd.
Shell • After a successful login, the shell program is run. The default shell of bingsuns: tcsh • bingsun2% ps PID TTY TIME CMD 2159 pts/2 0:00 tcsh • Shell is a command line interpreter that reads user commands and executes them.
Unix Shells • Common Shells: Bourne shell, the C shell, and the Korn shell. • The shell on bingsuns is tcsh (tc shell). • Users can switch between shells, using the commands bash, csh, ksh, sh. • Control D (^d) to return back to original shell, or just use the command: exit.
Some shell commands • Most Important command: man (manual pages). • Help: unix commands, C functions. • Usage: man <command/function> • Try “man man” ! • Example: man ls, man passwd, man printf.
Some shell commands (cont’) • pwd: working directory (/u0/users/2/kliu1). • ls: list contents of directory • mkdir <dir-name>: make directory • rmdir <dir-name>: remove an empty directory • rm –r <dir-name>: remove a directory with all the contents • cd <directory>: change directory, ~/ means your home directory • cp <source> <target>: copy command.
Some shell commands (cont’) • chmod <mode> <filename>: change mode of a file/directory • ls –l <directory or filename>: long list with details • 9 permission bits: d r w x r w x r w x • 3 categories: user/group/all. • Permissions: read/write/execute (r/w/x). • E.g.: mode= 644 means r w _ r_ _ r _ _ command: chmod 644 <filename> • first 3 bits for user. Next group. Next all others.
Some shell commands (cont’) • rm <option> <filename>: remove files e.g.: rm –fr directory/filename • mv <old> <new>: change the name of a file • Pipes: Connect the stdout of one command with the stdin of another command e.g.: ls -l | more or ls –l | less
File System • Hierarchical arrangement of files and directories. • Top level: root or / e.g.: cd / • . Current directory, .. One level higher directory e.g.: cd . No change for it is current directory or cd .. Change to parent directory.
File System (cont’) • Pathname: absolute and relative. • Absolute pathname: /u0/users/2/kliu1 • Relative pathname: abc.
Editors. • Different editors: emacs, pico, vi • emacs <filename> • pico <filename> • vi <filename>
The easiest editor: pico or nano • pico <filename> • Full screen editor • Help on the bottom of the screen • The nano is an extension to the pico
Basic operations in pico • Ctrl + v : to move page down • Ctrl + y : to move page up • Ctrl + o : to save the current buffer • Ctrl + x : to exit with or without saving • Ctrl + g : to get help • Ctrl + r : to open a file • Ctrl + w : to find a string in the current buffer • Ctrl + c : to get the current position in the buffer
Program & Process • Program is an executable file that resides on the disk. • Process is an executing instance of a program. • A Unix process is identified by a unique non-negative integer called the process ID. • Check process status using the “ps” command.
Foreground/background processes • A program run using the ampersand operator “&” creates a background process. • E.g.: bingsun2% back & • otherwise it creates a foreground process. • E.g.: bingsun2% back
Foreground/background processes • Only 1 foreground process for each session. Multiple background processes. • Where are background processes used? • All system daemons, long user processes, etc. e.g. printer-daemon process or mailer-daemon process. • These processes are always running in background. • Pine is foreground process.
Process Status bingsun2% back & [1] 16488 the process id assigned by system bingsun2% ps PID TTY TIME CMD 1973 pts/39 0:01 tcsh 16488 pts/39 0:00 back
How to stop a process? • Foreground processes can generally be stopped by pressing CONTROL C (^C). • Background processes can be stopped using the kill command. • Usage: kill SIGNAL <process id list> • kill -9 <process id list> (-9 means no blocked) Or kill <process id list>. • If a foreground process is not stopping by ^C, you can open another session and use the kill command.