bai giang linux

51 344 0
bai giang linux

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

bai giang linux tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh tế, kin...

.:HỆ ĐIỀU HÀNH LINUX :. .:HỆ ĐIỀU HÀNH LINUX :.     Môn học: Môn học: CHƯƠNG TRÌNH ĐÀO TẠO CNTT CHƯƠNG TRÌNH ĐÀO TẠO CNTT  Yêu cầu Yêu cầu CITD - VNUHCM         !"#$%&'()*+,  -.$/ * Giới thiệu về Linux Giới thiệu về Linux CITD - VNUHCM 0 1 2 3 2 3 $"45 1 $6 3  7 5 7 ()'89:;<<;= () > :2 1 8 7 6/ 7 :'45 > 84 7 ' 1 4 1 6 3  7 ?$ 3 @ A  >  >  > 6/ >  $ 7  3 "45 1 $45 > 84 7 ' 1 B9 3 6 3 5 3 6 3  7 / 3 " 7 4 1 $ 1  1 " >   > $: 1 $"@ 3 $$ 7  1 =  +CD$$E6D$F=  G4H$6/6I:!$$:6.=  ():!"E":?"4J'K=  LM"()$"N"EB&&OF'P Q Giới thiệu về Linux … Giới thiệu về Linux … CITD - VNUHCM  L&&RC/S$.:$T"E()=:P$TB&& $$N6:24J$5$$$F'P$MU$CO6$5 O4J'K6D$F=  GUVH$OF'P"WX!Y%Z-Y?()VHB2 "[=L2"[$6\6$$Y"4H$:!K"# 8]"4H$8^'P4:!K:_!$T!Y`a=bY$$? ()`4UM$M%Z-`aE5c$=KCI$"!$`6 $T"#$F8d$`:5::I$"!`$T:=  ()VHEBUI`6"U()45$YO"E B$ e Giới thiệu về Linux … Giới thiệu về Linux … CITD - VNUHCM -!OF'P6[$T()fF'Pg=g'6! 6D:E::6.6U=-P$".$$$N66D:E::6.$`6 O4J6U=0D$$6D:E:g"EB'P :.45:C$$MNE$=()$MNE .$ g42O`6?$2$P' $?.$N?)^a9 h O9:D"/?()_:!"E8&&6[=() "4H$8^'P!i$O:P$".$8 j&'68&& k:8&& j)8&& l&&&m j&m ,8&8&& Z66$8&& h n Giới thiệu về Linux… Giới thiệu về Linux… CITD - VNUHCM L&&RC/S$.:$T"E()= :P$$N6:24J$5$$$F'P?6$5O4J 'K6D$F= 0I`6VHEo&88&:p45$E0G0= -!OF'P6[$T()fF'Pg=g'6! 6D:E::6.6U=-P$".$$$N66D:E::6.$`6 O4J6U=0D$$6D:E:g"EB'P :.45:C$$MNE$=()$MNE .$ g42O`6?$2$P' $?.$N?)^a9 h O9:D"/?()_:!"E8&&6[ j&'68&& k:8&& j)8&& l&&&m CITD - VNUHCM Chương 3: Lập trình hệ vỏ (SHELL) Bao gồm phần sau: Linux Shell Sử dụng Shell ngôn ngữ lập trình Cú pháp ngôn ngữ Shell Dò lỗi (Debug) Script Hiển thị màu sắc Xây dựng ứng dụng ngôn ngữ Script 3.1 Linux Shell - Khi bắt đầu lập trình UNIX hay Linux C hay ngôn ngữ khác  phải tiến hành tiếp cận tìm hiểu khái niệm SHELL - Do HĐH thường cung cấp hàm hay dịch vụ để chương trình ứng dụng triệu gọi, nên với tư cách nhà lập trình  cần phải hiểu tường tận dịch vụ - Để triệu gọi hàm hệ thống hạt nhân, việc xây dựng chương trình biên dịch chúng mã nhị phân (file thực thi) để HĐH triệu gọi HĐH cung cấp cho ta khả giao tiếp với hạt nhân (kernel) thông qua trình diễn dịch trung gian - Trên môi trường MS-DOS  shell tập tin command.com Chính từ shell cung cấp tập lệnh copy, del, v.v… thành lời triệu gọi DOS cấp thấp (ngắt 21h) - Ngoài ra, DOS cung cấp việc điều khiển tự động hóa HĐH lệnh bó (batch) tập tin bat không mạnh Linux - Hình 3.1 mô hình tương tác Shell, chương trình ứng dụng, hệ X-Window hạt nhân HĐH Hình 3.1 Tương tác Shell, Applications, X-Window, Kernel - Một số Shell thông dụng sau: - Chuẩn thường sử dụng Bash Shell Thông thường cài đặt, trình cài đặt đặt bash shell khởi động - Tên shell có tên bash đặt thư mục /bin 3.2 Sử dụng Shell ngôn ngữ lập trình - Có hai cách để viết chương trình điều khiển shell • Gõ chương trình trực tiếp dòng lệnh (kể lệnh điều khiển if, for, case, v.v…) • Gộp câu lệnh vào tập tin yêu cầu shell thực thi tập tin chương trình (Ghi nhớ phải đặt quyền execute cho tập tin thực thi được) 3.2.1 Điều khiển Shell từ dòng lệnh - Thực ví dụ: Giả sử ổ cứng có nhiều file nguồn c Công việc đặt tìm hiển thị tất file nguồn chứa chuỗi main() - Mã nguồn thực thi công việc sau: #for file in * >do > if grep –l ‘main()’ $file > then > more $file > fi >done - Trong ví dụ trên, lệnh for…do kết thúc lệnh done HĐH nhận biết bắt đầu thực thi tất ta gõ vào lệnh for (Khi lệnh chưa hoàn chỉnh shell chuyển thành “>”) - Như trên, file biến shell, * tập hợp đại diện cho tên tập tin tìm thấy thư mục hành - Một cách khác để thực thi lệnh là: #for file in *; do; if grep –l ‘main()’ $file; then; more $file; fi; done 3.2.2 Điều khiển Shell tập tin kịch (Script file) - Tiến hành tạo tập tin lệnh cat sau: #cat > first.sh #!/bin/sh #Vi du ve Script file for file in * if grep –l ‘main()’ $file then more $file fi done exit - Lưu tập tin lại tiến hành thiết lập quyền thực thi cho tập tin #chmod +x first.sh - - Như ví dụ bên ta thấy dấu “#” có hai chức (Trong đoạn thân chương trình) • #  Chức khai báo dòng thích (comment) • #!  Chức thị yêu cầu shell triệu gọi shell sh nằm thư mục /bin (Chú ý cặp ký hiệu #!) Dòng lệnh exit có chức yêu cầu Script sau thực thi trả mã lỗi  Điều nên thể trình lập trình - Trong UNIX/Linux, không yêu cầu phải đặt phần mở rộng cho tên tập tin chương trình Tuy nhiên, sử dụng phần mở rộng sh để dễ nhận diện dạng tập tin script shell (tương tự tập tin bat MS-DOS) - Để biết tập tin có phải Script định dạng khác, ta sử dụng lệnh file - Ví dụ: #file first.sh 3.2.3 Thực thi Script file - Thông thường chương trình thực thi shell thường đặt /bin Do đó, để thực thi Shell Script ta triệu gọi trình Shell với tên tập tin Script làm đối số #/bin/sh first.sh - Tuy nhiên, để thực lệnh cách ngắn ta sử dụng theo phương cách sau: #first.sh - Cũng lệnh không thực thành công ta nhận câu thông báo lỗi “Command Not Found”  Nguyên nhân biến môi trường PATH thường không chứa đường dẫn tới vị trí thư mục hành #PATH=$PATH: - Hoặc thực tự động (mỗi lần login) cách đưa dòng PATH=$PATH: vào cuối tập tin bash_profile người dùng 10 3.3.6.10 Lệnh printf - Chức năng: Tương tự lệnh printf thư viện C - Danh sách ký tự đặc biệt dùng chung với dấu “\”, gọi chuỗi thoát - Định dạnh số chuỗi ký tự % 37 3.3.6.11 Lệnh return - Chức năng: Trả giá trị hàm - Nếu lệnh tham số trả mã lỗi lệnh vừa thực 3.3.6.12 Lệnh set - Chức năng: Dùng để thiết lập giá trị cho biến môi trường $1, $2, $3, Ngoài ra, lệnh có chức loại bỏ khoảng trắng không cân thiết đặt nội dung chuỗi truyền cho vào biến tham số #set This is parameter #echo $1 This #echo $3 parameter - Tham khảo Ví dụ 3-27: set_use.sh 38 3.3.6.13 Lệnh shift - Chức năng: Di chuyển nội dung tham số môi trường $1, $2, $3, v.v xuống vị trí (Do ta có tối đa tham số $1 $9) - Nếu gọi tham số $10 hiểu $1 “0” - Tham khảo Ví dụ 3-28: using_shift.sh 3.3.6.14 Lệnh trap - Chức năng: Dùng để bẫy tín hiệu (signal) hệ thống gửi đến Shell trình thực thi script - Tín hiệu thông thường thông điệp hệ thống gởi đến chương trình yêu cầu hay thông báo công việc mà hệ thống thực Ví dụ: Ngắt INT thường gởi nhấn CTRL+C - Tham khảo Ví dụ 3-29: use_trap.sh 39 3.3.6.15 Lệnh unset - Chức năng: Loại bỏ biến khỏi môi trường Shell - Lệnh unset sử dụng - Ví dụ: #!/bin/sh foo=“Hello World” echo $foo unset foo echo $foo - Kết chương trình in chuỗi rỗng (do lúc biến foo không tồn nữa) 40 3.3.7 Lấy kết lệnh - Khi viết lệnh cho script, đôi lúc ta thường có nhu cầu lấy kết hay xuất kết cho lệnh Tương tự ...Cấu hình mạng Nội dung •  Các thông tin cần cấu hình •  Công cụ để cấu hình tạm thời •  Các tệp cần cấu hình •  Công cụ để kiểm tra cấu hình Các thông tin cần cấu hình •  Cấu hình kết nối mạng –  NIC: Network Interface Card. –  Địa chỉ IP/Netmask –  Gateway •  Cấu hình tên miền –  NIS, DNS, host Các tệp cấu hình Tên tệp Ý nghĩa /etc/init.d/network Bật/tắt/khởi động lại dịch vụ mạng /etc/sysconfig/network Cấu hình chung về mạng /etc/sysconfig/network-script Cấu hình của các NIC /etc/resolve.conf Cấu hình DNS /etc/hosts Ánh xạ host name-ip /etc/nsswitch Thứ tự dịch vụ tên /etc/sysconfig/network •  Cấu hình IP tĩnh: NETWORKING=yes HOSTNAME=my-hostname - Hostname is defined here and by command hostname FORWARD_IPV4=true - True for NAT firewall gateways and linux routers. False for everyone else - desktops and servers. GATEWAY="XXX.XXX.XXX.YYY" - Used if your network connect to internet. Gateway not defined here for DHCP client. •  Cấu hình phía client dùng DHCP : NETWORKING=yes HOSTNAME=my-hostname - Hostname is defined here and by command hostname (Gateway is assigned by DHCP server.) /etc/resolv.conf •  Chỉ ra các máy chủ DNS sẽ phân giải tên miền search name-of-domain.com - Name of your domain or ISP's domain if using their name server nameserver XXX.XXX.XXX.XXX - IP address of primary name server nameserver XXX.XXX.XXX.XXX - IP address of secondary name server /etc/hosts •  Đặc tả cho Linux tên của các hệ thống cục bộ mà không được phân giải bởi máy chủ DNS 127.0.0.1 your-node-name.your-domain.com localhost.localdomain localhost XXX.XXX.XXX.XXX node-name Kiểm tra cấu hình mạng Thao tác Ý nghĩa ping host-ip Cấu hình NIC OK? ping GW Cấu hình mạng cục bộ OK ping live public IP Cấu hình mạng OK ping live domain name Cấu hình DNS OK telnet Kiểm tra dịch vụ máy từ xa Thao tác Thông tin traceroute Kiểm tra đường đi của các gói tin ifconfig Cấu hình mạng của các NIC route Bảng chọn đường cat /etc/resolve.conf DNS đã được cấu hình hostname Tên máy Cấu hình bằng câu lệnh Thao tác Câu lệnh Đặt địa chỉ IP ifconfig NIC-name IP netmask MASK Kích hoạt thay đổi Tức thì Đặt GW route add default GW IP Kích hoạt thay đổi Tức thì Khởi động lại dịch vụ mạng /etc/init.d/network restart Tắt dịch vụ mạng /etc/init.d/network stop Tắt NIC ifconfig eth0 down Bật NIC ifconfig eth0 up Đặt tên cho máy hostname Giới thiệu phần mềm mã ngu ồn mở và Linux TS. Hà Quốc Trung Nội dung • Phần mềm mã nguồn mở • Linux • Các phần mềm mã nguồn mở khác • Các kho phần mềm mã nguồn mở Các thao tác trên phần mềm • Sử dụng phần mềm • Thay đổi, nâng cấp, cải tiến phần mềm – Reverse enginering • Phân phối phần mềm – Bản thực hiện, mã nguồn – Nguyên bản, nâng cấp, thay đổi • Quản lý phần mềm – Cho phép/không cho phép thực hiện các thao tác trên phần mềm Bản quyền phần mềm • Tài liệu qui định việc sử dụng và phân phối phần mềm • Phần mềm sở hữu – Phần mềm miễn phí/phần mềm chia sẻ • Bản quyền phần mềm sở hữu • Bản quyền phần mềm tự do và mã nguồn mở – Phần mềm tự do – Phần mềm mã nguồn mở Phần mềm sở hữu • Ràng buộc chặt chẽ đảm bảo quyền lợi của người làm ra phần mềm: COPY RIGHT • Chặt chẽ về quyền phân phối và quản lý phần mềm • Hạn chế quyền thay đổi và cải tiến • Hạn chế việc phân tích ngược mã • Ví dụ – MS Excel EULA – MathWork Mathlab Phần mềm tự do/mã nguồn mở • Cung cấp tối đa các quyền trên phần mềm cho số đông NSD - TỰ DO • Để thực hiện việc thay đổi, nâng cấp và phân phối lại, cung cấp mã nguồn cho NSD: MÃ NGUỒN MỞ • Hạn chế quyền quản lý để đảm bảo cung cấp các quyền khác cho NSD (COPY LEFT) Đặc điểm của PMTD- MNM • Tự do phân phối • Luôn kèm mã nguồn • Cho phép thay đổi phần mềm • Không cho phép thay đổi các ràng buộc bản quyền • Có thể có ràng buộc về việc – Tích hợp mã nguồn – Đặt tên phiên bản • Không phân biệt cá nhân/nhóm khác nhau • Không phân biệt mục đích sử dụng • Không hạn chế các phần mềm khác • Trung lập về công nghệ Mô hình phát triển nhà thờ • Quá trình phân tích thiết kế xây dựng được quản lý giám sát chặt chẽ • Độ tự do của các thành viên tham gia phát triển thấp • VD – Our source phần mềm Mô hình phát triển bazar • NSD đóng vai trò nhà phát triển • Độ tự do lớn • Phiên bản đầu tiên sớm • Tích hợp các mô đun thường xuyên • 3 phiên bản – Bền vững, beta, night version • Tính mô đun hóa cao • Mô hình ra quyết định động Lịch sử của PMTD-MNM • 1983-GNU Project • 1985- FSF, Richard Stallman, GPL – http://en.wikipedia.org/wiki/List_of_FSF_approved_so ftware_licences • 1998- OSI – http://en.wikipedia.org/wiki/List_of_OSI_approved_so ftware_licences#OSI_approved_licenses • 2008 – Pháp lý hóa: Vi phạm -> các quyền bị hủy->dùng PM lậu ...3.1 Linux Shell - Khi bắt đầu lập trình UNIX hay Linux C hay ngôn ngữ khác  phải tiến hành tiếp cận tìm hiểu khái niệm SHELL... - Ngoài ra, DOS cung cấp việc điều khiển tự động hóa HĐH lệnh bó (batch) tập tin bat không mạnh Linux - Hình 3.1 mô hình tương tác Shell, chương trình ứng dụng, hệ X-Window hạt nhân HĐH Hình 3.1... exit có chức yêu cầu Script sau thực thi trả mã lỗi  Điều nên thể trình lập trình - Trong UNIX /Linux, không yêu cầu phải đặt phần mở rộng cho tên tập tin chương trình Tuy nhiên, sử dụng phần

Ngày đăng: 26/04/2016, 12:02

Tài liệu cùng người dùng

Tài liệu liên quan