Danh mục tài liệu

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

Số trang: 62      Loại file: pdf      Dung lượng: 244.82 KB      Lượt xem: 20      Lượt tải: 0    
Xem trước 7 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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.
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ điều hành Unix /Linux: Bài 6 - Đặng Ngọc CườngBài 6 L p trình trên Linux20/01/2011 H i u Hành Unix/Linux 1N 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 Linux20/01/2011 H i u Hành Unix/Linux 2Gi i thi u Linux Shell GUI xterm Shell console bash csh Kernel KDE ksh GNOME20/01/2011 H i u Hành Unix/Linux 3Gi 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 4Gi 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 5M 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 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 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 >done20/01/2011 H i u Hành Unix/Linux 8 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 done20/01/2011 H i u Hành Unix/Linux 9Mô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í danh20/01/2011 H i u Hành Unix/Linux 10Cá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 n20/01/2011 H i u Hành Unix/Linux 11/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 Ví d /etc/profile# System wide environment and startup# programs, for login setupPATH=$PATH:/usr/X11R6/binUSER=`id −un`LOGNAME=$USERHOSTNAME=`/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 fidone 20/01/2011 H i u Hành Unix/Linux 13/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 ...