Giáo trình sử dụng quản trị và lập trình UNIX LINUX - Pdf 14

Lê Hồng Tiến Tổ Đào tạo
SỬ DỤNG, QUẢN TRỊ VÀ LẬP TRÌNH UNIX/LINUX iii
Đối tượng và cách dùng iii
Tóm tắt nội dung iv
Chương 1. Hệ điều hành UNIX iv
Chương 2. Lập trình Shell iv
Chương 3. Giao diện đồ hoạ iv
Chương 4. Lập trình hệ thống iv
Chương 5. Làm việc trên mạng IP iv
Chương 6. Làm quen và cài đặt Linux iv
Chương 7. Quản trị Linux v
Chương 8. Hỗ trợ giải quyết sự cố trong Linux v
Dành cho giảng viên v
Chú ý v
CHƯƠNG 1. HỆ ĐIỀU HÀNH UNIX 1
1.1 Dẫn nhập 1
1.1.1 Các họ UNIX phổ biến ở Việt Nam 1
1.1.2 Các tính chất chung 3
1.1.3 Phiên làm việc đầu tiên 5
1.2 Giao diện người sử dụng 7
1.2.1 Giao tiếp qua dòng lệnh 7
1.2.2 Giao tiếp qua cửa sổ đồ họa 9
1.3 Các tệp UNIX 12
1.3.1 Cấu trúc hệ thống tệp 12
1.3.2 Các thao tác cơ bản trên tệp bình thường 13
1.3.3 Các lệnh biên tập tệp bình thường 16
1.3.4 Cách sinh tên tệp 19
1.3.5 Quản trị luồng dữ liệu 21
1.3.6 Nội dung và kích thước tệp bình thường 24
1.3.7 Các bộ lọc riêng 25
1.3.8 Hiển thị tệp dưới các dạng khác nhau 29

3.2.5 Cấu hình thời gian 19
3.2.6 Đĩa mềm và CD-ROMs 21
3.2.7 Trình duyệt Web 22
3.2.8 Trình Email 23
3.2.9 Các ứng dụng 23
3.2.10 Log-Out 26
3.3 KDE 26
3.3.1 Giới thiệu 26
3.3.2 Tài liệu hướng dẫn 26
3.3.3 Sử dụng Desktop 27
3.3.4 Quản trị tệp 31
3.3.5 Duyệt Web bằng Konqueror 32
3.3.6 Dùng Konqueror để xem ảnh 33
3.3.7 KMail 33
3.3.8 Tuỳ biến KDE 34
3.3.9 Đăng xuất khỏi KDE 34
CHƯƠNG 4. LẬP TRÌNH HỆ THỐNG 1
4.1 MÔ HÌNH PHÂN TẦNG TRONG UNIX 1
4.2. NGÔN NGỮ C VÀ HỆ THỐNG UNIX 2
4.2.1 Sơ lược về ngôn ngữ C 2
4.2.2 Hàm system 4
4.2.3 Các tham số hàm trong C 4
4.2.4 Những lệnh gọi hệ thống 6
4.2.5 Dò lỗi 7
4.2.6 Biến errno 7
4.2.7 Xuất/nhập ỏ mức thấp 8
4.2.8 Hàm xuất/nhập nguyên thuỷ 10
4.2.9 Những hàm nguyên thuỷ quản lý tiến trình 11
4.2.10 Những hàm nguyên thuỷ quản lý tệp 13
4.3 CÔNG CỤ PHÁT TRIỂN HỆ THỐNG 15

6.3.11. Hộp thoại Welcome 31
6.3.12. Lựa chọn ngôn ngữ 32
6.3.13. Chọn bàn phím 32
6.3.14 Chọn cấu hình chuột 33
6.3.15 Chọn nâng cấp hoặc cài đặt 35
6.3.16 Chọn kiểu cài đặt 36
Chương 7. Quản trị Linux với Webmin 1
1. Giới thiệu 1
2. Cấu trúc của Webmin 1
2.1 Module Webmin 1
2.2 Module hệ thống 2
2.3 Module server 2
2.4 Module mạng 2
2.5 Module phần cứng 3
2.6 Module bổ sung 3
3. Quản trị hệ thống Linux với Webmin 3
3.3.1 Cài đặt phần mềm webmin 3
3.1.2 Khởi động Webmin bằng lệnh 4
3.1.3 Định dạng Server 4
Chương 8. Hỗ trợ giải quyết sự cố trong Linux 8
Tài liệu tham khảo 1
SỬ DỤNG, QUẢN TRỊ VÀ LẬP TRÌNH UNIX/LINUX
Đối tượng và cách dùng
Tài liệu này nhằm phục vụ những người sử dụng, quản trị mạng và lập trình
trên các máy tính có cài hệ điều hành UNIX hoặc Linux. Nó được soạn trong
khuôn khổ đào tạo thuộc Đề án 112 như đề mục đã ghi rõ và cho một thời gian
tập huấn hạn chế khoảng 40-50 tiết, vì vậy độc giả ngoài phạm vi đó cần xem
thêm các tài liệu lý thuyết hoặc thực hành đồ sộ hơn và được xuất bản bằng
tiếng Việt hoặc tiếng Anh, một số có nêu tên ở các mục tham khảo. Độc giả
cũng nên liên tưởng đến các kiến thức và thao tác học được trên một vài hệ

thường đến phức tạp mà chưa cần phải sử dụng đến những ngôn ngữ biên dịch
như C và C++, v.v.
Chương 3. Giao diện đồ hoạ
Chương 3 chủ yếu dành cho những người mới sử dụng và lập trình trên các
máy UNIX/Linux, đặc biệt những ai đã từng quen với môi trường giao diện đồ
hoạ thân thiện của Mac OS và MS Windows, hoặc đơn giản chỉ không muốn
làm việc qua giao diện dòng lệnh.
Chương 4. Lập trình hệ thống
Trong chương 4, chúng ta sẽ tìm hiểu về khả năng phát triển UNIX dưới góc
độ lập trình hệ thống, chủ yếu trong ngôn ngữ C, nhằm hiểu rõ hơn về bản chất
của hệ điều hành UNIX cũng như cách sử dụng các công cụ cơ bản về lập trình
của môi trường hệ điều hành này.
Chương 5. Làm việc trên mạng IP
Chương 5 dành cho tất cả người sử dụng UNIX hoặc Linux trong môi trường
mạng cục bộ hoặc diện rộng, kể cả quản trị viên và lập trình viên. Chương này
chỉ giới thiệu vài nét sơ bộ và căn bản. Tuy nhiên độc giả có thể tìm hiểu các
chi tiết sâu hơn ở giáo trình về quản trị mạng.
Chương 6. Làm quen và cài đặt Linux
Chương 6 chủ yếu dành cho những người yêu thích thực hành và muốn tự tay
cài đặt lên máy vi tính cá nhân PC một phiên bản Linux theo yêu cầu của riêng
Sử dụng, quản trị và lập trình UNIX/Linux iv
Lê Hồng Tiến Tổ Đào tạo
mình. Để tạo điều kiện thực hành nhanh chóng và thu được các kinh nghiệm
bản thân, ở đây sẽ giới thiệu các phương pháp cài đặt khá đơn giản với phiên
bản Red Hat số 9 tuy còn mới nhưng đã tỏ ra ổn định.
Chương 7. Quản trị Linux
Chương 7 chủ yếu dành cho những người sử dụng và quản trị viên máy Linux
chạy dưới những phiên bản mới nhất, trong đó có thể cài một công cụ gọi là
Webmin, cho phép tiến hành các công việc quản trị qua giao diện Web chuẩn,
vừa nhất quán lại vừa đơn giản và thuận tiện.

1.1 Dẫn nhập
UNIX là một hệ điều hành mở, ra đời từ đầu thập niên 1970 trên các máy tính
mini họ DEC PDP. Nhưng phải hơn mười năm sau, nhờ sự đóng góp bền bỉ và
to lớn của hai giới khoa học - công nghiệp, UNIX mới trở nên thật sự tốt và có
thể thay thế được hầu hết các hệ điều hành cũ, kể cả của các máy lớn
(mainframe). Rất nhiều phần mềm ứng dụng trong các lĩnh vực kinh tế, giáo
dục, y tế, kỹ thuật, quốc phòng, v.v. đã được viết dưới UNIX và tạo ra một thị
trường mới. Không may, vì lợi nhuận ngắn hạn, một số công ty đã phát triển
UNIX chệch ý tưởng ban đầu, đưa ra nhiều bản phát hành “thương mại” chạy
trên các máy đắt tiền và đóng kín làm của riêng nên khó dùng chung và tự làm
cho sau này khó cạnh tranh với dòng Microsoft Windows NT/200x đẻ muộn.
Tuy vậy đến nay, phần lớn các bản phát hành UNIX đều thuộc hai dòng chính
thống là System V và BSD với rất nhiều điểm tương đồng hoặc hội tụ, cho nên
người sử dụng vẫn quen gọi gộp là UNIX. Cần nói tới một dòng các hệ điều
hành gọi là “như UNIX” (UNIX-like), thường được người dùng tự cài đặt trong
các máy vi tính hoặc thiết bị công nghiệp nhờ sự nhỏ gọn hoặc ổn định. Có thể
kể tên rất nhiều hệ điều hành như thế, ví dụ: Minix, Xenix, FreeBSD, QNX,
OS9, Linux, v.v Đặc biệt, ảnh hưởng của các bản “như UNIX” nhưng có
nguồn mở đang lan tràn rất nhanh trong các công ty, trường học, viện nghiên
cứu và qua Internet, vượt xa UNIX “thương mại”.
1.1.1 Các họ UNIX phổ biến ở Việt Nam
Cho đến nay, trong các loại UNIX du nhập nước ta, có thể những họ sau đây đã
vào sớm nhất hoặc nhiều nhất:
-Họ SCO UNIX, chủ yếu cài trên các máy tính kiểu PC (khoảng 1988);
-Họ Sun Solaris, cài trên các máy chủ hoặc trạm làm việc sử dụng các chip
thuộc nhóm Sparc (1992) và trên các máy tính kiểu PC (1995);
-Họ các hệ điều hành nguồn mở thuộc dòng “như UNIX”, cài trên các máy tính
kiểu PC và Mac (có lẽ bắt đầu vào nước ta từ 1994 bằng các bản miễn phí);
-Họ IBM AIX, cài trên các máy chủ hoặc trạm làm việc sử dụng các chip thuộc
nhóm PowerPC (1993).

hàng nghìn máy trạm bằng những phần mềm ứng dụng lớn. IBM cũng bán
những phần mềm như thế chạy dưới AIX và cả Windows NT, ví dụ Websphere
(quản trị cổng điện tử), Tivoli Enterprise Console (quản trị mạng), DB2 (quản
trị cơ sở dữ liệu), Lotus Notes và Domino (quản trị dòng công việc và thư điện
tử) v.v Cho đến nay hình như chưa du nhập vào Việt Nam những cấu hình
mạnh nhất của các máy AIX.
b. Sun Solaris
Solaris hay SunOS thường được cài sẵn trên những máy cao cấp của các hãng
Sun, Fujitsu và ICL. Cũng như IBM, Sun vừa sản xuất máy UNIX vừa viết các
phần mềm ứng dụng, ví dụ Sun Net Manager (quản trị mạng), StarOffice (tin
học văn phòng) v.v Không ít sản phẩm Sun đã được một số đơn vị nhà nước,
công ty và ngân hàng ở Việt Nam sử dụng. Việc Sun gần đây cấp miễn phí một
bản Solaris và OpenOffice chạy trên các máy PC cũng có thể giúp cho UNIX
vào nước ta dễ hơn.
Trước kia Sun từng đứng đầu nhiều năm về UNIX “thương mại”, nhưng rồi vị
trí đó đã thuộc về IBM. Hiện nay cả hai hãng này đều ủng hộ Linux.
c. SCO UNIX
Cuối thập niên 1980, hãng trẻ SCO đã mở đầu bằng những phiên bản Xenix
“giống UNIX”, cài đặt trên những máy PC có cấu hình phần cứng và hiệu năng
rất khiêm tốn so với PC bây giờ. Ngay sau Xenix, SCO đã cho ra đời bản phát
hành UNIX 386 thật sự và cũng để cài đặt trên các máy PC.
Sử dụng, quản trị và lập trình UNIX/Linux 2
Lê Hồng Tiến Tổ Đào tạo
Chi phí mua SCO UNIX cộng với PC thấp hơn vài lần so với mua các máy của
Sun, IBM hoặc DEC, nhờ đó mà nhiều nhà tin học nước ta đã tận tay biết được
khá sớm UNIX là gì. Gần đây SCO mua lại OpenLinux của Caldera, một hãng
tách từ Novell, để hòng tham gia thị trường Linux đã trở nên sôi động cả về
máy chủ lẫn máy trạm. Lưu ý rằng nhiều phần mềm ứng dụng viết dưới SCO
UNIX có thể chạy trực tiếp dưới Linux.
d. Các hệ điều hành nguồn mở

tính riêng tư trong các “hộp đen”. Đây cũng là xu hướng càng ngày càng được
đón nhận khắp thế giới.
Sử dụng, quản trị và lập trình UNIX/Linux 3
Lê Hồng Tiến Tổ Đào tạo
Phân tầng là sắp xếp cấu trúc theo hai hướng lên-xuống, cố gắng sao cho mỗi
tầng trở thành một đơn thể chuyên trách hoạt động bằng cách cung cấp toàn bộ
dịch vụ cho cấp trên liền kề và sử dụng toàn bộ dịch vụ của cấp dưới liền kề.
Làm minh bạch như vậy nhằm để tránh sự trùng lặp chức năng và chồng chéo
quan hệ giữa các đơn thể. Nó cũng cho phép đơn giản hoá việc cải tiến hoặc
thay đổi bất kỳ thành phần nào của một hệ thống vốn lớn hơn (hoặc sẽ mở rộng
hơn) theo cách hầu như độc lập với các thành phần khác, nhờ vậy tăng hiệu
năng hoạt động và sự ổn định hoặc an ninh của hệ thống. Nếu như chuẩn hoá
được những dịch vụ nói trên và định dạng được dữ liệu đầu vào/đầu ra của từng
thành phần thì các phần mềm thực hiện đơn thể sẽ trở nên phổ quát và dễ dàng
dùng chung đối với mọi hệ thống có cấu trúc tương tự.
Thực tế hệ điều hành UNIX gồm có nhiều đơn thể phần mềm bao bọc nhau
như những lớp vỏ củ hành. Trong cùng là một lõi hay hạt nhân (kernel) có chức
năng quản trị phân phối các tài nguyên phần cứng như chip xử lý (CPU), các
cửa vào/ra dữ liệu và bộ nhớ v.v Lõi cung cấp các dịch vụ cơ bản nhất cho
tầng trên thông qua những yêu cầu hệ thống (system calls). Mỗi tầng trên có
một chức năng độc lập, ví dụ quản trị các tệp, diễn giải các chỉ thị của người
dùng, mở phiên làm việc, biên dịch chương trình v.v
Chính nhờ cấu trúc phân tầng mà các chương trình mã nguồn có thể dễ dàng
biên dịch lại và chạy được dưới các hệ điều hành khác nhau cài đặt trên các
phần cứng khác nhau. Ví dụ điển hình là các bộ trình biên dịch ngôn ngữ C và
Fortran nổi tiếng như gcc, g77, F2C, chạy trên hầu hết các họ máy sau đây:
Bull (Escala-T, -D-PowerPC, DPX/20-690, -150), DEC (8400, 3000, 2100A,
600, PWS500-Alpha), Dell (PowerEdge, 6100, OptiPlex, 4100 Pentium), HP
(K260-PA8000, 9000), SG Irix (PowerChallenge-R10000, Indigo-R4000,
Indigo-R10000, O2-R5000), IBM (RS-6000-595, -580, -560, -550, -370, -355,

là ít nhất chúng cũng có sẵn các bộ trình biên dịch GNU và các phần mềm
nguồn mở khác.
1.1.3 Phiên làm việc đầu tiên
a. Terminal và quản trị viên
Trước khi làm việc, đầu tiên phải có một thiết bị terminal và nối nó qua cổng
COM hoặc qua mạng Ethernet với một máy chủ UNIX. Terminal bao gồm một
bàn phím để gõ chữ và một màn hình để hiện chữ, nhưng có thể thay nó bằng
một máy tính PC chạy dưới hệ điều hành DOS hoặc Windows v v. với một
chương trình mô phỏng terminal. Nếu ta có riêng một trạm làm việc UNIX thì
chỉ việc bật điện, thông thường đó cũng là một máy tính PC nhưng được cài
một hệ điều hành “như UNIX”, hoặc SCO UNIX, hoặc Sun Solaris v.v
Người quản trị mạng là một chuyên gia tin học có thể làm được tất cả những
việc chuẩn bị nói trên và cấp cho ta một trương khoản (account), bao gồm tên
đăng nhập và mật khẩu của ta.
b. Đăng nhập
Khi bắt đầu làm việc ở chế độ dòng lệnh văn bản (text) với một máy UNIX,
trên màn hình sẽ hiện ra dòng chữ mời gọi ta đăng nhập (login).
Ta mở đầu phiên làm việc bằng cách trả lời máy, cụ thể là gõ vào tên đăng
nhập của mình (username hay logname, phân biệt chữ hoa với chữ thường) và
kết thúc bằng nhấn phím<RETURN> (hoặc <Enter> trên PC):
login: tên đăng nhập<RETURN>
Máy sẽ hiển thị mời ta gõ vào mật khẩu của mình:
password:
Nếu ta gõ đúng mật khẩu thì đăng nhập thành công và dấu nhắc shell hiện ra.
c. Những người sử dụng
Người sử dụng tối cao (superuser) của một máy UNIX thường là quản trị viên
hoặc người có một trương khoản đặc biệt với tên đăng nhập duy nhất, gọi là
root.
Sử dụng, quản trị và lập trình UNIX/Linux 5
Lê Hồng Tiến Tổ Đào tạo

giỏi thường quen giao tiếp qua dòng lệnh để có thể phát huy hết sức mạnh tổ
hợp từ các lệnh và tuỳ chọn của UNIX (xem tiếp mục nhỏ dưới đây và chương
“Lập trình shell”).
Dù bị mất một phần sức mạnh nói trên, những người sử dụng bình thường ngày
nay vẫn thích giao tiếp qua các cửa sổ đồ hoạ, bởi vì việc chọn bằng chuột
những mục ghi có sẵn trong thực đơn (như dưới MS Windows) chắc chắn vẫn
dễ hơn là tự tay gõ những lệnh và tuỳ chọn có vẻ phức tạp hay khó nhớ. Nhưng
xin nhớ rằng trong môi trường đồ hoạ ta vẫn có thể dùng chế độ dòng lệnh ở
một cửa sổ riêng (xem “Giao diện đồ hoạ").
1.2.1 Giao tiếp qua dòng lệnh
a. Khái niệm shell
Người sử dụng thường giao tiếp với UNIX qua dòng lệnh (command line) bằng
cách đưa vào các câu lệnh và nhận lại các thông báo hoặc kết quả cũng khá
giống như dưới DOS hoặc trong cửa sổ Start > run của Windows). Việc tạo
ra tương tác, diễn dịch và xử lý các chương trình shell script (gồm các lệnh và
dữ liệu viết trong cú pháp shell) là do một shell đảm nhiệm.
Lưu ý:
-Trước dấu nhắc shell ta có thể đặt một chuỗi ký tự thể hiện tên riêng, tên máy tính hoặc địa chỉ mạng
của mình, thậm chí tên của phiên bản UNIX, nhằm phân biệt các máy trong mạng, ví dụ:
Lan_Anh's Solaris %
hoặc:
localhost $
Khi thấy dấu nhắc shell ta chỉ việc đưa vào các ký tự văn bản thể hiện các câu
lệnh theo đúng cú pháp của shell. Việc đưa dữ liệu vào có thể tiến hành qua
bàn phím hoặc các tệp đã chuẩn bị trước.
b. Các loại shell chuẩn của UNIX
Trước khi làm việc với shell ta phải đăng nhập như đã nói ở mục nhỏ "Phiên
làm việc đầu tiên". Sau khi đăng nhập, UNIX đưa ta về một thư mục làm việc
đã đăng ký trước và cho chạy một chương trình shell cũng đã đăng ký.
Nhiều chương trình shell đã được viết ra để phù hợp với những mục đích sử

% cat /etc/passwd
Ta sẽ nhận được các thông tin đại để như sau:

pha:eø90e9cd47a0:321:787:pha:/home/pha:/bin/csh
bhh:58e14a0b377b:145:787:bhh:/home/bhh:/bin/csh
root:vx8543346ea015cf:0:0:root:/root:/bin/sh

Ví dụ trên cho thấy cả hai user Phan An (pha) và Bùi Huy Hà (bhh) đăng ký
dùng C shell (/bin/csh), trong khi superuser đăng ký dùng Bourne shell
(/bin/sh). Những giá trị đó được khai báo trong biến "SHELL" của Bourne shell
hoặc trong biến "shell" của C shell và ta có thể đọc chúng bằng lệnh echo:
$ echo $SHELL
/bin/sh
hoặc:
pha % echo $shell
/bin/csh
Trong thực tiễn, phần lớn user dùng thạo một shell thôi, do đó chỉ nên thay đổi
shell mặc định khi thật sự cần thiết. User trước khi mở phiên làm việc phải nhờ
Sử dụng, quản trị và lập trình UNIX/Linux 8
Lê Hồng Tiến Tổ Đào tạo
superuser sửa trực tiếp tệp /etc/passwd để thay đổi shell đăng nhập. Nếu bhh
không muốn nhờ superuser thì dùng lệnh sau để chuyển sang dùng C shell:
bhh % password -s
Changing login shell for bhh on solaris 3
Old shell: /bin/csh
New shell: /bin/sh
2- Trong phiên làm vi c ệ
Nhưng bất kỳ lúc nào trong phiên làm việc, ta vẫn có thể gọi một shell khác có
tính năng phù hợp hơn đối với yêu cầu mới, ví dụ:
pha % sh

trạm làm việc dưới UNIX. Năm 1987, họ thành lập một tổ chức mang tên X
Consortium để khuếch trương và chuẩn hoá hệ thống X Window.
Sử dụng, quản trị và lập trình UNIX/Linux 9
Lê Hồng Tiến Tổ Đào tạo
X Window thực chất là một tập hợp các thành phần kết hợp với nhau, bao gồm:
- Hệ thống cung cấp dịch vụ cửa sổ X Window
- Giao thức liên lạc qua mạng X Net Protocol.
- Thư viện các hàm đồ hoạ cơ bản mang tên Xlib
b. Nguyên lý hoạt động
X Window sử dụng kiến trúc client/server với hai trình điều khiển, một cho
client và một cho server. Hai trình này có thể đặt trên hai máy tính khác nhau,
hoặc trên cùng một máy tính. Các thành phần đó gọi là X client và X server.
Trong X Window, quan hệ client/server không có nghĩa là server cung cấp các
dịch vụ còn client thì sử dụng các dịch vụ đó. X server thu nhận các kết nối từ
các ứng dụng X client qua mạng hoặc tại chỗ. Server liên lạc với các phần cứng
như bìa màn hình, màn hình, bàn phím và chuột. Các ứng dụng X client tạo ra
một giao diện đồ hoạ cho người sử dụng (GUI - graphical user interface) và
chuyển các yêu cầu của người sử dụng tới X server.
Minh hoạ 1: Mô hình X Window
1- X server
X server là một chương trình chạy trên máy tính nối mạng (trạm mạng), nó
quản lý màn hình, bàn phím và chuột. X server nhận các yêu cầu của những
chương trình ứng dụng client qua các nối kết liên lạc (communication link) để
tạo ra các cửa sổ làm việc, thay đổi kích thước, di dời các cửa sổ đó, hay để vẽ
nên các đường và các hình trong những cửa sổ vừa tạo ra.
X Server còn gửi trả lại cho ứng dụng client biết các sự kiện đã xảy ra, các dữ
liệu nhập từ bàn phím, con chuột và sự thay đổi trạng thái của các cửa sổ.
X Server có thể quản lý được đồng thời nhiều kết nối với X Client, có nghĩa là
ta có thể chạy đồng thời nhiều ứng dụng với nhiều cửa sổ được mở ra.
2- X Client

đơn sắc, X Window và XFree86 hiện nay hỗ trợ rất nhiều dải màu. X Window
cũng hỗ trợ khả năng đa tiến trình của UNIX/Linux. Mỗi cửa sổ do X Window
hiển thị có thể là một chương trình riêng lẻ đang chạy với UNIX/Linux.
Những hệ sử dụng X Window thường dùng một hình thức thiết bị trỏ nào đó,
mà thường là con chuột. XFree86 cũng cần có con chuột hoặc một thiết bị trỏ
như quả cầu xoay để phỏng tạo con chuột. Không có dạng thiết bị này, ta
không thể sử dụng XFree86 với Linux. X Window chuyển tín hiệu của thiết bị
trỏ và bàn phím thành một sự kiện (event). Phản hồi của X Window đối với
những sự kiện đó chính là việc thi hành lệnh.
4- Kh n ng c a các GUIả ă ủ
X Consortium đã không đưa ra những tiêu chuẩn về giao diện người dùng,
không ai nói GUI nào là tốt nhất, bởi vì việc dùng GUI rất tuỳ thuộc vào các sở
thích cá nhân. X Consortium muốn làm cho X Window trở thành chuẩn của các
trạm làm việc UNIX. Đó là một trong nhiều lý do giải thích tại sao X Window
được cung cấp miễn phí trên Internet. Được sử dụng miễn phí, X Window phát
huy tính liên tác (interoperability), vốn là nền tảng của các hệ mở.
Sử dụng, quản trị và lập trình UNIX/Linux 11
X Client X Server
Màn hình
Bàn phím
Con chuột
Bộ đệm video
Font chữ
Cửa sổ
Yêu cầu đồ hoạ
Sự kiện
Lê Hồng Tiến Tổ Đào tạo
1.3 Các tệp UNIX
Mục này sẽ mô tả cấu trúc hệ thống tệp với những thành phần chủ yếu và
những thao tác cơ bản trên các tệp bình thường của hệ điều hành UNIX. Độc

Tên ở đây không phân biệt là của các tệp kiểu gì như đã nói trên, nhưng phải
tuân theo các quy ước chung như sau:
Sử dụng, quản trị và lập trình UNIX/Linux 12
Lê Hồng Tiến Tổ Đào tạo
1. Tên của các tệp là một chuỗi các ký tự khả hiện của ASCII.
2. Các chữ viết hoa được phân biệt khác các chữ viết thường.
3. Ký tự đầu tiên phải khác những ký tự sau đây để shell khỏi nhầm lẫn:
+ – =
4. Nói chung phải tránh dùng các ký tự đặc biệt (sẽ nói sau).
5. Tên tệp UNIX System V dài tối đa 14 ký tự.
6. Tên tệp UNIX BSD dài tối đa 255 ký tự.
1.3.2 Các thao tác cơ bản trên tệp bình thường
a. Sao chép các tệp bình thường
1- L nh cpệ
Có thể tạo ra bản sao "tệp1_sao" từ "tệp1" bằng lệnh cp (copy):
% cp tệp1 tệp1_sao
2. cp trong UNIX BSD
Trong UNIX BSD ta có thể dùng tuỳ chọn -i để tránh việc xoá nhầm như sau:
% cp –i tệp1 tệp1_sao
bởi vì nếu đã có sẵn "tệp1_sao" thì UNIX BSD sẽ hỏi:
overwrite tệp1_sao?
(có ghi đè lên "tệp1_sao" không?). Nếu ta đồng ý thì trả lời "y", còn nếu không
thì gõ bất kỳ một ký tự khác "y".
b. Thay đổi tên cho tệp bình thường
1- L nh mvệ
Lệnh mv (move) cho phép ta đổi tên cũ "old_name" của một tệp thành tên mới
"new_name", ví dụ:
% mv old_name new_name
Trong đó bắt buộc tên "old_name" phải có sẵn mặc dù sau đó nó sẽ bị mất.
Nhưng nếu tên "new_name" đã có sẵn thì nó sẽ bị mất và nếu nó không có kết

% rm – –o
e. Liệt kê các tên tệp bình thường
Ta dùng lệnh ls để liệt kê các tên tệp bình thường như sau:
% ls
Trong danh sách liệt kê như vậy sẽ không có các tệp có tên bắt đầu bằng dấu
chấm ".", mặc dù tên đó hợp lệ. Muốn hiện chúng thì dùng tuỳ chọn -a (all):
% ls –a
f. So sánh các tệp
Để minh hoạ các ví dụ sắp tới ta dùng 3 tệp có tên tệp1, tệp2 và tệp3:
tệp1 tệp2 tệp3
AAAAAA AAAAAA AAAAAA
BBBBBB BBBXYZ BBBYYZ
CCCCCC CCCCCC CMCCC
Mỗi tệp trên cùng chứa 3 dòng có nội dung khá giống nhau.
1- L nh cmpệ
Lệnh cmp so sánh 2 tệp có tên ở đối số và sẽ cho kết quả ở vị trí mà hai tệp bắt
đầu khác nhau, ví dụ:
% cmp tệp1 tệp2
tệp1 tệp2 differ: char 11, line 2
Sử dụng, quản trị và lập trình UNIX/Linux 14
Lê Hồng Tiến Tổ Đào tạo
Vị trí đó được hiển thị bằng các số thứ tự của ký tự (char) và dòng (line) tính
đến nơi bắt đầu có sự khác nhau.
Chú ý:
-Trong số thứ tự của ký tự có tính cả ký tự điều khiển, ví dụ <RETURN>
-Nếu tệp1 giống tệp2 thì lệnh cmp sẽ không hiển thị gì cả
-Nếu dùng tuỳ chọn "-l":
% cmp –1 tệp1 tệp2
thì ta sẽ nhận được số (thập phân) của từng cặp ký tự khác nhau, cùng với giá trị bát phân (octal) của
từng cặp đó:

-tuỳ chọn "-" cho phép thay 1 trong 2 tệp bằng những gì gõ ở bàn phím (kết thúc bằng ^D):
% comn – tệp1
- tuỳ chọn "-1" sẽ xoá bỏ việc soạn thảo từ cột 1:
% comn –1 tệp1 tệp2
- tuỳ chọn "-12" sẽ xoá bỏ việc soạn thảo từ cột 1 và cột 2, v.v
Ví dụ lệnh sau sẽ yêu cầu gõ vào một tệp từ bàn phím và không hiển thị gì:
% comn –123 – tệp2
3- L nh diffệ
% diff tệp1 tệp2
Ta sẽ nhận được:
2c2
Sử dụng, quản trị và lập trình UNIX/Linux 15
Lê Hồng Tiến Tổ Đào tạo
< BBBBBB
–––
BBBXYZ
Lưu ý:
-2c2 nghĩa là cần thay dòng 2 của tệp này bằng dòng 2 của tệp kia để cho 2 tệp giống hệt nhau
-Sau đấy hiện lên 2 dòng đã nói để soạn thảo lại chúng.
4- L nh diff3ệ
% diff3 tệp1 tệp2 tệp3
Ta sẽ nhận được:
===
1:2,3c
BBBBBB
CCCCCC
2:2,3c
BBBXYZ
CCCCCC
3:2,3c

AAAAAA
BBBBBB
CCCCCC
==> tệp2 <==
AAAAAA
BBBXYZ
CCCCCC
3- L nh tailệ
a) Lệnh tail chỉ có một đối số, với tuỳ chọn "-n" nó sẽ hiển thị n dòng cuối:
% tail –8 tệp
b) Với tuỳ chọn "+n" nó sẽ hiển thị cả tệp kể từ dòng n:
% tail +8 tệp
c) Không có tuỳ chọn nó sẽ hiển thị 10 dòng cuối:
% tail tệp
d) Thêm tuỳ chọn "-r" nó sẽ đảo ngược trật tự các dòng khi soạn thảo:
% tail –r tệp
hoặc sẽ đảo ngược trật tự 10 dòng cuối:
% rail –10r tệp
e) Với tuỳ chọn "-c" nó sẽ đếm theo ký tự, ví dụ để soạn 10 ký tự cuối cùng của
tệp1 (kể cả các ký tự điều khiển như <RETURN>):
% tail –10c tệp1<RETURN>
BB
CCCCCC
f) Với tuỳ chọn "-b" nó sẽ đếm theo block (1024 ký tự), ví dụ sau sẽ hiện 3
block cuối của tệp:
% tail –3b tệp
b. Biên tập với quản lý màn hình
1- L nh pgệ
a) Hiển thị trang màn hình đầu tiên của tệp_long hoặc vài tệp:
% pg tệp_long

p) Di chuyển đến chuỗi ký tự CHAIN đầu tiên về sau:
?CHAIN?
q) Di chuyển đến chuỗi ký tự CHAIN thứ n về sau, ví dụ thứ 4:
4?CHAIN?
r) Di chuyển đến cuối tệp:
$
s) Hiển thị danh sách các lệnh:
h
t) Ra khỏi lệnh pg trước khi đến cuối tệp:
q
hoặc:
Q
2- L nh moreệ
a) Lệnh more áp dụng với 1 hoặc nhiều tệp:
% more tệp
% more tệp1 tệp2 tệp3
b) Ví dụ muốn hiện 12 dòng của tệp:
% more –12 tệp
c) Với tuỳ chọn "-d" phía dưới màn hình sẽ hiện thêm thông tin về tỷ lệ % của
tệp đã đạt được:
% more –d tệp
d) Để đạt được dòng thứ n ngay từ khi mở đầu, ví dụ thứ 12:
% more +12 tệp
e) Để đạt được chuỗi "CHAIN" thứ nhất ngay từ khi mở đầu:
% more +/CHAIN tệp
Sử dụng, quản trị và lập trình UNIX/Linux 18
Lê Hồng Tiến Tổ Đào tạo
f) Di chuyển từng dòng về phía trước:
<RETURN>
g) Di chuyển từng cửa sổ về phía trước:

% rm tệp1 tệp2 tệp3
Lệnh này có thể viết dưới dạng cô đọng như sau:
% rm tệp?
Ký tự dấu hỏi "?" ở đây được gọi là một siêu ký tự sinh tên tệp vì nó đại diện
cho cả một nhóm ký tự. Chính shell quy định ý nghĩa của các siêu ký tự và diễn
dịch chúng. Nếu toàn bộ thông tin sinh ra bởi các siêu ký tự sinh tên tệp là rỗng
thì ta nhận được thông báo sau:
No match.
Sử dụng, quản trị và lập trình UNIX/Linux 19
Lê Hồng Tiến Tổ Đào tạo
Nói chung siêu ký tự là những ký tự đặc biệt có một ý nghĩa riêng nào đó cho
shell và chỉ cho shell. Nhưng có những ký tự khác không thuộc loại sinh tên
tệp, ví dụ các dấu chỉnh hướng như > và <. Dưới UNIX còn có những ký tự đặc
biệt khác, cũng có ý nghĩa riêng nhưng không phải cho shell mà chỉ cho một số
lệnh nào đó, ví dụ grep.
b. Các siêu ký tự sinh tên tệp
Các siêu ký tự sinh tên tệp (wildcards) là những ký tự sau:
' ? * [ ] – !
(trong đó ký tự "!" chỉ có nghĩa với Bourne shell).
1- Siêu ký t d u h i "?"ự ấ ỏ
Ký tự dấu hỏi sinh ra (thay cho) bất kỳ ký tự nào khác, ví dụ lệnh sau:
% rm fi?e
sẽ có thể tương đương với lệnh:
% rm file fine fire
2- Siêu ký t d u sao "*"ự ấ
Siêu ký tự dấu sao "*" sẽ sinh ra 0, 1 hoặc nhiều ký tự bất kỳ, ví dụ lệnh:
% cat tệp*
sẽ có thể tương đương với lệnh:
% cat tệp tệp1 tệp_in tệp_out
3- C p siêu ký t d u ngo c vuông "ặ ự ấ ặ [" và "]"


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status