1 / 30

Introduction to UNIX

Learn about UNIX multitasking, managing foreground and background tasks, using commands efficiently, editing command lines, creating command aliases, writing shell scripts, and handling file permissions.

rollinsm
Download Presentation

Introduction to UNIX

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. Introduction to UNIX

  2. Multitasking • Foreground • Current Task • The Command Running at the `$` Prompt • Background • Command Running Behind the Scenes • Not Interactive (e.g. text editor)

  3. Multitasking • Background Tasks • & Perform Command in the Background $ who > whoson & [1] 10946 $ • Important Notes • Logoff Terminates Background Tasks • Do Not Overload The System • Can Not Require Keyboard Input • Screen Output May Not Be Desirable

  4. Multitasking • Background Tasks • nohup UnixCommand • Prevents Command From Terminating on Logoff $ nohup who & nohup: appending output to 'nohup.out' $ No output file specified. Output redirected to nohup.out $ nohup who > whoson & $ Output redirected to whoson

  5. Multitasking • Every Command is Assigned a Unique Number • Process ID (PID) • ps Display Currently Running Tasks $ who > whoson;sleep 15 & $ $ ps PID TTY STAT TIME COMMAND 20174 p1 S 0:00 login -h 20175 p1 S 0:00 -sh 20241 p1 S 0:00 sleep 15 20244 p1 R 0:00 ps $

  6. Multitasking • ps [-aux] • Display Currently Running Processes (Tasks) • -aAll User Processes • -uUser Info • -xNot Attached to a Terminal $ ps -aux USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND bin 131 0.0 0.0 896 0 ? SW Sep 9 0:00 (portmap) nobody 30221 0.0 4.1 1184 608 ? S Sep 16 0:00 httpd nobody 30224 0.0 4.3 1196 632 ? S Sep 16 0:00 httpd jsmith 20115 0.0 5.2 1024 776 p0 S 21:21 0:00 login -h jsmith 20116 0.0 3.2 1048 472 p0 S 21:21 0:00 -sh rdefe 20174 0.0 5.2 1024 776 p1 S 21:36 0:00 login -h rdefe 20175 0.0 2.9 1048 428 p1 S 21:36 0:00 -sh rdefe 20245 0.0 2.8 928 412 p1 R 21:47 0:00 ps aux root 1 0.0 0.3 884 56 ? S Sep 9 0:33 init [3]

  7. Multitasking • kill [-9] PID1 PID2 … PIDN • Stop (kill) A Currently Running Process • Can Only Stop Your Processes • -9 `Sure Kill` $ kill 20241 $ $ ps PID TTY STAT TIME COMMAND 20174 p1 S 0:00 login -h 20175 p1 S 0:00 -sh 20241 p1 S 0:00 report1 20244 p1 R 0:00 ps $ $ kill -9 20241 $ $ kill 0 $

  8. Multitasking • jobs List background jobs • kill %1 Kill background job 1 $ jobs [1] Running prog1 & [2]- Running report23 & [3]+ Running x57 & $ kill %2 [2]- Terminated report23 $

  9. Command Line Editing • Command History $ history 9 653 ls -l data 654 pwd 655 vi junk 656 pwd 657 ls data 658 cat data/junk 659 cat junk 660 who 661 ls | grep m $ Display the last 9 commands

  10. Command Line Editing • Editing Commands on the command line • Setting command editor to vi • Commands can be changed using vi editing commands $ set –o vi $ history 3 659 cat junk 660 who 661 ls | grep m $ ls | grep m Press ESC – to return last command

  11. Command Line Editing • Editing commands using fc $ history 3 653 ls -l data 654 pwd 655 vi p1 $ fc 656 $ $ fc –s 660 Edit command using vi. Command is run when you exit vi. Run command 660

  12. Command Aliases • Define Command Preferences • Redefine or create new or compound commands $ alias ls=“ls –p” $ alias cp=“cp –i” $ alias alias ls=‘ls –p’ alias cp=‘cp –i’ $ ls a999 et mail/ mymail xyz bin/ examples-cpio mbox public_html/

  13. Command Aliases • Disabling Aliases $ alias alias ls='ls -p‘ $ $ ls a999 et/ mail/ mymail $ $ \ls a999 et mail mymail $ $ unalias ls $

  14. Shell Scripts • Text File Containing Unix Commands • Must Use Correct Commands & Syntax • Options, Arguments, One Command per Line, etc. $ cat ll ls -l $ sh ll -rw-r--r-- 1 rdefe unix 53 Sep 12 21:46 feb -rw-r--r-- 1 rdefe unix 62 Sep 12 21:47 ll $ $ chmod u+x ll $ ll -rw-r--r-- 1 rdefe unix 53 Sep 12 21:46 feb -rwxr--r-- 1 rdefe unix 62 Sep 12 21:47 ll $

  15. Shell Scripts • echo [String] • Display a Message to the Screen $ cat ll echo “my ls command” ls -l $ ll my ls command -rw-r--r-- 1 rdefe unix 53 Sep 12 21:46 feb -rwxr--r-- 1 rdefe unix 62 Sep 12 21:47 ll $

  16. Shell Scripts • Passing Arguments to Shell Scripts • Positional Parameters List the contents of a directory? No! $ cat ll ls -l $ ll data List the contents of a directory? Yes! $ cat ll ls -l $1 $ ll data

  17. $0 Shell Scripts • Passing Arguments to Shell Scripts • Positional Parameters $0 Script File Name $1 - $9 Arguments 1-9 $* All Arguments $ cat ll ls -l $1 $2 $3 $ $ ll data mail docs

  18. Shell Scripts • Positional Parameters • Use Any Where, Any Place for Any Purpose $0 Script File Name $1 - $9 Arguments 1-9 $* All Arguments $ cat mymove mv $1 $1.new $ $ cat mymore pr -n $* | more $ $ cat mylog date >> log who >> log grep $1 log $

  19. Shell Scripts • Examples $ cat param echo "the number of parameters passed = $#" echo "param 0 = $0" echo "param 1 = $1" echo "param 2 = $2" echo "param 3 = $3" echo "param * = $*" $ $ param aaa bbb ccc the number of parameters passed = 3 param 0 = ./param param 1 = aaa param 2 = bbb param 3 = ccc param * = aaa bbb ccc

  20. Unix File Permissions • Determines Who Can Access What File $ ls -l -rwxrw-r-- 1 rdefe unix 53 Sep 12 21:46 p1 -rwxr-xr-x 1 rdefe unix 62 Sep 12 21:47 mar $ r Read Permission w Write Permission x Execute Permission - Place Holder/No Permission

  21. Owner Group Owner Group Other Unix File Permissions • Owner • Group • Other $ ls -l -rwxrw-r-- 1 rdefe unix 53 Sep 12 21:46 p1 -rwxr-xr-x 1 rdefe unix 62 Sep 12 21:47 mar $

  22. Unix File Permissions • chmod [u|g|o|a] [+|-|=] [r|w|x] File1 File2 … FileN • +Add Permission $ ls -l -rw-rw-r-- 1 rdefe unix 53 Sep 12 21:46 p1 $ chmod gu+x p1 $ ls -l -rwxrwxr-- 1 rdefe unix 53 Sep 12 21:46 p1 Note:You can only change permissions on files that you own.

  23. Unix File Permissions • chmod [u|g|o|a] [+|-|=] [r|w|x] File1 File2 … FileN • -Remove Permission $ ls -l -rwxrwxr-x 1 rdefe unix 53 Sep 12 21:46 p1 $ chmod g-w,-x p1 $ ls -l -rw-r--r-- 1 rdefe unix 53 Sep 12 21:46 p1

  24. Unix File Permissions • chmod [u|g|o|a] [+|-|=] [r|w|x] File1 File2 … FileN • =Set to a specific value $ ls -l -rwxrw-r-- 1 rdefe unix 53 Sep 12 21:46 p1 $ chmod u=r,g=rx p1 $ ls -l -r--r-xr-- 1 rdefe unix 53 Sep 12 21:46 p1

  25. Shell Variables • Store Values & Text Information • Values Are Lost When You Logoff $ x=678 $ echo $x 678 $ mesg=“This is a text string” $ echo $mesg This is a text string

  26. Shell Variables • Environmental Variables • Stores Important Setup Information $ env PS1=$ PATH=/usr/local/bin:/bin:/usr/bin:/usr/bin/mh HOSTNAME=unix.ccri.cc.ri.us USER=rdefe MAIL=/var/spool/mail/rdefe HOME=/home/rdefe TERM=vt220 LOGNAME=rdefe $

  27. Shell Variables • Changing Environmental Variables • PS1 $ echo $PS1 $ $ export PS1='> ' > > export PS1='$PWD> ' /home/rdefe> cd /etc /etc> cd /home/rdefe> /home/rdefe> export PS1='$ ' $

  28. Shell Variables • Changing Environmental Variables • PATH $ echo $PATH /usr/local/bin:/bin:/usr/bin:. $ export PATH=$PATH:$HOME/bin $ echo $PATH /usr/local/bin:/bin:/usr/bin:.:/home/rdefe/bin $

  29. Shell Variables • Saving Environmental Changes • .bash_profile • Shell Script Run at Login Time • Just Like Any Shell Script $ cat .bash_profile mesg n export PATH=$PATH:$HOME/bin export PS1='$PWD> ' who -q $

  30. Shell Variables • Using Shell Variables in Shell Scripts $ cat mycopy end=123 cp $1 $HOME/$1.$end $ $ mycopy mbox Creates the file mbox.123 in your home directory

More Related