Máy Giặt Electrolux Lỗi E-45 Nguy Cơ Lớn Nếu Không Sửa! Tại sao máy giặt Electrolux hiện lỗi E-45? Nguyên nhân, dấu hiệu, cách khắc phục lỗi E-45 máy giặt...
Giáo trình Hệ điều hành Unix – Linux – Hà Quang Thụy, Nguyễn Trí Thành – ĐẠI HỌC QUỐC GIA HÀ NỘI – StuDocu
HÀ QUANG THỤY
NGUYỄN TRÍ THÀNH
Bạn đang đọc: Giáo trình Hệ điều hành Unix – Linux – Hà Quang Thụy, Nguyễn Trí Thành – ĐẠI HỌC QUỐC GIA HÀ NỘI – StuDocu
Giáo trình:
HỆ ĐIỀU HÀNH UNIX – LINUX
Dành cho sinh viên ngành Công nghệ thông tin,
Điện tử – Viễn thông, Toán tin ứng dụng
HÀ NỘI – 2004
MỤC LỤC
- LỜI GIỚI THIỆU
- CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ LINUX
- 1. Giới thiệu về UNIX và Linux
- 1.1. Xuất xứ, quá trình tiến hóa và một số đặc trưng của hệ điều hành UNIX
- 1.1. Giới thiệu sơ bộ về Linux
- 1. Sơ bộ về các thành phần của Linux
- 1.2. Sơ bộ về nhân
- 1.2. Sơ bộ về shell
- 1. Giới thiệu về sử dụng lệnh trong Linux
- 1.3. Các quy ước khi viết lệnh
- 1.3. Làm đơn giản thao tác gõ lệnh
- 1.3. Tiếp nối dòng lệnh
- 1. Trang Man
- CHƯƠNG 2. THAO TÁC VỚI HỆ THỐNG
- 2. Quá trình khởi động Linux
- 2. Thủ tục đăng nhập và các lệnh thoát khỏi hệ thống
- 2.2. Đăng nhập
- 2.2. Ra khỏi hệ thống
- 2.2. Khởi động lại hệ thống
- 2.2. Khởi động vào chế độ đồ hoạ
- 2. Lệnh thay đổi mật khẩu
- 2. Lệnh xem, thiết đặt ngày, giờ hiện tại và xem lịch trên hệ thống
- 2.4 Lệnh xem, thiết đặt ngày, giờ
- 2.4. Lệnh xem lịch
- 2. Xem thông tin hệ thống
- 2. Thay đổi nội dung dấu nhắc shell
- 2. Lệnh gọi ngôn ngữ tính toán số học
- CHƯƠNG 3. HỆ THỐNG FILE
- 3 Tổng quan về hệ thống file
- 3.1. Một số khái niệm
- 3.1. Sơ bộ kiến trúc nội tại của hệ thống file
- 3.1. Một số thuật toán làm việc với inode
- 3.1. Hỗ trợ nhiều hệ thống File
- 3.1. Liên kết tượng trưng (lệnh ln)
- 5 Các lệnh cơ bản liên quan đến nhóm người dùng
- 5.3 Nhóm người dùng và file /etc/group
- 5.3 Thêm nhóm người dùng
- 5.3 Sửa đổi các thuộc tính của một nhóm người dùng (lệnh groupmod)
- 5.3 Xóa một nhóm người dùng (lệnh groupdel)
- 5 Các lệnh cơ bản khác có liên quan đến người dùng
- 5.4 Đăng nhập với tư cách một người dùng khác khi dùng lệnh su
- 5.4 Xác định người dùng đang đăng nhập (lệnh who)
- 5.4 Xác định các quá trình đang được tiến hành (lệnh w)
- CHƯƠNG 6. TRUYỀN THÔNG VÀ MẠNG UNIX-LINUX
- 6. Lệnh truyền thông
- 6.1. Lệnh write
- 6.1. Lệnh mail
- 6.1. Lệnh talk
- 6 Cấu hình Card giao tiếp mạng
- 6. Các dịch vụ mạng
- 6.3 Hệ thông tin mạng NIS
- 6 Hệ thống file trên mạng
- 6.4 Cài đặt N FS
- 6.4 Khởi động và dừng NFS
- 6.4 Cấu hình NFS server và Client
- 6.4 Sử dụng mount
- 6.4 Unmount
- 6.4 Mount tự động qua tệp cấu hình
- CHƯƠNG 7. LẬP TRÌNH SHELL VÀ LẬP TRÌNH C TRÊN LINUX
- 7. Cách thức pipes và các yếu tố cơ bản lập trình trên shell
- 7.1. Cách thức pipes
- 7.1. Các yếu tố cơ bản để lập trình trong shell
- 7. Một số lệnh lập trình trên shell
- 7.2. Sử dụng các toán tử bash
- 7.2. Điều khiển luồng
- 7.2 Các toán tử định hướng vào ra
- 7.2. Hiện dòng văn bản
- 7.2. Lệnh read độc dữ liệu cho biến người dùng
- 7.2. Lệnh set
- 7.2. Tính toán trên các biến
- 7.2. Chương trình ví dụ
- 7. Lập trình C trên UNIX
- 7.3. Trình biên dịch gcc
- 7.3. Công cụ GNU make
- 7.3. Làm việc với file
- 7.3. Thư viện liên kết
- 7.3 Các công cụ cho thư viện
- TÀI LIỆU THAM KHẢO
- CHÚ THÍCH MỘT SỐ THUẬT NGỮ
- PHỤ LỤC A. QUÁ TRÌNH CÀI ĐẶT REDHAT-LINUX
- AA. Cài đặt phiên bản RedHat 6
- AA. Tạo đĩa mềm khởi động
- AA. Phân vùng lại ổ đĩa DOS/Windows hiện thời
- AA. Các bước cài đặt (bản RedHat 6 và khởi động từ CD-ROM)
- AA. Các hạn chế về phần cứng đối với Linux
- PHỤ LỤC B. TRÌNH SOẠN THẢO VIM
- B Khởi động vim
- B.1 Mở chương trình soạn thảo vim
- B.1. Tính năng mở nhiều cửa sổ
- B.1. Ghi và thoát trong vim
- B. Di chuyển trỏ soạn thảo trong Vim
- B.2. Di chuyển trong văn bản
- B.2. Di chuyển theo các đối tượng văn bản
- B.2. Cuộn màn hình
- B. Các thao tác trong văn bản
- B.3. Các lệnh chèn văn bản trong vim
- B.3. Các lệnh xoá văn bản trong vim
- B.3. Các lệnh khôi phục văn bản trong vim
- 6.3. Các lệnh thay thế văn bản trong vim
- B.3. Sao chép và di chuyển văn bản trong vim
- B.3. Tìm kiếm và thay thế văn bản trong vim
- B.3. Đánh dấu trong vim
- B.3. Các phím sử dụng trong chế độ chèn
- B.3. Một số lệnh trong chế độ ảo
- B.3. Các lệnh lặp
- B. Các lệnh khác
- B.4. Cách thực hiện các lệnh bên trong Vim
- B.4. Các lệnh liên quan đến file
LỜI GIỚI THIỆU
Trong hơn mười năm trở lại đây hệ điều hành Linux đã
CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ LINUX
1. Giới thiệu về UNIX và Linux
1.1. Xuất xứ, quá trình tiến hóa và một số đặc trưng của hệ điều hành UNIX
Năm 1965, Viện công nghệ Massachusetts (MIT: Massachusetts Institute of
Technology) và Phòng thí nghiệm Bell của hãng AT&T thực hiện dự án xây dựng một hệ
điều hành có tên gọi là Multics (MULTiplexed Information and Computing Service) với
mục tiêu: tạo lập được một hệ điều hành phủ trên vùng lãnh thổ rộng (hoạt động trên tập
các máy tính được kết nối), đa người dùng, có năng lực cao về tính toán và lưu trữ. Dự án
nói trên thành công ở mức độ hết sức khiêm tốn và người ta đã biết đến một số khiếm
khuyết khó khắc phục của Multics.
Năm1969, Ken Thompson, một chuyên viên tại phòng thí nghiệm Bell, người đã tham
gia dự án Multics, cùng Dennics Richie viết lại hệ điều hành đa-bài toán trên máy PDP-
với tên là UNICS (UNiplexed Information and Computing Service) từ một câu gọi đùa của
một đồng nghiệp. Trong hệ điều hành UNICS, một số khởi thảo đầu tiên về Hệ thống file
đã được Ken Thompson và Dennis Ritchie thực hiện. Đến năm 1970 hệ điều hành được viết
trên assembler cho máy PDP-11/20 và mang tên là UNIX.
Năm 1973, Riche và Thompson viết lại nhân của hệ điều hành UNIX trên ngôn ngữ C,
và hệ điều hành đã trở nên dễ dàng cài đặt tới các loại máy tính khác nhau; tính chất như
thế được gọi là tính khả chuyển (portable) của UNIX. Trước đó, khoảng năm 1971, hệ điều
hành được thể hiện trên ngôn ngữ B (mà dựa trên ngôn ngữ B, Ritche đã phát triển thành
ngôn ngữ C).
Hãng AT&T phổ biến chương trình nguồn UNIX tới các trường đại học, các công ty
thương mại và chính phủ với giá không đáng kể.
Năm 1982, hệ thống UNIX-3 là bản UNIX thương mại đầu tiên của AT&T.
Năm 1983, AT&T giới thiệu Hệ thống UNIX-4 phiên bản thứ nhất trong đó đã có trình
soạn thảo vi, thư viện quản lý màn hình được phát triển từ Đại học Tổng hợp California,
Berkley.
Giai đoạn 1985-1987, UNIX-5 phiên bản 2 và 3 tương ứng được đưa ra vào các năm
1985 và 1987. Trong giai đoạn này, có khoảng 100000 bản UNIX đã được phổ biến trên thế
giới, cài đặt từ máy vi tính đến các hệ thống lớn.
Đầu thập kỷ 1990. UNIX-5 phiên bản 4 được đưa ra như là một chuẩn của UNIX. Đây
là sự kết hợp của các bản sau:
AT&T UNIX-5 phiên bản 3, Berkley Software Distribution ( BSD ), XENIX của MicroSoft SUN OS Có thể tìm thấy những nội dung tương quan tới 1 số ít phiên bản mới của UNIX tại địa chỉ website problem.rice/. Các nhóm nhà phân phối khác nhau về UNIX đang hoạt động giải trí trong thời hạn lúc bấy giờ được kể đến như sau : Unix International ( viết tắt là UI ). UI là một tổ chức triển khai gồm những nhà sản xuất triển khai việc chuyển nhượng ủy quyền mạng lưới hệ thống UNIX-5 và cung ứng bản AT&T theo những Sử dụng phổ cập một dạng đơn thuần trình diễn nội tại của File như một dòng những byte được cho phép thuận tiện khi viết những chương trình ứng dụng truy nhập, thao tác với những tài liệu trong File, Có liên kết đơn thuần với thiết bị ngoại vi : những file thiết bị đã được đặt sẵn trong Hệ thống File tạo ra một liên kết đơn thuần giữa chương trình người dùng với những thiết bị ngoại vi, Là hệ điều hành đa người dùng, đa quy trình, trong đó mỗi người dùng hoàn toàn có thể triển khai những quy trình của mình một cách độc lập. Mọi thao tác vào – ra của hệ điều hành được triển khai trên mạng lưới hệ thống File : mỗi thiết bị vào ra tương ứng với một file. Chương trình người dùng thao tác với file đó mà không cần chăm sóc đơn cử tên file đó được đặt cho thiết bị nào trong mạng lưới hệ thống. Che khuất cấu trúc máy so với người dùng, bảo vệ tính độc lập tương đối của chương trình so với tài liệu và phần cứng, tạo điều kiện kèm theo thuận tiện hơn cho người lập trình khi viết những chương trình chạy UNIX với những điều kiện kèm theo phần cứng trọn vẹn độc lạ nhau .
1.1. Giới thiệu sơ bộ về Linux
Linus Tovalds ( một sinh viên Phần lan ) đưa ra nhân ( phiên bản tiên phong ) cho hệ điều hành Linux vào tháng 8 năm 1991 trên cơ sở nâng cấp cải tiến một phiên bản UNIX có tên Minix do Giáo sư Andrew S. Tanenbaum kiến thiết xây dựng và phổ cập. Nhân Linux tuy nhỏ tuy nhiên là tự đóng gói. Kết hợp với những thành phần trong mạng lưới hệ thống GNU, hệ điều hành Linux đã được hình thành. Và cũng từ thời gian đó, theo tư tưởng GNU, hàng nghìn, hàng vạn chuyên viên trên toàn quốc tế ( những người này hình thành nên hội đồng Linux ) đã tham gia vào quy trình tăng trưởng Linux và thế cho nên Linux ngày càng phân phối nhu yếu của người dùng. Dưới đây là 1 số ít mốc thời hạn quan trọng trong quy trình hình thành và tăng trưởng hệ điều hành Linux . Sau ba năm nhân Linux sinh ra, đến ngày 14-3-1994, hệ điều hành Linux phiên bản 1. được phổ cập. Thành công lớn nhất của Linux 1 là nó đã tương hỗ giao thức mạng TCP / IP chuẩn UNIX, sánh với giao thức socket BSD – thích hợp cho lập trình mạng. Trình tinh chỉnh và điều khiển thiết bị đã được bổ trợ để chạy IP trên một mạng Ethernet hoặc trên tuyến đơn hoặc qua modem. Hệ thống file trong Linux 1 đã vượt xa mạng lưới hệ thống file của Minix thường thì, ngoài những đã tương hỗ điều khiển và tinh chỉnh SCSI truy nhập đĩa vận tốc cao. Điều khiển bộ nhớ ảo đã được lan rộng ra để tương hỗ tinh chỉnh và điều khiển trang cho những file swap và ánh xạ bộ nhớ của file độc quyền ( chỉ có một ánh xạ bộ nhớ chỉ đọc được thi hành trong Linux 1 ). Vào tháng 3-1995, nhân 1 được phổ cập. Điều đáng kể của Linux 1 so với Linux 1 ở chỗ nó tương hỗ một khoanh vùng phạm vi rộng và nhiều mẫu mã phần cứng, gồm có cả kiến trúc tuyến phần cứng PCI mới. Nhân Linux 1 là nhân kết thúc dòng nhân Linux chỉ tương hỗ PC. Một điều cần quan tâm về những đánh chỉ số những dòng nhân ( hệ điều hành ) Linux. Hệ thống chỉ số được chia thành 1 số ít mức, ví dụ điển hình hai mức như 2 hoặc ba mức như 2.2. Trong cách đánh chỉ số như vậy, quy ước rằng với những chỉ số từ mức thứ hai trở đi, nếu là số chẵn thì dòng nhân đó đã khá không thay đổi và tương đối triển khai xong, còn nếu là số lẻ thì dòng nhân đó vẫn đang được tăng trưởng tiếp . Tháng 6-1996, nhân Linux 2 được thông dụng. Có hai đặc trưng điển hình nổi bật của Linux 2 là tương hỗ kiến trúc phức tạp, gồm có cả cổng Alpha 64 – bit rất đầy đủ, và tương hỗ kiến trúc đa bộ giải quyết và xử lý. Phân phối nhân Linux 2 cũng thi hành được trên bộ giải quyết và 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. Tới năm 2000, nhân Linux 2 được phổ cập. Một trong đặc thù được chăm sóc của nhân này là nó tương hỗ mã ký tự Unicode 32 bít, rất thuận tiện cho việc thiết kế xây dựng những giải pháp tổng lực và triệt để so với yếu tố ngôn từ tự nhiên trên khoanh vùng phạm vi toàn quốc tế .
Vấn đề phân phối và giấy phép Linux
Về triết lý, mọi người hoàn toàn có thể khởi tạo một mạng lưới hệ thống Linux bằng cách tiếp đón bản mới nhất những thành phần thiết yếu từ những site ftp và biên dịch chúng. Trong thời kỳ tiên phong, người dùng Linux phải triển khai hàng loạt những thao tác này và vì thế việc làm là khá khó khăn vất vả. Tuy nhiên, do có sự tham gia phần đông của những cá thể và nhóm tăng trưởng Linux, đã triển khai thực thi nhiều giải pháp nhằm mục đích làm cho việc làm khởi tạo mạng lưới hệ thống đỡ khó khăn vất vả. Một trong những giải pháp điển hình nhất là phân phối tập những 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 mạng lưới hệ thống Linux cơ sở. Chúng thường gồm có những tiện ích bổ trợ cho khởi tạo mạng lưới hệ thống, những thư viện quản trị, cũng như nhiều gói đã được tiền dịch, sẵn sàng chuẩn bị khởi tạo của nhiều bộ công cụ UNIX dùng chung, ví dụ điển hình như ship hàng tin, trình duyệt web, công cụ giải quyết và xử lý, soạn thảo văn bản và thậm chí còn những game show. Cách thức phân phối bắt đầu rất đơn thuần tuy nhiên ngày càng được tăng cấp và hoàn thành xong bằng phương tiện đi lại quản trị gói tiên tiến và phát triển. Các bản phân phối thời nay gồm có những cơ sở tài liệu tiến hóa gói, được cho phép những gói thuận tiện được khởi tạo, tăng cấp và vô hiệu. Nhà phân phối tiên phong thực thi theo mục tiêu này là Slakware, và chính họ là những chuyển biến can đảm và mạnh mẽ trong hội đồng Linux so với việc làm quản trị gói khởi tạo Linux. Tiện ích quản trị gói RPM ( RedHat Package Manager ) của công ty RedHat là một trong những phương tiện đi lại nổi bật. Nhân Linux là ứng dụng tự do được phân phối theo Giấy phép chiếm hữu công cộng ứng dụng GNU GPL .
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 ứng dụng tự do GNU, từ hệ điều hành BSD của Đại học Berkeley và từ mạng lưới hệ thống X-Window của MIT. Thư viện mạng lưới 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 hội đồng Linux tăng trưởng tiếp, những tăng trưởng tiếp theo như vậy hầu hết tương quan tới việc xử lý những yếu tố như thiếu vắng địa chỉ ( lỗi trang ), thiếu hiệu suất cao và tháo gỡ. Một số thành phần khác của Dự án GNU, ví dụ điển hình 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 trị mạng được bắt nguồn từ mã 4 tuy nhiên sau đó đã được hội đồng Linux tăng trưởng, ví dụ điển hình như thư viện toán học đồng giải quyết và xử lý dấu chấm động Intel và những trình điều khiển và tinh chỉnh thiết bị phần cứng âm thanh PC. Các tool quản trị mạng này sau đó lại được bổ trợ vào mạng lưới hệ thống BSD. Hệ thống Linux được duy trì gần như bởi một mạng lưới không ngặt nghèo những nhà tăng trưởng ứng dụng cộng tác với nhau qua Internet, mạng lưới này gồm những nhóm nhỏ và cá thể
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.
Chính vì lẽ đó đã hình thành một số nhà cung cấp Linux trên thế giới. Bảng dưới đây là
tên của một số nhà cung cấp Linux có tiếng nhất và địa chỉ website của họ.
Đáng chú ý nhất là Red Hat Linux (tại Mỹ) và Red Flag Linux (tại Trung Quốc). Red
Hat được coi là lâu đời và tin cậy, còn Red Flag là một công ty Linux của Trung quốc, có
quan hệ với cộng đồng Linux Việt nam và chúng ta có thể học hỏi một cách trực tiếp kinh
nghiệm cho quá trình đưa Linux vào Việt nam.
Tên công ty Địa chỉ website
Caldera OpenLinux caldera
Corel Linux corel
Debian GNU/Linux debian
Linux Mandrake mandrake
Red Hat Linux redhat
Red Flag Linux redflag-linux
Slackware Linux slackware
SuSE Linux suse
TurboLinux turbolinux
1. Sơ bộ về các thành phầ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 lịch sử, 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 nghĩa vụ và trách nhiệm duy trì những đối tượng người dùng trừu tượng quan trọng của hệ điều hành, gồm có bộ nhớ ảo và quy trình. Các mô đun chương trình trong nhân được độc quyền trong mạng lưới hệ thống, gồm có độc quyền thường trực ở bộ nhớ trong. – Thư viện mạng lưới hệ thống xác lập một tập chuẩn những hàm để những ứng dụng tương tác với nhân, và thi hành nhiều tính năng của mạng lưới hệ thống nhưng không cần có những độc quyền của mô đun thuộc nhân. Một mạng lưới hệ thống con nổi bật được thi hành dựa trên thư viên mạng lưới hệ thống là mạng lưới hệ thống file Linux. – Tiện ích mạng lưới hệ thống là những chương trình thi hành những trách nhiệm quản trị riêng rẽ, chuyên biệt. Một số tiện ích mạng lưới hệ thống được gọi ra chỉ một lần để khởi động và thông số kỹ thuật phương tiện đi lại mạng lưới hệ thống, một số ít tiện ích khác, theo thuật ngữ UNIX được gọi là trình chạy ngầm ( daemon ), hoàn toàn có thể chạy một cách tiếp tục ( thường theo chu kỳ luân hồi ), tinh chỉnh và điều khiển những bài toán như hưởng ứng những liên kết mạng mới đến, đảm nhiệm nhu yếu logon, hoặc update những 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 trình làng chi tiết cụ thể về 1 số ít lệnh thông dụng nhất của Linux. Hệ thống file sẽ được trình làng trong chương 3. Trong những chương sau có đề cập tới nhiều nội dung tương quan đến nhân và shell, tuy nhiên dưới đây là 1 số ít nét sơ bộ về chúng .
1.2. Sơ bộ về nhân
Nhân ( còn được gọi là hệ lõi ) của Linux, là một bộ những môdun chương trình có vai trò tinh chỉnh và điều khiển những thành phần của máy tính, phân phối những tài nguyên cho người dùng ( những quy 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 nhu yếu của mình và nhu yếu đó được nhân gửi tới shell : Shell nghiên cứu và phân tích lệnh và gọi những chương trình tương ứng với lệnh để thực thi. Một trong những tính năng quan trọng nhất của nhân là xử lý bài toán lập lịch, tức là mạng lưới hệ thống cần phân loại CPU cho nhiều quy trình hiện thời cùng sống sót. Đối với Linux, số lượng quy trình hoàn toàn có thể lên tới số lượng hàng nghìn. Với số lượng quy trình đồng thời nhiều như vậy, những thuật toán lập lịch cần phải đủ hiệu suất cao : Linux thường lập lịch theo chính sách Round Robin ( RR ) thực thi việc luân chuyển CPU theo lượng tử thời hạn. Thành phần quan trọng thứ hai trong nhân là mạng lưới hệ thống những môđun chương trình ( được gọi là lời gọi mạng lưới hệ thống ) thao tác với mạng lưới hệ thống file. Linux có hai phương pháp thao tác với những file : thao tác theo byte ( kí tự ) và thao tác theo khối. Một đặc thù đáng quan tâm là file trong Linux hoàn toàn có thể được nhiều người cùng truy nhập tới nên những lời gọi mạng lưới hệ thống thao tác với file cần bảo vệ việc file được truy nhập theo quyền và được chia xẻ cho người dùng .
1.2. Sơ bộ về shell
Một số nội dung chi tiết về shell (còn được gọi là hệ vỏ ) trong Linux được trình bày
trong chương “Lập trình trên shell”. Những nội dung trình bày dưới đây cung cấp một cách
nhìn sơ bộ về shell và vai trò của nó trong hoạt động chung của hệ điều hành.
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 quá trình mới (khởi tạo quá trình) và sau đó, shell chờ đợi quá
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 PS 1
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 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, nế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.
ls là tên lệnh thực hiện việc đưa danh sách các tên file/ thư mục con trong một
thư mục,
-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ừ “-“.
Tương ứng với lệnh ls còn có các tham số khóa -a, -L, … và chúng cũng là các
tùy chọn lệnh. Trong một số tham số khóa có nhiều chữ cái thay cho một dấu ” – ”
là hai dấu ” — ” ở đầu tham số. Ví dụ, như trường hợp tham số –file của lệnh
date.
g* là tham số vị trí chỉ rõ người dùng cần xem thông tin về các file có tên gọi bắt
đầu là chữ cái “g”.
Trong tài liệu này, quy ước rằng khi viết một lệnh (trong mô tả lệnh và gõ lệnh) thì
không cần phải viết dấu “” ở cuối dòng lệnh đó, song luôn ghi nhớ rằng phím ENTER
(“”) là bắt buộc khi gõ lệnh.
Lưu ý:
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à:
Các tên lệnh là chữ thường,
Một số tham số có thể là chữ thường hoặc chữ hoa (ví dụ, trong lệnh date
về thời gian hệ thống thì hai tham số -r và -R có ý nghĩa hoàn toàn khác
nhau). Tên các biến môi trường cũng thường dùng chữ hoa.
Trong tài liệu này, tại những dòng văn bản diễn giải, sử dụng cách viết tên lệnh,
các tham số khóa bằng kiểu chữ không chân, đậm như date, -R, -r …
Linux phân biệt siêu người dùng (tiếng Anh là superuser hoặc root, còn được gọi
là người quản trị hay người dùng tối cao hoặc siêu người dùng ) 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 mà chỉ siêu
người dùng mới được phép sử dụng còn người dùng thông thường thì không
được phép (ví dụ như lệnh adduser thực hiện việc bổ sung thêm người dùng).
Mặt khác trong một số lệnh, với một số tham số khóa thì chỉ siêu người dùng
được phép dùng, còn với một số tham số khác thì mọi người dùng đều được
phép (ví dụ như lệnh passwd thay đổi mật khẩu người 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 “|”. Ví dụ về một số dòng lệnh
dạng này:
**# ls -l; date
head Filetext | sort >temp**head Filetext | sort > temp * * Sau khi người dùng gõ xong dòng lệnh, shell đảm nhiệm dòng lệnh này và nghiên cứu 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 thi ; ngược lại, trong trường hợp có sai sót khi gõ lệnh thì shell thông tin 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ổ cập, nếu như sau khi người dùng gõ lệnh, không thấy thông tin sai sót hiện ra thì có nghĩa lệnh đã được triển khai một cách thông thường. Trước khi đi vào nội dung chi tiết cụ thể những lệnh thông dụng, tất cả chúng ta xem xét về một số ít lao lý dùng trong miêu tả lệnh được trình diễn trong tài liệu này .
1.3. Các quy ước khi viết lệnh
Trong tài liệu này, những lệnh được trình diễn theo một bộ quy tắc cú pháp đồng nhất. Bộ quy tắc này được cho phép phân biệt trong mỗi lệnh những thành phần nào là bắt buộc phải có, những thành phần nào hoàn toàn có thể có hoặc không … Dưới đây là nội dung của những quy tắc trong bộ quy tắc đó .
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ụ, mô tả cú pháp của lệnh more xem nội dung file là
# more
thì từ more là tên lệnh, còn
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.
Để xem nội dung file có tên là temp, người dùng gõ lệnh:
# more temp
Như vậy, tên lệnh more được gõ đúng như mô tả cú pháp (cả nội dung và vị trí) còn
” file ” đã được thay thế bằng từ ” temp ” là tên file mà người dùng muốn xem nội dung.
Các bộ phận nằm giữa cặp dấu ngoặc vuông [ và ] là có thể gõ hoặc không gõ
cũng được.
Ví dụ, cú pháp của lệnh halt là
# halt [tùy-chọn]
Với các tùy chọn là -w, -n, -d, -f, -i mã mỗi tùy chọn cho một cách thức hoạt động
khác nhau của lệnh halt. Lệnh halt có tác động chính là làm ngừng hoạt động của hệ điều
hành, tuy nhiên khi người dùng muốn có một cách hoạt động nào đó của lệnh này thì sẽ
chọn một (hoặc một số) tuỳ chọn lệnh tương ứng. Một số cách gõ lệnh halt của người dùng
như sau đây là đúng cú pháp:
* * # halthalt -whalt -nhalt -f**
Các giá trị có trong cặp | và | trong đó các bộ phận cách nhau bằng dấu sổ đứng
"|" cho biết cần chọn một và chỉ một trong các giá trị nằm giữa hai dấu ngoặc
đó.
halt – whalt – nhalt – f * *
Ví dụ, khi giới thiệu về tùy chọn lệnh của lệnh tail xem phần cuối nội dung của file,
chúng ta thấy:
-f, –follow[={tên | đặc tả}]
Như vậy, sau tham số khóa –follow, nếu xuất hiện thêm dấu bằng ” = ”
thì phải có hoặc tên hoặc đặc tả. Đây là trường hợp các chọn lựa “loại trừ nhau”.
Ngoài những quy ước trên đây, người dùng đừng quên một pháp luật cơ bản là cần phân biệt chữ hoa với chữ thường khi gõ lệnh .
1.3. 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 việc làm nặng nề, tuy nhiên Linux còn được cho phép người dùng sử dụng 1 số ít phương pháp để thuận tiện hơn khi gõ lệnh. Một số trong những phương pháp đó là :
Sử dụng việc khôi phục dòng lệnh,
Sử dụng các phím đặc biệt,
Sử dụng các kí hiệu thay thế và phím
Sử dụng thay thế alias ,
Sử dụng chương trình lệnh.
Cách thức sử dụng chương trình lệnh (shell script) sẽ được giới thiệu chi tiết trong các
chương sau. Dưới đây, chúng ta xem xét cách thức sử dụng việc khôi phục dòng lệnh, phím
đặc biệt và kí hiệu thay thế.
Cơ chế khôi phục dòng lệnh
Linux cung cấp một cách thức đặc biệt là khả năng khôi phục lệnh. Tại dấu nhắc shell:
Người dùng sử dụng các phím mũi tên lên/xuống (/) trên bàn phím để nhận lại các dòng
lệnh đã được đưa vào trước đây tại dấu nhắc shell, chọn một trong các dòng lệnh đó và biên
tập lại nội dung dòng lệnh theo đúng yêu cầu mới của mình.
Ví dụ, người dùng vừa gõ xong dòng lệnh:
# ls -l tenfile*
sau đó muốn gõ lệnh ls -l tentaptin thì tại dấu nhắc của shell, người dùng sử dụng các
phím di chuyển lên () hoặc xuống () để nhận được:
# ls -l tenfile*
dùng những phím tắt để vận động và di chuyển, xoá kí tự ( xem phần sau ) để có được :
# ls -l ten
và gõ tiếp những kí tự ” taptin ” để nhận được :
# ls -l tentaptin
chính là tác dụng mong ước. Trong trường hợp số lượng kí tự thay thế sửa chữa là rất ít so với số lượng kí tự của toàn dòng lệnh thì hiệu suất cao của phương pháp này rất cao .
Lưu ý:
Việc nhấn liên tục những phím chuyển dời lên ( ) hoặc xuống ( ) được cho phép người dùng nhận được những dòng lệnh đã gõ từ trước mà không chỉ dòng lệnh mới được gõ. Cách thức này tương tự như với phương pháp sử dụng tiện ích DOSKEY trong hệ điều hành MS-DOS .
Một số phím đặc biệt khi gõ lệnh
Khi người dùng gõ lệnh hoàn toàn có thể xẩy ra một số ít trường hợp 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
Nhấn phím
Nhấn phím
Nhấn phím
Nhấn phím
Nhấn phím
Nhấn phím
Có thể dùng phím
Các kí hiệu mô tả nhóm file và phím
Xem thêm: Ứng dụng Falo – Ứng dụng kết bạn hẹn hò bốn phương | Link tải, cách sử dụng, mẹo thủ thuật
Khi gõ lệnh thực sự nhiều trường hợp người dùng mong ước một tham số trong lệnh không chỉ xác lập một file mà lại tương quan đến một nhóm những file mà tên gọi của những file trong nhóm có chung một đặc thù nào đó. Trong những trường hợp như vậy, người dùng cần sử dụng những kí hiệu miêu tả nhóm file ( wildcards ), tất cả chúng ta gọi là kí hiệu diễn đạt nhóm ( còn được gọi là kí hiệu thay thế sửa chữa ). Người ta sử dụng những kí tự *, ? và cặp hai dấu [ và ] để miêu 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ả.
“?” : 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 mô 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à [
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ừ
Chẳng hạn, cách viết [a-d] tương đương với cách viết [abcd].
Ví dụ, giả sử khi muốn làm việc với tất cả các file trong một thư mục nào đó, người
dùng gõ * thay thế tham số file thì xác định được các tên file sau (chúng ta viết bốn tên file
trên một dòng):
info-dir initlog inittab lynx
mail mailcap minicom motd
Source: https://vh2.com.vn
Category : Ứng Dụng