Nếu nhìn hệ thống từ các lớp, thì hệ điều hành thông thường được gọi là “nhân hệ thống” System Kernel, nó được cách ly với chương trình của người dùng.. Rất nhiều các hệ thống ứng dụng,
Trang 1CHỦ ĐỀ: CẤU TRÚC, SỬ DỤNG, NGUYÊN
LÝ, PHÂN TÍCH MÃ NGUỒN CentOS
NHÓM 6:
1.1 Giới thiệu về HDH Linux/CentOS
Trang 2Nă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 với mục đích tạo
ra một hệ điều hành Unix chạy trên PC với bộ xử lý Intel 80386
Năm 1994, phiên bản Linux 1.0 chính thức được phát hành Linux là một hệ điều hành dạng Unix, được viết lại từ đầu và không sử dụng một lệnh nào của Unix để tránh vấn đề bản quyền Nhưng hoạt động của Linux lại hoàn toàn dựa trên nguyên tắc hoạt động của Unix Linux là một hệ điều hành miễn phí, được cộng đồng IT phát triển trên mạng internet Linux là hệ điều hành đa nhiệm và đa người dùng, tận dụng được sức mạnh xử lý của máy 386 và các đời cao hơn, chạy được trên nhiều loại máy Linux hỗ trợ sẵn bộ giao thức TCP/IP giúp người dùng dễ dàng kết nối internet, có khả năng tương thích với các hệ thống mở, hỗ trợ người dùng với nhiều tiện ích Bên cạnh đó thì Linux vẫn tồn tại một số hạn chế Linux không có một công ty nào đứng
ra chịu trách nhiệm phát triển nó nên nếu gặp trục trặc sẽ không có ai có thể giải quyết miễn phí cho bạn Linux không dễ dàng cài đặt và hỗ trợ nhiều thiết bị phần cứng Các phiên bản phần cứng của Linux đều hỗ trợ theo nguyên tắc phần cứng của nhà phát triển Linux Quá trình sử dụng với người dùng tương đối khó khăn bởi Linux hỗ trợ giao tiếp bằng đồ họa ít, chủ yếu phải dùng bằng lệnh
Sau khi Linux ra đời và phát triển thì nó có nhiều phiên bản phát triển khác nhau nhưng đều dựa trên nhân của Linux Hiện nay trên thị trường hay trên internet có rất nhiều phiên bản cho người dùng lựa chọn, bản thương mại cũng có, bản miễn phí cũng có Có một số bản như: Ubuntu, Fedora, Red Hat Enterprise, CentOS… Trong quá trình phát triển của mình nó cũng tách
ra làm 2 dòng chính, 1 để phục vụ cho người dùng cá nhân với các ứng dụng hỗ trợ Hai là phục vụ cho máy chủ với nhiều tính năng ứng dụng mang tầm rộng hơn
CentOS (viết tắt của Community ENTerprise Operating System) là một bản phân phối của Linux, được xây dựng từ nhiều nguồn miễn phí của RedHat Hiện tại CentOS có phiên bản mới nhất là 6.4, được xây dựng dựa trên nền Red Hat Enterprise Linux 6, hỗ trợ dòng x86_64 (i386), có kernel 2.6 của Linux, sử dụng giao diện người dùng GNOME Và là bản miễn phí được phát triển mạnh mẽ bởi cộng đồng IT trên Internet
CentOS thường được sử dụng trên các hệ điều hành máy chủ web, Server
1.2 Hướng dẫn cài đặt CentOS 6.4
1.2.1 Yêu cầu phần cứng
- CPU: 1 GHz
- RAM: 512MB
Trang 3- HDD: 5GB trống
1.2.2 Quá trình cài đặt
chỉ:http://www.centos.org/modules/tinycontent/index.php?id=32 dung lượng khoảng hơn 5GB Sau đó tiến hành ghi ra đĩa DVD hoặc cài bằng VMWare Ở đây tôi sẽ cài bằng máy ảo VMWare
Các bước cài đặt được tiến hành như trong hình
Chọn vào Install or upgrade an exiting system để cài đặt mới
Trang 4Hệ thống sẽ load các file cần thiết cũng như xác định các thành phần phần cứng của máy.
Ở cửa sổ Disc Found hệ thống thông báo đã tìm thấy đĩa cài đặt, nhần OK để kiểm tra xem đĩa có bị lỗi hay không hoặc nhấn vào Skip để bỏ qua bước kiểm tra đĩa này nếu chắc chắn đĩa không có lỗi gì
Trang 5Tiến trình cài đặt bắt đầu Ta nhấn Next để tiếp tục
Lựa chọn ngôn ngữ trong quá trình cài đặt Có nhiều ngôn ngữ để lựa chon Ở đây chon tiếng Anh
Trang 6Lựa chọn kiểu bàn phím Thường là US.English Nhấn next để tiếp tục.
Lựa chọn kiểu thiết bị lưu trữ được sử dung để cài đặt Chọn Basic Storagr Device để lựa chọn ổ cứng gắn trong máy để cài đặt Nhấn Next để tiếp tục
Trang 7Do ổ đĩa trong trường hợp này chưa được phân vùng (đĩa trắng hoàn toàn) nên hệ thống đưa ra cảnh báo Ta chọn vào Yes, discard any data để bỏ qua tất cả
dữ liệu (nếu có) trên ổ đĩa
Trang 8Ở phần Hostname (tên máy) ta nhập vào địa chỉ FQDN cho server chẳng hạn như demo.com,…
Một cửa sổ hiện ra giúp lựa chọn card mạng Sau đó vào Configure Network Settings
trong lựa chọn Configure Network.
Trang 9Chọn time zone là Asia/Ho Chi Minh rồi ấn Next
Cài đặt mật khẩu cho người dung root
Trang 10Lựa chọn kiểu cài đặt CentOS vào ổ cứng, ở đây chọn Replace Existing Linux System
và chọn Review and modify partitioning layout Ấn Next để chuyển đến bước tiếp theo
Trang 11Kiểm tra xem các phân vùng đã chính xác chưa, nếu chưa chỉnh lại cho đúng Chú ý đến lv_root và Lv_swap Thông thường để phân vùng swap sẽ gấp đôi dung lượng RAM, dung lượng còn lại để cho phân vùng root (/) Ấn Next sẽ hiện ra bảng Format Warning Chọn Format rồi sau đó chọn Write change to disk.
Quá trình định dạng ổ cứng để cài đặt
Trang 12Cài đặt Boot Loader Chọn Change Device để lựa chọn phân vùng để ghi BootLoader Click chọn Use a boot loader password nếu hệ thống được truy cập bởi nhiều người dùng (ở trường hợp này không chọn) Ấn Next.
Trang 13Để lựa chọn những ứng dụng muốn cài đặt có thể chọn Customize now để thêm hoặc xóa và ấnNext
Lựa chọn những gói, ứng dụng muốn cài đặt Click Next
Trang 14Quá trình cài đặt bắt đầu Có thể mất một vài phút.
Cài đặt thành công Click Reboot để hoàn tất
Trang 15Màn hình đăng nhập của CentOS sau khi khởi động lại.
2. CẤU TRÚC VÀ SỬ DỤNG
2.1 Kiến trúc của HDH
Trang 16
Hình 1: Kiến trúc HDH
- Shell cung cấp các tập lệnh cho người dùng thao tác với kernel để thực hiện công việc Shell đọc các lệnh từ người dùng và xử lý Ngoài ra shell còn cung cấp một số đặc tính khác như chuyển hướng xuất nhập, ngôn ngữ lệnh để tạo ra các tập tin tương tự như bat trong MSDos Có nhiều shell được sử dụng trong Linux và mỗi shell có các bộ lệnh khác nhau
- Các tiện ích được sử dụng cho việc thao tác với tập tin, sao, lưu dữ liệu… Hầu hết các tiện ích sử dụng trong Linux đều là sản phẩm của GNU
- Ứng dụng là các tiện ích được các nhà sản xuất viết ra và cung cấp cho người dùng như là: word, hệ quản trị cơ sở dữ liệu…
- Kernel là trung tâm của hệ điều hành Linux cũng như CentOS, chứa các mã nguồn điều khiển hoạt động của toàn bộ hệ thống
- Phần cứng bao gồm các tổ chức phần cứng của máy như bộ xử lý trung tâm(CPU)…
Kiến trúc của CentOS có thể xem như là một loại kim tự tháp với các chức năng xếp chồng lên nhau Hệ điều hành tương tác trực tiếp với phần cứng, cung cấp các dịch vụ cơ bản cho các chương trình và ngăn cách các chương trình với phần cứng cụ thể Nếu nhìn hệ thống từ các lớp, thì hệ điều hành thông thường được gọi là “nhân
hệ thống” (System Kernel), nó được cách ly với chương trình của người dùng Bởi vì các chương trình ứng dụng nói chung, kể cả các hệ điều hành, độc lập phần cứng, nên dễ dàng chạy trên các phần cứng khác nhau vì không phụ thuộc vào phần cứng
cụ thể Chẳng hạn Shell và các editors (vi, ed) ở lớp ngoài tương tác với kernel bằng cách phát sinh ra gọi hệ thống (system call).Gọi hệ thống sẽ chỉ thị cho kernel làm những việc khác nhau mà chương trình gọi yêu cầu, thực hiện trao đổi dữ liệu giữa
Trang 17kernel và chương trình đó Một vài chương trình có tên trong hình là chương trình chuẩn trong cấu hình của hẹ thống và được biết tên dưới dạng các lệnh (commands) Lớp này cũng có thể bao hàm các chương trình người dùng với tên là a.out, một loại tên chuẩn do các tệp chạy được do bộ dịch C tạo ra Còn có loại ứng dụng khác được xây dựng trên lớp trên cùng của các chương trình có mức thấp hơn hiện diện ở lớp ngoài cùng của mô hình Mặc dù mô hình mô tả hai cấp khác nhau nhưng người dùng có thể mở rộng ra các cấp thích hợp Rất nhiều các hệ thống ứng dụng, các chương trình, cho cách nhìn ở mức cao, song tất cả đều dùng các dịch vụ cấp thấp được cung cấp bởi kernel.
2.2 Cấu trúc cây thư mục
Các hệ điều hành Linux đêu giữ lại cấu trúc cây thư lục lịch sử của Unix nhưng chúng không phải là Unix nên tùy từng bản phân phối mà cấu trúc này cũng được thay đổi theo Dưới đây là cấu trúc cây thư mục của CentOS
Trang 18- /: Thư mục gốc là nơi bắt đầu của tất cả thư mục và tệp tin Chỉ có người dùng root mới có quyền thao tác trên thư mục này Chú ý / khác với /root
là thư mục home của user root
- /boot: Thư mục này chứa các tập tin liên quan tới chương trình quản lý khởi động máy Nó lưu trữ dữ liệu cần sử dụng trước khi kernel bắt đầu
thực thi chương trình người dùng Chúng có thể bao gồm master boot
sector và sector map file Ví dụ như initrd, vmlinux.grub,
- /bin: Thư mục chứa các tệp tin thực thi của người dùng, các lệnh được sử dụng bởi tất cả người dùng trong hệ thống (khác với thư mục /sbin chỉ
được chạy bởi /sbin) Ví dụ: các lệnh man, cat, vi, grep,…
- /sbin – System binary: Thư mục này chứa các tệp tin thực thi của hệ thống, các lệnh quản trị hệ thống Chỉ người dùng root mới có quyền thực thi Nó
gồm các lệnh: fastboot, fasthalt, halt, update,….
Trang 19- /dev: chứa các tập tin thiết bị đầu cuối như USB hay bất kì thiết bị nào được gắn vào hệ thống.
- /etc: Trong thư mục này chứa các tập tin tuỳ biến của cả hệ thống Những tập tin trong này điều khiển cả quá trình khởi động máy, quản lí users, quản lí mạng Bên cạnh đó nó cũng chứa các đoạn mã dùng để khởi động hay tắt các chương trình đơn lẻ
- /home: thư mục chứa các tập tin của người dùng trong hệ thống ngoại trừ root có home directory là /root
- /lib: Nơi chứa đựng một vài thư viện dùng chung hoặc là đường dẫn tượng trưng đến các thư mục dùng chung đó Những thư viện này sẽ được sử dụng đến cho việc chạy một số các chương trình nhất định Trong thư mục /lib /modules chứa đựng những kernel modules, chúng được bật và tắt nếu cần thiết
- /lost+found: Trong thư mục này, những tệp tin bị mất sẽ được lưu trữ Những tệp tin được xếp vào dạng này là những tệp tin không đầy đủ hoặc
bị lỗi được tạo ra khi linux không được tắt một cách hoàn thiện
- /mnt: sử dụng để mount (gắn) các hệ thống tệp tin phụ như CD-Rom, phân vùng của windows dưới /mnt/cdrom hay /mnt/c, ngoài /mnt thì hiện nay thư mục thường được dùng là /media
- /opt: Thư mục này được tạo ra cho một số chương trình riêng của người sử dụng
- /proc:Thông tin về các tiến trình đang chạy sẽ được lưu trong /proc dưới dạng một hệ thống file thư mục mô phỏng Ví dụ thư mục con /proc/{pid} chứa các thông tin về tiến trình có ID là pid (pid ~ process ID) Ngoài ra đây cũng là nơi lưu thông tin về về các tài nguyên đang sử dụng của
hệ thống như: /proc/version, /proc/uptime
- /root: chứa dữ liệu của người dùng root
- /srv: Chứa dữ liệu liên quan đến các dịch vụ máy chủ như /srv/svs, các dữ liệu liên quan đến CVS
- /tmp: chứa các tập tin tạm thời được tạo ra bởi người dùng và hệ thống Các tập tin trong thư mục này sẽ bị xóa khi khởi động lại
- /usr (unix system resources): chứa các tập tin thực thi, thư viện, tài liệu, mã nguồn cho các chương trình
/usr/bin chứa các file thực thi của người dùng như: at, awk, cc, less
/usr/sbin chứa các file thực thi của hệ thống dưới quyền của root như: atd, cron, sshd…
/usr/lib chứa các thư viện cho các chương trình trong /usr/bin và /usr/sbin
Trang 20 /usr/local chứa các chương tình của người dùng được cài từ mã nguồn Ví dụ như cài apache từ mã nguồn, nó sẽ được lưu dưới /usr/local/apache2
- Thư mục /var: chứa các tệp tin mà có dung lượng biến đổi theo thời gian như: tập tin ghi nhật ký hệ thống (/var/log), các gói và các tập tin cơ sở dữ liệu (/var/lib), thư điện tử (/var/mail)…
2.3 Cách sử dụng (Các lệnh cơ bản)
Linux - CentOS 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 người trên toàn thế giới nên hệ thống lệnh cũng ngày càng phong phú
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 Ở đây sẽ giới thiệu vài chục lệnh đó Chúng ta đừng e ngại về sốlượng lệnh được giới thiệu chỉ chiếm một phần nhỏtrong tập hợp lệnh bởi vì đây là những lệnh thông dụng nhất và chúng cung cấp một phạm vi ứng dụng rộng lớn, đủ thỏa mãn yêu cầu của chúng ta
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ý
Dạng tổng quát của lệnh Linux có thể được viết nhưsau:
# <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
Trang 21Các tham số được phân ra thành hai loại: tham sốkhóa (tùy chọn) và tham sốvịtrí (tên file, thư mục) Khi gõ lệnh, tham sốvịtrí được thay bằng những đối tượ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 " " Khi gõ lệnh, cũng giống nhưtên lệnh, tham sốkhóa phải được viết chính xác nhưtrình bày trong
mô tảlệnh Một lệnh có thểcó một sốhoặc rất nhiều tham sốkhóa Phụthuộc vào yêu cầu cụthểcủa mình, người dùng có thểchọn một hoặc một sốcác tham sốkhóa khi gõ lệnh Trong mô tảlệnh, thường xuất hiện thuật ngữtùy-chọn Tùy chọn lệnh (thực chất là tham sốkhóa) cho phép điều chỉnh hoạt động của lệnh trong Linux, làm cho lệnh có tính phổdụng cao Tuỳchọn lệnh cho phép lệnh có thểđáp ứng ý muốn của người dùng đối với hầu hết (tuy không phải lúc nào cũng vậy) các tình huống đặt ra cho thao tác ứng với lệnh
Ví dụ sử dụng lệnh sau để xem thông tin về các file
Hệ điều hành phân biệt người dùng root (siêu người dùng) và người dùng thông thường nên một số lệnh chỉ được thực hiện dưới quyền root như lệnh passwd (dùng để thay đổi mật khẩu người dùng)
Trang 22Mộ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 "|".
2.3.1 Các quy ước khi viết lệnh
Tên lệnh là bắt buộc, phải là từ đầu tiên trong bất kỳ lệnh nào, phải được
gõ đúng như khi mô tả lệnh
Tên khái niệm được nằm trong cặp dấu ngoặc quan hệ (< và >) biểu thịcho một lớp đối tượng và là tham sốbắt buộc phải có Khi gõ lệnh thì tên khái niệm (có thể được coi là "tham sốhình thức") phải được thay thếbằng một từ (thường là tên file, tên thưmục và có thể được coi là "tham sốthực sự") để chỉ đối tượng liên quan đến thao tác của lệnh
Ví dụ: cú pháp của lệnh morexem nội dung file là
# more <file>
Từ morelà tên lệnh, còn <file> là tham sốtrong đó filelà tên khái niệm và
là tham sốbắt buộc phải có Lệnh này có tác động là hiện lên màn hình theo cách thức cuộn nội dung của file với tên đã chỉtrong lệnh Chẳng hạn để xem thông tin của file taileu.txt thì ta gõ # more tailieu.txt
Các bộphận nằm giữa cặp dấu ngoặc vuông [] là có thể gõ hoặc không gõ cũng được Mỗi tùy chọn cho một cách thức hoạt động khác nhau của hệ thống
Ví dụ các lệnh halt sau đây đều hợp lệ:
Ví dụ, mô tả lệnh chown như sau:
chown [tùy-chọn]<chủ>[,[nhóm]]<file>
Trang 23Nhưvậy trong lệnh chown có thểkhông có hoặc có một số tùy chọn lệnh và
có từ một đến nhiều tên file
Các bộ phận trong mô tảlệnh, nếu không nằm trong các cặp dấu () [] {} thì khi gõ lệnh thực sự phải gõ y đúng như khi mô tả (chú ý, quy tắc viết tên lệnh
là một trường hợp riêng của quy tắc này)
Việc kết hợp các dấu ngoặc với nhau cho phép tạo ra cách thức sử dụng quy tắc tổ hợp các tham số trong lệnh Ví dụ, lệnh more bình thường có cú pháp là
# more <file>
có nghĩa là thay <file> bằng tên file cần xem nội dung, nếu kết hợp thêm dấu ngoặc vuông, tức là có dạng sau (chính là dạng tổng quát của lệnh more):
# more [<file>]
thì <file> nói chung phải có trong lệnh more, tuy nhiên trong một sốtrường hợp
có thểbỏqua tham sốfile
2.3.2 Làm đơn giản thao tác gõ lệnh
Việc sử dụng bàn phím để nhập lệnh tuy không phải là một công việc nặng
nề, song Linux – CentOS còn cho phép người dùng sử dụng một số cách thức để thuận tiện hơn khi gõ lệnh đó là:
2.3.2.2 Sử dụng các phím đặc biệt
Trang 24Khi người dùng gõ lệnh có thể xảy ra một số tình huống như sau:
Dòng lệnh đang gõ có chỗ sai sót, không đúng theo yêu cầu của người dùng vì vậy cần phải sửa lại đôi chút nội dung trên dòng lệnh
đó Trong trường hợp đó cần sử dụng các phím đặc biệt (còn gọi là phím viết tắt hay phím tắt) để di chuyển, xoá bỏ, bổ sung vào nội dung dòng lệnh
Sau khi sử dụng cách thức khôi phục dòng lệnh, chúng ta nhận được dòng lệnh tương tự với lệnh cần gõ và sau đó sử dụng các phím tắt
để hoàn thiện lệnh
Dưới đây giới thiệu các phím tắt và ý nghĩa của việc sửdụng chúng:
Nhấn phím → để di chuyển con trỏ sang bên phải một vị trí
Nhấn phím ← để di chuyển con trỏ sang bên trái một vị trí
Nhấn phím <ESC-BACKSPACE> để xoá một từ bên trái con trỏ
Nhấn phím <ESC-D> để xoá một từ bên phải con trỏ
Nhấn phím <ESC-F> để di chuyển con trỏ sang bên phải một từ
Nhấn phím <ESC-B> để di chuyển con trỏ sang bên trái một từ
Nhấn phím <CTRL-A> để di chuyển con trỏ về đầu dòng lệnh
Nhấn phím <CTRL-E> để di chuyển con trỏ vềcuối dòng
Nhấn phím <CTRL-U> để xóa dòng lệnh
Có thểdùng phím <ALT> thay cho phím <ESC>
2.3.2.3 Sử dụng các kí hiệu thay thế và phím Tab
Khi gõ lệnh thực sự nhiều trường hợp người dùng mong muốn một tham
số trong lệnh không chỉ xác định một file mà lại liên quan đến một nhóm các file
mà tên gọi của các file trong nhóm có chung một tính chất nào đó Trong những trường hợp như vậy, người dùng cần sử dụng các kí hiệu mô tả nhóm file (wildcards), chúng ta gọi là kí hiệu mô tả nhóm (còn được gọi là kí hiệu thay thế) Người ta sửdụng các kí tự*, ? và cặp hai dấu [] để mô tả nhóm file Các kí tự này mang ý nghĩa nhưsau khi viết vào tham số tên file thực sự:
"*": là ký tựmô tảnhóm gồm mọi xâu kí tự(thay thếmọi xâu) Mô tảnày cho một nhóm lớn nhất trong ba mô tả
Ví dụ: viết s* để chỉ các tên có ký tự đầu là s
"?": mô tảnhóm gồm mọi xâu với độdài không quá 1 (thay thếmột kí tự) Nhóm này là tập con của nhóm đầu tiên (theo kí tự"*")
[xâu-kí-tự]: mô tảnhóm gồm mọi xâu có độdài 1 là mỗi kí tựthuộc xâu nói trên Mô tảnày cho một nhóm có lực lượng bé nhất trong ba
Trang 25mô tả Nhóm này là tập con của nhóm thứhai (theo kí tự"?") Khi gõ lệnh phải gõ cảhai dấu [và ] Một dạng khác của mô tảnhóm này là [<kí_tự_1>-<kí_tự_2>]nghĩa là giữa cặp dấu ngoặc có ba kí tựtrong
đó kí tự ởgiữa là dấu nối (dấu -) thì cách viết này tương đương với việc liệt kê mọi kí tựtừ<kí_tự_1> đến <kí_tự_2> Chẳng hạn, cách viết [a-d]tương đương với cách viết [abcd]
Ví dụ: gõ [si]* để liệt kê tất cả các tên bắt đầu bằng ký tự “s” hoặc ký tự “i”
Khi sử dụng phím Tab có thể hoàn thành nốt tên file, tên thư mục trong lệnh Khi sử dụng một hoặc một vài ký tự mà chưa đủ thì ta có thể nhập thêm ký tự tiếp theo và ấn Tab Nếu ấn Tab hai lần thì có thể show ra các tập tin, câu lệnh bắt đầu bằng các ký tự trước khi ấn Tab
rm='rm -i'khi đó mỗi lần sử dụng lệnh rmhệ thống sẽ hỏi là có chắc chắn muốn
xóa hay không
Khi không muốn sử dụng Alias nữa thì ta có thể Unalias
Cú pháp:
Alias: # alias [-p] [name[=value] ]
Unalias: # unalias [-a] [name ]
2.3.3 Trang man
Chúng ta có thể nói rằng 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 Để thuộc hết được nội dung tất cả các lệnh của Linux là một điều hết sức khó khăn, có thể nói là không thể 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 thiệu nội dung các lệnh Dưới đây là một số nội dung vềcách thức sử dụng trang Man
Trang 26"Man" là từ viết tắt của "manual", được coi là tài liệu trực tuyến trong Linux - CentOS đã lưu trữ toàn bộ các lệnh có sẵn với các thông tin tham khảo khá đầy đủ cho phép người dùng có thể mở ra để nhận được trợ giúp
Để mở trang Man của một lệnh, chúng ta sử dụng lệnh man của Linux và gõ:
# man <tên-lệnh>
Nội dung của trang Man tuy không phải là quá khó hiểu, song để hiểu hết được nó cũng đòi hỏi không ít thời gian Tuy vậy, nếu quên nội dung một lệnh nào đó thì cách tốt nhất là hãy sử dụng trang Man
Cấu trúc chung của một trang Man như sau:
NAME: tên lệnh - khái quát tác dụng của lệnh
SYNOPSIS: cú pháp của lệnh
DESCRIPTION: mô tả cụ thể hơn về tác dụng của lệnh
OPTIONS: liệt kê các tùy chọn lệnh và tác dụng của chúng
FILES: liệt kê các file mà lệnh sử dụng hoặc tham chiếu đến
SEE ALSO: liệt kê các lệnh, các tài liệu, có liên quan đến lệnh
REPORTING BUGS: địa chỉ liên hệ nếu gặp lỗi khi sử dụng lệnh
AUTHOR: tên tác giả của lệnh
Khi không nhớ một cách chính xác nội dung câu lệnh người dùng có thể
sử dụng phím Tab như đã nói ở trên để sử dụng trang Man
2.3.4 Một số lệnh cơ bản trong CentOS
2.3.4.1 Lệnh liên quan đến hệ thống
- exit: thoát khỏi terminal
- Shutdown: tắt hệ thống
# shutdown [tùy-chọn] <time> [cảnh-báo]
Lệnh này cho phép dừng tất cảcác dịch vụ đang chạy trên hệthống Chỉ có root mới thực hiện được lệnh này
Các tùy chọn của lệnh này nhưsau:
-k: không thực sựshutdown mà chỉcảnh báo
-r : khởi động lại ngay sau khi shutdown
-h: tắt máy thực sựsau khi shutdown
-f : khởi động lại nhanh và bỏqua việc kiểm tra đĩa
-F: khởi động lại và thực hiện việc kiểm tra đĩa
-c: bỏqua không chạy lệnh shutdown
-t số-giây
Trang 27time: đặt thời điểm shutdown.
cảnh-báo: thông báo tắt máy gửi đến tất cảngười dùng
- Halt: tắt hẳn máy, thực hiện bởi root
# halt [tùy-chọn]
Các tuỳchọn của lệnh halt:
-w: không thực sựtắt máy nhưng vẫn ghi các thông tin lên file /var/log/wtmp (đây là file lưu trữdanh sách các người dùng đăng nhập thành công vào hệthống)
-d: không ghi thông tin lên file /var/log/wtmp Tùy chọn -n có ý nghĩa tương tựsong không tiến hành việc đồng bộhóa
-f: thực hiện tắt máy ngay mà không thực hiện lần lượt việc dừng các dịch vụcó trên hệthống
-i: chỉthực hiện dừng tất cảcác dịch vụmạng trước khi tắt máy
- reboot: khởi động lại hệ thống, chỉ được thực hiện dưới quyền root
# reboot [tùy-chọn]
Các tùy chọn của lệnh rebootnhưsau là -w, -d, -n, -f, -i có ý nghĩa tương tự như trong lệnh halt
2.3.4.2 Các lệnh quản trị hệ thống
- sudo command: thực hiện command dưới quyền root
- sudo –k: chấm dứt chế độ dùng lệnh có chức năng của người siêu dùng
- uname –r: phiên bản nhân Linux
- lspci: liệt kê các thiết bị usb, pci có măt trong máy tính
- time command: cho biết thời gian để thực hiện xong lệnh command
- command1 | command2: đường ống lệnh, thực hiện xong command1 sẽ
thực hiện command2
- clear: xóa màn hình terminal.
2.3.4.3 Mạng máy tính
- uname –a: hiển thị hostname của máy tính trong mạng
- ping ip: ping đến một địa chỉ ip nào đó
- ifconfig –a: hiển thị thông tin về tất cả các card mạng
- ifconfig eth0 diachiIP: đặt ip cho card mạng eth0, thay eth0 bằng card
mạng khác để đặt IP cho card mạng ấy
- ifconfig eth0 down: ngưng hoạt động card mạng eth0
- /etc/init.d/network restart: khởi động lại card mạng
2.3.4.4 Các lệnh liên quan đến tập tin
Trang 28Di chuyển, liệt kê các tập tin:
- pwd: xem thư mục hiện hành
- cd: chuyển đến một thư mục khác
- ls: liệt kê các tập tin Có các tham số -l, -a, -d, -t, -S
Quyền truy cập các tập tin:
- chown ten_nguoi_dungfile: xác dịnh chủ của file là người dùng nào.
- chgrp nhom file: chuyển tập tin file thành sở hữu của nhóm người dùng
mang tên nhom
- chmod quyen file: phân quyền truy cập file
Xem nội dung các tập tin:
- cat file: xem nội dung của tập tin file trên màn hình ở dạng mã ASCII
- more file: xem nội dung của tập tin file theo chế độ từng trang một
- head –n file: xem n dòng đầu tiên của file
- vi file: soạn tập tin file dùng trình soạn thảo vi
- nano file: soạn tập tin file dùng trình soạn thảo nano
- grep chuỗifile: xuất hiện các dòng chứa nội dung của chuỗi trong file
2.3.4.5 Các lệnh quản lý thư mục và tập tin
- cp: dùng để chép file hay thư mục
- mv: chuyển file hay thư mục
- rm: xóa file hoặc thư mục tùy vào tham số
- mkdir: tạo thư mục mới
- find thu_muc –name file: tìm tập tin mang tên filetrong thu_muc
- diff file1file2: so sánh file1 và file2
2.3.4.6 Các lệnh nén và giải nén
- tar xvfz file.tar.gz:giải nén file có đuôi tar.gz và tar
- tar jxvf file.tar.bz2:giải nén file có đuôi tar.bz2
- tar cvf file1 file2:tạo file nén chứa file1 và file2
- gzip file.txt:tạo tập tin nén có dạng file.txt.gz
- gunzip file.txt.gz : giải nén tập tin
2.3.4.7 Cài đặt và gỡ bỏ phần mềm
Sử dụng công cụ yumđể cài đặt tự động từ các kho chứa trên mạng
- # yum install [chuong_trinh]: cài đặt một chương trình
- # yum groupinstall [nhom_ctrinh]: cài đặt một nhóm chương trình
Trang 29- # yum update [chuong_trinh]: update một chương trình
- # yum list: liệt kê các chương trình đã cài đặt
- # yum remove [chuong_trinh]: xóa một chương trình.
Cài đặt các file từ mã nguồn
Giải nén file tải về
Chuyển vào thư mục vừa giải nén
Đọc file INSTALL để xem hướng dẫn cài đặt
# more INSTALL
Cấu hình cài đặt : /configure
Make: đây là phần cốt lõi của quá trình – nơi chúng ta biên dịch mã
nguồn thành một chương trình có khả năng chạy
Make install: copy chương trình vừa được biên dịch vào các thư
mục hệ thống như /usr/bin để có thể chạy từ bất cứ thư mục nào mà không cần chỉ định đường dẫn đến các file
Cài đặt từ file rpm Được phát triển đầu tiên bởi Redhat sau đó được các bản linux sử dụng rộng rãi
rpm –i package.rpm: cài đặt một packet
rpm –U package.rpm: Update một package
rpm –e package.rpm: Gỡ bỏ một package
3.1 Quản lý file
3.1.1 Một số khái niệm
Có thể nói file là một đối tượng điển hình trong các hệ điều hành Nó 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 người dùng Hệ điều hành tổ chức việc lưu trữ nội dung file trên các thiết bị nhớ lâu dài
và đảm bảo các thao tác trên file Để làm việc được với các file, hệ điều hành không chỉ quản lý nội dung file mà còn phải quản lý các thông tin liên quan đến các file Thư mục là đối tượng được dùng để chứa thông tin về các file, hay nói cách khác là thư mục chứa các file Các thư mục cũng được hệ điều hành quản
lý trên vật dẫn ngoài và vì vậy, theo nghĩa này, trong linux thư mục được coi là file thư mục
3.1.2 Thuộc tính file
Trang 30Sau khi được tạo ra, file độc lập với tiến trình, người dùng và ngay cả hệ thống tạo ra file Trong thư mục chứa file, sẽ có mục ứng với file , mục này có thể coi là một bản ghi với các trường là thuộc tính của file như:
- Tên: có thểdài tới 256 ký tự, bao gồm các chữcái, chữsố, dấu gạch nối, gạch chân, dấu chấm Tên thưmục/file trong Linux có thểcó nhiều hơn một dấu chấm Nếu trong tên file có dấu chấm "." thì xâu con của tên file từdấu chấm cuối cùng được gọi là phần mởrộng của tên file (hoặc file).Chú ý rằng khái niệm phần mởrộng ở đây không mang ý nghĩa nhưmột sốhệ điều hành khác (chẳng hạn nhưMS-DOS).Chúng ta nên lưu ý rằng, không phải ký tựnào cũng có nghĩa Nếu có hai file chỉkhác nhau ởký tựcuối cùng, thì đối với Linux, đó là hai file có thểtrùng tên Bởi lẽ, Linux chỉlấy 32 hay 64 ký tự đầu tiên trong tên file mà thôi (tùy theo phiên bản Linux), phần tên file còn lại dành cho chủcủa file, Linux theo dõi thông tin, nhưng thường không xem các ký tự đứng sau ký tựthứ33 hay 65 là quan trọng đối với nó Trong linux có phân biệt chữ hoa với chữ thường.Nếu trong tên thưmục/file có chứa khoảng trống, sẽphải đặt tên thưmục/file vào trong cặp dấu nháy kép đểsửdụng thưmục/file đó Ví dụ, đểtạo thưmục có tên là “My document” chẳng hạn, hãy đánh dòng lệnh sau:
# mkdir "My document"
Một sốký tựsau không được sửdụng trong tên thưmục/file: !, *, $, &, # Khi sửdụng chương trình mc (Midnight Commander), việc hiển thịtên file sẽbổ sung một kí tựtheo nghĩa: dấu "*" cho file khảthi trong Linux, dấu "~" cho file sao lưu, dấu "." cho file ẩn, dấu "@" cho file liên kết
- Kiểu file : thông tin cho biết kiểu của file trong linux gồm :
+File người dùng (user data file): là các file tạo ra do hoạt động của người dùng khi kích hoạt các chương trình ứng dụng tương ứng Ví dụnhưcác file thuần văn bản, các file cơsởdữliệu hay các file bảng tính
+ File hệthống (system data file):là các file lưu trữthông tin của hệthống như: cấu hình cho khởi động, tài khoản của người dùng, thông tin thiết bị thường được cất trong các tệp dạng văn bản đểngười dùng có thểcan thiệp, sửa đổi theo ý mình
+ File thực hiện (executable file):là các file chứa mã lệnh hay chỉthịcho máy tính thực hiện File thực hiện lưu trữdưới dạng mã máy mà ta khó có thểtìm hiểu được ý nghĩa của nó, nhưng tồn tại một sốcông cụ để"hiểu" được các file đó
Trang 31Khi dùng trình ứng dụng mc(Midnight Commander, chương 8), file thực hiện được bắt đầu bởi dấu (*) và thường có màu xanh lục
+Thưmục hay còn gọi là file bao hàm (directory): là file bao hàm các file khác và có cấu tạo hoàn toàn tương tựnhưfile thông thường khác nên có thểgọi là file Trong mc, file bao hàm thường có màu trắng và bắt đầu bằng dấu ngã (~) hoặc dấu chia (/) Ví dụ: /, /home, /bin, /usr, /usr/man, /dev
+ File thiết bị(device file):là file mô tảthiết bị, dùng nhưlà định danh đểchỉra thiết bịcần thao tác Theo quy ước, file thiết bị được lưu trữtrong thưmục /dev Các file thiết bịhay gặp trong thưmục này là tty(teletype - thiết bịtruyền thông), ttyS(teletype serial - thiết bịtruyền thông nối tiếp), fd0, fd1, (floppy disk- thiết
bị ổ đĩa mềm), hda1, hda2, hdb1, hdb2, (hardisk - thiết bị ổ cứng theo chuẩn IDE; a, b, đánh số ổ đĩa vật lý; 1, 2, 3 đánh số ổ logic) Trong mc, file thiết bịcó màu tím và bắt đầu bằng dấu cộng (+)
+ File liên kết (linked file):là những file chứa tham chiếu đến các file khác trong hệthống tệp tin của Linux Tham chiếu này cho phép người dùng tìm nhanh tới file thay vì tới vịtrí nguyên thủy của nó Hơn nữa, người ta có thểgắn vào đó các thông tin phụtrợlàm cho file này có tính năng trội hơn so với tính năng nguyên thủy của nó Ta thấy loại file này giống nhưkhái niệm shortcuttrong MS-Windows98
- Vị trí(location): địa chỉ các khối dữ liệu của file trên thiết bị
- Kích thước(size): kích thước file hiện tại
- Bảo vệ(protection): thông tin về quyền truy cập, xác định người dùng nào có quyền đoc/ghi( hoắc thực thi) file
- Thời gian, đinh danh người dùng: ghi lại: thời điểm tạo file, thời điểm sửa chữa cuối cùng, thời điểm sử dụng cuối cùng
3.1.3 Cấu trúc của hệ thống file
Trên đĩa từ, hệ thống file được coi là dãy tuần tự các khối lôgic mỗi khối chứa hoặc 512B hoặc 1024B hoặc bội của 512B là cố định trong một hệthống file Trong hệthống file, các khối dữliệu được địa chỉhóa bằng cách đánh chỉsốliên tiếp, mỗi địa chỉ được chứa trong 4 byte (32 bit)
Cấu trúc nội tại của hệthống file bao gồm 4 thành phần kếtiếp nhau: Boot block (dùng đểkhởi động hệthống), Siêu khối (Super block), Danh sách inode và Vùng dữliệu
3.1.3.1 Boot block
Thường không được sử dụng và thường chứa mã để nạp hệ điều hành(boot the computer) Nó chứa một đoạn chương trình sẽ được đọc vào máy khi khởi động hệ điều hành Mặc dù boot block chỉ cần thiết khi khởi động máy nhưng
Trang 32tương tự với boot record của Dos, tất cả các hệ thống file linux đều có một boot block(block có thể để trống).
- Kích thước của hệthống file
- Một danh sách chỉsốcác khối rỗi (thường trực trên siêu khối) trong hệthống file
-Chỉ số của khối rỗi tiếp theo trong danh sách các khối rỗi
- Một danh sách các inode rỗi (thường trực trên siêu khối) trong hệthống file
- Chỉsốinode rỗi tiếp theo trong danh sách các inode rỗi
- Các trường khóa (lock) danh sách các khối rỗi và danh sách inode rỗi: Trong một sốtrường hợp, chẳng hạn khi hệthống đang làm việc thực sựvới đĩa từ đểcập nhật các danh sách này, hệthống không cho phép cập nhật tới hai danh sách nói trên
- Cờchỉdẫn vềviệc siêu khối đã được biến đổi: Định kỳthời gian siêu khối ởbộnhớtrong được cập nhật lại vào siêu khối ở đĩa từvà vì vậy cần có thông tin vềviệc siêu khối ở bộnhớtrong khác với nội dung ởbộnhớngoài: nếu hai bản không giống nhau thì cần phải biến đổi đểchúng được đồng nhất
- Cờchỉdẫn rằng hệthống file chỉcó thể đọc (cấm ghi): Trong một sốtrường hợp, hệthống đang cập nhật thông tin từbộnhớngoài thì chỉcho phép đọc đối với hệthống file
- Kích thước khối (đơn vị phân phối dữ liệu) của hệ thống file
Hiện tại kích thược file phổ biến của một khối là 1KB