intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Hệ điều hành Unix /Linux: Bài 6 - Đặng Ngọc Cường

Chia sẻ: Bfvhgfff Bfvhgfff | Ngày: | Loại File: PDF | Số trang:62

132
lượt xem
24
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung trình bày trong bài 6 Lập trình trên Linux thuộc bài giảng Hệ điều hành Unix /Linux nhằm giới thiệu về shell, các thành phần của ngôn ngữ shell, shell scipts- lập trình shell, lập trình C++ trên Linux...bài giảng hữu ích dành cho sinh viên ngành công nghệ thông tin.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Hệ điều hành Unix /Linux: Bài 6 - Đặng Ngọc Cường

  1. Bài 6 L p trình trên Linux 20/01/2011 H i u Hành Unix/Linux 1
  2. N i dung trình bày Gi i thi u v shell Các thành ph n c a ngôn ng shell Shell scripts - L p trình shell L p trình C/C++ trên Linux 20/01/2011 H i u Hành Unix/Linux 2
  3. Gi i thi u Linux Shell GUI xterm Shell console bash csh Kernel KDE ksh GNOME 20/01/2011 H i u Hành Unix/Linux 3
  4. Gi i thi u Linux Shell Shell (h v ) là m t môi trư ng tương tác mà ngư i dùng có th giao ti p v i h i u hành. Linux cung c p m t s shell như: C shell (csh), Korn shell (ksh), và Bourne shell (sh), BASH shell (bash) ,… BASH (Bourn Again Shell) là shell m c nh trong Linux. Shell có th di n d ch l nh và cho phép ngư i dùng l p trình script như m t ngôn ng l p trình. 20/01/2011 H i u Hành Unix/Linux 4
  5. Gi i thi u Linux Shell Linux cho phép chuy n i gi a nhi u shell ho c là các console o (Virtual console) s d ng l nh chsh. Cú pháp: chsh [-s ] [-l] [username] Trong ó: -l : li t kê các lo i shell hi n có (thông tin các shell ch a trong t p tin /etc/shells). Ví d : chuy n sang c shell $ chsh csh ↵ 20/01/2011 H i u Hành Unix/Linux 5
  6. M c ích c a shell Tương tác, di n d ch l nh: shell i ngư i s d ng gõ các l nh t i d u nh c, sau ó g i t i h th ng yêu c u t l nh nh n ư c. t bi n môi trư ng i v i m i ngư i s d ng L p trình Shell cung c p t p h p các l nh t ó có th vi t chương trình ( ư c g i là shell script). Ngoài nh ng l nh ơn gi n c a h th ng, shell còn ư c b sung thêm các c u trúc ph c t p như i u khi n r nhánh (if/case), vòng l p (for/while). 20/01/2011 H i u Hành Unix/Linux 6
  7. i u khi n shell Shell có th ư c s d ng như m t ngôn ng l p trình g i là ngôn ng shell. Các chương trình ư c vi t và thông d ch b i shell g i là shell script. Có hai cách vi t chương trình i u khi n shell: Vi t chương trình ngay t dòng l nh. Có th g p các l nh vào m t t p tin và yêu c u shell th c th c thi t p tin này như m t chương trình. 20/01/2011 H i u Hành Unix/Linux 7
  8. i u khi n shell t dòng l nh Ví d tìm và hi n th t p tin mà n i dung có ch a chu i ‘main()’. Thay vì dùng l nh grep tìm ra t ng file sau ó s d ng l nh more hi n th . Ta có th i u khi n shell t ng như sau: $ for file in * >do > if [ $(grep –l ‘main()’ $file)] > then > more $file > fi >done 20/01/2011 H i u Hành Unix/Linux 8
  9. i u khi n shell t script Như c i m c a vi c i u khi n shell t dòng l nh là khó l y l i kh i l nh trư c ó s a i và th c thi m t l n n a. d b o trì ta có th ưa các l nh vào m t t p tin và yêu c u shell c n i dung t p tin th c thi. Ví d : docfile.sh #!/bin/bash for file in * do if [ $(grep –l ‘main()’ $file) ]; then more $file fi done 20/01/2011 H i u Hành Unix/Linux 9
  10. Môi trư ng Shell Môi trư ng shell là t t c các thi t l p giúp cho vi c ch y chương trình ư c chính xác. Bao g m: Các t p tin kh i t o shell Các bi n shell Th c hi n các tính toán s h c Gán bí danh 20/01/2011 H i u Hành Unix/Linux 10
  11. Các t p tin kh i t o shell Khi shell ư c kh i ng, nó c các files c u hình sau: /etc/profile : các thi t l p h th ng chung ~/.bash_profile: các thi t l p c a ngư i dùng ~/.bashrc: t p tin kh i ng trong m t phiên làm vi c riêng bi t. ~/.bash_login: các thi t l p ăng nh p ~/.bash_history: các l ch s các câu l nh ã th c hi n 20/01/2011 H i u Hành Unix/Linux 11
  12. /etc/profile Ch a t t c các thi t l p áp d ng n t t c môi trư ng ngư i dùng. Khi ư c tri u g i tương tác, shell c các ch th (câu l nh) trong /etc/profile. ây thư ng là các thi t l p các bi n shell như PATH, USER, MAIL, HOSTNAME và HISTSIZE. Trên m t s h th ng, giá tr umask cũng ư c c u hình trong /etc/profile . 20/01/2011 H i u Hành Unix/Linux 12
  13. Ví d /etc/profile # System wide environment and startup # programs, for login setup PATH=$PATH:/usr/X11R6/bin USER="`id −un`" LOGNAME=$USER HOSTNAME=`/bin/hostname` export PATH USER LOGNAME HOSTNAME PS1 # Source initialization files for specific # programs (ls, vim, less, ...) for i in /etc/profile.d/*.sh ; do if [ −r "$i" ]; then . $i fi done 20/01/2011 H i u Hành Unix/Linux 13
  14. /etc/bashrc Trên h th ng /etc/profile ch lưu gi môi trư ng shell và các thi t l p kh i ng chương trình, trong khi ó /etc/bashrc ch a các nh nghĩa h th ng chung cho các hàm và bí danh shell. T p tin /etc/bashrc cũng có th c p n trong /etc/profile ho c trong các t p tin kh i t o shell riêng bi t c a ngư i dùng. 20/01/2011 H i u Hành Unix/Linux 14
  15. /etc/bashrc alias ll='ls −l' alias dir='ls −ba' alias c='clear' alias mroe='more' alias ls='ls −−color' pskill(){ pid=$(ps −ax | grep $1) echo −n "killing $1 (process $pid)..." kill −9 $pid echo "slaughtered." } 20/01/2011 H i u Hành Unix/Linux 15
  16. ~/.bash_login T p tin này ch a các thi t l p khi ngư i dùng login vào h th ng. Ví d : # file protection # all to me, read to group and others umask 002 # miscellaneous w cal `date +"%m"` `date +"%Y"` 20/01/2011 H i u Hành Unix/Linux 16
  17. Ngôn ng l p trình shell so n th o m t chương trình shell có th s d ng b t kỳ trình so n th o văn b n nào(ch ng h n: vi, emasc,...) Các thành ph n cơ b n c a ngôn ng shell: C u trúc shell scripts Bi n shell: ki u s , chu i, tham s và bi n môi trư ng. i u ki n: ki m tra bi u th c lôgic b ng shell C u trúc i u khi n chương trình : if, case, while,… Hàm Các l nh n i t i (built-in) 20/01/2011 H i u Hành Unix/Linux 17
  18. C u trúc shell script M t shell scripts cơ b n g m: Dòng u tiên thư ng cho bi t shell ư c s d ng và g i trình thông d ch shell script tương ng (ví d : #!/bin/bash ). Các chú thích b t u v i d u thăng (#). Các dòng còn l i là các l nh c a Linux ho c các c u trúc i u khi n,… Th c thi shell script: C1: t quy n execute: $ chmod a+x Ch y shell script: $./ C2: $ . 20/01/2011 H i u Hành Unix/Linux 18
  19. L nh ghi ra màn hình Cú pháp: echo [-n|e] [bi u th c] Dùng hi n th giá tr các bi n, bi u th c ho c chu i ra màn hình. Trong ó: Tùy chon –n : không xu ng dòng sau khi in ra. -e: N u bi u th c là chu i t trong c p nháy kép có th s d ng các ký t c bi t như \n, \b, \t, \0n (ký t có mã ASCCI là n),… Ví d : echo “How are you?” echo “Current user: $USER” 20/01/2011 H i u Hành Unix/Linux 19
  20. L nh vào ra Cú pháp: read [bi n 2] [bi n 3] ... Dùng c d li u t bàn phím. Ví d shell script c và in d li u. $ vi vidu1.sh #!/bin/bash #Vi du s d ng lenh read va echo echo “Nhap mot so: ” read num echo “So vua nhap la: $num” 20/01/2011 H i u Hành Unix/Linux 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2