Tuy nhiên, do có sự tham gia đông đảo của các cá nhân và nhóm phát triển Linux đã tiến hành thực hiện nhiều giải pháp nhằm làm cho công việc khởi tạo hệ thống đỡ vất vả Một trong những g
Trang 11
Trang 2NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
Hà Nội, ngày tháng năm2013
Giáo viên hướng dẫn
Trang 3LỜI CẢM ƠN
Để hoàn thành bài báo cáo bài tập lớn này, trước hết, em xin cảm ơn các thầy giáo, cô giáo khoa Công nghệ thông tin trường Đại học Công nghiệp Hà Nội , những người đã dạy dỗ, trang bị cho em những kiến thức chuyên môn, và giúp chúng em hiểu
rõ hơn các lĩnh vực đã nghiên cứu để hoàn thành đề tài được giao
Em xin bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo Thạc sĩ TRẦN THANH HUÂN, người đã hướng dẫn, chỉ bảo tận tình để em hoàn thành quá trình làm bài tập lớn
Mặc dù trong quá trình thực hiện đề tài chúng em đã có nhiều cố gắng Xong, dohạn chế về mặt trình độ của bản thân cũng như thời gian thực hiện nên đề tài khôngtránh khỏi những thiếu sót
Vậy chúng em rất mong nhận được sự quan tâm, giúp đỡ và đóng góp ý kiến từphía các thầy giáo, cô giáo và các bạn để đề tài hoàn thiện hơn và có thể phát triểnthành một ứng dụng có tính khả thi cao
Em xin chân thành cảm ơn!.
Hà Nội, ngày tháng năm
Sinh viên PHẠM VĂN CAN
ĐỖ CAO HÒA
3
Trang 4LỜI NÓI ĐẦU
Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, Internet ngày càng giữ
vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống Dĩ nhiên các bạn
đã được nghe nói nhiều về Internet, nói một cách đơn giản, Internet là một tập hợp máytính nối kết với nhau, là một mạng máy tính toàn cầu mà bất kì ai cũng có thể kết nốibằng máy PC của họ Với mạng Internet, tin học thật sự tạo nên một cuộc cách mạngtrao đổi thông tin trong mọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế
Trong thời đại ngày nay, thời đại mà “người người làm Web, nhà nhà làm Web”thì việc có một Website để quảng bá công ty hay một Website cá nhân không còn làđiều gì xa xỉ nữa Thông qua Website khách hàng có thể lựa chọn những xe mà mìnhcần một cách nhanh chóng và hiệu quả Vì vậy nhóm em đã xây dựng websỉte “ Quản
lý và cho thuê xe “ nhằm giúp cho mọi người sử dụng dễ dàng ,thuận tiện trong mọicông việc Do còn một số hạn chế, nên website mới chỉ dừng lại ở chức năng đặt hàng
và hình thức tài khoản ngân hàng, thẻ thuê hàng trực tuyến Trong tương lai, hệ thống
sẽ phát triển rộng dãi hơn và chi tiết hơn Do giới hạn trong việc trình bày bằng vănbản nên bài báo cáo này, em chỉ xin trình bày một số khâu quan trọng, từ khảo sát, đếnphân tích, thiết kế, Rất mong nhận được sự cảm thông của thầy và các bạn
Em xin chân thành cảm ơn !
Trang 5CHƯƠNG I GIỚI THIỆU CHUNG VỀ LINUX
1.1 Giới thiệu chung về linux
1.1.1 Tổng quan về Linux
Linus Tovalds (một sinh viên Phần lan) đưa ra nhân (phiên bản đầu tiên)
cho hệ điều hành Linux vào tháng 8 năm 1991 trên cơ sở cải tiến một phiên
bản UNIX có tên Minix do Giáo sư Andrew S Tanenbaum xây dựng và phổ
biến Nhân Linux tuy nhỏ song là tự đóng gói Kết hợp với các thành phần
trong hệ thống GNU, hệ điều hành Linux đã được hình thành Và cũng từ thời
điểm đó, theo tư tưởng GNU, hàng nghìn, hàng vạn chuyên gia trên toàn thế giới
(những người này hình thành nên cộng đồng Linux) đã tham gia vào tiến trình
phát triển Linux và vì vậy Linux ngày càng đáp ứng nhu cầu của người dùng
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 1994, hệ điều hành Linux phiên bản 1.0 được chính thức phát hành và
ngày càng nhận được sự quan tâm của người dùng
Năm 1995, nhân 1.2 được phổ biến Phiên bản này đã hỗ trợ một
phạm vi rộng và phong phú phần cứng, bao gồm cả kiến trúc tuyến phần cứng
PCI mới
Năm 1996, nhân Linux 2.0 được phổ biến Phân bản này đã hỗ trợ kiến
trúc phức hợp, bao gồm cả cổng Alpha 64-bit đầy đủ, và hỗ trợ kiến trúc đa bộ
xử lý Phân phối nhân Linux
2.0 cũng thi hành được trên bộ xử lý Motorola 68000 và kiến trúc SPARC
của SUN Các thi hành của Linux dựa trên vi nhân GNU Mach cũng chạy trên
PC và PowerMac
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 MS Windows 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
Các phiên bản của Linux được xác định bởi hệ thống chỉ số theo một số
mức (hai hoặc ba mức) Trong đó đã quy ước rằng với các chỉ số từ mức thứ
5
Trang 6hai trở đi, nếu là số chẵn thì dòng nhân đó đã khá ổn định và tương đối hoàn
thiện, còn nếu là số lẻ thì dòng nhân đó vẫn đang được phát triển tiếp
1.1.2 Vấn đề bản quyền
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 nhận bản mới nhất các thành phần cần thiết từ các site ftp và 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ì 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 và nhóm phát triển Linux đã tiến hành thực hiện
nhiều giải pháp nhằm làm cho công việc khởi tạo hệ thống đỡ vất vả Một
trong những giải pháp điển hình nhất là cung cấp tập các gói chương trình đã
tiền dịch chuẩn hóa
Những tập hợp như vậy hay những bản phân phối là lớn hơn nhiều so
với hệ thống Linux cơ sở Chúng thường bao gồm các tiện ích bổ sung cho khởi
tạo hệ thống, các thư viện quản lý, cũng như nhiều gói đã được tiền dịch, sẵn
sàng khởi tạo của nhiều bộ công cụ UNIX dùng chung, chẳng hạn như phục vụ
tin, trình duyệt web, công cụ xử lý, soạn thảo văn bản và thậm chí các trò chơi
Cách thức phân phối ban đầu rất đơn giản song ngày càng được nâng cấp
và hoàn thiện bằng phương tiện quản lý gói tiên tiến Các bản phân phối ngày
nay bao gồm các cơ sở dữ liệu tiến hóa gói, cho phép các gói dễ dàng được
khởi tạo, nâng cấp và loại bỏ
Nhà phân phối đầu tiên thực hiện theo phương châm này là Slakware, và
chính họ là những chuyển biến mạnh mẽ trong cộng đồng Linux đối với công
việc quản lý gói khởi tạo
Linux Tiện ích quản lý gói RPM (RedHat Package Manager) của công
ty RedHat là một trong những phương tiện điển hình
Nhân Linux là phần mềm tự do được phân phối theo Giấy phép sở hữu
công cộng phần mềm GNU GPL
1.1.3 Các thành phần tích hợp Hệ điều hành Linux
Linux sử dụng rất nhiều thành phần từ Dự án phần mềm tự do GNU, từ
hệ điều hành BSDcủa Đại học Berkeley và từ hệ thống X-Window của MIT
Thư viện hệ thống chính của Linux được bắt nguồn từ Dự án GNU, sau
đó được rất nhiều người trong cộng đồng Linux phát triển tiếp, những phát triển
tiếp theo như vậy chủ yếu liên quan tới việc giải quyết các vấn đề như thiếu vắng
địa chỉ (lỗi trang), thiếu hiệu quả và gỡ rối Một số thành phần khác của Dự án
GNU, chẳng hạn như trình biên dịch GNU C (gcc), vốn là chất lượng cao nên
được sử dụng nguyên xy trong Linux
Các tool quản lý mạng được bắt nguồn từ mã 4.3BSD song sau đó đã
được cộng đồng Linux phát triển, chẳng hạn như thư viện toán học đồng xử lý
dấu chấm động Intel và các trình điều khiển thiết bị phần cứng âm thanh PC
Trang 7Các tool quản lý mạng này sau đó lại được bổ sung vào hệ thống BSD
Hệ thống Linux được duy trì gần như bởi một mạng lưới không chặt chẽ
các nhà phát triển phần mềm cộng tác với nhau qua Internet, mạng lưới này gồm
các nhóm nhỏ và cá nhân chịu trách nhiệm duy trì tính toàn vẹn của từng thành
phần Một lượng nhỏ các site phân cấp ftp Internat công cộng đã đóng vai trò
nhà kho theo chuẩn de facto để chứa các thành phần này Tài liệu Chuẩn phân
cấp hệ thống file (File System Hierarchy Standard) được cộng đồng
Linux duy trì nhằm giữ tính tương thích khắc phục được sự khác biệt rất lớn
giữa các thành phần hệ thống
1.1.4 Một số đặc điểm chính của Linux
Dưới đây trình bày một số đặc điểm chính của của hệ điều hành Linux hiện tại: Linux tương thích với nhiều hệ điều hành như DOS, MicroSoft Windows :
Cho phép cài đặt Linux cùng với các hệ điều hành khác trên cùng một ổ
cứng Linux có thể truy nhập đến các file của các hệ điều hành cùng một ổ đĩa
Linux cho phép chạy mô phỏng các chương trình thuộc các hệ điều hành khác
Do giữ được chuẩn của UNIX nên sự chuyển đổi giữa Linux và các hệ
UNIX khác là dễ dàng
Linux là một hệ điều hành UNIX tiêu biểu với các đặc trưng là đa người
dùng, đa chương trình và đa xử lý
Linux có giao diện đồ hoạ (GUI) thừa hưởng từ hệ thống X-Window
Linux hỗ trợ nhiều giao thức mạng, bắt nguồn và 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
Linux khá mạnh và chạy rất nhanh ngay cả khi nhiều tiến trình hoặc nhiều
cửa sổ Linux được cài đặt trên nhiều chủng loại máy tính khác nhau như PC,
Mini và việc cài đặt khá thuận lợi Tuy nhiên, hiện nay chưa xuất hiện Linux trên
máy tính lớn (mainframe)
Linux ngày càng được hỗ trợ bởi các phần mềm ứng dụng bổ sung như
soạn thảo, quản lý mạng, quản trị cơ sở dữ liệu, bảng tính
Linux hỗ trợ tốt cho tính toán song song và 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
Là một hệ điều hành với mã nguồn mở, được phát triển qua cộng đồng
nguồn mở (bao gồm cả Free Software Foundation) nên Linux phát triển nhanh
Linux là một trong một số ít các hệ điều hành được quan tâm nhiều nhất trên thế
giới hiện nay
Linux là một hệ điều hành hỗ trợ đa ngôn ngữ một cách toàn diện nhất Do
Linux cho phép hỗ trợ các bộ mã chuẩn từ 16 bit trở lên (trong đó có các
bộ mã ISO10646, Unicode) cho nên việc bản địa hóa trên Linux là triệt để nhất
7
Trang 8trong các hệ điều hành
Tuy nhiên cũng tồn tại một số khó khăn làm cho Linux chưa thực sự trở
thành một hệ điều hành phổ dụng, dưới đây là một số khó khăn điển hình:
Tuy đã có công cụ hỗ trợ cài đặt, tuy nhiên, việc cài đặt Linux còn tương
đối phức tạp và khó khăn Khả năng tương thích của Linux với một số loại
thiết bị phần cứng còn thấp do chưa có các trình điều khiển cho nhiều thiết bị,
Phần mềm ứng dụng chạy trên nền Linux tuy đã phong phú song so với
một số hệ điều hành khác, đặc biệt là khi so sánh với MS Windows, thì vẫn
còn có khoảng cách
Với sự hỗ trợ của nhiều công ty tin học hàng đầu thế giới (IBM, SUN,
HP ) và sự tham gia phát triển của hàng vạn chuyên gia trên toàn thế giới
thuộc cộng đồng Linux, các khó khăn của Linux chắc chắn sẽ nhanh chóng
được khắc phục
1.2 Các thành phần cơ bản của Linux
Hệ thống Linux, được thi hành như một hệ điều hành UNIX truyền thống,
gồm shell và ba thành phần (đã dạng mã chương trình) sau đây:
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 và tiến 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
Thư viện hệ thống xác định một tập chuẩn các hàm để các ứng dụng tương
tác với nhân, và thi hành nhiều chức năng của hệ thống nhưng không cần có
các đặc quyền của mô đun thuộc nhân Một hệ thống con điển hình được thi
hành dựa trên thư viên hệ thống là hệ thống file Linux
Tiện ích hệ thống là các chương trình thi hành các nhiệm vụ quản lý
riêng rẽ, chuyên biệt Một số tiện ích hệ thống được gọi ra chỉ một lần để khởi
động và cấu hình phương tiện hệ thống, một số tiện ích khác, theo thuật ngữ
UNIX được gọi là trình chạy ngầm (daemon), có thể chạy một cách thường
xuyên (thường theo chu kỳ), điều khiển các bài toán như hưởng ứng các kết nối
mạng mới đến, tiếp nhận yêu cầu logon, hoặc cập nhật các file log
Tiện ích (hay lệnh) có sẵn trong hệ điều hành (dưới đây tiện ích được coi là
lệnh thường trực) Nội dung chính yếu của tài liệu này giới thiệu chi tiết về một
số lệnh thông dụng nhất của Linux Hệ thống file sẽ được giới thiệu trong
chương 3 Trong các chương sau có đề cập tới nhiều nội dung liên quan đến nhân
và shell, song dưới đây là một số nét sơ bộ về chúng
1.2.1 Nhân hệ thống (kernel)
Nhân (còn được gọi là hệ lõi) của Linux, là một bộ các môdun chương
trình có vai trò điều khiển các thành phần của máy tính, phân phối các tài
Trang 9nguyên cho người dùng (các tiến trình người dùng) Nhân chính là cầu nối giữa
chương trình ứng dụng với phần cứng Người dùng sử dụng bàn phím gõ nội
dung yêu cầu của mình và yêu cầu đó được nhân gửi tới shell: Shell phân tích
lệnh và gọi các chương trình tương ứng với lệnh để thực hiện
Một trong những chức năng quan trọng nhất của nhân là giải quyết bài toán
lập lịch, tức là hệ thống cần phân chia CPU cho nhiều tiến trình hiện thời cùng
tồn tại Đối với Linux, số lượng tiến trình có thể lên tới con số hàng nghìn Với
số lượng tiến trình đồng thời nhiều như vậy, các thuật toán lập lịch cần phải đủ
hiệu quả: Linux thường lập lịch theo chế độ Round Robin (RR) thực hiện việc
luân chuyển CPU theo lượng tử thời gian
Thành phần quan trọng thứ hai trong nhân là hệ thống các môđun chương
trình (được gọi là lời gọi hệ thống) làm việc với hệ thống file Linux có hai
cách thức làm việc với các file: làm việc theo byte (ký tự) và làm việc theo
khối Một đặc điểm đáng chú ý là file trong Linux có thể được nhiều người cùng
truy nhập tới nên các lời gọi hệ thống làm việc với file cần đảm bảo việc file
được truy nhập theo quyền và được chia xẻ cho người dùng
1.2.2 Hệ vỏ (shell)
Người dùng mong muốn máy tính thực hiện một công việc nào đó thì cần
gõ lệnh thể hiện yêu cầu của mình để hệ thống đáp ứng yêu cầu đó Shell là bộ
dịch lệnh và hoạt động như một kết nối trung gian giữa nhân với người dùng:
Shell nhận dòng lệnh do người dùng đưa vào; và từ dòng lệnh nói trên, nhân
tách ra các bộ phận để nhận được một hay một số lệnh tương ứng với các đoạn
văn bản có trong dòng lệnh Một lệnh bao gồm tên lệnh và tham số: từ đầu tiên
là tên lệnh, các từ tiếp theo (nếu có) là các tham số Tiếp theo, shell sử dụng
nhân để khởi sinh một tiến trình mới (khởi tạo tiến trình) và sau đó, shell chờ đợi
tiến trình con này tiến hành, hoàn thiện và kết thúc Khi shell sẵn sàng tiếp nhận
dòng lệnh của người dùng, một dấu nhắc shell (còn gọi là dấu nhắc nhập lệnh)
xuất hiện trên màn hình
Linux có hai loại shell phổ biến là: C-shell (dấu nhắc %), Bourne-shell
(dấu nhắc $) và một số shell phát triển từ các shell nói trên (chẳng hạn,
TCshell - tcsh với dấu nhắc ngầm định > phát triển từ C-shell và GNU Bourne
- bash với dấu nhắc bash # phát triển từ Bourne-shell) Dấu mời phân biệt
shell nói trên không phải hoàn toàn rõ ràng do Linux cho phép
người dùng thay đổi lại dấu nhắc shell nhờ việc thay giá trị các biến môi trường
PS1 và PS2 Trong tài liệu này, chúng ta sử dụng ký hiệu "hàng rào #" để biểu
thị dấu nhắc shell
C-shell có tên gọi như vậy là do cách viết lệnh và chương trình lệnh Linux
tựa như ngôn ngữ C Bourne-shell mang tên tác giả của nó là Steven Bourne
Một số lệnh trong C- shell (chẳng hạn lệnh alias) không còn có trong
Bourne-shell và vì vậy để nhận biết hệ thống đang làm việc với Bourne-shell nào, chúng ta gõ
lệnh: # alias
Nếu một danh sách xuất hiện thì shell đang sử dụng là C-shell; ngược lại,
9
Trang 10nếu xuất hiện thông báo "Command not found" thì shell đó là Bourne-shell
Lệnh được chia thành 3 loại lệnh:
Lệnh thường trực (có sẵn của Linux) Tuyệt đại đa số lệnh được giới thiệu
trong tài liệu này là lệnh thường trực Chúng bao gồm các lệnh được chứa sẵn
trong shell và các lệnh thường trực khác
File chương trình ngôn ngữ máy: chẳng hạn, người dùng viết trình trên
ngôn ngữ C qua bộ dịch gcc (bao gồm cả trình kết nối link) để tạo ra một
chương trình trên ngôn ngữ máy
File chương trình shell (Shell Scrip)
Khi kết thúc một dòng lệnh cần gõ phím ENTER để shell phân tích và thực hiện lệnh
1.3 Sử dụng lệnh trong Linux
Như đã giới thiệu ở phần trên, Linux là một hệ điều hành đa người dùng,
đa nhiệm, được phát triển bởi hàng nghìn chuyên gia tin học trên toàn thế giới
nên hệ thống lệnh cũng ngày càng phong phú; đến thời điểm hiện nay Linux
có khoảng hơn một nghìn lệnh Tuy nhiên chỉ có khoảng vài chục lệnh là
thông dụng nhất đối với người dùng
Cũng như đã nói ở trên, người dùng làm việc với máy tính thông qua việc
sử dụng trạm cuối: người dùng đưa yêu cầu của mình bằng cách gõ "lệnh" từ
bàn phím và giao cho hệ điều hành xử lý
Khi cài đặt Linux lên máy tính cá nhân thì máy tính cá nhân vừa đóng vai
trò trạm cuối, vừa đóng vai trò máy tính xử lý
1.3.1 Dạng tổng quát của lệnh Linux
Cú pháp lệnh: # <Tên lệnh> [<các
tham số>] Trong đó:
Tên lệnh là một dãy ký tự, không có dấu cách, biểu thị cho một lệnh của
Linux hay một chương trình Người dùng cần hệ điều hành đáp ứng yêu cầu gì
của mình thì phải chọn đúng tên lệnh Tên lệnh là bắt buộc phải có khi gõ lệnh
Các tham số có thể có hoặc không có, được viết theo quy định của lệnh mà
chúng ta sử dụng, nhằm cung cấp thông tin về các đối tượng mà lệnh tác
động tới Ý nghĩa của các dấu [, <, >, ] được giải thích ở phần quy tắc viết
lệnh
Các tham số được phân ra thành hai loại: tham số khóa (sau đây gọi là
"tùy chọn") và tham số vị trí
Tham số vị trí thường là tên file, thư mục và thường là các đối tượng chịu
sự tác động của lệnh Khi gõ lệnh, tham số vị trí được thay bằng những đối
Trang 11tượng mà người dùng cần hướng tác động tới
Tham số khóa chính là những tham số điều khiển hoạt động của lệnh
theo các trường hợp riêng Trong Linux, tham số khóa thường bắt đầu bởi dấu
trừ "-" hoặc hai dấu trừ liên tiếp " " Một lệnh có thể có một số hoặc rất nhiều
-l : là tham số khóa, cho biết yêu cầu xem đầy đủthông tin về các đối tượng
hiện ra Chú ý, trong tham số khóa chữ cái (chữ "l") phải đi ngay sau dấu trừ "-"
Chú ý:
Linux (và UNIX nói chung) được xây dựng trên ngôn ngữ lập trình C, vì
vậy khi gõ lệnh phải phân biệt chữ thường với chữ hoa Ngoại trừ một số ngoại
lệ, trong Linux chúng ta thấy phổ biến là:
o Các tên lệnh là chữ thường,
o Một số tham số khi biểu diễn bởi chữ thường hoặc chữ hoa sẽ có ý
nghĩa hoàn toàn khác nhau)
o Tên các biến môi trường cũng thường dùng chữ hoa Linux phân biệt
siêu người dùng (superuser hoặc root) với người dùng thông thường Trong
tập hợp lệnh của Linux, có một số lệnh cũng như một số tham số khóa mà chỉ
siêu người dùng mới được phép sử dụng
Một dòng lệnh có thể có nhiều hơn một lệnh, trong đó lệnh sau được
ngăn cách bởi với lệnh đi ngay trước bằng dấu ";" hoặc dấu "|"
Khi gõ lệnh, nếu dòng lệnh quá dài, Linux cho phép ngắt dòng lệnh xuống
dòng dưới bằng cách thêm ký tự báo hiệu chuyển dòng "\" tại cuối dòng
Sau khi người dùng gõ xong dòng lệnh, shell tiếp nhận dòng lệnh này và
phân tích nội dung văn bản của lệnh Nếu lệnh được gõ đúng thì nó được thực
hiện; ngược lại, trong trường hợp có sai sót khi gõ lệnh thì shell thông báo về
sai sót vàdấu nhắc shell lại hiện ra để chờ lệnh tiếp theo của người dùng Về phổ
biến, nếu như sau khi người dùng gõ lệnh, không thấy thông báo sai sót hiện ra thì
có nghĩa lệnh đã được thực hiện một cách bình thường
1.3.2 Các ký hiệu đại diện
Khi chúng ta sử dụng các câu lệnh về file và thư mục, chúng ta có thể sử
dụng các ký tự đặc biệt được gọi là các ký tự đại diện để xác định tên file, tên thư
mục.:
11
Trang 12Jo* : Các file bắt đầu với Jo
Jo*y : Các file bắt đầu với Jo và kết thúc với y
Ut*l*s.c : Các file bắt đầu với Ut, chứa một ký tự l và kết thúc với s.c
?.h : Các file bắt đầu với một ký tự đơn, theo sau bởi h
Doc[0-9].txt : Các file có tên Doc0.txt, Doc1.txt ….Doc9.txt
Doc0[A-Z].txt : Các file có tên Doc0A.txt, Doc0B.txt …Doc0Z.txt
Các ký hiệu liên quan đến cú pháp câu lệnh được sử dụng bởi phần lớn
các câu lệnh Chúng cung cấp một cách thuận tiện và đồng nhất để xác định các
mẫu phù hợp Chúng tương tự với các ký tự đại diện, nhưng chúng mạnh hơn
rất nhiều Chúng cung cấp một phạm vi rộng các mẫu lựa chọn
Tương ứng với một ký tự đơn bất kỳ ngoại trừ dòng mới
* Tương ứng với không hoặc nhiều hơn các ký tự đứng trước
/ Lấy ký hiệu theo sau dấu gạch ngược
1.3.3 Trợ giúp lệnh
Do Linux là một hệ điều hành rất phức tạp với hàng nghìn lệnh và mỗi lệnh
lại có thể có tới vài hoặc vài chục tình huống sử dụng do chúng cho phép có
nhiều tùy chọn lệnh Để trợ giúp cách sử dụng các câu lệnh, Linux cho phép
người dùng sử dụng cách thức gọi trang Man để có được các thông tin đầy đủ giới
Trang 13thiệu nội dung các lệnh Cú pháp lệnh: # man <tên-lệnh>
CHƯƠNG II. CƠ SỞ LÝ THUYẾT
I Giới thiệu tổng quan về đề tài:
Website của chúng em là một website chuyên cung ứng dịch vụ cho thuê xe Với các công ty cung ứng dịch vụ hàng đầu thế giới có sự uy tín và chất lượng cao
Hãy đến với Website của chúng tôi Khi bạn sử trang web của chúng tôi bạn sẽtìm thấy được sự khác biệt so với một trang web về dịch vụ
Các chức năng chính của một website quản lý và cho thuê xe :
- Xem chi tiết về xe cho thuê
- Thuê xe qua mạng
- Hỗ trợ trực tuyến
- Liên hệ
Ngoài chức năng trên trang web của chúng tôi có sự khác biệt sau:
Website của chúng tôi cho phép các doanh nghiệp quảng cáo xe trên website.Các công ty, người sử dụng có thể trao đổi trực tiếp trên trang web thông qua việcđăng ký trên trang web
Bình luận, bình chọn và đưa ra các nhận xét về hãng xe, chất lượng của xe
1 Xác định và phân tích các giá trị nghiệp vụ
Dựa vào mô tả bài toán ở trên, có thể thấy hệ thống Website sẽ đem lại một sốlợi ích sau:
13
Trang 141.1 Mang lại giá trị nghiệp vụ
Tăng khả năng xử lý: Thông tin tìm kiếm sẽ được xử lý một cách tự động, cóthể xử lý đồng thời và cho kết quả nhanh chóng, chính xác
Thu thập được thông tin về các hãng xe và xe cho thuê một cách nhanh nhất vàchính xác nhất
Các yêu cầu thống kê và thanh toán trực tiếp đều được hiện thực hóa trênwebsite một cách khoa học và chính xác nhất
Đáp ứng yêu cầu nghiệp vụ một cách tin cậy, chính xác, an toàn, bí mật
1.2. Mang lại giá trị kinh tế
Khi website đi vào hoạt động sẽ tạo ra một lượng lợi nhuận nhất định cho nhàquản trị
Giảm chi phí về mặt thời gian cũng như công sức Giá cả các hãng xe và xe chothuê trên website rất cạnh tranh với dịch vụ tốt nhất và chi phí nhỏ nhất chắc chắn sẽlàm hài lòng khách hàng
1.3. Mang lại giá trị sử dụng
Khách hàng có thể nhanh chóng tìm ra các thông tin về hãng xe và xe cho thuê
mà họ tìm kiếm khi họ thực hiện công việc tìm kiếm trên website
2 Xác định yêu cầu của hệ thống website
Yêu cầu xây dựng website đòi hỏi xây dựng các chức năng như sau:
- Quản lý Đặt xe trực tuyến
- Quản lý thông tin, tin tức về khách hàng
- Tìm kiếm thông tin hãng xe và xe cho thuê
- Quản lý Chế độ chọn ngôn ngữ theo tiêu chí khách hàng
- Quản lý Liên hệ
- Quản lý đăng nhập, đăng ký
- Quản lý Thông tin đối tác
- Cập nhật thông tin doanh nghiệp, đối tác, khách hàng, tài khoản…
- Thanh toán trực tuyến
Trang 15II Công cụ lập trình
2.1 Khái niệm PHP
PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf tạo ra năm 1994
Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử dụng trong môitrường chuyên nghiệp và nó trở thành “PHP: Hypertext Preprocessor”
Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơngiản đó là một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trongHTML
PHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một côngnghệ phía máy chủ (Server-Side) và không phụ thuộc vào môi trường (cross-platform).Đây là hai yếu tố rất quan trọng, thứ nhất khi nói công nghệ phía máy chủ tức là nóiđến mọi thứ trong PHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất không phụthuộc môi trường cho phép PHP chạy trên hầu hết trên các hệ điều hành nhưWindows, Unix và nhiều biến thể của nó Đặc biệt các mã kịch bản PHP viết trên máychủ này sẽ làm việc bình thường trên máy chủ khác mà không cần phải chỉnh sửa hoặcchỉnh sửa rất ít
Khi một trang Web muốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất
cả các quá trình xử lý thông tin trong trang Web đó, sau đó đưa ra kết quả ngôn ngữHTML
Khác với ngôn ngữ lập trình, PHP được thiết kế để chỉ thực hiện điều gì đó saukhi một sự kiện xảy ra (ví dụ, khi người dùng gửi một biểu mẫu hoặc chuyển tới mộtURL)
2.2 Tại sao nên dùng PHP:
Để thiết kế Web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn,mặc dù cấu hình và tính năng khác nhau nhưng chúng vẵn đưa ra những kết quả giốngnhau Chúng ta có thể lựa chọn cho mình một ngôn ngữ : ASP, PHP, Java, Perl vàmột số loại khác nữa Vậy tại sao chúng ta lại nên chọn PHP Rất đơn giản, có những lí
do sau mà khi lập trình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này
15
Trang 16PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giảipháp khác
PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu cósẵn, tính linh động, bền vững và khả năng phát triển không giới hạn
Đặc biệt PHP là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí, vàchính vì mã nguồn mở sẵn có nên cộng đồng các nhà phát triển Web luôn có ý thức cảitiến nó, nâng cao để khắc phục các lỗi trong các chương trình này
PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các lậptrình viên chuyên nghiệp, mọi ý tuởng của các bạn PHP có thể đáp ứng một cách xuấtsắc
Cách đây không lâu ASP vốn được xem là ngôn ngữ kịch bản phổ biến nhất,
vậy mà bây giờ PHP đã bắt kịp ASP, bằng chứng là nó đã có mặt trên 12 triệu Website.
Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP và
xử lí chúng theo các hướng dẫn được mã hóa Mã lệnh PHP yêu cầu máy chủ gửi một
dữ liệu thích hợp (mã lệnh HTML) đến trình duyệt Web Trình duyệt xem nó như làmột trang HTML têu chuẩn Như ta đã nói, PHP cũng chính là một trang HTML nhưng
có nhúng mã PHP và có phần mở rộng là HTML Phần mở của PHP được đặt trong thẻ
PHP
Trang 17mở <?php và thẻ đóng ?> Khi trình duyệt truy cập vào một trang PHP, Server sẽ đọcnội dung file PHP lên và lọc ra các đoạn mã PHP và thực thi các đoạn mã đó, lấy kếtquả nhận được của đoạn mã PHP thay thế vào chỗ ban đầu của chúng trong file PHP,cuối cùng Server trả về kết quả cuối cùng là một trang nội dung HTML về cho trìnhduyệt.
3.1 Giới thiệu cơ sở dữ liệu:
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theowww mysql com) và được sử dụng phối hợp với PHP Trước khi làm việc vớiMySQL cần xác định các nhu cầu cho ứng dụng
MySQL là cơ sở dữ có trình giao diện trên Windows hay Linux, cho phép
người sử dụng có thể thao tác các hành động liên quan đến nó Việc tìm hiểu từng công
nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai công nghệ PHP
và MySQL là một công việc cần thiết và rất quan trọng
Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người
sử dụng, ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong
cơ sở dữ liệu với nhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích và yêu cầu người dùng vượt ra ngoài cơ sở
dữ liệu, nên bạn cần có các phương thức truy cập dữ liệu giữa các cơ sở
17
Trang 18dử liệu với nhau như: Microsoft Access với SQL Server, hay SQL Server và cơ sở dữ liệu Oracle
Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mô hình cơ sở dữ liệu, phân tích và thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêng của từng ứng dụng Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một số tiêu chuẩn của hệ thống cơ sở dữ liệu nnhằm tăng tính tối ưu khi truy cập và xử lí
Xử lí: Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích khác nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của cơ sở dữ liệu để xuất ra kết quả như yêu cầu Để thao tác hay xử lí dữ liệu bên trong chính cơ sở dữ liệu ta sử dụng các ngôn ngữ lập trình như: PHP, C++, Java, Visual Basic…
3.3 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
3.3 1 Loại dữ liệu numeric: bao gồm kiểu số nguyên và kiểu số chấm động
Kiểu dữ liệu số nguyên:
Loại Range Bytes Diễn giải
Tinyint -127->128 hay 0 255 1 Số nguyên rất nhỏ
Int -231->231-1 hay 0 232-1 4 Số nguyên
Bigint -263->263-1 hay 0 264-1 8 Số nguyên lớn
Trang 19Kiểu dữ liệu số chấm động
Loại Range Bytes Diễn giải
Float phụ thuộc số thập phân 4 Số thập phân
dạng Single hay Double Float(M, D)
±1 7976931348623157308
±2 308
dạng Double
dưới dạng char
3.3 2 Loại dữ liệu kiểu Date and Time
Kiểu dữ liệu Date and Time cho phép bạn nhập dữ liệu dưới dạng chuỗi ngày tháng hay dạng số
Dữ liệu kiểu số nguyên
Date 1000-01-01 Date trình bày dưới dạng
Date và Time trình bày dưới dạng yyyy-mm-dd hh:mm:ss
19
Trang 20TimeStamp[(M)] 1970-01-01
00:00:00
TimeStamp trình bày dưới dạng yyyy-mm-dd hh:mm:ss
3.3 3 Loại dữ liệu String
Kiểu dữ liệu String chia làm 3 loại: loại thứ nhất như char (chiều dài cố định) vàvarchar (chiều dài biến thiên); loại thứ hai là Text hay Blob, Text cho phép lưu chuỗirất lớn, Blob cho phép lưu đối tượng nhị phân; loại thứ ba là Enum và Set
Kiểu dữ liệu String
nhất 255 ký tự
Varchar 1-255 characters Chiều dài của chuỗi lớn
nhất 255 ký tự
Trang 21Tinyblob 28-1 Khai báo cho Field chứa
kiểu đối tượng nhị phân
cỡ 255 characters
kiểu chuỗi cỡ 255characters
kiểu blob cỡ 65, 535characters
kiểu chuỗi dạng văn bản
cỡ 65, 535 characters
kiểu blob vừa khoảng 16,
777, 215 characters
kiểu chuỗi dạng văn bảnvừa khoảng 16, 777, 215
characters
kiểu blob lớn khoảng 4,
294, 967, 295 characters
kiểu chuỗi dạng văn bảnlớn khoảng 4, 294, 967,
295 characters
21
Trang 223.4 Các thao tác cập nhật dữ liệu:
SELECT (Truy vấn mẫu tin):Select dùng để truy vấn từ một hay nhiều bảngkhác nhau, kết quả trả về là một tập mẫu tin thỏa mãn các điều kiện chotrước nếu có, cú pháp của phát biểu SQL dạng SELECT như sau:
SELECT<danh sách các cột>
[FROM<danh sách bảng>]
[WHERE<các điều kiện ràng buộc>]
[GROUP BY<tên cột/biểu thức trong SELECT>]
[HAVING<điều kiện bắt buộc của GROUP BY>]
[ORDER BY<danh sách các cột>]
[LIMIT FromNumber |ToNumber]
INSERT(Thêm mẫu tin):
Cú pháp: INSERT INTO Tên_bảng VALUES(Bộ_giá_trị)
UPDATE(Cập nhật dữ liệu):
Cú pháp: UPDATE TABLE Tên_bảng SET Tên_cột=Biểu_thức,
[WHERE Điều_kiện]
DELETE(Xóa mẫu tin):
Cú pháp: DELETE FROM Tên_bảng
[WHERE Điều_kiện]
3.5 Các hàm thông dụng trong MySQL
3.5 1 Các hàm trong phát biểu GROUP BY
Hàm AVG: Hàm trả về giá trị bình quân của cột hay trường trong câu truy vấn
Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câu truy vấn