Chẳng hạn như: Không tốn nhiều chi phí mua bản quyền: Với hệ điều hành này, bạn không cần phải bỏ phí mua bản quyền mà có thể sử dụng đầy đủ các tính năng.. Nếu trước đó đã quen sử dụ
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-KỲ THI KẾT THÚC HỌC PHẦN HỌC KÌ II
NĂM HỌC 2021 - 2022
Đề tài 03: Nghiên cứu về Hệ điều hành Linux và phân tích, xây dựng bài toán về quản lý thư mục trong hệ thống trên môi trường Linux.
Giảng viên hướng dẫn : Vũ Ngọc Phan
Sinh viên thực hiện : Nguyễn Cao Tuấn
Mã sinh viên : 1911060206
Lớp : DH9C1
Tên học phần : Linux và phần mềm mã nguồn mở Khóa học : 2019 - 2023
Hà Nội – 2022
Trang 2MỤC LỤC
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1
1 Giới thiệu hệ điều hành Linux 1
2 Ưu điểm của Linux 2
3 Nhược điểm của Linux 3
4 Ứng dụng của Linux 3
5 Điểm khác biệt giữa Windows và Linux 4
6 Ubuntu 6
CHƯƠNG II: XÂY DỰNG BÀI TOÁN 7
1 Giới thiệu về Linux Shell và Shell Script 7
1.1: Ví dụ đơn giản về Shell Script sử dụng Bash Shell 7
1.2 Quản lý thư mục trong Linux 8
1.3 Một số lệnh cơ bản thường dùng vơi folder trong Linux 8
2 Mô tả bài toán 9
2.1 Tạo thư mục bài toán quản lý thư mục 9
2.2 Chương trình khi khởi chạy 11
2.3 Tạo file trong thư mục 11
2.4 Sửa thư mục 12
2.5 Xóa thư mục 12
2.6 Tìm kiếm thư mục 13
2.7 Sao chép thư mục 13
2.8 Cấp quyền cho thư mục 14
KẾT LUẬN 15
TÀI LIỆU THAM KHẢO 17
Trang 3CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1 Giới thiệu hệ điều hành Linux
Linux là hệ điều hành mô phỏng Unix, được xây dựng trên phần nhân (kernel) và các gói phần mềm mã nguồn mở Linux được công bố dưới bản quyền của GPL (General Public Licence) Unix ra đời giữa những năm 1960, ban đầu được phát triển bởi AT&T, sau đó được đăng ký thương mại và phát triển theo nhiều dòng dưới các tên khác nhau Năm 1990, xu hướng phát triển phần mềm mã nguồn mở xuất hiện và được thúc đẩy bởi tổ chức GNU Một số licence về mã nguồn mở ra đời ví dụ BSD, GPL Năm 1991, Linus Torvald viêt thêm phiên bản nhân v0.01 (kernel) đầu tiên của Linux đưa lên các BBS, nhóm người dùng để mọi người cùng sử dụng và phát triển Năm 1996, nhân v1.0 chính thức công bố và ngày càng nhận được sự quan tâm của người dùng Năm 1999, phiên bản nhân v2.2 mang nhiều đặc tính ưu việt và giúp cho linux bắt đầu trở thành đối thủ cạnh tranh đáng kể của MSwindows trên môi trường server Năm 2000 phiên bản nhân v2.4 hỗ trợ nhiều thiết bị mới (đa xử lý tới 32 chip, USB, RAM trên 2GB ) bắt đầu đặt chân vào thị trường máy chủ cao cấp Hàng năm thị trường cho Linux tăng trưởng trên 100%
Các phiên bản Linux là sản phẩm đóng gói Kernel và các gói phần mềm miễn phí khác Các phiên bản này được công bố dưới licence GPL Một số phiên bản nổi bật là: Redhat, Caldera, Suse, Debian, TurboLinux, Mandrake Giống như Unix, Linux gồm 3 thành phần chính: kernel, shell và cấu trúc file
Kernel là chương trình nhân, chạy các chương trình và quản lý các thiết bị phần cứng như đĩa và máy in
Shell (môi trường) cung cấp giao diện cho người sử dụng, còn được mô tả như một bộ biên dịch Shell nhận các câu lệnh từ người sử dụng và gửi các câu
Trang 4lệnh đó cho nhân thực hiện Nhiều shell được phát triển Linux cung cấp một số shell như: desktops, windows manager, và môi trường dòng lệnh Hiện nay chủ yếu tồn tại 3 shell: Bourne, Korn và C shell Bourne được phát triển tại phòng thí nghiệm Bell, C shell được phát triển cho phiên bản BSD của UNIX, Korn shell là phiên bản cải tiến của Bourne shell Những phiên bản hiện nay của Unix, bao gồm
cả Linux, tích hợp cả 3 shell trên
Cấu trúc file quy định cách lưu trữ các file trên đĩa File được nhóm trong các thư mục Mỗi thư mục có thể chứa file và các thư mục con khác Một số thư mục là các thư mục chuẩn do hệ thống sử dụng Người dùng có thể tạo các file/thư mục của riêng mình cũng như dịch chuyển các file giữa các thư mục đó Hơn nữa, với Linux người dùng có thể thiết lập quyền truy nhập file/thư mục, cho phép hay hạn chế một người dùng hoặc một nhóm truy nhập file Các thư mục trong Linux được tổ chức theo cấu trúc cây, bắt đầu bằng một thư mục gốc (root) Các thư mục khác được phân nhánh từ thư mục này
Kernel, shell và cấu trúc file cấu thành nên cấu trúc hệ điều hành Với những thành phần trên người dùng có thể chạy chương trình, quản lý file, và tương tác với
hệ thống
2 Ưu điểm của Linux
Sự độc bá của Windows và Mac OS không ngăn cản được những hệ điều hành phát triển Hệ điều hành mã nguồn mở như Linux vẫn phát triển mạnh mẽ Ngoài những chức năng thường, Linux còn sở hữu nhiều ưu điểm vượt trội khác Chẳng hạn như:
Không tốn nhiều chi phí mua bản quyền: Với hệ điều hành này, bạn không
cần phải bỏ phí mua bản quyền mà có thể sử dụng đầy đủ các tính năng Bao gồm các ứng dụng văn phòng OpenOffice và LibreOffice
Trang 5 Tính bảo mật tương đối cao: tất cả những phần mềm độc hại như virus, mã
độc… đều không thể hoạt động trên Linux Do đó, độ bảo mật của hệ điều hành rất cao
Tính linh hoạt: đặc biệt, người dùng còn có thể chỉnh sửa hệ điều hành theo
nhu cầu sử dụng của mình Đây chính cơ hội lý tưởng cho các lập trình viên cũng như các nhà phát triển
Có thể hoạt động tốt trên các máy tính cấu hình yếu: khi nâng cấp lên phiên
bản mới, các máy tính có cấu hình yếu vẫn sẽ được nâng cấp và hỗ trợ
thường xuyên – tức chất lượng hoạt động vẫn trơn tru và ổn định
3 Nhược điểm của Linux
Hệ điều hành Linux vẫn có một vài điểm hạn chế như:
Số lượng ứng dụng được hỗ trợ trên Linux còn hạn chế
Một số nhà sản xuất không phát triển driver hỗ trợ nền tảng Linux
Nếu trước đó đã quen sử dụng một hệ điều hành khác thì khi chuyển sang Linux, bạn sẽ mất không ít thời gian để làm quen lại với hệ điều hành này
4 Ứng dụng của Linux
Linux là mối đe dọa lớn với thị trường của Windows và Mac OS Vì sao? Linux sở hữu rất nhiều tính năng nổi trội, chẳng hạn như:
Quản lý và điều phối các tài nguyên của hệ thống
Trang 6 Giúp người dùng có thể nhìn thấy hầu như mọi dòng code trong Linux Hỗ trợ tốt nhất cho việc chỉnh sửa và phát triển hệ điều hành dựa trên nhu cầu riêng của khách hàng trở
Miễn phí mọi tính năng và không cần mua bản quyền
Giao diện đa dạng, tính bảo mật cao, thường xuyên được nâng cấp lên phiên bản mới
Đặc biệt, hệ điều hành Linux tương đối nhẹ Do đó, các máy có cấu hình yếu vẫn có thể hoạt động ổn định trên hệ điều hành này
5 Điểm khác biệt giữa Windows và Linux
So sánh với Windows, Linux có những khác biệt nhất định Với những ai đã quen với hệ điều hành của Microsoft, chắc hẳn việc chuyển đổi này lúc đầu sẽ không quá dễ dàng để thực hiện
Theo đó, những điểm khác biệt có kể đến giữa hai hệ điều hành này là:
Cấu trúc file: Với Linux, các thư mục như My Documents, ổ đĩa C, ổ đĩa D
sẽ được thay bằng cây dữ liệu Các ổ đĩa sẽ được đặt vào đó, kể cả thư mục Home và Desktop
Không sử dụng Registry: Registry là một cơ sở dữ liệu chủ cho toàn bộ các
thiết lập nằm trên máy tính với chức năng nắm giữ thông tin ứng dụng, mật khẩu người dùng, thông tin thiết bị… Tuy nhiên, Linux không sử dụng registry, mà các dữ liệu được sắp xếp dưới dạng mô đun Để lưu dữ liệu của người dùng, Linux lưu thiết lập của mình trên cơ sở chương trình phân cấp người dùng
Trình quản lý gói: Với Linux, các chương trình được cài đặt trong máy
không ở dưới dạng *.exe như Windows mà được tập hợp trong một chương trình quản lý gói (package manager) Với tính năng đặc biệt này, khi muốn
Trang 7cài đặt một chương trình về máy, người dùng không cần phải lên các trình duyệt web như chrom hay firefox để tải, mà chỉ cần tra trong các kho lưu dữ liệu của trình quản lý gói, sau đó tải về ngay tại đây
Giao diện:Trong quá trình nâng cấp và phát triển, giao diện của Windows không có quá nhiều thay đổi Trong khi với Linux, vì giao diện hoàn toàn tách rời với hệ thống lõi nên người dùng có thể tùy thời đổi giao diện mà không cần cài lại win
Lệnh đầu cuối: Linux là hệ điều hành mở với các dòng code hiển thi công
khai được trình bày dưới dạng một hộp đen với các dòng chữ xanh
Tài khoản và quyề Users: Linux có 3 loại users: Rugular, Administrator
(root), service Trong đó: Rugular: là nơi lưu trữ tất cả các file và thư mục Administrator (root): được sử dụng khi người dùng muốn cài đặt phần mềm, thay đổi file hệ thống hoặc thực hiện các tác vụ cần quyền quản trị khác trên Linux Service: tăng cường tính bảo mật cho máy tính Trong khi Windows
có 4 loại users là: Administrator, Standard, Child và Guest
Một số thiết lập điều khiến khác: Linux thích hợp dùng để lướt web, chat và
email hơn là sử dụng để chơi game
Trang 86 Ubuntu
Ubuntu là một hệ điều hành trên máy tính, và nó được phát triển dựa trên Linux/Debian GNU Lần đầu được giới thiệu vào năm 2004, tính đến năm 2007, Ubuntu đây là phiên bản chiếm 30% số bản tùy biến của Linux được cài đặt trên máy tính, và cũng là bản tuỳ biến Linux phổ biến nhất Công ty Canonical đã và đang chịu trách nhiệm trong việc tài trợ Ubuntu, giúp cho hệ điều hành này có thể phát triển trong tương lai
Trang 9CHƯƠNG II: XÂY DỰNG BÀI TOÁN
1 Giới thiệu về Linux Shell và Shell Script
Kernel: Là một chương trình máy tính là cốt lõi của hệ điều hành máy tính, với toàn quyền kiểm soát mọi thứ trong hệ thống Nó quản lý các tài nguyên của một hệ thống Linux
Shell: Là chương trình người dùng đặc biệt, cung cấp giao diện cho người dùng sử dụng các dịch vụ hệ điều hành Shell chấp nhận các lệnh có thể đọc được từ người dùng và chuyển đổi chúng thành thứ mà kernel có thể hiểu được Nó là một trình thông dịch ngôn ngữ lệnh thực thi các lệnh được đọc
từ các thiết bị đầu cuối vào như keyboard hoặc từ file Shell được bắt đầu khi người dùng đăng nhập hoặc khởi động terminal
Shell Script: Thường shell sẽ tương tác, có nghĩa là nó sẽ chấp nhận lệnh là đầu vào từ người dùng và thực thi chúng Tuy nhiên, đôi khi chúng ta muốn thực thi một loạt các lệnh, để làm như thế chúng ta sẽ phải gõ tất cả các lệnh vào Terminal Điều này sẽ làm cho lệnh của chúng ta dài và gây khó hiểu
Vì shell cũng có thể nhận các lệnh làm đầu vào từ file, chúng ta có thể viết các lệnh trong một file và có thể thực thi chúng trong shell, tránh các công việc lặp đi lặp lại Các file này được gọi là Shell Script hoặc Shell Programs Các Shell script tương tự như batch file trong MS-DOS Mỗi shell script được lưu với phần mở rộng tệp sh
1.1: Ví dụ đơn giản về Shell Script sử dụng Bash Shell.
Sau đó chạy lênh thực thi:
“bash echo_example.sh”
Trang 101.2 Quản lý thư mục trong Linux
- Trên linux, các folder được tổ chức thành các mục theo mô hình phân cấp, tham chiếu đến folder bằng tên và đường dẫn các câu lệnh thao tác file cho phép dịch chuyển, sao cho chép một file hay toàn bộ thư mục cùng với các thư mục con chưa trong nó…
- Có thể sử dugnj các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phảy để đặt tên file và thư mục Những ký tự khác như /, ?, *, là ký tự đặc biệt được dành riêng cho hệ thống nên tên file và thư mục không được có những chữ này Chiều dài của tên file có thể tới 256 ký tự
- Trong Linux không có khái niệm phần tên mở rộng (extensions) theo kiểu như của Windows Do đó có thể đặt tên file tuỳ ý, kể cả tên chứa nhiều dấu chấm
- Linux phân biệt chữ HOA, chữ thường (case sensitive) Hai file hay folder cùng tên nhưng khác ký tự in hoa sẽ là khác nhau
1.3 Một số lệnh cơ bản thường dùng vơi folder trong Linux
o Để di chuyển đến thư mục khác ta dùng lệnh: “cd dirname”
o Để xem thư mục hiện bạn đang làm việc thì dùng lệnh: “pwd /home”
o Lệnh tạo thư mục trong thư mục hiện tại: “mkdir (tên thư mục)”
o Lệnh xoá thư mục: “rm –r (tên thư mục)”
Trang 112 Mô tả bài toán
Bài toán quản lý thư mục sẽ bao gồm các chức năng chính như thêm, sửa, xoá, tìm kiếm, sao chép, thêm tất cả quyền cho thư mục và một số chức năng phụ
2.1 Tạo thư mục bài toán quản lý thư mục
Xây dựng chương trình Menu chứa tất cả các chức năng của bài toán
Trang 12Tiến hành cấp quyền chmod +x baitoanquanlythumuc.sh
Trang 132.2 Chương trình khi khởi chạy
2.3 Tạo file trong thư mục
Sau khi chạy file bài tập, chọn chức năng số 1 để tiến hành tạo file bất kỳ trong thư mục “quanlythumuc” Chúng ta chọn chức năng tạo thư mục mới
Trang 142.4 Sửa thư mục
2.5 Xóa thư mục
Trang 152.6 Tìm kiếm thư mục
2.7 Sao chép thư mục
Trang 162.8 Cấp quyền cho thư mục
Trang 17KẾT LUẬN
Trong bài báo cáo này, em đã vận dụng những nội dung đã được học trong
bộ môn LINUX và phần mềm mã nguồn mở để xây dựng chương trình quản lý thư mục và em đã đạt được những kết quả sau
- Mô hình hoá được bài toán thực tế, qua đó làm rõ được yêu cầu của bài
toán đặt ra
- Có đầy đủ chức năng(tạo, sửa, xoá, tìm kiếm, sao chép, quyền thực thi)
theo yêu cầu của bài toán và các chức năng phụ
Do thời gian bị hạn chế nên bài báo cáo của em vẫn chưa được hoàn chỉnh
và vẫn còn nhiều thiếu sót, việc phân tích bài toán tương đối đầy đủ nhưng vẫn chưa lột tả hết được mọi khía cạnh của bài toán Các giao diện chương trình vẫn chưa đạt được tính thân thiện cao
Trang 19
TÀI LIỆU THAM KHẢO
[1]Linux – Wikipedia tiếng Việt
[2]Giáo trình Hệ điều hành Unix - Linux - Hà Quang Thụy, Nguyễn Trí Thành
[3]Understanding Open Source and Free Software Licensingstanding
[4]Beginning Ubuntu LinuxOpen S