Bài giảng hệ điều hành unix và linux

229 1.1K 0
Bài giảng hệ điều hành unix và 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

Bài giảng hệ điều hành unix và linux

KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG & TT Bài giảng HỆ ĐIỀU HÀNH UNIX - LINUX (lưu hành nội bộ) THÁI NGUYÊN – 2009 2 BẢNG TỪ VIẾT TẮT 6 CHƯƠNG 1: TỔNG QUAN VỀ UNIX/ LINUX 7 1. Lịch sử phát triển của Unix 7 2. Lịch sử phát triển của Linux 9 2.1 Một số đặc điểm chính của Linux 11 2.2 Các thành phần chính của hệ điều hành Linux 14 CHƯƠNG 2: HỆ THỐNG FILE TRONG LINUX 21 1. Các kiểu file có trong Linux 21 2. Quy ước tên file trong Linux 22 3. Cấu trúc hệ thống file của Linux 23 4. Cấu trúc cây thư mục của hệ thống file trong Linux 27 5. Các file chuẩn vào /ra trên Linux 29 CHƯƠNG 3: THAO TÁC TRÊN HỆ THỐNG FILE CỦA UNIX 32 1. Quản lý quyền truy cập hệ thống file 32 2. Nhóm lệnh quản lý quyền thâm nhập file 35 2.1 Lệnh chmod 35 2.2 Lệnh chown 37 2.3 Lệnh chgrp 37 3. Các lệnh thao tác trên thư mục 39 3.1 Thay đổi thư mục làm việc hiện thời với lệnh cd 39 3.2 Xem nội dung thư mục với lệnh ls 39 3.3 Tạo thư mục với lệnh mkdir 40 3.4 Xóa thư mục với lệnh rmdir 40 3.5 Xem đường dẫn thư mục hiện thời với lệnh pwd 41 3.6 Lệnh đổi tên thư mục với lệnh mv 41 4. Các lệnh thao tác trên file 41 4.1 Tạo file với lệnh touch 41 4.2 Tạo file với lệnh cat 41 4.3 Xem nội dung các file lớn với lệnh more 42 4.4 Thêm số thứ tự của các dòng trong file với lệnh nl 44 4.5 Xem nội dung file với lệnh head 45 4.6 Xem nội dung file với lệnh tail 45 4.7 Sử dụng lệnh file để xác định kiểu file 46 4.8 Lệnh wc dùng để đếm số ký tự, số từ, hay số dòng trong một file 47 4.9 So sánh nội dung hai file sử dụng lệnh diff 47 4.10 Xóa file với lệnh rm 48 4.11 Sao chép tập tin với lệnh cp 48 4.12 Đổi tên file với lệnh mv 50 4.13 Lệnh uniq loại bỏ những dòng không quan trọng trong file 50 4.14 Sắp xếp nội dung file với lệnh sort 51 4.15 Tìm theo nội dung file bằng lệnh grep 53 4.16 Tìm theo các đặc tính của file với lệnh find 58 4.17 Nén sao lưu các file 61 4.17.1 Sao lưu các file (lệnh tar) 61 4.17.2 Nén dữ liệu với gzip 63 4.17.3 Nén, giải nén xem file với các lệnh compress, uncompress, zcat 65 4.18 Liên kết (link) tập tin 66 3 4.19 Xem thuộc tính về một file 67 4.20 Lệnh cắt file split 67 4.21 Lệnh mount unmount 67 4.21.1 Lệnh mount 67 4.21.1 Lệnh umount 68 5. Các lệnh tiện ích hệ thống 68 5.1 Các lệnh đăng nhập thoát khỏi hệ thống 68 5.2 Lệnh thay đổi mật khẩu passwd 71 5.4 Lệnh date xem, thiết đặt ngày, giờ 73 5.5 Lệnh xem lịch cal 75 5.6 Xem thông tin hệ thống uname 76 5.7 Thay đổi nội dung dấu nhắc shell 77 5.8 Lệnh gọi ngôn ngữ tính toán số học 79 5.9 Tiện ích mc 81 5.10 Sử dụng trình soạn thảo VI 91 5.11 Sử dụng tài liệu giúp đỡ man 96 5.11 Sử dụng hỗ trợ apropos 97 CHƯƠNG 4: LẬP TRÌNH TRONG LINUX 98 1. LẬP TRÌNH SHELL 98 1.1 Khái niệm shell 98 1.2 Một số đặc điểm của Shell 98 1.3 Lập trình đường ống 100 1.4 Lập trình Shell Script 101 1.5 Điều khiển luồng 111 1.5.1 Biểu thức điều kiện if 112 1.5.2 Biểu thức lệnh rẽ nhánh case 115 1.5.3 Vòng lặp For 118 1.5.4 Vòng lặp While 121 1.5.5 Vòng lặp until 121 1.5.6 Thoát vòng lặp: break, continue, exit 123 1.5.7 Dịch chuyển tham số shift 124 1.6 Hàm 124 1.7 Mảng 126 1.8 Đệ quy 133 1.9 Lập trình hội thoại 134 1.10 Một số các lệnh thường dùng trong lập trình Shell 137 1.11 Một số ví dụ về Shell 139 1.12 Shell con 153 2. Lập trình C trên Linux 153 2.1 Trình biên dịch gcc 153 2.2 Công cụ GNU make 157 2.3 Sử dụng nhãn file (mô tả file – file descriptor) 158 2.4 Thư viện liên kết 163 2.5 Các công cụ cho thư viện 171 2.6 Biến môi trường file cấu hình 174 2.7 Sử dụng gdb để gỡ lỗi 174 CHƯƠNG 5: QUẢN LÝ TÀI NGUYÊN TRUYỀN THÔNG TRONG LINUX 175 1. Quản lý tiến trình 175 4 2. Các lệnh cơ bản trong quản lý tiến trình 177 2.1 Sử dụng lệnh ps trong quản lý tiến trình 177 2.2 Hủy một tiến trình sử dụng lệnh kill 179 2.3 Cho máy ngừng hoạt động một thời gian với lệnh sleep 180 2.4 Xem cây tiến trình với lệnh pstree 181 2.5 Lệnh thiết lập độ ưu tiên của tiến trình 182 2.5.1 Lệnh nice 182 2.5.2 Lệnh renice 182 2.6 Lệnh lsof liệt kê các files được mở bởi các tiến trình khác 182 2.7 Lệnh fg lệnh bg 182 3. Quản trị hệ thống 185 3.1 Khởi động đóng tắt hệ thống 185 3.2 Tìm hiểu về trình nạp Linux 185 3.3 Tìm hiểu GRUB, trình nạp Linux. 187 3.4 Quá trình khởi động 187 4. Quản trị người dùng 188 4.1 Superuser (root) 188 4.2 Tài khoản người dùng 189 4.3 Thêm người dùng với lệnh useradd 191 4.4 Lệnh usermod thay đổi thông tin của người dùng 192 4.5 Hủy user 193 4.6 Tạo nhóm người dùng groupadd 193 4.7 Xác định người dùng đang đăng nhập (lệnh who) 194 4.8 Để xác định thông tin người dùng với lệnh id 195 4.10 Hiển thị danh sách đăng nhập sử dụng lệnh last 196 4.11 Lệnh which hiển thị đường dẫn đầy đủ của chương trình 196 5. Quản trị tài nguyên 196 5.1 Quản lý tài nguyên với lệnh quota 196 5.2 Lệnh quản lý lưu trữ 198 5.2.1 Xem dung lượng đĩa sử dụng với lệnh du 198 5.2.2 Kiểm tra dung lượng đĩa trống với lệnh df 199 5.2.3 Lệnh free hiển thị tình trạng sử dụng bộ nhớ 200 6 Truyền thông trong Linux 201 6.1. Lệnh đặt tên máy 203 6.2. Lệnh ifconfig 203 6.3 Lệnh netstat 204 6.4 Lệnh write 205 6.5 Lệnh mail 206 6.6 Lệnh talk 209 TÀI LIỆU THAM KHẢO 210 PHỤ LỤC 211 1. Giới thiệu một số phiên bản hệ điều hành Linux thông dụng hiện nay cách cài đặt 211 1.1 Hướng dẫn cài đặt hệ điều hành Redhat Linux 7.1 211 1.2 Hướng dẫn sử dụng hệ điều hành Ubuntu các phiên bản của nó 228 2. Cài đặt WEBMIN 228 3. Cài đặt WEBSERVER 228 4. Cài đặt FILE SERVER 228 5 6 BẢNG TỪ VIẾT TẮT Hệ điều hành HĐH Multiplexed Information and Computing Service Multics Berkley Software Distribution BSD Midnight Commander mc 7 CHƯƠNG 1: TỔNG QUAN VỀ UNIX/ LINUX 1. Lịch sử phát triển của Unix Giữa năm 1960, AT&T Bell Laboratories một số trung tâm khác tham gia vào một cố gắng tạo ra một hệ điều hành mới được đặt tên là Multics. Đến năm 1969, chương trình Multics bị bãi bỏ vì đó là một dự án quá nhiều tham vọng. Thậm trí nhiều yêu cầu đối với Multics thời đó đến nay vẫn chưa có được trên các Unix mới nhất. Nhưng Ken Thompson, Dennis Ritchie, một số đồng nghiệp của Bell Labs đã không bỏ cuộc. Thay vì xây dựng một HĐH làm nhiều việc một lúc, họ quyết định phát triển một HĐH đơn giản chỉ làm tốt một việc là chạy chương trình (run program). HĐH sẽ có rất nhiều các công cụ (tool) nhỏ, đơn giản, gọn nhẹ (compact) chỉ làm tốt một công việc. Bằng cách kết hợp nhiều công cụ lại với nhau, họ sẽ có một chương trình thực hiệ n một công việc phức tạp. Đó cũng là cách thức người lập trình viết ra chương trình. Peter Neumann đặt tên Unix cho HĐH đơn giản này tiếp tục phát triển theo mô hình ban đầu đặt ra một hệ thống tập tin mà sau này được phát triển thành hệ thống tập tin của UNIX. Năm 1973, Riche Thompson viết lại nhân của hệ điều hành UNIX trên ngôn ngữ C, hệ điều hành đã trở nên dễ dàng cài đặt tới các loại máy tính khác nhau; tính ch ất như thế được gọi là tính khả chuyển của UNIX. Trước đó, khoảng 8 năm 1971, hệ điều hành được thể hiện trên ngôn ngữ B (mà dựa trên ngôn ngữ B, Ritche đã phát triển thành ngôn ngữ C). Khoảng năm 1977 bản quyền của Unix được giải phóng HĐH Unix trở thành một sản phẩm thương mại. Hai dòng UNIX: System V của AT&T, Novell Berkeley Software Distribution (BSD) của Đại học Berkeley. + System V: Các phiên bản UNIX cuối cùng do AT&T xuất bản là System III một vài phát hành (releases) của System V. Hai bản phát hành gần đây của System V là Release 3 (SVR3.2) Release 4.2 (SVR4.2). Phiên bản SYR 4.2 là phổ biến nhất cho từ máy PC cho tới máy tính lớn. + BSD: Từ 1970 Computer Science Research Group của University of California tại Berkeley (UCB) xuất bản nhiều phiên bản UNIX, được biết đến dưới tên Berkeley Software Distribution, hay BSD. Cải biến của PDP- 11 được gọi là 1BSD 2BSD. Trợ giúp cho các máy tính của Digital Equipment Corporation VAX được đưa vào trong 3BSD. Phát triển của VAX được tiếp tục với 4.0BSD, 4.1BSD, 4.2BSD, 4.3BSD Trước 1992, UNIX là tên thuộc sở hữu của AT&T. Từ năm 1992, khi AT&T bán bộ phận Unix cho Novell, tên Unix thuộc sở hữu của X/Open foundation. Tất cả các hệ điều hành thỏa mãn mộ t số yêu cầu đều có thể gọi là Unix. Ngoài ra, Institute of Electrical and Electronic Engineers (IEEE) đã thiết lập chuẩn "An Industry-Recognized Operating Systems Interface Standard based on the UNIX Operating System." Kết quả cho ra đời POSIX.1 (cho giao diện C) POSIX.2 (cho hệ thống lệnh trên Unix) Tóm lại, vấn đề chuẩn hóa UNIX vẫn còn rất xa kết quả cuối cùng. Nhưng đây là quá trình cần thiết có lợi cho sự phát triển của ngành tin học nói chung sự sống còn của HĐH UNIX nói riêng. 9 Hình 1.1 Các phiên bản của Unix Các nhóm nhà cung cấp khác nhau về UNIX đang hoạt động trong thời gian hiện nay được kể đến như sau: + Unix International (viết tắt là UI). UI là một tổ chức gồm các nhà cung cấp thực hiện việc chuyển nhượng hệ thống UNIX-5 cung cấp bản AT&T theo các nhu cầu thông báo phát hành mới, chẳng hạn như điều chỉnh bản quyền. Giao diện đồ họa người dùng là Open Look. + Open Software Foundation (OSF). OSF đượ c hỗ trợ bởi IBM, DEC, HP theo hướng phát triển một phiên bản của Unix nhằm tranh đua với hệ thống UNIX-5 phiên bản 4. Phiên bản này có tên là OSF/1 với giao diện đồ họa người dùng được gọi là MOTIF. + Free SoftWare Foundation (FSF): một cộng đồng do Richard Stallman khởi xướng năm 1984 chủ trương phát hành các phần mềm sử dụng tự do, trên cơ sở một hệ điều hành thuộc loại UNIX. 2. Lịch sử phát triển của Linux Linux là một HĐH dạng UNIX (Unix-like Operating System) chạy trên máy PC với bộ điều khiển trung tâm (CPU) Intel 80386 hoặc các thế hệ sau đó, hay các bộ vi xử lý trung tâm tương thích như AMD, Cyrix. Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Sparc. Linux thỏa mãn chuẩn POSIX.1. Linux được viết lại toàn bộ từ con số không, tức là không sử dụng một dòng lệnh nào của Unix, để tránh vấn đề bản quyền của Unix, tuy nhiên hoạt động của 10 Linux hoàn toàn dựa trên nguyên tắc của hệ điều hành Unix. Vì vậy nếu một người nắm được Linux, thì sẽ nắm được UNIX. Nên chú ý rằng giữa các Unix sự khác nhau cũng không kém gì giữa Unix Linux. Năm 1991 Linus Torvalds - sinh viên của đại học tổng hợp Helsinki, Phần lan, bắt đầu xem xét Minix, một phiên bản của Unix, làm ra với mục đích nghiên cứu cách tạo ra một hệ điều hành Unix chạy trên máy PC với bộ vi xử lý Intel 80386. Ngày 25/8/1991, Linus cho ra version 0.01 thông báo trên comp.os.minix của Internet về chương trình của mình. 1/1992, Linus cho ra version 0.12 với shell C compiler, Linus đặt tên HĐH của mình là Linux. 1994, phiên bản chính thức 1.0 được phát hành. Quá trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU, đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform. Đến hôm nay, cuối 2001, phiên bản mới nhất của Linux kernel là 2.4.2-2, có khả năng điều khiển các máy đa bộ vi xử lý rất nhiều các tính năng khác. Hiệ n nay, Linux là một hệ điều hành giống Unix đầy đủ độc lập. Nó có thể chạy X-Window, TCP/IP, Emacs, Web, thư điện tử các phần mềm khác. Hầu hết các phần mềm miễn phí thương mại đều được chuyển lên Linux. Rất nhiều các nhà phát triển phần mềm bắt đầu chuyển sang viết trên Linux. Người ta thực hiện các phép đo benchmarks trên Linux thấy rằng chúng thực hiện nhanh hơn khi thực hiện trên các máy trạ m của Sun Microystem Compaq, thậm chí nhiều khi còn nhanh hơn cả trên Windows 98 WindowNT. Thật khó có thể hình dung được hệ điều hành “Unix” tí hon này phát triển nhanh thế nào! Bây giờ, sau khi đã trải qua 1 thời gian rất dài phát triển hoàn thiện bởi cộng đồng thế giới, Linux càng ngày càng trở nên mạnh mẽ, ổn định độ tin cậy cao, được chọn để sử dụng trong các cơ quan chính phủ. Các nước như Trung Quốc, Nhật Bản, Đức một số các nướ c châu Âu đều cũng đã có kế họach phát triển riêng Linux cho đất nước của họ. Ở Việt Nam trong những năm gần đây đã có nhiều nhóm nghiên cứu phát triển Linux sử dụng tiếng Việt là ngôn ngữ chính. Trong giáo trình này Linux được sử dụng như một ví dụ cho việc tìm hiểu kỹ hơn về hệ điều hành Unix. [...]... www.slackware.com SuSE Linux www.suse.com TurboLinux www.turbolinux.com www.ubuntu.com 2.2 Các thành phần chính của hệ điều hành Linux - Kernel ( Nhân hệ điều hành) 14 - Các bộ điều khiển thiết bị - Lệnh tiện ích - Shell - Windows & Graphic User Interface Hình1.2 Các thành phần chính của HĐH Unix Kernel Là thành phần chủ yếu hay trái tim của hệ điều hành Nó nắm nhiệm vụ điều khiển giao dịch giữa chương trình... đồ hoạ cửa sổ là một khả năng rất mạnh của hệ điều hành Linux, nó cho phép hệ điều hành giao tiếp thân thiện hơn với người sử dụng Hình 1.3 Giao diện Gnome của Linux Tóm lại: Đứng về phía người sử dụng ta có thể hình dung hệ điều hành Linux như sau: Người sử dụng - lệnh Linux - biên dịch Shell - Kernel - Máy tính (phần cứng) 20 CHƯƠNG 2: HỆ THỐNG FILE TRONG LINUX 1 Các kiểu file có trong Linux Có... của hệ thống file Phần này chỉ chứa dữ liệu thông tin quản trị hệ thống Một khối dữ liệu chỉ được cấp phát cho một chỉ một file duy nhất trong hệ thống file 26 Hình 2.1 Inodes 4 Cấu trúc cây thư mục của hệ thống file trong Linux Đối với hệ điều hành linux, không có khái niệm các ổ đĩa khác nhau Sau quá trình khởi động, toàn bộ các thư mục tập tin được “gắn” (mount) lên tạo thành một hệ thống... có quan hệ với cộng đồng Linux Việt nam chúng ta có thể học hỏi một cách trực tiếp kinh nghiệm cho quá trình đưa Linux vào Việt nam Tên công ty Địa chỉ website Caldera OpenLinux www.caldera.com Corel Linux www.corel.com Debian GNU /Linux www.debian.com Linux Mandrake www.mandrake.com Red Hat Linux www.redhat.com Red Flag Linux www.redflag -linux. com Slackware Linux www.slackware.com SuSE Linux www.suse.com... giống Trên Linux, các trình biên dịch như C, C++, …, đều được chuẩn hoá Tính tương thích Linux tương thích hầu như hoàn toàn với hầu hết các chuẩn Unix như IEEE POSIX.1, UNIX System V BSD Unix Trên Linux ta cũng có thể tìm thấy các trình giả lập DOS Windows cho phép ta chạy các ứng dụng quen thuộc trên DOS Windows Linux cũng hỗ trợ hầu hết các phần cứng PC như đã nói phía trên Hệ điều hành 32-bit... đa nhiệm, nhiều tác vụ khác của hệ thống, một tập các trình đơn nằm trong bộ nhớ, mọi tiến trình đều gọi chúng Nhân hệ điều hành chịu trách nhiệm duy trì các đối tượng trừu tượng quan trọng của hệ điều hành, bao gồm bộ nhớ ảo quá trình Các mô đun chương trình trong nhân được đặc quyền trong hệ thống, bao gồm đặc quyền thường trực ở bộ nhớ trong Nhân (còn được gọi là hệ lõi) của Linux, là một... giao thức mạng, bắt nguồn phát triển từ dòng BSD Thêm vào đó, Linux còn hỗ trợ tính toán thời gian thực Dễ cấu hình Ta không còn phải bận tâm về giới hạn 640K tiến hành tối ưu hoá bộ nhớ mỗi lần cài đặt một trình điều khiển mới Linux cho ta toàn quyền điều khiển về cách làm việc của hệ thống Như vậy, qua phần giới thiệu ban đầu này ta có thể thấy rằng Linux là một hệ Unix đủ mạnh Nó có thể được...Vấn đề phân phối giấy phép Linux Về lý thuyết, mọi người có thể khởi tạo một hệ thống Linux bằng cách tiếp cận bản mới nhất các thành phần cần thiết từ các site ftp biên dịch chúng Trong thời kỳ đầu tiên, người dùng Linux phải tiến hành toàn bộ các thao tác này vì vậy công việc là khá vất vả Tuy nhiên, do có sự tham gia đông đảo của các cá nhân nhóm phát triển Linux, đã tiến hành thực hiện... MS-Windows98 Không giống một số hệ điều hành khác (như MS-DOS chẳng hạn), Linux quản lý thời gian của tệp tin qua các thông số thời gian truy nhập (accesed time), thời gian kiến tạo (created time) thời gian sửa đổi (modified time) 2 Quy ước tên file trong Linux Một đối tượng điển hình trong các hệ điều hành đó là file File là một tập hợp dữ liệu có tổ chức được hệ điều hành quản lý theo yêu cầu của... đủ Ngay từ đầu Linux đã là hệ điều hành 32 bit đầy đủ Điều đó có nghĩa là ta không còn phải lo về giới hạn bộ nhớ, các trình điều khiển EMM hay các bộ nhớ mở rộng,… khi sử dụng Linux Linux hỗ trợ tốt cho tính toán song song máy tính cụm (PC-cluster) là một hướng nghiên cứu triển khai ứng dụng nhiều triển vọng hiện nay Linux có giao diện đồ hoạ (GUI): Thừa hưởng từ hệ thống X-Window Linux hỗ trợ nhiều

Ngày đăng: 08/06/2014, 21:17

Từ khóa liên quan

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

Tài liệu liên quan