SlideShare una empresa de Scribd logo
1 de 232
Descargar para leer sin conexión
GNUFDL • PID_00148369 GNU/Linux cơ bản
Hệ điều hành
GNU/Linux cơ bản
Jordi Serra i Ruiz (người điều phối)
David Megías Jiménez (người điều phối)
Jordi Mas (người điều phối)
Joaquín López Sánchez-Montañés
Sofia Belles Ramos
Roger Baig Viñas
Francesc Aulí Llinàs
PID_00148369
GNU/Linux Basic
operating system
Jordi Serra i Ruiz (coordinator)
David Megías Jiménez (coordinator)
Jordi Mas (coordinator)
Joaquín López Sánchez-Montañés
Sofia Belles Ramos
Roger Baig Viñas
Francesc Aulí Llinàs
PID_00148369
Trang 2/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Xuất bản lần thứ 2: Tháng 02/2008
© Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig i Viñas i Francesc Aulí Llinàs
© Cấp vốn từ Đại học Oberta de Catalunya
Av. Tibidabo, 39-43, 08035 Barcelona
Chuẩn bị tư liệu: Eureca Media, SL
Tiền gửi pháp lý: B-1.567-2008
Bản quyền Copyright © 2010, FUOC. Các quyền được trao để sao chép, phân phối và/hoặc sửa đổi tài liệu này theo
các điều khoản của Giấy phép Tài liệu Tự do GNU, phiên bản 1.2 (GFDL v1.2) hoặc bất kỳ phiên bản nào được xuất
bản sau này từ Quỹ Phần mềm Tự do; mà không có các phần bất biến, không các văn bản bìa ngoài, không các văn
bản bìa sau. Một bản sao của giấy phép này được đưa vào trong phần có đầu đề “Giấy phép Tài liệu Tự do GNU”.
Second edition: February 2008
© Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig i Viñas i Francesc Aulí Llinàs
© Fundació per a la Universitat Oberta de Catalunya
Av. Tibidabo, 39-43, 08035 Barcelona
Material prepared by Eureca Media, SL
Legal deposit: B-1.567-2008
Copyright © 2010, FUOC. Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with
no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section
entitled "GNU Free Documentation License".
Trang 3/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Lời người dịch
Trong bối cảnh khi mà các Công nghệ Tự do đang ngày càng trở thành một xu thế không
thể đảo ngược trên toàn thế giới, tài liệu “Hệ điều hành GNU/Linux cơ bản” của các tác
giả: Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig Viñas, Francesc
Aulí Llinàs và những người điều phối: Jordi Serra i Ruiz, David Megías Jiménez, Jordi
Mas, với bản tiếng Anh xuất bản lần 2 vào tháng 02/2008 của Viện Hàn lâm Công nghệ
Tự do FTA (Free Technology Academy), là tài liệu được sử dụng trong chương trình đào
tạo trực tuyến cho các giáo viên theo các module của khóa học về các Công nghệ tự do và tại một
số trường đại học châu Âu cùng đứng ra thành lập Viện như: Đại học Mở Hà Lan (Open
Universiteit Nederland), Đại học Oberta de Catalunya của Tây Ban Nha (Universitat Oberta de
Catalunya) và Đại học Agder của Nauy (University of Agder).
Bản dịch sang tiếng Việt được thực hiện từ bản gốc tiếng Anh, được đưa lên trực tuyến trên website
của Viện tại địa chỉ: http://ftacademy.org/materials, hầu như không có sự tùy biến nào về nội dung.
Tuân thủ theo các điều khoản của giấy phép được giới thiệu trong tài liệu gốc tiếng Anh, trong phần
phụ lục ở cuối tài liệu này, tại nơi có giới thiệu giấy phép tài liệu tự do GFDL v.1.2, dù có cả bản
dịch sang tiếng Việt đi cùng, thì bản dịch chỉ để tham khảo, bản gốc bằng tiếng Anh mới là bản có
giá trị pháp lý cao nhất.
Các trang có những lưu ý về bản quyền của bản gốc tiếng Anh được giữ nguyên không thay đổi, dù
có các phần dịch tương ứng sang tiếng Việt nằm trên cùng các trang đó.
Tài liệu này được cấp phép theo giấy phép tài liệu tự do GFDL v1.2 và các phiên bản tương ứng
tiếp sau của giấy phép này.
Tài liệu “Hệ điều hành GNU/Linux cơ bản”, cùng với 2 tài liệu khác cũng đã được dịch sang tiếng
Việt và xuất bản trên mạng gồm: “Giới thiệu Phần mềm Tự do” và “Quản trị cao cấp GNU/Linux”
đều nằm trong cùng bộ sách đào tạo về các công nghệ tự do của Viện Hàn lâm Công nghệ Mở.
Những nội dung của tài liệu này là những kiến thức cơ bản đối với bất kỳ người quản trị hệ thống
GNU/Linux nào.
Mọi thông tin đóng góp cho các bản dịch sang tiếng Việt, xin gửi vào địa chỉ thư điện tử:
letrungnghia.foss@gmail.com
Chúc các độc giả thành công!
Hà Nội, tháng 09 năm 2012
Lê Trung Nghĩa
Trang 4/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Lời nói đầu
Phần mềm đã trở thành một tài nguyên xã hội chiến lược trong vài thập kỷ vừa qua. Sự nổi lên của
Phần mềm Tự do (PMTD), đã thâm nhập vào trong những lĩnh vực chính của thị trường công nghệ
thông tin và truyền thông (CNTT-TT), làm thay đổi nhanh chóng các nền kinh tế phát triển và sử
dụng phần mềm. PMTD - đôi lúc cũng được tham chiếu tới như là “Nguồn Mở” (Open Source)
hoặc “Phần mềm tự do” (Libre Software) - có thể được sử dụng, nghiên cứu, sao chép, sửa đổi và
phân phối một cách tự do. Nó đưa ra sự tự do để học và dạy mà không có những phụ thuộc vào bất
kỳ nhà cung cấp công nghệ duy nhất nào. Những quyền tự do đó được xem là một điều kiện tiên
quyết cơ bản cho sự phát triển bền vững và một xã hội thông tin toàn diện.
Dù có sự quan tâm đang gia tăng trong các công nghệ tự do (PMTD và các Chuẩn Mở), vẫn có số
người hạn chế có đủ tri thức và sự tinh thông trong các lĩnh vực đó. FTA có ý định đáp ứng cho nhu
cầu này.
Giới thiệu FTA
Viện Hàn lâm Công nghệ Tự do (FTA - Free Technology Academy) là một sáng kiến chung từ vài tổ
chức giáo dục tại vài quốc gia. Nó có mục tiêu đóng góp cho xã hội nhằm cho phép tất cả mọi
người sử dụng nghiên cứu, tham gia và xây dựng trên tri thức hiện có mà không có giới hạn nào.
FTA đưa ra những gì?
Viện hàn lâm đưa ra một chương trình mức giáo viên trực tuyến với các module khóa học về các
Công nghệ Tự do. Các học viên có thể chọn để ghi danh vào trong một khóa học riêng rẽ hoặc đăng
ký cho toàn bộ chương trình. Việc dạy học diễn ra trực tuyến trong khu trường ảo của FTA và được
các nhân viên dạy học được thừa nhận tại các trường đại học đó thực hiện.
Ai đứng đằng sau FTA?
FTA đã được khởi xướng vào năm 2008 và được hỗ trợ từ Chương trình Học tập Suốt Đời (LLP -
Life Long Learning Programme) của Ủy ban châu Âu, theo sự điều phối của Viện Tri thức Tự do và
trong mối quan hệ đối tác với 3 trường đại học của châu Âu là: Đại học Mở Hà Lan (Hà Lan), Đại
học Oberta de Catalunya (Tây Ban Nha) và Đại học Agder (Nauy).
FTA là vì ai?
FTA đặc biệt hướng tới những người chuyên nghiệp, các nhà giáo dục, các sinh viên và những
người ra quyết định về CNTT.
Về việc cấp phép thì sao?
Tất cả các tư liệu học được sử dụng và phát triển từ FTA là các Tài nguyên Giáo dục Mở, được xuất
bản theo các giấy phép tự do copyleft, cho phép chúng được tự do sử dụng, sửa đổi và phân phối.
Tương tự, các phần mềm được sử dụng trong khu trường ảo của FTA đều là các PMTD và được xây
dựng trong khung các Tiêu chuẩn Mở.
Sự tiến bộ của cuốn sách này
FTA đã sử dụng lại các tư liệu khóa học đang có sẵn từ Đại học Oberta de Catalunya và đã và đang
phát triển cùng với các nhân viên của LiberSoft từ Đại học Rey Juan Carlos. Vào năm 2008 cuốn
sách này đã được dịch sang tiếng Anh với sự trợ giúp của Dự án Khoa học, Giáo dục và Học tập
trong Tự do (SELF - Science, Education và Learning in Freedom), được hỗ trợ từ Chương trình
Khung số 6 của Ủy ban châu Âu. Trong năm 2009, tư liệu này đã được FTA cải tiến. Bổ sung thêm
Trang 5/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
rằng FTA đã phát triển một chỉ dẫn nghiên cứu và các hoạt động học tập, chúng sẵn sàng cho các
học viên ghi danh học trong các khu học ảo của FTA.
Sự tham gia
Những người sử dụng các tư liệu học tập của FTA được khuyến khích đưa ra các ý kiến phản hồi và
những gợi ý cho sự cải tiến. Một không gian đặc biệt cho sự phản hồi này được thiết lập trên
website của FTA. Có những đầu vào sẽ được tính tới cho các phiên bản sau. Hơn nữa, FTA chào
đón bất kỳ ai sử dụng và phân phối tư liệu này cũng như làm các phiên bản mới và bản dịch.
Xem thông tin đặc thù và được cập nhật về cuốn sách này, bao gồm các bản dịch và các định dạng
khác: http://ftacademy.org/materials/fsm/. Để có thêm thông tin và sự ghi tên trong chương trình
khóa học trực tuyến của FTA, xin viếng thăm website của Viện hàn lâm tại: http://ftacademy.org/.
Tôi chân thành hy vọng cuốn sách về khóa học này sẽ giúp các bạn trong quá trình học tập của cá
nhân các bạn và giúp các bạn giúp những người khác trong việc học tập của họ. Tôi mong đợi được
gặp gỡ các bạn trong các phong trào tri thức tự do và công nghệ tự do.
Chúc học tập hạnh phúc!
Wouter Tebbens
Chủ tịch Viện Tri thức Tự do
Giám đốc Viện Hàn lâm Công nghệ Tự do
Trang 6/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Các tác giả muốn cảm ơn Quỹ của Đại học Oberta de Catalunya vì việc cấp vốn
cho lần xuất bản đầu tiên tác phẩm này, và một sự chia sẻ lớn những cải tiến dẫn
tới việc xuất bản lần thứ 2, như một phần của Chương trình của Giáo viên trong
PMTD được Đại học đưa ra theo yêu cầu, ở những nơi nó được sử dụng như là tư
liệu cho một trong những chủ đề.
Bản dịch của tác phẩm này sang tiếng Anh đã thực hiện được nhờ vào sự trợ giúp
của Dự án SELF, Nền tảng SELF, chương trình của Ủy ban châu Âu về các Công
nghệ Xã hội Thông tin và Đại học Oberta de Catalunya. Chúng tôi muốn cảm ơn
bản dịch các tư liệu sang tiếng Anh được lexia:park triển khai.
Phiên bản hiện hành của các tư liệu tiếng Anh đã được mở rộng với việc cấp vốn
từ dự án của FTA. Dự án của FTA đã được cấp vốn với sự hỗ trợ từ Ủy ban châu
Âu (tham chiếu số 142706-LLP-1-2008-1-NL-ERASMUS-EVC của Chương
trình Học tập Suốt đời). Xuất bản phẩm này phản ánh quan điểm chỉ của các tác
giả, và Ủy ban không giữ trách nhiệm về bất kỳ sự sử dụng nào mà có thể được
thực hiện đối với các thông tin ở đó.
Trang 7/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
FTA muốn cảm ơn Quỹ của Đại học Oberta de Catalunya về việc cấp vốn cho lần
xuất bản đầu tiên của tác phẩm này, như một phần của khóa học cho các giáo viên
quốc tế theo PMTD được đưa ra tại FTA.
Trang 8/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Giới thiệu
Mặc dù PMTD đã tồn tại hơn 20 năm, chỉ mới gần đây nó đã bắt đầu được xem như một lựa chọn
thay thế có giá trị cho nhiều người sử dụng, các công ty, và ngày một gia tăng, các chính phủ và các
cơ quan. Hiện hành, GNU/Linux là một trong những hệ thống có hiệu quả và đáng tin cậy nhất có
thể được thấy. Dù thực tế ban đầu chính PMTD đã làm cho những người sử dụng và các công ty
miễn cưỡng áp dụng nó, thì GNU/Linux đã chứng minh đáp ứng được nhiệm vụ như bất kỳ hệ điều
hành nào khác đang tồn tại.
Mục tiêu của khóa học này là để giới thiệu cho chúng ta thế giới GNU/Linux. Nó cũng sẽ cho
chúng ta những chìa khóa để hiểu biết triết lý của PMTD, dạy cho chúng ta cách sử dụng nó và điều
khiển nó cho hợp với chúng ta, cho chúng ta các công cụ theo yêu cầu để dịch chuyển dễ dàng trong
thế giới mới này. Tài liệu này không có ý định là một chỉ dẫn tham chiếu cơ bản cho các nhà quản
trị và/hoặc những người sử dụng; đã có hàng trăm các sách chỉ dẫn, sách dạy cách làm (HOWTOS)
và nhiều tham chiếu khác được thiết kế cho mục đích này, mà có thể chiếm hàng triệu trang giấy.
Mục tiêu của chúng tôi ở đây là để dạy cho bạn cách tiến hành các bước đầu tiên của bạn trong lĩnh
vực còn chưa được khai phá này đối với nhiều người sử dụng và các quản trị viên và cách để bạn tự
tiếp cận và giải quyết các vấn đề bạn có thể gặp phải.
Khóa học này không cố ý dựa vào bất kỳ phát tán cụ thể nào, nhưng trong hầu hết các ví dụ và hoạt
động chúng tôi cần phải là cụ thể, nên chúng tôi sẽ sử dụng Debian GNU/Linux (phiên bản 4.0
-Etch-). Dù phát tán này không phải là thật trực quan và dễ dàng sử dụng như một số phát tán khác,
nó sẽ giúp chúng tôi giải thích tất cả các tính năng của một hệ điều hành dựa vào GNU/Linux từng
bước một. Hơn nữa, chất lượng, tính ổn định và an ninh đặc biệt của nó làm cho nó trở thành một
trong những lựa chọn giá trị nhất ngay lúc này. Tuy nhiên, chúng tôi sẽ không quên sự hỗ trợ mà
các phát tán khác cung cấp (Debian được những người tình nguyện phát triển và không đưa ra dạng
hỗ trợ nào, mà trong trường hợp với các công ty là không thể thiếu). Vì lý do đó, chúng tôi đã đưa
vào một phụ lục chỉ ra quá trình cài đặt và những đặc tính chính của Red Hat Fedora (phiên bản 7).
Chúng tôi hy vọng rằng bạn tận hưởng được khóa học và nó sẽ giúp bạn mở ra những cánh cửa vào
thế giới của PMTD. Càng có nhiều người sử dụng PMTD, thì chúng ta sẽ có phần mềm càng có
chất lượng tốt hơn.
Chào mừng bạn tới GNU/Linux!
Trang 9/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Các nội dung
Module 1
GNU/Linux cơ bản
1. Giới thiệu
2. Các khái niệm và các lệnh cơ bản
3. Hội thảo về Knoppix
4. Cài đặt GNU/Linux
5. Hội thảo về cài đặt Debian Etch
6. Các cấu hình cơ bản
7. Các daemon và mức chạy
8. Cài đặt các ứng dụng
9. Hội thảo về các cấu hình cơ bản
10. Kiến trúc X-Window
11. Hội thảo về X-Window
Module 2
Các phụ lục
1. Phụ lục A. Các bảng lệnh
2. Phụ lục B. Trình soạn thảo vi
3. Phụ lục C. Tiến trình cài đặt Fedora 7
4. Phụ lục D. Các công cụ quản trị
5. Giấy phép Tài liệu Tự do GNU
Trang 10/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
GNU/Linux cơ bản
PID_00148393
Basic GNU/Linux
PID_00148393
Trang 11/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Bản quyền Copyright © 2010, FUOC. Quyền được trao để sao chép, phân phối và/hoặc sửa đổi tài liệu này theo các điều khoản của Giấy phép Tài
liệu Tự do GNU, Phiên bản 1.2 (GFDLv1.2) hoặc bất kỳ phiên bản nào được xuất bản sau này của Quỹ Phần mềm Tự do (FSF); mà không có các
phần bất biến, không có các văn bản bìa trước, không có các văn bản bìa sau. Một bản sao của giấy phép này được đưa vào trong phần có đầu đề
“Giấy phép Tài liệu Tự do GNU”.
Copyright © 2010, FUOC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation
License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-
Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Trang 12/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Mục lục
1. Giới thiệu........................................................................................................................................17
1.1. GNU là gì?..............................................................................................................................17
1.2 GNU/Linux là gì?....................................................................................................................19
1.3 Các phát tán ............................................................................................................................21
1.4. Các chương trình và tài liệu....................................................................................................22
2. Các khái niệm và lệnh cơ bản.........................................................................................................25
2.1. Giới thiệu................................................................................................................................25
2.2 Người sử dụng và nhóm...........................................................................................................25
2.3. Hệ thống tệp............................................................................................................................30
2.3.1. Tôn ti trật tự của hệ thống tệp.........................................................................................30
2.3.2. Các thư mục hệ thống.....................................................................................................31
2.3.3. Dịch chuyển....................................................................................................................32
2.3.4. Các liên kết......................................................................................................................33
2.3.5. Các quyền........................................................................................................................34
2.3.6. Việc điều khiển, các mẫu và tìm kiếm............................................................................36
2.3.7. Dạng và nội dung tệp......................................................................................................37
2.4. Các tiến trình ..........................................................................................................................38
2.5. Các lệnh hữu dụng khác..........................................................................................................40
2.5.1. Trợ giúp hệ thống............................................................................................................40
2.5.2. Đóng gói và nén..............................................................................................................41
2.5.3. Các hoạt động của đĩa.....................................................................................................42
2.6. Các hoạt động với các lệnh.....................................................................................................44
2.6.1. Định tuyến lại..................................................................................................................44
2.6.2. Các lệnh bash (trình biên dịch GNU shell) cụ thể..........................................................45
2.6.3. Shell script với bash........................................................................................................46
3. Hội thảo về Knoppix......................................................................................................................48
3.1. Giới thiệu................................................................................................................................48
3.2. Khởi động hệ thống................................................................................................................48
3.3 Dừng hệ thống.........................................................................................................................51
3.4. Cấu hình bàn phím..................................................................................................................52
3.5. Kiểm tra hệ thống...................................................................................................................54
3.6. Điều khiển các tệp và thư mục................................................................................................58
3.7 Quản trị người sử dụng............................................................................................................63
3.8. Quản lý các tiến trình..............................................................................................................65
3.9. Kích hoạt và sử dụng chuột....................................................................................................66
3.10. Các hoạt động khác...............................................................................................................68
3.11. Kết luận.................................................................................................................................69
4. Cài đặt GNU/Linux........................................................................................................................70
4.1. Giới thiệu................................................................................................................................70
4.2 Khởi động................................................................................................................................70
4.3. Phân vùng cho đĩa...................................................................................................................71
4.4. Cài đặt các module..................................................................................................................73
4.5. Cấu hình mạng cơ bản............................................................................................................74
4.6. Hệ thống khởi động................................................................................................................75
4.7. Lựa chọn các gói.....................................................................................................................75
Trang 13/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
4.8. Các khía cạnh khác.................................................................................................................76
5. Hội thảo cài đặt Debian Etch..........................................................................................................77
5.1 Giới thiệu.................................................................................................................................77
5.1.1. Các hệ thống cài đặt........................................................................................................78
5.1.2. Các dạng gói....................................................................................................................80
5.1.3. Tình trạng phát triển gói..................................................................................................80
5.2. Cài đặt Debian Etch................................................................................................................81
5.2.1. Các thành phần của Debian Etch....................................................................................81
5.2.2. Cài đặt Debian GNU/Linux 4.0 cho Intel x86................................................................81
5.3. Cài đặt Debian Etch từ DVD-ROM........................................................................................82
5.3.1. Trước khi bắt đầu cài đặt.................................................................................................82
5.3.2. Khởi động hệ thống cài đặt.............................................................................................83
5.3.3. Cấu hình ngôn ngữ cài đặt..............................................................................................86
5.3.4. Cấu hình bàn phím..........................................................................................................88
5.3.5. Dò tìm và kích hoạt CD-ROM........................................................................................89
5.3.6. Cấu hình mạng................................................................................................................90
5.3.7. Phân vùng đĩa cứng.........................................................................................................92
5.3.8. Cấu hình thời gian...........................................................................................................96
5.3.9. Cấu hình cho người sử dụng và mật khẩu.......................................................................98
5.3.10. Cài đặt hệ thống cơ bản...............................................................................................101
5.3.11. Cấu hình cho trình quản lý gói....................................................................................102
5.3.12. Chọn và cài đặt các chương trình................................................................................103
5.3.13. Cài đặt GRUB.............................................................................................................103
5.3.14. Khởi tạo lại hệ thống...................................................................................................103
5.3.15. Khởi động hệ thống cơ bản.........................................................................................103
5.3.16. Cấu hình apt................................................................................................................104
5.3.17. Tasksel.........................................................................................................................106
5.4. Cài đặt mạng với Debian Etch..............................................................................................108
5.4.1. Những đặc thù của cài đặt mạng...................................................................................108
5.4.2. Những khía cạnh chung cho các phương pháp cài đặt khác nhau................................108
5.4.3. Cài đặt module mạng....................................................................................................109
5.4.4. Cấu hình mạng..............................................................................................................110
5.4.5. Cấu hình apt..................................................................................................................110
5.5. Kết luận.................................................................................................................................110
6. Các cấu hình cơ bản......................................................................................................................111
6.1. Hệ thống đăng nhập..............................................................................................................111
6.2. Khai thác bash.......................................................................................................................112
6.3. Hệ thống khởi động...............................................................................................................114
6.3.1. Grub...............................................................................................................................115
6.4. Truy cập các phân vùng và thiết bị khác...............................................................................117
6.5. Cấu hình thiết bị ...................................................................................................................120
6.5.1. Bàn phím ......................................................................................................................120
6.5.2. Card mạng (dạng Ethernet)...........................................................................................121
6.5.3. Card Wifi.......................................................................................................................124
6.5.4. Các modem...................................................................................................................124
6.5.5. ADSL và PPPoE............................................................................................................125
6.5.6. Card âm thanh...............................................................................................................126
Trang 14/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
6.5.7. Máy in...........................................................................................................................126
7. Daemons và các mức chạy...........................................................................................................128
7.1. Daemons...............................................................................................................................128
7.2. Các mức chạy........................................................................................................................130
7.3 Khởi động hệ thống...............................................................................................................132
7.4 Các daemon cơ bản................................................................................................................133
7.4.1. Các lưu ký hệ thống (sysklogd)....................................................................................133
7.4.2. Thực thi thường xuyên (cron).......................................................................................135
7.4.3. Các thực thi trễ (at và batch).........................................................................................136
8. Cài đặt các ứng dụng....................................................................................................................138
8.1. Giới thiệu..............................................................................................................................138
8.2. Hệ thống đóng gói Debian...............................................................................................138
8.3. Biên dịch các chương trình mới ...........................................................................................142
9. Hội thảo về các cấu hình cơ bản...................................................................................................145
9.1. Giới thiệu..............................................................................................................................145
9.2. Trình tải khởi động (Bootloader)..........................................................................................145
9.2.1. Cài đặt Grub..................................................................................................................145
9.3. Hệ thống gói..........................................................................................................................147
9.3.1. /etc/apt/sources.list........................................................................................................147
9.3.2. apts sẵn sàng..................................................................................................................149
9.3.3. dpkg...............................................................................................................................151
9.3.4. dselect............................................................................................................................152
9.3.5. aptitude..........................................................................................................................152
9.4. locals: cấu hình vùng miền...................................................................................................152
9.5. Tệp khởi động chính, /etc/inittab..........................................................................................153
9.6. Lắp các thiết bị, /etc/fstab ....................................................................................................153
9.7. Cấu hình thiết bị....................................................................................................................154
9.7.1. Thiết lập cấu hình cho chuột.........................................................................................155
9.7.2. Thiết lập cấu hình cho các modem................................................................................156
9.7.3. Thiết lập cấu hình cho các modem DSL.......................................................................158
9.7.4. Thiết lập cấu hình cho các card mạng...........................................................................158
9.7.5. Thiết lập cấu hình cho các máy in.................................................................................160
9.7.6. Thiết lập cấu hình cho card âm thanh...........................................................................161
9.8. Kết luận.................................................................................................................................162
10. Kiến trúc X-Window..................................................................................................................163
10.1. X-Window là gì?.................................................................................................................163
10.2. Cấu hình..............................................................................................................................167
10.3. Trình quản lý hiển thị X......................................................................................................170
11. Hội thảo về X-Window...............................................................................................................173
11.1. Giới thiệu............................................................................................................................173
11.2. Cài đặt và thiết lập cấu hình của máy chủ X.......................................................................173
11.2.1. Các chiến lược khác nhau cho việc cài đặt các gói.....................................................173
11.2.2. Cài đặt các gói cơ bản.................................................................................................174
11.3. Thiết lập cấu hình cho X.....................................................................................................176
11.3.1. Phần “Thiết bị” (Device).............................................................................................176
11.3.2. Phần “Màn hình” (Monitor).............................................................................................176
11.3.3. Phần “Màn hình” (Screen)..........................................................................................177
Trang 15/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
11.3.4. Phần thiết bị đầu vào (“InputDevice”)........................................................................177
11.3.5. Phần trình bày máy chủ (“ServerLayout”)..................................................................178
11.3.6. Phần “DRI”.................................................................................................................178
11.3.7. Phần các tệp (“Files”)..................................................................................................179
11.3.8. Khởi động máy chủ.....................................................................................................179
11.3.9. Tệp lưu ký ..................................................................................................................179
11.4. Các trình quản lý cửa sổ......................................................................................................180
11.5. Trình quản lý phiên X.........................................................................................................181
11.6. Trình quản lý hiển thị X......................................................................................................181
11.7. Các trình quản lý môi trường đồ họa máy để bàn...............................................................182
11.7.1. GNOME......................................................................................................................183
11.7.2. KDE.................................................................................................................................183
11.8. Cá nhân hóa một số khía cạnh............................................................................................184
11.8.1. Cá nhân hóa các khía cạnh bản địa.............................................................................184
11.8.2. Cá nhân hóa các khía cạnh của mạng..........................................................................185
11.9. Thiết lập cấu hình cho các máy in.......................................................................................186
11.10. OpenOffice........................................................................................................................189
11.11. Kết luận.............................................................................................................................190
Các phụ lục.......................................................................................................................................191
Phụ lục A. Các bảng lệnh.............................................................................................................193
Phụ lục B. Trình soạn thảo vi.......................................................................................................198
Phụ lục C. Qui trình cài đặt Fedora 7..........................................................................................201
Phụ lục D. Các công cụ quản trị .................................................................................................212
Giấy phép Tài liệu Tự do GNU........................................................................................................219
Trang 16/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
1. Giới thiệu
1.1. GNU là gì?
Để hiểu được toàn bộ phong trào PMTD, chúng ta nên quay ngược về cuối những năm 60, đầu
những năm 70. Khi đó, các hàng máy tính lớn đã không trao cho phần mềm giá trị y hệt như nó có
ngày nay. Họ từng hầu hết là các nhà sản xuất máy tính mà doanh số chính của họ đã được tạo ra
bằng việc bán các máy tính lớn của họ, đi với một số dạng hệ điều hành và các ứng dụng. Các
trường đại học đã có quyền để lấy và nghiên cứu các mã nguồn của hệ điều hành cho các mục đích
nghiên cứu hàn lâm. Bản thân những người sử dụng có thể yêu cầu mã nguồn từ các trình điều
khiển cho tới các chương trình, cho việc thích nghi cho các nhu cầu của họ. Phần mềm đã không
được xem là có một giá trị thực và đơn giản nó đi với phần cứng mà nó hỗ trợ. Trong ngữ cảnh đó,
các phòng thí nghiệm của Bell (AT&T) đã thiết kế ra một hệ điều hành được gọi là UNIX được đặc
trưng bởi sự quản lý có hiệu quả các tài nguyên hệ thống của nó, sự ổn định và tính tương thích của
nó với các phần cứng được các nhà sản xuất khác nhau tạo ra (thuần nhất tất cả các hệ thống của
họ). Yếu tố cuối cùng này từng rất quan trọng (trước đó, mọi nhà sản xuất đã có các hệ điều hành
của riêng họ mà không tương thích với phần còn lại), vì thế nó làm cho UNIX cực kỳ phổ biến.
Stallman, không có các trình điều khiển
Bản thân Stallman nhớ lại phiền phức làm sao khi ông đã phát hiện rằng một công ty từng cung cấp một máy in
mới cho phòng thí nghiệm nơi ông từng làm việc đã không muốn trao cho ông mã nguồn của trình điều khiển.
Tất cả điều ông từng mong muốn là để sửa đổi nó sao cho máy in đó có thể tự động cảnh báo cho ông khi giấy
bị kẹt. Công ty đó đã từ chối cung cấp mã nguồn cho ông.
Dần dần, các hãng lớn đã bắt đầu nhận thức được giá trị của phần mềm: đầu tiên làm như vậy là
IBM, vào năm 1965 đã dừng chào mã nguồn hệ điều hành của hãng, trong khi cuối những năm 70
Digital Research đã bắt đầu bán hệ điều hành của riêng hãng. Điều này đã làm cho tất cả các công
ty nhận thức được thực tế là phần mềm có thể rất có lợi nhuận và đưa ra được những lợi ích khổng
lồ. Sau đó hầu hết các công ty đã bắt đầu miễn cưỡng đưa ra mã nguồn đối với các chương trình và
các hệ điều hành của họ và đã bắt đầu bán các chương trình của họ như là giá trị gia tăng cho phần
cứng của họ. Trong môi trường đóng ngày một gia tăng này, Richard Stallman (người từng làm việc
tại MIT, Viện Công nghệ Massachusetts) đã phẫn nộ thấy rằng điều đó đã trở thành ngày một khắc
nghiệt để có được mã nguồn của các chương trình, mà ông đã sử dụng để thích nghi các chương
trình đó cho các nhu cầu của ông, như ông đã từng làm thế cho tới khi đó.
Khi đó, Stallman đã quyết định đứng lên vì các lý tưởng của ông và khởi xướng một dự án lớn để
thử mở lại mã nguồn các chương trình. Nhận thực được thực tế rằng ông không muốn thuyết phục
các công ty đưa ra về điểm này, ông đã đề xuất tạo ra hệ điều hành và các ứng dụng của riêng mình,
khởi xướng một dự án gọi là GNU.
Tuyên ngôn đầu tiên của Stallman là đặc biệt thú vị để hiểu những lý do vì sao ông đã tạo ra GNU;
trong tài liệu đó ông đã giải thích cho toàn bộ cộng đồng những gì dự án mới bao gồm, cách mà nó
có thể được định hướng, và vì sao ông đã phải làm nó. Trong tuyên ngôn ông đã bắt đầu mô tả khái
niệm PMTD và vì sao ông tin tưởng các lập trình viên và những người phát triển trên khắp thế giới
nên đóng góp vào với ông. Dù trong nhiều trường hợp thì khái niệm PMTD bị lẫn lộn với khái niệm
miễn phí hoặc không phải trả tiền cho phần mềm (trong tiếng Anh, free có nghĩa tự do và miễn phí),
trong các tài liệu sau này nó đã được làm rất rõ ràng rằng không có lý do nào giải thích vì sao
Trang 17/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
PMTD nên là miễn phí cả. Chúng ta cần hiểu PMTD có nghĩa là các chương trình mà mã nguồn của
chúng có thể chúng ta có được để nghiên cứu, sửa đổi và phân phối lại, mà không có bổn phận phải
trả tiền cho điều đó. Những gì chúng ta cần hiểu là chúng ta có thể yêu cầu trả tiền mà chúng ta
muốn cho các chương trình và mã nguồn của chúng, cho sự hỗ trợ mà chúng ta có thể đưa ra cho
những người sử dụng, cho các cuốn sách chúng ta bán hoặc các tư liệu mà chúng ta cung cấp, hệt
như nhiều công ty phân phối GNU/Linux đã làm. Tuy nhiên, không bao giờ, chúng ta có thể bắt
buộc những người sử dụng không phân phối phần mềm mà chúng ta bán cho họ. Phải có khả năng
để phân phối lại chúng một cách tự do. Nhiều văn bản của Quỹ Phần mềm Tự do (FSF - Free
Software Foundation) làm việc với đạo đức nhiều hơn là với kỹ thuật. Chúng ta cần hiểu toàn bộ
phong trào như một cách nghĩ hoặc làm mọi điều hơn là chỉ công ty phần mềm nào đó khác làm.
Những nguyên tắc đối với phần mềm được xác định theo 4 quyền tự do sau:
• Tự do 0 chỉ tới quyền tự do có khả năng sử dụng chương trình vì bất kỳ mục đích nào
• Tự do 1 cho phép chúng ta nghiên cứu cách thức chương trình làm việc và thích nghi nó cho
những nhu cầu riêng của chúng ta. Truy cập tới mã nguồn là điều kiện tiên quyết để đảm bảo
cho quyền tự do này.
• Tự do 2 cho phép chúng ta tự do phân phối các bản sao của phần mềm, giúp các hàng xóm
của chúng ta.
• Tự do cuối cùng cho phép chúng ta cải tiến chương trình và làm cho những cải tiến riêng
của chúng ta công khai, vì lợi ích của toàn bộ cộng đồng. Truy cập tới mã nguồn cũng là
điều kiện tiên quyết để đảm bảo cho quyền tự do này.
Giấy phép Công cộng Chung (GPL - General Public License) đã được phác thảo để đảm bảo các
quyền tự do cho phần mềm được dự án phát triển và cho những người sử dụng đầu cuối của phần
mềm, và được sử dụng từ đó để bảo vệ tất cả dạng các chương trình này. Giấy phép này đưa những
ý tưởng được nhắc tới ở trên ra giấy.
Dự án đã bắt đầu tạo ra các phần mềm trong năm 1984, bằng việc phát triển tất cả các công cụ theo
yêu cầu để triển khai một hệ điều hành hoàn chỉnh. Mặc dù việc hiện thực hóa dự án với các đặc
tính đó là một qui trình dài lâu và phức tạp, ngay từ đầu nhiều lập trình viên và những người phát
triển phần mềm đã say mê với ý tưởng của Stallman và đã bắt đầu cộng tác với ông một cách tự do.
Cộng đồng đã không ngừng phát triển, và dần dần các công cụ cần thiết đã xuất hiện (các trình soạn
thảo, các trình biên dịch, ...) để triển khai nhân của hệ điều hành, các công cụ đã được phát triển
theo yêu cầu. Từ ý tưởng ban đầu từng là để xây dựng một hệ điều hành tương tự như UNIX theo
các tiêu chí của POSIX (Giao diện Hệ điều hành Khả chuyển - Portable Operating System
Interface). Mặc dù UNIX cũng đã có những vấn đề và các lỗi riêng của nó, thì nó từng, và tiếp tục
là, đù tốt để thích nghi cho hầu hết các yêu cầu. Nhiệm vụ thiết kế và viết nhân của hệ điều hành đã
được để lại sau cùng. Nó vẫn còn chưa xong hoàn toàn nhân GNU, gọi là Hurd, và vẫn còn trong
pha phát triển.
Nhân (Kernel)
Như cái tên của nó chỉ ra, nhân của hệ điều hành là phần cốt lõi làm cho nó hoạt động. Nhân của phần mềm
này là những gì quản lý các tài nguyên của máy tính: nó giao tiếp với các thiết bị và ứng dụng được cài đặt,
quản trị đúng đắn bộ nhớ, phân phối thời gian xử lý cho tất cả các chương trình, giao tiếp với các thiết bị lưu
trữ để lưu các tệp, ...
Hoạt động
1.1 Đọc thông điệp đầu tiên mà Stallman đã viết năm 1983 khi công bố dự án của ông tại:
http://www.fsf.org/gnu/initial-announcement.es.html
Trang 18/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Hoạt động
1.2 Đọc tuyên ngôn GNU ban đầu của Stallman.
Hoạt động
1.3 Đọc Giấy phép Công cộng Chung GPL
1.2 GNU/Linux là gì?
Đối với vấn đề này, trong khi FSF vẫn còn chưa có được một nhân ổn định cho hệ điều hành của
mình, thì một giáo sư của Đại học Hà Lan, Andrew Tanenbaum, đã quyết định viết một hệ điều
hành sao cho các sinh viên của ông có thể nghiên cứu nó. Giống như Stallman, cho tới khi đó ông
đã có khả năng sử dụng mã nguồn UNIX của AT&T để giúp dạy các học trò của mình thiết kế các
hệ điều hành. Ý tưởng của ông là viết một hệ điều hành mà bất kỳ ai cũng có thể nghiên cứu và sửa
đổi nó nếu họ muốn. Trong năm 1987, ông đã bắt đầu làm việc và đã gọi dự án của mình là UNIX
nhỏ (mini UNIX), là MINIX. Vì ông đã không sử dụng một dòng mã nguồn nào trong UNIX của
AT&T, không có hạn chế nào để lấy mã nguồn đó để sử dụng nó và sửa đổi nó một cách tự do cả.
Công nghệ vi nhân (micro - kernel)
Công nghệ vi nhân dựa vào việc chia tách các chức năng khác nhau của nhân của một hệ điều hành thành các
chương trình giao tiếp với nhau hoàn toàn tách biệt. Điều này làm cho nó rất được module hóa, làm cho việc
kiểm thử, dò tìm và kiểm tra lỗi, duy trì, ... , dễ hơn nhiều. Hiện hành, một số hệ điều hành như Amoeba,
Chorus, Mach hoặc Windows - NTTM đã tích hợp dạng cộng nghệ này.
Tanenbaum đã muốn tạo ra một hệ thống cho các mục đích nghiên cứu hàn lâm, nên ông đã thiết kế
nó bằng việc sử dụng một kiến trúc vi nhân, lý tưởng cho sự dễ dàng toàn diện, có sử dụng công
nghệ đổi mới cho từng giai đoạn, được đưa ra một cách linh hoạt, từng là đa nền tảng, ... Điều này
từng là một trong những điểm mạnh và điểm yếu của MINIX cùng một lúc, dù hệ thống đó là một
viên ngọc nhỏ cho các mục đích nghiên cứu và thiết kế, thì nó khó có khả năng được sử dụng trong
các môi trường thực tế. Nó đã được làm cho dễ dàng để hiểu, module hóa và tốt cho các mục đích
đào tạo, nhưng không nhanh. Trong bất kỳ trường hợp nào, thì đó cũng không phải là ý định của
Tanenbaum; qua năm tháng thì MINIX đã tiến hóa và ngày nay nó tiếp tục được nhiều học sinh
trong các trường đại học trên thế giới nghiên cứu.
Đây chính là nới mà Linux tới để bù đắp. Trong khi FSF đã tiếp tục với dự án lớn của mình cung
cấp các công cụ để xây dựng một hệ điều hành, Tanenbaum đã thiết kế MINIX cho các mục đích
hàn lâm và nhiều công ty đã tiếp tục tiến hóa cho các phiên bản UNIX của họ, thì Linus Torvalds,
một sinh viên Đại học Helsinki, đã quyết định tạo ra nhân riêng của mình cho một hệ điều hành
mới, Linux, vào tháng 08/1991. Ý tưởng của ông từng là để tạo ra một UNIX cho máy tính cá nhân
(PC) sao cho bất kỳ ai muốn cũng có thể sử dụng nó trên máy tính của họ. Sự xuất hiện lần đầu của
ông trên vũ đài là trong một tranh luận về MINIX và các hệ điều hành, nơi ông đã đưa ra những ý
tưởng sau đây:
Trang 19/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Nhóm tin: comp.os.minix
Chủ đề: Bạn có muốn thấy hầu hết mọi thứ trong minix?
Ngày: 25/08/1991 20:57:08 GMT Tổ chức: Đại học Helsinki
Chào tất cả những người sử dụng minix.
Tôi đang làm (chỉ là một sở thích riêng, sẽ không lớn và chuyên nghiệp như
gnu) một hệ điều hành (tự do) cho các mô phỏng các máy AT 386 (486). Điều
này đã và đang được làm kể từ tháng 04, và đang bắt đầu có sẵn sàng. Tôi
muốn có bất kỳ ý kiến phản hồi nào về những điều mọi người thích/ không
thích trong minix, vì hệ điều hành của tôi giống nó một chút (trình bày vật lý y
hệt đối với hệ thống tệp (vì những lý do thực tế) trong số những điều khác).
Tôi hiện đã chuyển bash (1.08) và gcc (1.40), và mọi thứ dường như làm việc
được.
Điều này ngụ ý rằng tôi sẽ có vài thứ thực tế trong vòng vài tháng tới, và tôi
muốn biết những tính năng nào hầu hết mọi người có thể muốn. Bất kỳ gợi ý
nào cũng được chào đón, nhưng tôi không hứa tôi sẽ triển khai chúng.
Nếu chúng ta vào diễn đàn nơi thông điệp đầu tiên này đã xuất hiện, thì chúng ta sẽ thấy mọi người
từ khắp nơi trên thế giới đã trở nên nhanh chóng như thế nào trong việc quan tâm tới hệ thống mới
này, nó cũng đã có những đặc tính của PMTD vì nó đã sử dụng trình biên dịch và các trình dịch
lệnh GNU. Mặc dù trong những lời của chính Torvalds, nếu ông biết được số lượng nỗ lực tham gia
cho ý tưởng của mình để làm việc, ông có lẽ không bao giờ có thể đã thực hiện được nó: những nỗ
Trang 20/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
lực của nhiều chuyên gia CNTT trên toàn thế giới đã làm cho dự án này có khả năng.
Nhân liền khối của Linux
Linux, nhân của GNU/Linux, là thuộc dạng liền khối. Điều này nói cho chúng ta rằng các chức năng khác của
nó là không được phân chia thành các module riêng rẽ, mà tất cả chúng tạo nên các phần của chương trình y
hệt. Sự bất tiện chính với dạng thiết kế này là việc định vị các lỗi và duy trì rất tốn kém. Mặt khác, hiệu năng
của nó lại tốt hơn nhiều so với các dạng thiết kế khác.
Trên thực tế, trong quá trình vài năm đầu tồn tại, GNU/Linux đã được xác định như là hệ điều hành
được các cao thủ (hacker) sử dụng. Thực tế là nó từng khó để cài đặt, điều khiển và sự thiếu các
trình điều khiển của nó làm cho nó trở thành một công cụ chỉ phù hợp cho những người rất am hiểu
về các hệ điều hành. Chính những người sử dụng đầu tiên đã thiết kế ra các trình điều khiển cho các
đĩa, máy in, các card mạng..., và những người đó đã bắt đầu tạo ra nhận thức về hệ thống này khắp
trên thế giới. Từng tí một, số lượng người sử dụng đã bắt đầu tăng và bây giờ có nhiều công ty và
nhóm người sử dụng tạo các phát tán GNU/Linux của riêng họ.
1.3 Các phát tán
Hiện tại, có nhiều phát tán khác nhau dựa vào GNU/Linux. Chúng tồn tại đối với mọi dạng máy
tính và các thiết bị điện tử: các máy tính xách tay hoặc để bàn, các máy tính cá nhân (PC) bỏ túi
hoặc các thiết bị điện tử cá nhân (PDA), các điểm truy cập mạng không dây, ... Bản chất tự nhiên
của PMTD cho phép điều này: bất kỳ ai cũng có thể lấy mã nguồn được phát triển cho tới bây giờ
và thích nghi nó cho những yêu cầu của riêng họ. Thực tế là số lượng ngày càng gia tăng các công
ty và những người sử dụng đã chọn các hệ thống dựa vào GNU/Linux vì hiệu năng tốt và số lượng
các phần mềm sẵn có của nó.
Linux và dự án GNU
Dù nhiều phát tán GNU/Linux được gọi chỉ là Linux, thì điều quan trọng để chỉ ra rằng Linux chỉ là nhân của
hệ điều hành và dự án GNU là những gì thực sự đã đóng góp nhiều về cấu trúc cho nó hoạt động được.
Trong tất cả các sự kiện, dù có hàng tá các phát tán, thì một số là phổ biến hơn và đã trở nên được
sử dụng rộng rãi. Triết lý của PMTD đã dẫn dắt nhiều công ty, nhiều người sáng tạo ra các phát tán
GNU/Linux của riêng họ, không hạn chế sự truy cập tới mã nguồn của họ. Ngay cả như vậy, sự hỗ
trợ mà họ đưa ra và tư liệu mà họ bán cung cấp những lợi nhuận, cho phép họ sống được. Cùng lúc,
chúng ta nên nhớ trong đầu rằng nhiều trong số các phát tán đó đưa vào cả các phần mềm sở hữu
độc quyền (PMSHĐQ) mà một số người sử dụng thích hơn, mặc dù trong nhiều trường hợp có thể
có những chương trình tương tự với một giấy phép của PMTD.
Sau đây chúng ta sẽ mô tả ngắn gọn một ít các phát tán GNU/Linux:
• Slackware: một trong những phát tán đầu tiên xuất hiện. Nó đã được Patrick
Volkerding tạo ra và đã từng thành công vang dội trong những năm đầu tồn
tại của nó.
• Debian GNU/Linux: một trong những phát tán GNU/Linux đầu tiên xuất hiện
và tiếp tục tồn tại và tiến hóa. Hệ thống gói cho phép chúng ta phân biệt rõ
ràng giữa PMTD và không tự do, giúp chúng ta thiết lập hệ thống với các
chương trình giấy phép hoàn toàn là PMTD. Được một nhóm các cộng tác viên
phân tán khắp nơi trên thế giới phát triển mà không có bất kỳ công ty nào đứng
đằng sau. Dù vậy nó lại là một trong những phát tán ổn định và an ninh nhất
đang tồn tại, sự cài đặt và cấu hình hệ thống của nó đòi hỏi tri thức trước đó.
Trang 21/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
• Red Hat Linux: cùng với SuSE, đây là một trong những phát tán phổ biến
nhất. Nó được một công ty tại Mỹ tạo ra và cung cấp các phần mềm chất
lượng cao. Nó có một môi trường trực quan làm cho nó rất dễ dàng để cài đặt
và cấu hình.
• SuSE Linux: dù nó là phát tán được tạo ra khá gần đây, nó đã có được sự
thừa nhận rộng rãi. Nó được một công ty của Đức phát triển và đóng góp
nhiều PMSHĐQ chất lượng. Hoàn toàn dễ dàng để cài đặt và duy trì, dù
trong một số khía cạnh nó không tuân thủ một số tiêu chuẩn cộng đồng.
• Knoppix: phát tán trong một live-CD dựa vào Debian. Nó tự động dò tìm tất
cả các dạng phần cứng và cung cấp môi trường đồ họa KDE mới nhất và bộ
phần mềm các ứng dụng văn phòng OpenOffice.org. Rất hữu dụng cho các
trình bày và những người sử dụng mới hệ điều hành.
• Ubuntu: đây là một phát tán Linux đưa ra một hệ điều hành trước hết nhằm vào các máy tính
để bàn dù nó cũng đưa ra sự hỗ trợ cho các máy chủ. Dựa vào
Debian GNU/Linux, trọng tâm chính của Ubuntu là dễ sử dụng, tự
do trong giới hạn sử dụng, các phiên bản phát hành thường xuyên
(cứ mỗi 6 tháng) và dễ dàng cài đặt. Nó tồn tại ở cả dạng live-CD và có khả năng cài đặt
được. Nó tự động dò tìm ra tất cả các dạng phần cứng (thậm chí mới nhất).
Chúng ta không nên quên rằng có những hệ điều hành khác tương thích với UNIX và với các tiêu
chuẩn được chú trọng hiện hành. Nhiều trong số những khái niệm và công cụ mà chúng ta sẽ gặp
qua khóa học này cũng sẽ phục vụ cho những hệ điều hành khác đó. Đặc biệt, chúng ta có thể nhắc
tới GNU/Hurd (nhân được dự án GNU phát triển) và FreeBSD.
Hoạt động
1.4 Hãy đọc mô tả một số phát tán GNU/Linux hiện hành tại: http://www.linuxhq.com/dist.html.
1.4. Các chương trình và tài liệu
Internet luôn đã và đang là phương tiện chính của giao tiếp giữa các lập trình viên và những người
sử dụng của PMTD. Vì lý do này, ngay từ lúc bắt đầu sự mở rộng khổng lồ của GNU/Linux thì đã
có khả năng tìm thấy được nhiều thông tin về hệ điều hành trên này Internet. Chúng ta có thể tải về
hầu hết các chương trình từ Internet, được đóng gói bằng việc sử dụng bất kỳ hệ thống thường dùng
nào hoặc trực tiếp từ mã nguồn sao cho chúng ta có thể biên dịch nó trong hệ thống riêng của chúng
ta. Hơn nữa, hầu hết các phát tán có thể được tải về từ Internet mà không phải mua bất kỳ gói đặc
biệt nào từ các tạp chí chuyên dụng hoặc từ các công ty sản xuất ra chúng. Điều này cũng đúng rằng
nếu chúng ta muốn có sự hỗ trợ cho một số phát tán được cung cấp, thì tốt nhất là mua tất cả các tư
liệu mà có thể được cung cấp (CD, các sách chỉ dẫn, ...) và hãy đăng ký.
Khi chúng ta bắt đầu làm quen với PMTD và GNU/Linux, chúng ta sẽ nhận thức được tầm quan
trọng của việc hiểu được cách tìm tài liệu chúng ta muốn. Khi chúng ta đối mặt với một vấn đề,
trước khi bắt đầu đi loanh quanh tự hỏi cách để giải quyết nó, thì chúng ta nên nghĩ rằng có ai đó
khác đã có thể đi qua những thứ tương tự rồi. Việc tìm kiếm và tìm thấy tài liệu đáp ứng tốt nhất
cho các vấn đề chúng ta gặp phải lúc này lúc khác tiết kiệm cho chúng ta nhiều thời gian và nỗ lực.
Cộng đồng PMTD tạo ra hàng trăm tài liệu mà chúng ta có thể tải về tự do từ Internet, hơn nữa còn
có cả các diễn đàn thảo luận, các nhóm tin và các trang tin, ...
Trang 22/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
Một số tham chiếu phổ biến nhất có thể giúp tốt nhất cho chúng ta là:
• Tài liệu
◦ Dự án Tài liệu Linux. Chúng ta có thể thấy hầu hết các sách chỉ dẫn đang tồn tại, các
sách chỉ dẫn cách làm HOWTOS, các hỏi đáp thường gặp FAQ... trên site này, bổ sung
thêm là trong vài ngôn ngữ: http://www.tdlp.org/
◦ Linux tiếng Tây Ban Nha. Dự án tài liệu lớn cho GNU/Linux, các HOWTOS, các sách
chỉ dẫn ... bằng tiếng Tây Ban Nha: http://lucas.linux.org.mx
◦ Các sách HOWTO của HOWTOS: http://lucas.linux.org.mx/
◦ Linux.com. Trang với các phần tin, tài liệu khác nhau, ...: http://www.linux.com/
◦ Tài liệu cho Debian GNU/Linux: http://www.debian.org/doc/
• Tin tức
◦ Slashdot. Tin và thảo luận từ cộng đồng GNU/Linux bằng tiếng Anh: http://slashdot.org
◦ Barrapunto. Tương tự như Slashdot bằng tiếng Tây Ban Nha: http://barrapunto.com
◦ Puntbarra. Tương tự như Slashdot trong tiếng Catalan: http://puntbarra.com
◦ Bulmalug. Những người mới sử dụng Linux từ Mallorca và xung quanh đó. Tin tức và
các phần chuyên cho các chủ đề đặc biệt: http://bulmalug.net
◦ Tin tức tiếng Tây Ban Nha về GNU: http://www.es.gnu.org/
◦ Linux ngày nay (Linuxtoday). Một trang tin rất thực tế khác được cập nhật với tin tức
mới nhất. http://www.linuxtoday.com/
◦ Libertonia. Trang tin. Phần các nguồn tin của nó là đặc biệt thú vị với vô số các đường
liên kết tới các trang khác dạng tương tự: http://libertonia.escomposlinux.org
• Các diễn đàn
◦ Foroslinux.org. Vài diễn đàn GNU/Linux về tất cả các dạng chủ đề.
◦ Các diễn đàn an ninh Linux. Các diễn đàn tập trung vào các vấn đề an ninh và tương tự.
• Tìm kiếm
◦ Linux trên Google. Máy tìm kiếm lớn nhất thế giới cũng dành cho GNU/Linux.
http://www.google.com/linux
◦ Buscadoc. Máy tìm kiếm cho các tài liệu CNTT tiếng Tây Ban Nha.
• Các phát tán
◦ Trang web chính thức của Quỹ Phần mềm Tự do: http://www.fsf.org/
◦ Trang web chính thức của Debian GNU/Linux: http://www.debian.org/
◦ Trang web chính thức của Red Hat Linux: http://www.redhat.com/
◦ Trang web chính thức của SuSE: http://www.novell.com/es-es/linux/
Trang 23/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
◦ Trang web chính thức của Slackware Linux: http://www.slackware.com/
◦ Trang web chính thức của Knoppix: http://www.knoppix.com/
◦ Trang web chính thức của Ubuntu: http://ubuntu.org/
• Tải về
◦ Sourceforge. Trang lớn nhất với các dự án PMTD: http://sourceforge.net/
◦ Linux trong Softonic. Phần tải GNU/Linux về từ một trong nhiều trang tải về:
http://www.softonic.com/
◦ Tải về. Trang tải về: http://www.download.com/
• Khác
◦ An ninh của Linux. Trang với thông tin thích hợp về tất cả các dạng vấn đề an ninh với
GNU/Linux: http://www.linuxsecurity.com/
◦ LinuxHQ: Thông tin chung về các phát tán GNU/Linux: http://www.linuxhq.com/
◦ Tạp chí Linux. Trang tin và các bài báo về GNU/Linux: http://www.linuxjournal.com/
◦ Tạp chí Linux. Tạp chí GNU/Linux: http://www.linuxgazette.com/
◦ Linux-mag. Tạp chí GNU/Linux: http://www.linux-mag.com/
◦ Trang web chính thức của dự án XFree86: http://www.xfree86.org/
Trang 24/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
2. Các khái niệm và lệnh cơ bản
2.1. Giới thiệu
Trong phần này chúng ta sẽ học những ý tưởng và lệnh cơ bản cần thiết
cho việc dịch chuyển xung quan hệ thống. Nếu chúng ta không quen sử
dụng dòng lệnh để làm việc với hệ điều hành, thì ban đầu có thể thấy
một chút phức tạp, nhưng khi chúng ta sử dụng nó thì chúng ta sẽ thấy
các dòng lệnh đó là rất hữu dụng và chúng cho phép chúng ta thực hiện
được bất kỳ nhiệm vụ nào chúng ta cần. Hơn nữa, biết cách sử dụng
dòng lệnh đúng sẽ là rất hữu dụng khi chúng ta cần kết nối từ xa tới một máy tính nơi mà chúng ta
sẽ, tương tự, có khả năng thiết kế các chương trình nhỏ (shell scripts - các scripts biên dịch) để tự
động hóa hầu hết những nhiệm vụ quản trị chúng.
Hầu hết các lệnh chúng ta sẽ thấy trong phần này tạo thành một phần của tiêu chuẩn (IEEE POSIX
norms) và được tất cả các hệ thống GNU/Linux và UNIX chia sẻ. Mặc dù từng phát tán có các ứng
dụng quản lý và quản trị của riêng mình, thì nhiều hành động mà chúng thực hiện cũng có thể được
triển khai với các lệnh mà chúng ta sẽ thấy. Sử dụng chúng, chúng ta sẽ có khả năng điều khiển hầu
hết tất cả các tính năng của hệ thống và dịch chuyển qua hệ thống một cách có hiệu quả. Bằng việc
học cách sử dụng các lệnh đó một cách đúng đắn, chúng ta cũng sẽ học được cách định vị qua bất
kỳ hệ thống nào dựa vào GNU/Linux, bất chấp là phát tán nào chúng ta sử dụng.
Mỗi trong số các lệnh hệ thống có xu hướng có một số lượng lớn các
tham số khác nhau. Bằng việc truyền các tham số, chúng ta có thể sử
dụng lệnh y hệt để triển khai nhiều hành động khác nhau, thậm chí nếu
tất cả chúng là cùng một loại dạng y hệt. Trong tài liệu này chúng ta sẽ
không chỉ định các tham số khác nhau của từng lệnh mà chúng ta xem
xét, vì văn bản đó có thể trở nên quá dài; nó vừa không có ý nghĩa để
biết chính xác tất cả các tham số có khả năng cho từng lệnh. Tất cả
chúng có một sách chỉ dẫn mở rộng, chỉ định từng lựa chọn, sao cho bất
kỳ lúc nào chúng ta cần thực hiện một hành động đặc thù thì chúng ta
có thể hướng tới nó. Trong các bài tập xuyên khắp khóa học này, chúng
ta sẽ thấy một số lựa chọn đó, dù quan trọng để biết rằng với sách chỉ
dẫn đó chúng ta có thể luôn phát hiện ra nhiều thứ khác mà có thể giúp chúng ta triển khai mọi thứ
chúng ta cần.
2.2 Người sử dụng và nhóm
Hiện hành, hầu hết các hệ điều hành đang sử dụng là đa người sử dụng
và đa nhiệm. Điều này có nghĩa là hơn một người sử dụng có thể làm
việc trong hệ thống cùng một lúc, triển khai một hoặc nhiều nhiệm vụ
cùng một lúc. Vì lý do này, rất quan trọng cho hệ điều hành phải có các
cơ chế cho phép chúng ta kiểm soát và quản lý những người sử dụng
một cách đúng đắn: hệ thống truy cập và nhận diện (đăng nhập), các
chương trình mà mỗi người sử dụng có thể chạy, các cơ chế an ninh để
Trang 25/232
Lệnh
Một lệnh là một chương
trình thực hiện một hành
động đặc thù có liên quan tới
hệ điều hành.
Tham số của lệnh
Một tham số là một lựa chọn
đặc biệt của một lệnh mà
chúng ta bổ sung vào sau
lệnh, sao cho trước nó là một
dấu trống, và thường có một
dấu gạch ngang. Ví dụ, nếu
lệnh là list, thì chúng ta có
thể bổ sung một tham số như
là list all.
Chính sách các tên
Một chính sách các tên được
sử dụng thường xuyên sẽ đặt
ra như một sự đăng nhập ký
tự đầu của tên người sử dụng
đi tiếp sau với họ của người
sử dụng đó.
GNUFDL • PID_00148369 GNU/Linux cơ bản
bảo vệ phần cứng thiết bị, bảo vệ cho các tệp của người sử dụng, …
Hệ điều hành dựa vào UNIX tổ chức tất cả các thông tin trong các
nhóm và người sử dụng. Để vào được hệ thống đó, chúng ta cần nhận
diện tự bản thân mình, bằng việc sử dụng một đăng nhập và một mật
khẩu. Đăng nhập đó có xu hướng sẽ là một tên để nhận diện người sử
dụng một cách duy nhất. Đối với các hệ thống với nhiều hơn là chỉ một
ít người sử dụng, thì điều quan trọng phải có một chính sách các tên tốt
sao cho tất cả những người sử dụng có thể được nhận diện rõ ràng. Mật
khẩu phải bao gồm sự kết hợp các ký tự, các con số và các ký tự đặc
biệt. Nó không nên bao gồm bất kỳ từ ngữ từ điển hoặc tương tự nào vì điều này có thể gây ra một
rủi ro an ninh nghiêm trọng. Hệ thống các mật khẩu là dạng đơn hướng. Điều này có nghĩa là mật
khẩu của chúng ta không được lưu giữ ở dạng văn bản, thay vào đó nó được mã hóa và được lưu
giữ như nó có. Khi chúng ta vào hệ thống và viết mật khẩu của chúng ta, thì nó được mã hóa và
được so sánh với mật khẩu được lưu giữ, nếu chúng khớp nhau, thì sự nhận diện là tích cực, còn
nếu chúng không khớp nhau, thì không có sự nhận diện. Điều quan trọng của hệ thống này là thông
qua việc mã hóa chúng ta không thể có được mật khẩu gốc ban đầu bằng bất kỳ cách gì. Điều mà tất
cả các chương trình được thiết kế để phá các mật khẩu của người sử dụng có thể làm là viết thành
mật mã các từ dựa vào các từ điển (có sử dụng các hệ thống tự động để dẫn xuất chúng và tìm ra
những phương án) và kiểm thử liệu chúng có trùng với việc mã hóa của bất kỳ mật khẩu nào của
người sử dụng hay không. Vì thế, chúng ta cần chọn các mật khẩu của chúng ta cẩn thận; nếu không
chúng ta có thể bị tổn thương về an ninh cho toàn bộ hệ thống.
Hiện hành, trong các hệ thống GNU/Linux chúng ta có thể chọn 2 dạng có khả năng mã hóa cho các
mật khẩu của người sử dụng. Một dạng được sử dụng kể từ đầu của UNIX là 3DES. Sự bất tiện duy
nhất với dạng mã hóa này là nó chỉ cho phép chúng ta có các mật khẩu 8 ký tự (nếu chúng ta viết
nhiều hơn, chúng sẽ bỏ qua), không giống như dạng mã hóa khác, gọi là MD5, cho phép chúng ta
sử dụng các mật khẩu có độ dài như chúng ta muốn (trong thực tế, MD5 là một hệ thống băm,
nhưng cũng có thể được sử dụng để mã hóa các mật khẩu có sử dụng dạng mã hóa thứ 2. Trong bất
kỳ trường hợp nào, chúng ta nên nhớ rằng nếu chúng ta cần sử dụng một chương trình đặc biệt để
quản lý người sử dụng, như NIS, thì nó có thể không tương thích với MD5.
Mặc dù một người sử dụng là một cá nhân có thể truy cập hệ thống, còn
một nhóm là một tập hợp những người sử dụng chia sẻ cùng y hệt các
đặc tính, nghĩa là hữu dụng để nhóm họ cùng vào nhau sao cho chúng ta
có thể trao cho họ một loạt các quyền đặc thù trong hệ thống. Một
người sử dụng phải thuộc về ít nhất 1 nhóm, nhưng cũng có thể thuộc
về nhiều hơn 1 nhóm. Hệ thống cũng sử dụng toàn bộ cơ chế này của
người sử dụng và các nhóm để quản lý các máy chủ ứng dụng và các cơ
chế khác. Vì lý do này, bổ sung thêm vào những người sử dụng thực tế,
một hệ thống sẽ có nhiều người sử dụng khác có liên quan tới các
nhiệm vụ cần phải được triển khai trong hệ điều hành. Thông thường, dạng người sử dụng này sẽ
không có khả năng đi vào hệ thống (sử dụng một đăng nhập thông thường).
Bất kỳ hệ điều hành nào cũng phải có một siêu người sử dụng (gốc root). Người sử dụng gốc root
có các quyền ưu tiên tối đa để triển khai bất kỳ hoạt động nào trong hệ điều hành. Người sử dụng
gốc root cần phải tồn tại, vì gốc root sẽ có trách nhiệm cho việc quản trị và quản lý các máy chủ,
các nhóm... Tài khoản này không nên được sử dụng để làm việc thông thường trong hệ thống.
Chúng ta nên vào như gốc root khi thực sự cần thiết, và sẽ sử dụng các tài khoản khác cho người sử
dụng thông thường làm việc. Điều này sẽ ngăn ngừa chúng ta gây hại cho hệ thống thông qua vô số
Trang 26/232
NIS
NIS là một loạt các ứng
dụng cho phép chúng ta
quản lý tất cả những người
sử dụng của cùng mạng đó
theo cách tập trung trong
một máy chủ duy nhất.
Máy chủ
Một máy chủ là một chương
trình có trách nhiệm cung
cấp một số dạng dịch vụ
(như phục vụ các trang web,
cho phép những người sử
dụng kết nối từ xa ...),
thường được kết nối tới
Internet.
GNUFDL • PID_00148369 GNU/Linux cơ bản
các hoạt động hoặc trong việc kiểm thử các chương trình độc hại, ...
Tất cả thông tin của người sử dụng và nhóm được lưu giữ trong các tệp sau:
• /etc/passwd: thông tin (tên, thư mục, thư mục home ...) của người sử dụng.
• /etc/group: thông tin về các nhóm người sử dụng
• /etc/shadow: các mật khẩu được mã hóa của người sử dụng và cấu hình để kiểm tra tính
hợp lệ, việc thay đổi chúng...
Sử dụng tệp shadow là lựa chọn tùy ý. Ban đầu, các mật khẩu người sử dụng được mã hóa từng
được lưu giữ trong cùng tệp passwd, nhưng vì các lý do an ninh (nhiều cơ chế cần có khả năng đọc
tệp này, nghĩa là từng rất dễ nắm được nó và cố để phá các mật khẩu), cơ chế này đã được quyết
định thay đổi sao cho tệp shadow chỉ có khả năng truy cập được đối với số ít người sử dụng với các
quyền ưu tiên đặc biệt trong hệ thống. Lựa chọn này có thể được cấu hình trong quá trình cài đặt hệ
thống và nó thường được khuyến cáo sử dụng. Tất cả các tệp đó được tổ chức theo các dòng, nơi mà
mỗi dòng xác định một người sử dụng hoặc một nhóm (phụ thuộc vào tệp đó). Trong từng dòng có
vài trường tách bạch nhau bằng ký tự “:”. Đối với các nhiệm vụ quản trị, điều quan trọng phải biết
các trường đó là cái gì, trường nào và vì sao mà chúng ta sẽ xem xét chúng chi tiết hơn một chút:
Cấu hình mật khẩu
Cũng có khả năng cấu hình hệ thống để sử dụng tệp shadow cho các nhóm (trong trường hợp chúng cần phải
đưa ra được một mật khẩu). Tệp này có thể có tên /etc/gshadow. Thông thường, cấu hình mật khẩu được đưa
ra khi hệ thống được cài đặt, dù nó tất cả có thể bị thay đổi và được áp dụng theo ý của chúng ta, bằng việc sử
dụng các Module Xác thực Cài cắm được (PAM - Pluggable Authentication Modules) cho Linux, mà là các
chương trình có trách nhiệm cho toàn bộ hệ thống xác thực người sử dụng.
• passwd
1) Đăng nhập (login): tên người sử dụng. Không thể có bất
kỳ 2 tên nào y hệt nhau, mặc dù có thể có một tên mà
trùng với một nhóm hệ thống.
2) Mật khẩu được mã hóa: Nếu chúng ta không sử dụng tệp
shadow, thì các mật khẩu được mã hóa sẽ được lưu giữ
trong trường này. Nếu chúng ta sử dụng tệp shadow, thì
tất cả những người sử dụng đang tồn tại trong tệp này
cũng cần phải ở trong tệp shadow đó, và chúng ta cần
phải gõ một “x” vào trường đó.
3) Mã của người sử dụng (User ID): số của nhóm mà người
sử dụng đó thuộc về. Đây là số mà hệ thống sử dụng để
nhận diện người sử dụng. 0 chỉ là một giá trị được dự
phòng cho gốc root.
4) Mã của nhóm (Group ID): số của nhóm mà người sử dụng đó thuộc về. Vì một người
sử dụng có thể thuộc về nhiều hơn một nhóm, nên nhóm này được gọi là nhóm ban
đầu.
5) Các bình luận: trường được giữ để đưa vào các bình luận mà chúng ta mong muốn về
người sử dụng. Nó thường được sử dụng để vào tên đầy đủ hoặc một số dạng nhận
Trang 27/232
Phá mật khẩu
Việc phá mật khẩu có nghĩa
là có được mật khẩu thông
qua sử dụng các chương
trình được thiết kế đặc biệt.
Những chương trình đó cũng
được các quản trị hệ thống
sử dụng để phát hiện những
người sử dụng nào đang sử
dụng các mật khẩu quá dễ
dàng để phát hiện (các mật
khẩu tốt không thể bị phá
theo bất kỳ cách gì mà
không sử dụng tới các siêu
máy tính lớn).
GNUFDL • PID_00148369 GNU/Linux cơ bản
diện cá nhân.
6) Thư mục Home (gốc): thư mục Home của người sử dụng là nơi người sử dụng có thể
lưu tất cả các tệp của anh ta. Tất cả chúng thường được lưu giữ trong một thư mục hệ
thống (thường là /home/) và được tổ chức theo các nhóm.
7) Trình biên dịch các lệnh: Trình biên dịch các lệnh (shell) là một chương trình đọc
mọi thứ chúng ta viết bằng việc sử dụng bàn phím và chạy các chương trình hoặc các
lệnh mà chúng ta chỉ định. Có hàng tá chúng, mặc dù thứ được sử dụng phổ biến
nhất không nghi ngờ gì, là bash (GNU Bourne-Again Shell). Nếu trong trường này
chúng ta viết /bin/false/ thì chúng ta sẽ không cho phép người sử dụng thực thi bất
kỳ lệnh nào trong hệ thống, thậm chí nếu người sử dụng được hệ thống đăng ký.
• Group
1) Tên nhóm
2) Mật khẩu được mã hóa: Một mật khẩu nhóm được sử dụng để cho phép những người
sử dụng của một nhóm đặc thù để thay đổi sang nhóm khác hoặc chạy một số chương
trình với các quyền của nhóm khác (trong điều kiện có mật khẩu).
3) Mã nhóm (Group ID): số nhận diện nhóm. Đây là số với nó hệ thống nhận diện các
nhóm một cách nội bộ. 0 chỉ là một mã được lưu giữ dành cho nhóm gốc (các quản
trị viên).
4) Danh sách người sử dụng: các tên của những người sử dụng thuộc về nhóm, được
tách bạch nhau bằng dấu phẩy. Mặc dù tất cả những người sử dụng nên thuộc về một
nhóm cụ thể (được chỉ định trong trường thứ 4 của tệp passwd), thì trường này có thể
được sử dụng cho những người sử dụng của các nhóm khác để có cùng các quyền y
hệt như của nhóm theo yêu cầu.
• shadow
1) Đăng nhập (login): nó nên là tên y hệt như được sử dụng trong tệp passwd.
2) Mật khẩu được mã hóa.
3) Ngày tháng, kể từ 01/01/1970, cho tới khi mật khẩu được thay đổi lần cuối.
4) Ngày tháng đi qua trước khi mật khẩu có thể được thay đổi.
5) Ngày tháng đi qua trước khi mật khẩu nên được thay đổi.
6) Ngày tháng trước khi mật khẩu hết hạn khi người sử dụng được lưu ý để thay đổi nó.
7) Ngày tháng có thể đi qua sau khi hết hạn mật khẩu, trước khi tài khoản của người sử
dụng bị khóa (trừ phi mật khẩu được thay đổi).
8) Ngày, kể từ 01/01/1970, khi tài khoản đã bị khóa.
9) Trường dự phòng.
Khi một người sử dụng vào hệ thống, anh ta được đặt trong thư mục
home và trình biên dịch shell được thiết lập cấu hình để chạy được.
Người sử dụng bây giờ có thể bắt đầu làm việc. Chỉ gốc root của hệ
thống (hoặc những người sử dụng nhóm root) có quyền để điều khiển thông tin của người sử dụng
Trang 28/232
Ngày tháng trong các hệ
thống UNIX
Trong các hệ thống UNIX,
ngày tháng thường được chỉ
ra theo số giây đã trôi qua kể
từ ngày 01/01/1970.
GNUFDL • PID_00148369 GNU/Linux cơ bản
và nhóm, để đăng ký và bỏ đăng ký chúng... Có nhiều lệnh để làm việc với điều này. Hơn nữa, mỗi
một người sử dụng có vài tham số cho việc quản lý tất cả các trường chúng ta đã thấy trước đó. Sau
đây, chúng ta sẽ xem xét một số các lệnh đó:
• adduser: điều này cho phép chúng ta thêm một người sử dụng
mới vào hệ thống. Cách thêm nó (nếu chúng ta không chỉ định
bất kỳ thứ gì khác) có thể được cấu hình trong tệp
/etc/adduser.conf. Một số lựa chọn khác nhau có thể được
chỉ định bằng việc tham chiếu tới thư mục home, trình biên dịch
sẽ được sử dụng...
• useradd: tạo một người sử dụng mới hoặc thay đổi cấu hình
mặc định của người sử dụng. Lệnh này và lệnh trước có thể
được sử dụng để hoàn thành các nhiệm vụ hệt như nhau.
• usermod: với lệnh này chúng ta có thể sửa hầu hết các trường trong tệp passwd và shadow,
như thư mục home, trình biên dịch shell, thời điểm hết hạn mật khẩu...
• chfn: thay đổi thông tin cá nhân của người sử dụng trong các trường bình luận của tệp
passwd.
• chsh: thay đổi trình biên dịch shell của người sử dụng.
• deluser: hạn chế một người sử dụng đối với hệ thống, xóa hoặc lưu tất cả các tệp của người
sử dụng phụ thuộc vào các tham số chúng ta đã thiết lập, với một bản sao lưu của chúng
hoặc không... Cấu hình được sử dụng mặc định với lệnh này được chỉ định trong tệp
/etc/deluser.conf.
• userdel: lệnh với y hệt các khả năng như lệnh trên.
• passwd: chúng ta có thể sử dụng nó để thay đổi mật khẩu, thông tin về sự hết hạn của mật
khẩu của một người sử dụng hoặc khóa hay mở khóa cho một tài khoản đặc biệt nào đó.
• addgroup: cho phép chúng ta thêm một nhóm vào hệ thống.
• groupadd: y hệt như lệnh trước, nhưng với các tham số khác.
• groupmod: cho phép chúng ta sửa thông tin (tên và GID) của một nhóm đặc biệt nào đó.
• delgroup: loại bỏ một nhóm nhất định nào đó. Nếu một người sử dụng vẫn còn trong nhóm
gốc ban đầu, thì nhóm đó không thể bị loại bỏ.
• groupdel: như trong trường hợp ở trước.
• gpasswd: chúng ta có thể sử dụng nó để thay đổi mật khẩu nhóm.
Để biết người sử dụng nào chúng ta có thể sử dụng lệnh whoami, mà sẽ chỉ ra sự đăng nhập của
chúng ta. groups cho phép chúng ta biết các nhóm nào chúng ta thuộc về và id sẽ chỉ cho chúng ta
người sử dụng và các nhóm. Cũng thú vị để có khả năng trở thành người sử dụng khác mà không
phải thoát khỏi phiên (lệnh login hoặc su) hoặc để thay đổi các nhóm với lệnh newgrp. Chúng ta
chỉ nên sử dụng lệnh này khi chúng ta không thuộc về nhóm theo yêu cầu và biết mật khẩu (mà nên
Trang 29/232
Khẩu phần đĩa
Đối với các hệ thống với
hàng trăm người sử dụng thì
nói chung để triển khai một
số dạng cơ chế để hạn chế
không gian đĩa mà từng cơ
chế đó có thể sử dụng. Trong
các hệ thống GNU/Linux, hệ
thống này được gọi là khẩu
phần (quota).
GNUFDL • PID_00148369 GNU/Linux cơ bản
phải được kích hoạt trong tệp group). Nếu tất cả điều chúng ta cần là các quyền của nhóm theo yêu
cầu để chạy một lệnh cụ thể, thì chúng ta cũng có thể sử dụng sg.
Tính linh hoạt của GNU/Linux
Như chúng ta có thể thấy, với GNU/Linux chúng ta có hơn một cách thức triển khai các nhiệm vụ nhất định.
Đây là tiếp cận tổng thể của hệ thống: chúng ta có thể sửa các tệp trực tiếp và tự chúng ta sửa chúng, bằng việc
sử dụng một số lệnh đang tồn tại, tự chúng ta tạo ra chúng... Tất nhiên, chúng ta cũng có thể chọn những gì
chúng ta thích nhất.
Như chúng ta đã nhắc tới trước đó, GNU/Linux là một hệ điều hành đa người sử dụng, nghĩa là bất
kỳ lúc nào cũng có thể có vài người sử dụng được kết nối tới hệ thống cùng một lúc. Để biết được
có những người sử dụng nào ở bất kỳ thời điểm cụ thế nào, chúng ta có thể sử dụng lệnh who, nó sẽ
chỉ cho chúng ta danh sách những người sử dụng trong hệ thống. w, nó cũng chỉ cho chúng ta những
gì chúng đang làm. Chúng ta có thể giao tiếp với chúng bằng việc sử dụng lệnh write, với nó thông
điệp mà chúng ta đã viết trong màn hình của người sử dụng cụ thể hoặc wall sẽ xuất hiện, viết nội
dung của tệp mà chúng ta đã chỉ định cho tất cả những người sử dụng trong hệ thống. Để kích hoạt
hoặc giải hoạt lựa chọn của các thông điệp nhận được thì chúng ta có lệnh mesg. Chúng ta cũng có
thể có một giản đồ cá nhân với một người sử dụng bằng việc sử dụng lệnh talk.
2.3. Hệ thống tệp
2.3.1. Tôn ti trật tự của hệ thống tệp
Bất kỳ hệ điều hành nào cũng cần lưu vô số các tệp: từ các tệp cấu hình hệ thống, tới các tệp lưu ký
hoặc các tệp của người sử dụng ... Nói chung, mỗi hệ điều hành sử dụng hệ thống tệp của riêng
mình đặc trưng cho nó trong nhiều khía cạnh, như hiệu năng, an ninh, độ tin cậy ... GNU/Linux có
khả năng đọc và ghi các tệp với bất kỳ hệ thống tệp nào hiện đang tồn tại, dù đối với root của riêng
nó và các thư mục chính thì nó đòi hỏi một hệ thống tệp cho phép các hoạt động nhất định. Nói
chung, chúng ta sử dụng dạng ext2, ext3 hoặc ReiserFS. Hệ thống tệp ext2 là phổ biến nhất và được
sử dụng rộng rãi. Hiệu năng của nó là khá tốt, nó kết hợp tất cả các dạng cơ chế, an ninh và tinh
chỉnh và rất tin cậy. Hệ thống tệp ext3 là sự tiến hóa của nó và kết hợp một công nghệ được biết tới
như là ghi nhật ký (journaling). Một trong những ưu điểm chính của công nghệ này là nếu việc cung
cấp điện bị cắt và máy tính tắt không đúng cách, thì các hệ thống phục hồi tệp là có hiệu quả hơn.
ReiserFS là một dạng mới của hệ thống có kết hợp các công nghệ thiết kế mới để làm cho nó nhanh
hơn. Trong quá trình cài đặt, hệ điều hành sẽ hỏi chúng ta trong 3 hệ thống tệp đó thì chúng ta muốn
sử dụng cái nào. Thông thường, chúng ta sẽ sử dụng ext2 hoặc ext3 vì chúng đã được kiểm thử hơn
nhiều so với ReiserFS.
Hệ thống tệp
Hệ thống tệp là chương trình (hoặc các module của nhân hệ điều hành) có trách nhiệm cho tất cả các hoạt động
có liên quan tới việc điều khiển các tệp và lưu trữ. Chúng là những chức năng làm việc với các thiết bị lưu trữ
vật lý của máy tính, như đĩa cứng.
Một đặc tính rất quan trọng của tất cả các hệ điều hành dựa vào UNIX là tất cả các thiết bị hệ thống
có thể được điều khiển dường như chúng là các tệp. Như vậy, khi chúng ta muốn truy cập nội dung
của một đĩa CD, đĩa mềm hoặc bất kỳ thiết bị lưu trữ nào khác, thì chúng ta sẽ phải kích hoạt
(mount) nó trong một thư mục hệ thống đang tồn tại rồi và sẽ định vị thông qua nó dường như nó
chỉ là một tệp nữa (sử dụng các đơn vị khác như A:, B:, C:, D:, ... là một sơ đồ chỉ tồn tại trong dạng
Trang 30/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
các hệ điều hành Windows.
Hệ thống tệp ext2
Hệ thống tệp ext2 từng được thiết kế để điều khiển các tệp nhỏ, là những gì một hệ điều hành có xu hướng có
nhiều hơn, nhanh hơn. Không thật tốt để điều khiển và vận hành các tệp đa phương tiện lớn, mặc dù chúng ta
luôn có thể tinh chỉnh một chút để tùy biến thích nghi nó cho các nhu cầu của chúng ta.
Điều đầu tiên chúng ta cần hiểu rõ là bất kỳ hệ thống tệp nào cũng bắt đầu từ gốc root y hệt, mà
chúng ta tham chiếu tới với ký tự “/”. Đây là gốc của toàn bộ hệ thống tệp và chỉ có một. Để tổ chức
đúng các tệp, hệ thống cung cấp những gì chúng ta gọi là các thư mục, nơi chúng ta có thể đặt các
tệp và nhiều hơn các thư mục. Điều này cho phép chúng ta có được một tổ chức có tôn ti trật tự như
được chỉ ra trong hình sau:
Hình 2.1
2.3.2. Các thư mục hệ thống
Hầu hết các hệ điều hành trong thị trường tuân theo tiêu chuẩn FHS, nó chỉ định các đặc tính chính
mà bất kỳ hệ điều hành nào cũng có. Chúng bao gồm cách chúng ta nên phân phối các tệp của
chúng ta trong các thư mục để tổ chức chúng đúng và có khả năng tìm kiếm chúng nhanh chóng và
dễ dàng. Hầu hết các phát tán dựa vào GNU/Linux tuân theo những khuyến cáo đó và chúng ta có
thể thấy các thư mục chính sau đây:
• /bin/: các lệnh cơ bản cho tất cả những người sử dụng hệ thống.
• /boot/: các tệp tĩnh được yêu cầu cho việc khởi động hệ thống.
• /dev/: các thiết bị hệ thống.
• /etc/: các tệp cấu hình hệ thống và các ứng dụng được cài đặt trong hệ thống.
Trang 31/232
GNUFDL • PID_00148369 GNU/Linux cơ bản
• /home/: thư mục cho các tệp ở gốc home của người sử dụng.
• /lib/: các thư viện cơ bản cho nhân của hệ thống và các module của nó.
• /mnt/: điểm kích hoạt tạm thời cho các thiết bị.
• /proc/: các qui trình và các biến của nhân hệ thống...
• /root/: thư mục gốc home cho gốc root của hệ thống.
• /sbin/: các lệnh cơ bản cho root của hệ thống.
• /tmp/: các tệp tạm thời. Phụ thuộc vào phát tán (hoặc cấu hình) mà chúng ta sử dụng thì
chúng bị xóa khi hệ thống được khởi động hoặc sau mỗi chu kỳ thời gian nhất định.
• /usr/: cấu trúc tôn ti trật tự thứ 2, được sử dụng cho việc lưu giữ tất cả các phần mềm được
cài đặt trong hệ thống.
• /var/: thư mục cho việc in tiện ích spooler, các tệp lưu ký...
Được khuyến cáo cao độ phải lưu giữ và không loại bỏ bất kỳ thư mục nào (hoặc những thư mục
mà phát tán của chúng ta đang sử dụng được tạo ra một cách mặc định), vì chúng là cơ bản cho việc
vận hành đúng của hệ thống. Thông thường, các qui trình cài đặt ứng dụng mới đòi hỏi tổ chức này
và nhiều tệp cấu hình chương trình cần phải được nằm trong các thư mục nhất định. Những gì
chúng ta có thể làm mà không có bất kỳ dạng hạn chế nào là tạo ra những thư mục mới trong root
của hệ thống hoặc trong bất kỳ thư mục nào khác.
2.3.3. Dịch chuyển
Để dịch chuyển quanh cấu trúc các thư mục, chúng ta cần sử dụng các lệnh để liệt kê các nội dung
và thay đổi các thư mục. Khi chúng ta vào hệ thống, đăng nhập sẽ thường đặt chúng ta vào thư mục
home của chúng ta, mà thường được tham chiếu tới với ký tự “~”. Nếu chúng ta muốn thấy có gì đó
trong thư mục chúng ta đang đứng, thì chúng ta hãy liệt kê các nội dung đó bằn việc sử dụng lệnh
ls. Chúng ta nên nhớ rằng mặc định thì lệnh đó sẽ không chỉ ra cho chúng ta các tệp bắt đầu với
dấu chấm. Bằng việc sử dụng tham số -a thì tất cả các tệp sẽ được liệt kê. Trong tất cả các thư mục
có một dấu chấm “.” và cái khác có dấu “..”. Dấu chấm tham chiếu tới thư mục hiện hành, trong khi
2 dấu chấm tham chiếu tới thư mục ngay bên trên thư mục hiện hành một cấp (trong cây tôn ti trật
tự). Thông thường, khi chúng ta đang đứng ở gốc root của hệ thống tệp, thì “..” sẽ không tồn tại vì
chúng ta đang đứng ở mức cao nhất rồi.
Để thay đổi thư mục chúng ta có thể sử dụng lệnh cd. Nếu chúng ta không thêm bất kỳ tham số nào
thì chúng ta sẽ được đưa về thư mục home của chúng ta một cách mặc định. Thông thường, chúng
ta có xu hướng chỉ ra nơi chúng ta muốn tới, theo cách tương đối hoặc tuyệt đối. Theo cách tương
đối, nó có nghĩa là chúng ta sẽ bắt đầu từ thư mục mà chúng ta đang đứng ở thời điểm đang thực
hiện lệnh. Ví dụ, nếu chúng ta đứng trong thư mục /usr/bin/ và chúng ta muốn đi tới /root/, thì
chúng ta nên vào lệnh sau: cd ../../root (2 dấu chấm đầu chỉ /usr/ và 2 dấu chấm sau chỉ gốc
root / của hệ thống, từ đó chúng ta có thể truy cập được /root/). Theo cách tuyệt đối, chúng ta luôn
bắt đầu từ gốc root, nghĩa là lệnh chúng ta có thể sử dụng trong ví dụ trước có thể là: cd /root. Để
biết thư mục nào chúng ta đang đứng thì chúng ta có thể sử dụng lệnh pwd.
Trang 32/232
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)
Cơ bản GNU/Linux (FTA: Basic GNU/Linux)

Más contenido relacionado

Similar a Cơ bản GNU/Linux (FTA: Basic GNU/Linux)

TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVERTRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
Bảo Bối
 
Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ
Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ
Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ
Vu Hung Nguyen
 

Similar a Cơ bản GNU/Linux (FTA: Basic GNU/Linux) (20)

Quản trị cao cấp GNU/Linux (FTA)
Quản trị cao cấp GNU/Linux (FTA)Quản trị cao cấp GNU/Linux (FTA)
Quản trị cao cấp GNU/Linux (FTA)
 
Luận án: Sử dụng ngôn ngữ trục trong dịch đa ngữ, HAY
Luận án: Sử dụng ngôn ngữ trục trong dịch đa ngữ, HAYLuận án: Sử dụng ngôn ngữ trục trong dịch đa ngữ, HAY
Luận án: Sử dụng ngôn ngữ trục trong dịch đa ngữ, HAY
 
OpenRoad presentation-march-2015
OpenRoad presentation-march-2015OpenRoad presentation-march-2015
OpenRoad presentation-march-2015
 
Oer basics
Oer basicsOer basics
Oer basics
 
Oer and-er-in-he-vn-nov-2016
Oer and-er-in-he-vn-nov-2016Oer and-er-in-he-vn-nov-2016
Oer and-er-in-he-vn-nov-2016
 
Oer and-er-in-he-vn-dec-2016
Oer and-er-in-he-vn-dec-2016Oer and-er-in-he-vn-dec-2016
Oer and-er-in-he-vn-dec-2016
 
Oer and-er-in-he-vn
Oer and-er-in-he-vnOer and-er-in-he-vn
Oer and-er-in-he-vn
 
Oer basics-jun.2016
Oer basics-jun.2016Oer basics-jun.2016
Oer basics-jun.2016
 
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVERTRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
 
Oer basics-sep.2016
Oer basics-sep.2016Oer basics-sep.2016
Oer basics-sep.2016
 
Oer basics-aug.2016
Oer basics-aug.2016Oer basics-aug.2016
Oer basics-aug.2016
 
Oer basics h2-2021
Oer basics h2-2021Oer basics h2-2021
Oer basics h2-2021
 
Oer basics h2-2021
Oer basics h2-2021Oer basics h2-2021
Oer basics h2-2021
 
Oer basics h2-2021
Oer basics h2-2021Oer basics h2-2021
Oer basics h2-2021
 
Oer basics-oct.2015
Oer basics-oct.2015Oer basics-oct.2015
Oer basics-oct.2015
 
Lesson 1 lý thuyết
Lesson 1 lý thuyếtLesson 1 lý thuyết
Lesson 1 lý thuyết
 
Oer basics-dec.2015
Oer basics-dec.2015Oer basics-dec.2015
Oer basics-dec.2015
 
(Tltk)tai lieu FOSS Viện thông tin phát triển Châu Á
(Tltk)tai lieu FOSS   Viện thông tin phát triển Châu Á(Tltk)tai lieu FOSS   Viện thông tin phát triển Châu Á
(Tltk)tai lieu FOSS Viện thông tin phát triển Châu Á
 
Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ
Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ
Đỗ Văn Xê: Kinh nghiệm triển khai FOSS ở Đại học Cần Thơ
 
42 44
42 4442 44
42 44
 

Más de Vu Hung Nguyen

Basic & Advanced Scrum Framework
Basic & Advanced Scrum FrameworkBasic & Advanced Scrum Framework
Basic & Advanced Scrum Framework
Vu Hung Nguyen
 
Anti patterns in it project management
Anti patterns in it project managementAnti patterns in it project management
Anti patterns in it project management
Vu Hung Nguyen
 

Más de Vu Hung Nguyen (20)

Co ban horenso - Tai lieu training noi bo
Co ban horenso - Tai lieu training noi boCo ban horenso - Tai lieu training noi bo
Co ban horenso - Tai lieu training noi bo
 
Funix techtalk: Tự học hiệu quả thời 4.0
Funix techtalk: Tự học hiệu quả thời 4.0Funix techtalk: Tự học hiệu quả thời 4.0
Funix techtalk: Tự học hiệu quả thời 4.0
 
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
 
Japanese for it bridge engineers
Japanese for it bridge engineersJapanese for it bridge engineers
Japanese for it bridge engineers
 
Basic IT Project Management Terminologies
Basic IT Project Management TerminologiesBasic IT Project Management Terminologies
Basic IT Project Management Terminologies
 
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
 
Làm việc hiệu quả với sếp Nhật (2017)
Làm việc hiệu quả với sếp Nhật (2017)Làm việc hiệu quả với sếp Nhật (2017)
Làm việc hiệu quả với sếp Nhật (2017)
 
Problem Solving Skills (for IT Engineers)
Problem Solving Skills (for IT Engineers)Problem Solving Skills (for IT Engineers)
Problem Solving Skills (for IT Engineers)
 
Using Shader in cocos2d-x
Using Shader in cocos2d-xUsing Shader in cocos2d-x
Using Shader in cocos2d-x
 
Pham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkPham Anh Tu - TK Framework
Pham Anh Tu - TK Framework
 
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS NewtonMy idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
 
Basic advanced scrum framework
Basic advanced scrum frameworkBasic advanced scrum framework
Basic advanced scrum framework
 
FPT Univ. Talkshow IT khong chi la lap trinh
FPT Univ. Talkshow IT khong chi la lap trinhFPT Univ. Talkshow IT khong chi la lap trinh
FPT Univ. Talkshow IT khong chi la lap trinh
 
Basic & Advanced Scrum Framework
Basic & Advanced Scrum FrameworkBasic & Advanced Scrum Framework
Basic & Advanced Scrum Framework
 
Agile Vietnam Conference 2016: Recap
Agile Vietnam Conference 2016: RecapAgile Vietnam Conference 2016: Recap
Agile Vietnam Conference 2016: Recap
 
IT Public Speaking Guidelines
IT Public Speaking GuidelinesIT Public Speaking Guidelines
IT Public Speaking Guidelines
 
Kanban: Cơ bản và Nâng cao
Kanban: Cơ bản và Nâng caoKanban: Cơ bản và Nâng cao
Kanban: Cơ bản và Nâng cao
 
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
 
Fuji Technology Workshop: Learning Skills
Fuji Technology Workshop: Learning SkillsFuji Technology Workshop: Learning Skills
Fuji Technology Workshop: Learning Skills
 
Anti patterns in it project management
Anti patterns in it project managementAnti patterns in it project management
Anti patterns in it project management
 

Cơ bản GNU/Linux (FTA: Basic GNU/Linux)

  • 1.
  • 2. GNUFDL • PID_00148369 GNU/Linux cơ bản Hệ điều hành GNU/Linux cơ bản Jordi Serra i Ruiz (người điều phối) David Megías Jiménez (người điều phối) Jordi Mas (người điều phối) Joaquín López Sánchez-Montañés Sofia Belles Ramos Roger Baig Viñas Francesc Aulí Llinàs PID_00148369 GNU/Linux Basic operating system Jordi Serra i Ruiz (coordinator) David Megías Jiménez (coordinator) Jordi Mas (coordinator) Joaquín López Sánchez-Montañés Sofia Belles Ramos Roger Baig Viñas Francesc Aulí Llinàs PID_00148369 Trang 2/232
  • 3. GNUFDL • PID_00148369 GNU/Linux cơ bản Xuất bản lần thứ 2: Tháng 02/2008 © Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig i Viñas i Francesc Aulí Llinàs © Cấp vốn từ Đại học Oberta de Catalunya Av. Tibidabo, 39-43, 08035 Barcelona Chuẩn bị tư liệu: Eureca Media, SL Tiền gửi pháp lý: B-1.567-2008 Bản quyền Copyright © 2010, FUOC. Các quyền được trao để sao chép, phân phối và/hoặc sửa đổi tài liệu này theo các điều khoản của Giấy phép Tài liệu Tự do GNU, phiên bản 1.2 (GFDL v1.2) hoặc bất kỳ phiên bản nào được xuất bản sau này từ Quỹ Phần mềm Tự do; mà không có các phần bất biến, không các văn bản bìa ngoài, không các văn bản bìa sau. Một bản sao của giấy phép này được đưa vào trong phần có đầu đề “Giấy phép Tài liệu Tự do GNU”. Second edition: February 2008 © Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig i Viñas i Francesc Aulí Llinàs © Fundació per a la Universitat Oberta de Catalunya Av. Tibidabo, 39-43, 08035 Barcelona Material prepared by Eureca Media, SL Legal deposit: B-1.567-2008 Copyright © 2010, FUOC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Trang 3/232
  • 4. GNUFDL • PID_00148369 GNU/Linux cơ bản Lời người dịch Trong bối cảnh khi mà các Công nghệ Tự do đang ngày càng trở thành một xu thế không thể đảo ngược trên toàn thế giới, tài liệu “Hệ điều hành GNU/Linux cơ bản” của các tác giả: Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig Viñas, Francesc Aulí Llinàs và những người điều phối: Jordi Serra i Ruiz, David Megías Jiménez, Jordi Mas, với bản tiếng Anh xuất bản lần 2 vào tháng 02/2008 của Viện Hàn lâm Công nghệ Tự do FTA (Free Technology Academy), là tài liệu được sử dụng trong chương trình đào tạo trực tuyến cho các giáo viên theo các module của khóa học về các Công nghệ tự do và tại một số trường đại học châu Âu cùng đứng ra thành lập Viện như: Đại học Mở Hà Lan (Open Universiteit Nederland), Đại học Oberta de Catalunya của Tây Ban Nha (Universitat Oberta de Catalunya) và Đại học Agder của Nauy (University of Agder). Bản dịch sang tiếng Việt được thực hiện từ bản gốc tiếng Anh, được đưa lên trực tuyến trên website của Viện tại địa chỉ: http://ftacademy.org/materials, hầu như không có sự tùy biến nào về nội dung. Tuân thủ theo các điều khoản của giấy phép được giới thiệu trong tài liệu gốc tiếng Anh, trong phần phụ lục ở cuối tài liệu này, tại nơi có giới thiệu giấy phép tài liệu tự do GFDL v.1.2, dù có cả bản dịch sang tiếng Việt đi cùng, thì bản dịch chỉ để tham khảo, bản gốc bằng tiếng Anh mới là bản có giá trị pháp lý cao nhất. Các trang có những lưu ý về bản quyền của bản gốc tiếng Anh được giữ nguyên không thay đổi, dù có các phần dịch tương ứng sang tiếng Việt nằm trên cùng các trang đó. Tài liệu này được cấp phép theo giấy phép tài liệu tự do GFDL v1.2 và các phiên bản tương ứng tiếp sau của giấy phép này. Tài liệu “Hệ điều hành GNU/Linux cơ bản”, cùng với 2 tài liệu khác cũng đã được dịch sang tiếng Việt và xuất bản trên mạng gồm: “Giới thiệu Phần mềm Tự do” và “Quản trị cao cấp GNU/Linux” đều nằm trong cùng bộ sách đào tạo về các công nghệ tự do của Viện Hàn lâm Công nghệ Mở. Những nội dung của tài liệu này là những kiến thức cơ bản đối với bất kỳ người quản trị hệ thống GNU/Linux nào. Mọi thông tin đóng góp cho các bản dịch sang tiếng Việt, xin gửi vào địa chỉ thư điện tử: letrungnghia.foss@gmail.com Chúc các độc giả thành công! Hà Nội, tháng 09 năm 2012 Lê Trung Nghĩa Trang 4/232
  • 5. GNUFDL • PID_00148369 GNU/Linux cơ bản Lời nói đầu Phần mềm đã trở thành một tài nguyên xã hội chiến lược trong vài thập kỷ vừa qua. Sự nổi lên của Phần mềm Tự do (PMTD), đã thâm nhập vào trong những lĩnh vực chính của thị trường công nghệ thông tin và truyền thông (CNTT-TT), làm thay đổi nhanh chóng các nền kinh tế phát triển và sử dụng phần mềm. PMTD - đôi lúc cũng được tham chiếu tới như là “Nguồn Mở” (Open Source) hoặc “Phần mềm tự do” (Libre Software) - có thể được sử dụng, nghiên cứu, sao chép, sửa đổi và phân phối một cách tự do. Nó đưa ra sự tự do để học và dạy mà không có những phụ thuộc vào bất kỳ nhà cung cấp công nghệ duy nhất nào. Những quyền tự do đó được xem là một điều kiện tiên quyết cơ bản cho sự phát triển bền vững và một xã hội thông tin toàn diện. Dù có sự quan tâm đang gia tăng trong các công nghệ tự do (PMTD và các Chuẩn Mở), vẫn có số người hạn chế có đủ tri thức và sự tinh thông trong các lĩnh vực đó. FTA có ý định đáp ứng cho nhu cầu này. Giới thiệu FTA Viện Hàn lâm Công nghệ Tự do (FTA - Free Technology Academy) là một sáng kiến chung từ vài tổ chức giáo dục tại vài quốc gia. Nó có mục tiêu đóng góp cho xã hội nhằm cho phép tất cả mọi người sử dụng nghiên cứu, tham gia và xây dựng trên tri thức hiện có mà không có giới hạn nào. FTA đưa ra những gì? Viện hàn lâm đưa ra một chương trình mức giáo viên trực tuyến với các module khóa học về các Công nghệ Tự do. Các học viên có thể chọn để ghi danh vào trong một khóa học riêng rẽ hoặc đăng ký cho toàn bộ chương trình. Việc dạy học diễn ra trực tuyến trong khu trường ảo của FTA và được các nhân viên dạy học được thừa nhận tại các trường đại học đó thực hiện. Ai đứng đằng sau FTA? FTA đã được khởi xướng vào năm 2008 và được hỗ trợ từ Chương trình Học tập Suốt Đời (LLP - Life Long Learning Programme) của Ủy ban châu Âu, theo sự điều phối của Viện Tri thức Tự do và trong mối quan hệ đối tác với 3 trường đại học của châu Âu là: Đại học Mở Hà Lan (Hà Lan), Đại học Oberta de Catalunya (Tây Ban Nha) và Đại học Agder (Nauy). FTA là vì ai? FTA đặc biệt hướng tới những người chuyên nghiệp, các nhà giáo dục, các sinh viên và những người ra quyết định về CNTT. Về việc cấp phép thì sao? Tất cả các tư liệu học được sử dụng và phát triển từ FTA là các Tài nguyên Giáo dục Mở, được xuất bản theo các giấy phép tự do copyleft, cho phép chúng được tự do sử dụng, sửa đổi và phân phối. Tương tự, các phần mềm được sử dụng trong khu trường ảo của FTA đều là các PMTD và được xây dựng trong khung các Tiêu chuẩn Mở. Sự tiến bộ của cuốn sách này FTA đã sử dụng lại các tư liệu khóa học đang có sẵn từ Đại học Oberta de Catalunya và đã và đang phát triển cùng với các nhân viên của LiberSoft từ Đại học Rey Juan Carlos. Vào năm 2008 cuốn sách này đã được dịch sang tiếng Anh với sự trợ giúp của Dự án Khoa học, Giáo dục và Học tập trong Tự do (SELF - Science, Education và Learning in Freedom), được hỗ trợ từ Chương trình Khung số 6 của Ủy ban châu Âu. Trong năm 2009, tư liệu này đã được FTA cải tiến. Bổ sung thêm Trang 5/232
  • 6. GNUFDL • PID_00148369 GNU/Linux cơ bản rằng FTA đã phát triển một chỉ dẫn nghiên cứu và các hoạt động học tập, chúng sẵn sàng cho các học viên ghi danh học trong các khu học ảo của FTA. Sự tham gia Những người sử dụng các tư liệu học tập của FTA được khuyến khích đưa ra các ý kiến phản hồi và những gợi ý cho sự cải tiến. Một không gian đặc biệt cho sự phản hồi này được thiết lập trên website của FTA. Có những đầu vào sẽ được tính tới cho các phiên bản sau. Hơn nữa, FTA chào đón bất kỳ ai sử dụng và phân phối tư liệu này cũng như làm các phiên bản mới và bản dịch. Xem thông tin đặc thù và được cập nhật về cuốn sách này, bao gồm các bản dịch và các định dạng khác: http://ftacademy.org/materials/fsm/. Để có thêm thông tin và sự ghi tên trong chương trình khóa học trực tuyến của FTA, xin viếng thăm website của Viện hàn lâm tại: http://ftacademy.org/. Tôi chân thành hy vọng cuốn sách về khóa học này sẽ giúp các bạn trong quá trình học tập của cá nhân các bạn và giúp các bạn giúp những người khác trong việc học tập của họ. Tôi mong đợi được gặp gỡ các bạn trong các phong trào tri thức tự do và công nghệ tự do. Chúc học tập hạnh phúc! Wouter Tebbens Chủ tịch Viện Tri thức Tự do Giám đốc Viện Hàn lâm Công nghệ Tự do Trang 6/232
  • 7. GNUFDL • PID_00148369 GNU/Linux cơ bản Các tác giả muốn cảm ơn Quỹ của Đại học Oberta de Catalunya vì việc cấp vốn cho lần xuất bản đầu tiên tác phẩm này, và một sự chia sẻ lớn những cải tiến dẫn tới việc xuất bản lần thứ 2, như một phần của Chương trình của Giáo viên trong PMTD được Đại học đưa ra theo yêu cầu, ở những nơi nó được sử dụng như là tư liệu cho một trong những chủ đề. Bản dịch của tác phẩm này sang tiếng Anh đã thực hiện được nhờ vào sự trợ giúp của Dự án SELF, Nền tảng SELF, chương trình của Ủy ban châu Âu về các Công nghệ Xã hội Thông tin và Đại học Oberta de Catalunya. Chúng tôi muốn cảm ơn bản dịch các tư liệu sang tiếng Anh được lexia:park triển khai. Phiên bản hiện hành của các tư liệu tiếng Anh đã được mở rộng với việc cấp vốn từ dự án của FTA. Dự án của FTA đã được cấp vốn với sự hỗ trợ từ Ủy ban châu Âu (tham chiếu số 142706-LLP-1-2008-1-NL-ERASMUS-EVC của Chương trình Học tập Suốt đời). Xuất bản phẩm này phản ánh quan điểm chỉ của các tác giả, và Ủy ban không giữ trách nhiệm về bất kỳ sự sử dụng nào mà có thể được thực hiện đối với các thông tin ở đó. Trang 7/232
  • 8. GNUFDL • PID_00148369 GNU/Linux cơ bản FTA muốn cảm ơn Quỹ của Đại học Oberta de Catalunya về việc cấp vốn cho lần xuất bản đầu tiên của tác phẩm này, như một phần của khóa học cho các giáo viên quốc tế theo PMTD được đưa ra tại FTA. Trang 8/232
  • 9. GNUFDL • PID_00148369 GNU/Linux cơ bản Giới thiệu Mặc dù PMTD đã tồn tại hơn 20 năm, chỉ mới gần đây nó đã bắt đầu được xem như một lựa chọn thay thế có giá trị cho nhiều người sử dụng, các công ty, và ngày một gia tăng, các chính phủ và các cơ quan. Hiện hành, GNU/Linux là một trong những hệ thống có hiệu quả và đáng tin cậy nhất có thể được thấy. Dù thực tế ban đầu chính PMTD đã làm cho những người sử dụng và các công ty miễn cưỡng áp dụng nó, thì GNU/Linux đã chứng minh đáp ứng được nhiệm vụ như bất kỳ hệ điều hành nào khác đang tồn tại. Mục tiêu của khóa học này là để giới thiệu cho chúng ta thế giới GNU/Linux. Nó cũng sẽ cho chúng ta những chìa khóa để hiểu biết triết lý của PMTD, dạy cho chúng ta cách sử dụng nó và điều khiển nó cho hợp với chúng ta, cho chúng ta các công cụ theo yêu cầu để dịch chuyển dễ dàng trong thế giới mới này. Tài liệu này không có ý định là một chỉ dẫn tham chiếu cơ bản cho các nhà quản trị và/hoặc những người sử dụng; đã có hàng trăm các sách chỉ dẫn, sách dạy cách làm (HOWTOS) và nhiều tham chiếu khác được thiết kế cho mục đích này, mà có thể chiếm hàng triệu trang giấy. Mục tiêu của chúng tôi ở đây là để dạy cho bạn cách tiến hành các bước đầu tiên của bạn trong lĩnh vực còn chưa được khai phá này đối với nhiều người sử dụng và các quản trị viên và cách để bạn tự tiếp cận và giải quyết các vấn đề bạn có thể gặp phải. Khóa học này không cố ý dựa vào bất kỳ phát tán cụ thể nào, nhưng trong hầu hết các ví dụ và hoạt động chúng tôi cần phải là cụ thể, nên chúng tôi sẽ sử dụng Debian GNU/Linux (phiên bản 4.0 -Etch-). Dù phát tán này không phải là thật trực quan và dễ dàng sử dụng như một số phát tán khác, nó sẽ giúp chúng tôi giải thích tất cả các tính năng của một hệ điều hành dựa vào GNU/Linux từng bước một. Hơn nữa, chất lượng, tính ổn định và an ninh đặc biệt của nó làm cho nó trở thành một trong những lựa chọn giá trị nhất ngay lúc này. Tuy nhiên, chúng tôi sẽ không quên sự hỗ trợ mà các phát tán khác cung cấp (Debian được những người tình nguyện phát triển và không đưa ra dạng hỗ trợ nào, mà trong trường hợp với các công ty là không thể thiếu). Vì lý do đó, chúng tôi đã đưa vào một phụ lục chỉ ra quá trình cài đặt và những đặc tính chính của Red Hat Fedora (phiên bản 7). Chúng tôi hy vọng rằng bạn tận hưởng được khóa học và nó sẽ giúp bạn mở ra những cánh cửa vào thế giới của PMTD. Càng có nhiều người sử dụng PMTD, thì chúng ta sẽ có phần mềm càng có chất lượng tốt hơn. Chào mừng bạn tới GNU/Linux! Trang 9/232
  • 10. GNUFDL • PID_00148369 GNU/Linux cơ bản Các nội dung Module 1 GNU/Linux cơ bản 1. Giới thiệu 2. Các khái niệm và các lệnh cơ bản 3. Hội thảo về Knoppix 4. Cài đặt GNU/Linux 5. Hội thảo về cài đặt Debian Etch 6. Các cấu hình cơ bản 7. Các daemon và mức chạy 8. Cài đặt các ứng dụng 9. Hội thảo về các cấu hình cơ bản 10. Kiến trúc X-Window 11. Hội thảo về X-Window Module 2 Các phụ lục 1. Phụ lục A. Các bảng lệnh 2. Phụ lục B. Trình soạn thảo vi 3. Phụ lục C. Tiến trình cài đặt Fedora 7 4. Phụ lục D. Các công cụ quản trị 5. Giấy phép Tài liệu Tự do GNU Trang 10/232
  • 11. GNUFDL • PID_00148369 GNU/Linux cơ bản GNU/Linux cơ bản PID_00148393 Basic GNU/Linux PID_00148393 Trang 11/232
  • 12. GNUFDL • PID_00148369 GNU/Linux cơ bản Bản quyền Copyright © 2010, FUOC. Quyền được trao để sao chép, phân phối và/hoặc sửa đổi tài liệu này theo các điều khoản của Giấy phép Tài liệu Tự do GNU, Phiên bản 1.2 (GFDLv1.2) hoặc bất kỳ phiên bản nào được xuất bản sau này của Quỹ Phần mềm Tự do (FSF); mà không có các phần bất biến, không có các văn bản bìa trước, không có các văn bản bìa sau. Một bản sao của giấy phép này được đưa vào trong phần có đầu đề “Giấy phép Tài liệu Tự do GNU”. Copyright © 2010, FUOC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back- Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Trang 12/232
  • 13. GNUFDL • PID_00148369 GNU/Linux cơ bản Mục lục 1. Giới thiệu........................................................................................................................................17 1.1. GNU là gì?..............................................................................................................................17 1.2 GNU/Linux là gì?....................................................................................................................19 1.3 Các phát tán ............................................................................................................................21 1.4. Các chương trình và tài liệu....................................................................................................22 2. Các khái niệm và lệnh cơ bản.........................................................................................................25 2.1. Giới thiệu................................................................................................................................25 2.2 Người sử dụng và nhóm...........................................................................................................25 2.3. Hệ thống tệp............................................................................................................................30 2.3.1. Tôn ti trật tự của hệ thống tệp.........................................................................................30 2.3.2. Các thư mục hệ thống.....................................................................................................31 2.3.3. Dịch chuyển....................................................................................................................32 2.3.4. Các liên kết......................................................................................................................33 2.3.5. Các quyền........................................................................................................................34 2.3.6. Việc điều khiển, các mẫu và tìm kiếm............................................................................36 2.3.7. Dạng và nội dung tệp......................................................................................................37 2.4. Các tiến trình ..........................................................................................................................38 2.5. Các lệnh hữu dụng khác..........................................................................................................40 2.5.1. Trợ giúp hệ thống............................................................................................................40 2.5.2. Đóng gói và nén..............................................................................................................41 2.5.3. Các hoạt động của đĩa.....................................................................................................42 2.6. Các hoạt động với các lệnh.....................................................................................................44 2.6.1. Định tuyến lại..................................................................................................................44 2.6.2. Các lệnh bash (trình biên dịch GNU shell) cụ thể..........................................................45 2.6.3. Shell script với bash........................................................................................................46 3. Hội thảo về Knoppix......................................................................................................................48 3.1. Giới thiệu................................................................................................................................48 3.2. Khởi động hệ thống................................................................................................................48 3.3 Dừng hệ thống.........................................................................................................................51 3.4. Cấu hình bàn phím..................................................................................................................52 3.5. Kiểm tra hệ thống...................................................................................................................54 3.6. Điều khiển các tệp và thư mục................................................................................................58 3.7 Quản trị người sử dụng............................................................................................................63 3.8. Quản lý các tiến trình..............................................................................................................65 3.9. Kích hoạt và sử dụng chuột....................................................................................................66 3.10. Các hoạt động khác...............................................................................................................68 3.11. Kết luận.................................................................................................................................69 4. Cài đặt GNU/Linux........................................................................................................................70 4.1. Giới thiệu................................................................................................................................70 4.2 Khởi động................................................................................................................................70 4.3. Phân vùng cho đĩa...................................................................................................................71 4.4. Cài đặt các module..................................................................................................................73 4.5. Cấu hình mạng cơ bản............................................................................................................74 4.6. Hệ thống khởi động................................................................................................................75 4.7. Lựa chọn các gói.....................................................................................................................75 Trang 13/232
  • 14. GNUFDL • PID_00148369 GNU/Linux cơ bản 4.8. Các khía cạnh khác.................................................................................................................76 5. Hội thảo cài đặt Debian Etch..........................................................................................................77 5.1 Giới thiệu.................................................................................................................................77 5.1.1. Các hệ thống cài đặt........................................................................................................78 5.1.2. Các dạng gói....................................................................................................................80 5.1.3. Tình trạng phát triển gói..................................................................................................80 5.2. Cài đặt Debian Etch................................................................................................................81 5.2.1. Các thành phần của Debian Etch....................................................................................81 5.2.2. Cài đặt Debian GNU/Linux 4.0 cho Intel x86................................................................81 5.3. Cài đặt Debian Etch từ DVD-ROM........................................................................................82 5.3.1. Trước khi bắt đầu cài đặt.................................................................................................82 5.3.2. Khởi động hệ thống cài đặt.............................................................................................83 5.3.3. Cấu hình ngôn ngữ cài đặt..............................................................................................86 5.3.4. Cấu hình bàn phím..........................................................................................................88 5.3.5. Dò tìm và kích hoạt CD-ROM........................................................................................89 5.3.6. Cấu hình mạng................................................................................................................90 5.3.7. Phân vùng đĩa cứng.........................................................................................................92 5.3.8. Cấu hình thời gian...........................................................................................................96 5.3.9. Cấu hình cho người sử dụng và mật khẩu.......................................................................98 5.3.10. Cài đặt hệ thống cơ bản...............................................................................................101 5.3.11. Cấu hình cho trình quản lý gói....................................................................................102 5.3.12. Chọn và cài đặt các chương trình................................................................................103 5.3.13. Cài đặt GRUB.............................................................................................................103 5.3.14. Khởi tạo lại hệ thống...................................................................................................103 5.3.15. Khởi động hệ thống cơ bản.........................................................................................103 5.3.16. Cấu hình apt................................................................................................................104 5.3.17. Tasksel.........................................................................................................................106 5.4. Cài đặt mạng với Debian Etch..............................................................................................108 5.4.1. Những đặc thù của cài đặt mạng...................................................................................108 5.4.2. Những khía cạnh chung cho các phương pháp cài đặt khác nhau................................108 5.4.3. Cài đặt module mạng....................................................................................................109 5.4.4. Cấu hình mạng..............................................................................................................110 5.4.5. Cấu hình apt..................................................................................................................110 5.5. Kết luận.................................................................................................................................110 6. Các cấu hình cơ bản......................................................................................................................111 6.1. Hệ thống đăng nhập..............................................................................................................111 6.2. Khai thác bash.......................................................................................................................112 6.3. Hệ thống khởi động...............................................................................................................114 6.3.1. Grub...............................................................................................................................115 6.4. Truy cập các phân vùng và thiết bị khác...............................................................................117 6.5. Cấu hình thiết bị ...................................................................................................................120 6.5.1. Bàn phím ......................................................................................................................120 6.5.2. Card mạng (dạng Ethernet)...........................................................................................121 6.5.3. Card Wifi.......................................................................................................................124 6.5.4. Các modem...................................................................................................................124 6.5.5. ADSL và PPPoE............................................................................................................125 6.5.6. Card âm thanh...............................................................................................................126 Trang 14/232
  • 15. GNUFDL • PID_00148369 GNU/Linux cơ bản 6.5.7. Máy in...........................................................................................................................126 7. Daemons và các mức chạy...........................................................................................................128 7.1. Daemons...............................................................................................................................128 7.2. Các mức chạy........................................................................................................................130 7.3 Khởi động hệ thống...............................................................................................................132 7.4 Các daemon cơ bản................................................................................................................133 7.4.1. Các lưu ký hệ thống (sysklogd)....................................................................................133 7.4.2. Thực thi thường xuyên (cron).......................................................................................135 7.4.3. Các thực thi trễ (at và batch).........................................................................................136 8. Cài đặt các ứng dụng....................................................................................................................138 8.1. Giới thiệu..............................................................................................................................138 8.2. Hệ thống đóng gói Debian...............................................................................................138 8.3. Biên dịch các chương trình mới ...........................................................................................142 9. Hội thảo về các cấu hình cơ bản...................................................................................................145 9.1. Giới thiệu..............................................................................................................................145 9.2. Trình tải khởi động (Bootloader)..........................................................................................145 9.2.1. Cài đặt Grub..................................................................................................................145 9.3. Hệ thống gói..........................................................................................................................147 9.3.1. /etc/apt/sources.list........................................................................................................147 9.3.2. apts sẵn sàng..................................................................................................................149 9.3.3. dpkg...............................................................................................................................151 9.3.4. dselect............................................................................................................................152 9.3.5. aptitude..........................................................................................................................152 9.4. locals: cấu hình vùng miền...................................................................................................152 9.5. Tệp khởi động chính, /etc/inittab..........................................................................................153 9.6. Lắp các thiết bị, /etc/fstab ....................................................................................................153 9.7. Cấu hình thiết bị....................................................................................................................154 9.7.1. Thiết lập cấu hình cho chuột.........................................................................................155 9.7.2. Thiết lập cấu hình cho các modem................................................................................156 9.7.3. Thiết lập cấu hình cho các modem DSL.......................................................................158 9.7.4. Thiết lập cấu hình cho các card mạng...........................................................................158 9.7.5. Thiết lập cấu hình cho các máy in.................................................................................160 9.7.6. Thiết lập cấu hình cho card âm thanh...........................................................................161 9.8. Kết luận.................................................................................................................................162 10. Kiến trúc X-Window..................................................................................................................163 10.1. X-Window là gì?.................................................................................................................163 10.2. Cấu hình..............................................................................................................................167 10.3. Trình quản lý hiển thị X......................................................................................................170 11. Hội thảo về X-Window...............................................................................................................173 11.1. Giới thiệu............................................................................................................................173 11.2. Cài đặt và thiết lập cấu hình của máy chủ X.......................................................................173 11.2.1. Các chiến lược khác nhau cho việc cài đặt các gói.....................................................173 11.2.2. Cài đặt các gói cơ bản.................................................................................................174 11.3. Thiết lập cấu hình cho X.....................................................................................................176 11.3.1. Phần “Thiết bị” (Device).............................................................................................176 11.3.2. Phần “Màn hình” (Monitor).............................................................................................176 11.3.3. Phần “Màn hình” (Screen)..........................................................................................177 Trang 15/232
  • 16. GNUFDL • PID_00148369 GNU/Linux cơ bản 11.3.4. Phần thiết bị đầu vào (“InputDevice”)........................................................................177 11.3.5. Phần trình bày máy chủ (“ServerLayout”)..................................................................178 11.3.6. Phần “DRI”.................................................................................................................178 11.3.7. Phần các tệp (“Files”)..................................................................................................179 11.3.8. Khởi động máy chủ.....................................................................................................179 11.3.9. Tệp lưu ký ..................................................................................................................179 11.4. Các trình quản lý cửa sổ......................................................................................................180 11.5. Trình quản lý phiên X.........................................................................................................181 11.6. Trình quản lý hiển thị X......................................................................................................181 11.7. Các trình quản lý môi trường đồ họa máy để bàn...............................................................182 11.7.1. GNOME......................................................................................................................183 11.7.2. KDE.................................................................................................................................183 11.8. Cá nhân hóa một số khía cạnh............................................................................................184 11.8.1. Cá nhân hóa các khía cạnh bản địa.............................................................................184 11.8.2. Cá nhân hóa các khía cạnh của mạng..........................................................................185 11.9. Thiết lập cấu hình cho các máy in.......................................................................................186 11.10. OpenOffice........................................................................................................................189 11.11. Kết luận.............................................................................................................................190 Các phụ lục.......................................................................................................................................191 Phụ lục A. Các bảng lệnh.............................................................................................................193 Phụ lục B. Trình soạn thảo vi.......................................................................................................198 Phụ lục C. Qui trình cài đặt Fedora 7..........................................................................................201 Phụ lục D. Các công cụ quản trị .................................................................................................212 Giấy phép Tài liệu Tự do GNU........................................................................................................219 Trang 16/232
  • 17. GNUFDL • PID_00148369 GNU/Linux cơ bản 1. Giới thiệu 1.1. GNU là gì? Để hiểu được toàn bộ phong trào PMTD, chúng ta nên quay ngược về cuối những năm 60, đầu những năm 70. Khi đó, các hàng máy tính lớn đã không trao cho phần mềm giá trị y hệt như nó có ngày nay. Họ từng hầu hết là các nhà sản xuất máy tính mà doanh số chính của họ đã được tạo ra bằng việc bán các máy tính lớn của họ, đi với một số dạng hệ điều hành và các ứng dụng. Các trường đại học đã có quyền để lấy và nghiên cứu các mã nguồn của hệ điều hành cho các mục đích nghiên cứu hàn lâm. Bản thân những người sử dụng có thể yêu cầu mã nguồn từ các trình điều khiển cho tới các chương trình, cho việc thích nghi cho các nhu cầu của họ. Phần mềm đã không được xem là có một giá trị thực và đơn giản nó đi với phần cứng mà nó hỗ trợ. Trong ngữ cảnh đó, các phòng thí nghiệm của Bell (AT&T) đã thiết kế ra một hệ điều hành được gọi là UNIX được đặc trưng bởi sự quản lý có hiệu quả các tài nguyên hệ thống của nó, sự ổn định và tính tương thích của nó với các phần cứng được các nhà sản xuất khác nhau tạo ra (thuần nhất tất cả các hệ thống của họ). Yếu tố cuối cùng này từng rất quan trọng (trước đó, mọi nhà sản xuất đã có các hệ điều hành của riêng họ mà không tương thích với phần còn lại), vì thế nó làm cho UNIX cực kỳ phổ biến. Stallman, không có các trình điều khiển Bản thân Stallman nhớ lại phiền phức làm sao khi ông đã phát hiện rằng một công ty từng cung cấp một máy in mới cho phòng thí nghiệm nơi ông từng làm việc đã không muốn trao cho ông mã nguồn của trình điều khiển. Tất cả điều ông từng mong muốn là để sửa đổi nó sao cho máy in đó có thể tự động cảnh báo cho ông khi giấy bị kẹt. Công ty đó đã từ chối cung cấp mã nguồn cho ông. Dần dần, các hãng lớn đã bắt đầu nhận thức được giá trị của phần mềm: đầu tiên làm như vậy là IBM, vào năm 1965 đã dừng chào mã nguồn hệ điều hành của hãng, trong khi cuối những năm 70 Digital Research đã bắt đầu bán hệ điều hành của riêng hãng. Điều này đã làm cho tất cả các công ty nhận thức được thực tế là phần mềm có thể rất có lợi nhuận và đưa ra được những lợi ích khổng lồ. Sau đó hầu hết các công ty đã bắt đầu miễn cưỡng đưa ra mã nguồn đối với các chương trình và các hệ điều hành của họ và đã bắt đầu bán các chương trình của họ như là giá trị gia tăng cho phần cứng của họ. Trong môi trường đóng ngày một gia tăng này, Richard Stallman (người từng làm việc tại MIT, Viện Công nghệ Massachusetts) đã phẫn nộ thấy rằng điều đó đã trở thành ngày một khắc nghiệt để có được mã nguồn của các chương trình, mà ông đã sử dụng để thích nghi các chương trình đó cho các nhu cầu của ông, như ông đã từng làm thế cho tới khi đó. Khi đó, Stallman đã quyết định đứng lên vì các lý tưởng của ông và khởi xướng một dự án lớn để thử mở lại mã nguồn các chương trình. Nhận thực được thực tế rằng ông không muốn thuyết phục các công ty đưa ra về điểm này, ông đã đề xuất tạo ra hệ điều hành và các ứng dụng của riêng mình, khởi xướng một dự án gọi là GNU. Tuyên ngôn đầu tiên của Stallman là đặc biệt thú vị để hiểu những lý do vì sao ông đã tạo ra GNU; trong tài liệu đó ông đã giải thích cho toàn bộ cộng đồng những gì dự án mới bao gồm, cách mà nó có thể được định hướng, và vì sao ông đã phải làm nó. Trong tuyên ngôn ông đã bắt đầu mô tả khái niệm PMTD và vì sao ông tin tưởng các lập trình viên và những người phát triển trên khắp thế giới nên đóng góp vào với ông. Dù trong nhiều trường hợp thì khái niệm PMTD bị lẫn lộn với khái niệm miễn phí hoặc không phải trả tiền cho phần mềm (trong tiếng Anh, free có nghĩa tự do và miễn phí), trong các tài liệu sau này nó đã được làm rất rõ ràng rằng không có lý do nào giải thích vì sao Trang 17/232
  • 18. GNUFDL • PID_00148369 GNU/Linux cơ bản PMTD nên là miễn phí cả. Chúng ta cần hiểu PMTD có nghĩa là các chương trình mà mã nguồn của chúng có thể chúng ta có được để nghiên cứu, sửa đổi và phân phối lại, mà không có bổn phận phải trả tiền cho điều đó. Những gì chúng ta cần hiểu là chúng ta có thể yêu cầu trả tiền mà chúng ta muốn cho các chương trình và mã nguồn của chúng, cho sự hỗ trợ mà chúng ta có thể đưa ra cho những người sử dụng, cho các cuốn sách chúng ta bán hoặc các tư liệu mà chúng ta cung cấp, hệt như nhiều công ty phân phối GNU/Linux đã làm. Tuy nhiên, không bao giờ, chúng ta có thể bắt buộc những người sử dụng không phân phối phần mềm mà chúng ta bán cho họ. Phải có khả năng để phân phối lại chúng một cách tự do. Nhiều văn bản của Quỹ Phần mềm Tự do (FSF - Free Software Foundation) làm việc với đạo đức nhiều hơn là với kỹ thuật. Chúng ta cần hiểu toàn bộ phong trào như một cách nghĩ hoặc làm mọi điều hơn là chỉ công ty phần mềm nào đó khác làm. Những nguyên tắc đối với phần mềm được xác định theo 4 quyền tự do sau: • Tự do 0 chỉ tới quyền tự do có khả năng sử dụng chương trình vì bất kỳ mục đích nào • Tự do 1 cho phép chúng ta nghiên cứu cách thức chương trình làm việc và thích nghi nó cho những nhu cầu riêng của chúng ta. Truy cập tới mã nguồn là điều kiện tiên quyết để đảm bảo cho quyền tự do này. • Tự do 2 cho phép chúng ta tự do phân phối các bản sao của phần mềm, giúp các hàng xóm của chúng ta. • Tự do cuối cùng cho phép chúng ta cải tiến chương trình và làm cho những cải tiến riêng của chúng ta công khai, vì lợi ích của toàn bộ cộng đồng. Truy cập tới mã nguồn cũng là điều kiện tiên quyết để đảm bảo cho quyền tự do này. Giấy phép Công cộng Chung (GPL - General Public License) đã được phác thảo để đảm bảo các quyền tự do cho phần mềm được dự án phát triển và cho những người sử dụng đầu cuối của phần mềm, và được sử dụng từ đó để bảo vệ tất cả dạng các chương trình này. Giấy phép này đưa những ý tưởng được nhắc tới ở trên ra giấy. Dự án đã bắt đầu tạo ra các phần mềm trong năm 1984, bằng việc phát triển tất cả các công cụ theo yêu cầu để triển khai một hệ điều hành hoàn chỉnh. Mặc dù việc hiện thực hóa dự án với các đặc tính đó là một qui trình dài lâu và phức tạp, ngay từ đầu nhiều lập trình viên và những người phát triển phần mềm đã say mê với ý tưởng của Stallman và đã bắt đầu cộng tác với ông một cách tự do. Cộng đồng đã không ngừng phát triển, và dần dần các công cụ cần thiết đã xuất hiện (các trình soạn thảo, các trình biên dịch, ...) để triển khai nhân của hệ điều hành, các công cụ đã được phát triển theo yêu cầu. Từ ý tưởng ban đầu từng là để xây dựng một hệ điều hành tương tự như UNIX theo các tiêu chí của POSIX (Giao diện Hệ điều hành Khả chuyển - Portable Operating System Interface). Mặc dù UNIX cũng đã có những vấn đề và các lỗi riêng của nó, thì nó từng, và tiếp tục là, đù tốt để thích nghi cho hầu hết các yêu cầu. Nhiệm vụ thiết kế và viết nhân của hệ điều hành đã được để lại sau cùng. Nó vẫn còn chưa xong hoàn toàn nhân GNU, gọi là Hurd, và vẫn còn trong pha phát triển. Nhân (Kernel) Như cái tên của nó chỉ ra, nhân của hệ điều hành là phần cốt lõi làm cho nó hoạt động. Nhân của phần mềm này là những gì quản lý các tài nguyên của máy tính: nó giao tiếp với các thiết bị và ứng dụng được cài đặt, quản trị đúng đắn bộ nhớ, phân phối thời gian xử lý cho tất cả các chương trình, giao tiếp với các thiết bị lưu trữ để lưu các tệp, ... Hoạt động 1.1 Đọc thông điệp đầu tiên mà Stallman đã viết năm 1983 khi công bố dự án của ông tại: http://www.fsf.org/gnu/initial-announcement.es.html Trang 18/232
  • 19. GNUFDL • PID_00148369 GNU/Linux cơ bản Hoạt động 1.2 Đọc tuyên ngôn GNU ban đầu của Stallman. Hoạt động 1.3 Đọc Giấy phép Công cộng Chung GPL 1.2 GNU/Linux là gì? Đối với vấn đề này, trong khi FSF vẫn còn chưa có được một nhân ổn định cho hệ điều hành của mình, thì một giáo sư của Đại học Hà Lan, Andrew Tanenbaum, đã quyết định viết một hệ điều hành sao cho các sinh viên của ông có thể nghiên cứu nó. Giống như Stallman, cho tới khi đó ông đã có khả năng sử dụng mã nguồn UNIX của AT&T để giúp dạy các học trò của mình thiết kế các hệ điều hành. Ý tưởng của ông là viết một hệ điều hành mà bất kỳ ai cũng có thể nghiên cứu và sửa đổi nó nếu họ muốn. Trong năm 1987, ông đã bắt đầu làm việc và đã gọi dự án của mình là UNIX nhỏ (mini UNIX), là MINIX. Vì ông đã không sử dụng một dòng mã nguồn nào trong UNIX của AT&T, không có hạn chế nào để lấy mã nguồn đó để sử dụng nó và sửa đổi nó một cách tự do cả. Công nghệ vi nhân (micro - kernel) Công nghệ vi nhân dựa vào việc chia tách các chức năng khác nhau của nhân của một hệ điều hành thành các chương trình giao tiếp với nhau hoàn toàn tách biệt. Điều này làm cho nó rất được module hóa, làm cho việc kiểm thử, dò tìm và kiểm tra lỗi, duy trì, ... , dễ hơn nhiều. Hiện hành, một số hệ điều hành như Amoeba, Chorus, Mach hoặc Windows - NTTM đã tích hợp dạng cộng nghệ này. Tanenbaum đã muốn tạo ra một hệ thống cho các mục đích nghiên cứu hàn lâm, nên ông đã thiết kế nó bằng việc sử dụng một kiến trúc vi nhân, lý tưởng cho sự dễ dàng toàn diện, có sử dụng công nghệ đổi mới cho từng giai đoạn, được đưa ra một cách linh hoạt, từng là đa nền tảng, ... Điều này từng là một trong những điểm mạnh và điểm yếu của MINIX cùng một lúc, dù hệ thống đó là một viên ngọc nhỏ cho các mục đích nghiên cứu và thiết kế, thì nó khó có khả năng được sử dụng trong các môi trường thực tế. Nó đã được làm cho dễ dàng để hiểu, module hóa và tốt cho các mục đích đào tạo, nhưng không nhanh. Trong bất kỳ trường hợp nào, thì đó cũng không phải là ý định của Tanenbaum; qua năm tháng thì MINIX đã tiến hóa và ngày nay nó tiếp tục được nhiều học sinh trong các trường đại học trên thế giới nghiên cứu. Đây chính là nới mà Linux tới để bù đắp. Trong khi FSF đã tiếp tục với dự án lớn của mình cung cấp các công cụ để xây dựng một hệ điều hành, Tanenbaum đã thiết kế MINIX cho các mục đích hàn lâm và nhiều công ty đã tiếp tục tiến hóa cho các phiên bản UNIX của họ, thì Linus Torvalds, một sinh viên Đại học Helsinki, đã quyết định tạo ra nhân riêng của mình cho một hệ điều hành mới, Linux, vào tháng 08/1991. Ý tưởng của ông từng là để tạo ra một UNIX cho máy tính cá nhân (PC) sao cho bất kỳ ai muốn cũng có thể sử dụng nó trên máy tính của họ. Sự xuất hiện lần đầu của ông trên vũ đài là trong một tranh luận về MINIX và các hệ điều hành, nơi ông đã đưa ra những ý tưởng sau đây: Trang 19/232
  • 20. GNUFDL • PID_00148369 GNU/Linux cơ bản Nhóm tin: comp.os.minix Chủ đề: Bạn có muốn thấy hầu hết mọi thứ trong minix? Ngày: 25/08/1991 20:57:08 GMT Tổ chức: Đại học Helsinki Chào tất cả những người sử dụng minix. Tôi đang làm (chỉ là một sở thích riêng, sẽ không lớn và chuyên nghiệp như gnu) một hệ điều hành (tự do) cho các mô phỏng các máy AT 386 (486). Điều này đã và đang được làm kể từ tháng 04, và đang bắt đầu có sẵn sàng. Tôi muốn có bất kỳ ý kiến phản hồi nào về những điều mọi người thích/ không thích trong minix, vì hệ điều hành của tôi giống nó một chút (trình bày vật lý y hệt đối với hệ thống tệp (vì những lý do thực tế) trong số những điều khác). Tôi hiện đã chuyển bash (1.08) và gcc (1.40), và mọi thứ dường như làm việc được. Điều này ngụ ý rằng tôi sẽ có vài thứ thực tế trong vòng vài tháng tới, và tôi muốn biết những tính năng nào hầu hết mọi người có thể muốn. Bất kỳ gợi ý nào cũng được chào đón, nhưng tôi không hứa tôi sẽ triển khai chúng. Nếu chúng ta vào diễn đàn nơi thông điệp đầu tiên này đã xuất hiện, thì chúng ta sẽ thấy mọi người từ khắp nơi trên thế giới đã trở nên nhanh chóng như thế nào trong việc quan tâm tới hệ thống mới này, nó cũng đã có những đặc tính của PMTD vì nó đã sử dụng trình biên dịch và các trình dịch lệnh GNU. Mặc dù trong những lời của chính Torvalds, nếu ông biết được số lượng nỗ lực tham gia cho ý tưởng của mình để làm việc, ông có lẽ không bao giờ có thể đã thực hiện được nó: những nỗ Trang 20/232
  • 21. GNUFDL • PID_00148369 GNU/Linux cơ bản lực của nhiều chuyên gia CNTT trên toàn thế giới đã làm cho dự án này có khả năng. Nhân liền khối của Linux Linux, nhân của GNU/Linux, là thuộc dạng liền khối. Điều này nói cho chúng ta rằng các chức năng khác của nó là không được phân chia thành các module riêng rẽ, mà tất cả chúng tạo nên các phần của chương trình y hệt. Sự bất tiện chính với dạng thiết kế này là việc định vị các lỗi và duy trì rất tốn kém. Mặt khác, hiệu năng của nó lại tốt hơn nhiều so với các dạng thiết kế khác. Trên thực tế, trong quá trình vài năm đầu tồn tại, GNU/Linux đã được xác định như là hệ điều hành được các cao thủ (hacker) sử dụng. Thực tế là nó từng khó để cài đặt, điều khiển và sự thiếu các trình điều khiển của nó làm cho nó trở thành một công cụ chỉ phù hợp cho những người rất am hiểu về các hệ điều hành. Chính những người sử dụng đầu tiên đã thiết kế ra các trình điều khiển cho các đĩa, máy in, các card mạng..., và những người đó đã bắt đầu tạo ra nhận thức về hệ thống này khắp trên thế giới. Từng tí một, số lượng người sử dụng đã bắt đầu tăng và bây giờ có nhiều công ty và nhóm người sử dụng tạo các phát tán GNU/Linux của riêng họ. 1.3 Các phát tán Hiện tại, có nhiều phát tán khác nhau dựa vào GNU/Linux. Chúng tồn tại đối với mọi dạng máy tính và các thiết bị điện tử: các máy tính xách tay hoặc để bàn, các máy tính cá nhân (PC) bỏ túi hoặc các thiết bị điện tử cá nhân (PDA), các điểm truy cập mạng không dây, ... Bản chất tự nhiên của PMTD cho phép điều này: bất kỳ ai cũng có thể lấy mã nguồn được phát triển cho tới bây giờ và thích nghi nó cho những yêu cầu của riêng họ. Thực tế là số lượng ngày càng gia tăng các công ty và những người sử dụng đã chọn các hệ thống dựa vào GNU/Linux vì hiệu năng tốt và số lượng các phần mềm sẵn có của nó. Linux và dự án GNU Dù nhiều phát tán GNU/Linux được gọi chỉ là Linux, thì điều quan trọng để chỉ ra rằng Linux chỉ là nhân của hệ điều hành và dự án GNU là những gì thực sự đã đóng góp nhiều về cấu trúc cho nó hoạt động được. Trong tất cả các sự kiện, dù có hàng tá các phát tán, thì một số là phổ biến hơn và đã trở nên được sử dụng rộng rãi. Triết lý của PMTD đã dẫn dắt nhiều công ty, nhiều người sáng tạo ra các phát tán GNU/Linux của riêng họ, không hạn chế sự truy cập tới mã nguồn của họ. Ngay cả như vậy, sự hỗ trợ mà họ đưa ra và tư liệu mà họ bán cung cấp những lợi nhuận, cho phép họ sống được. Cùng lúc, chúng ta nên nhớ trong đầu rằng nhiều trong số các phát tán đó đưa vào cả các phần mềm sở hữu độc quyền (PMSHĐQ) mà một số người sử dụng thích hơn, mặc dù trong nhiều trường hợp có thể có những chương trình tương tự với một giấy phép của PMTD. Sau đây chúng ta sẽ mô tả ngắn gọn một ít các phát tán GNU/Linux: • Slackware: một trong những phát tán đầu tiên xuất hiện. Nó đã được Patrick Volkerding tạo ra và đã từng thành công vang dội trong những năm đầu tồn tại của nó. • Debian GNU/Linux: một trong những phát tán GNU/Linux đầu tiên xuất hiện và tiếp tục tồn tại và tiến hóa. Hệ thống gói cho phép chúng ta phân biệt rõ ràng giữa PMTD và không tự do, giúp chúng ta thiết lập hệ thống với các chương trình giấy phép hoàn toàn là PMTD. Được một nhóm các cộng tác viên phân tán khắp nơi trên thế giới phát triển mà không có bất kỳ công ty nào đứng đằng sau. Dù vậy nó lại là một trong những phát tán ổn định và an ninh nhất đang tồn tại, sự cài đặt và cấu hình hệ thống của nó đòi hỏi tri thức trước đó. Trang 21/232
  • 22. GNUFDL • PID_00148369 GNU/Linux cơ bản • Red Hat Linux: cùng với SuSE, đây là một trong những phát tán phổ biến nhất. Nó được một công ty tại Mỹ tạo ra và cung cấp các phần mềm chất lượng cao. Nó có một môi trường trực quan làm cho nó rất dễ dàng để cài đặt và cấu hình. • SuSE Linux: dù nó là phát tán được tạo ra khá gần đây, nó đã có được sự thừa nhận rộng rãi. Nó được một công ty của Đức phát triển và đóng góp nhiều PMSHĐQ chất lượng. Hoàn toàn dễ dàng để cài đặt và duy trì, dù trong một số khía cạnh nó không tuân thủ một số tiêu chuẩn cộng đồng. • Knoppix: phát tán trong một live-CD dựa vào Debian. Nó tự động dò tìm tất cả các dạng phần cứng và cung cấp môi trường đồ họa KDE mới nhất và bộ phần mềm các ứng dụng văn phòng OpenOffice.org. Rất hữu dụng cho các trình bày và những người sử dụng mới hệ điều hành. • Ubuntu: đây là một phát tán Linux đưa ra một hệ điều hành trước hết nhằm vào các máy tính để bàn dù nó cũng đưa ra sự hỗ trợ cho các máy chủ. Dựa vào Debian GNU/Linux, trọng tâm chính của Ubuntu là dễ sử dụng, tự do trong giới hạn sử dụng, các phiên bản phát hành thường xuyên (cứ mỗi 6 tháng) và dễ dàng cài đặt. Nó tồn tại ở cả dạng live-CD và có khả năng cài đặt được. Nó tự động dò tìm ra tất cả các dạng phần cứng (thậm chí mới nhất). Chúng ta không nên quên rằng có những hệ điều hành khác tương thích với UNIX và với các tiêu chuẩn được chú trọng hiện hành. Nhiều trong số những khái niệm và công cụ mà chúng ta sẽ gặp qua khóa học này cũng sẽ phục vụ cho những hệ điều hành khác đó. Đặc biệt, chúng ta có thể nhắc tới GNU/Hurd (nhân được dự án GNU phát triển) và FreeBSD. Hoạt động 1.4 Hãy đọc mô tả một số phát tán GNU/Linux hiện hành tại: http://www.linuxhq.com/dist.html. 1.4. Các chương trình và tài liệu Internet luôn đã và đang là phương tiện chính của giao tiếp giữa các lập trình viên và những người sử dụng của PMTD. Vì lý do này, ngay từ lúc bắt đầu sự mở rộng khổng lồ của GNU/Linux thì đã có khả năng tìm thấy được nhiều thông tin về hệ điều hành trên này Internet. Chúng ta có thể tải về hầu hết các chương trình từ Internet, được đóng gói bằng việc sử dụng bất kỳ hệ thống thường dùng nào hoặc trực tiếp từ mã nguồn sao cho chúng ta có thể biên dịch nó trong hệ thống riêng của chúng ta. Hơn nữa, hầu hết các phát tán có thể được tải về từ Internet mà không phải mua bất kỳ gói đặc biệt nào từ các tạp chí chuyên dụng hoặc từ các công ty sản xuất ra chúng. Điều này cũng đúng rằng nếu chúng ta muốn có sự hỗ trợ cho một số phát tán được cung cấp, thì tốt nhất là mua tất cả các tư liệu mà có thể được cung cấp (CD, các sách chỉ dẫn, ...) và hãy đăng ký. Khi chúng ta bắt đầu làm quen với PMTD và GNU/Linux, chúng ta sẽ nhận thức được tầm quan trọng của việc hiểu được cách tìm tài liệu chúng ta muốn. Khi chúng ta đối mặt với một vấn đề, trước khi bắt đầu đi loanh quanh tự hỏi cách để giải quyết nó, thì chúng ta nên nghĩ rằng có ai đó khác đã có thể đi qua những thứ tương tự rồi. Việc tìm kiếm và tìm thấy tài liệu đáp ứng tốt nhất cho các vấn đề chúng ta gặp phải lúc này lúc khác tiết kiệm cho chúng ta nhiều thời gian và nỗ lực. Cộng đồng PMTD tạo ra hàng trăm tài liệu mà chúng ta có thể tải về tự do từ Internet, hơn nữa còn có cả các diễn đàn thảo luận, các nhóm tin và các trang tin, ... Trang 22/232
  • 23. GNUFDL • PID_00148369 GNU/Linux cơ bản Một số tham chiếu phổ biến nhất có thể giúp tốt nhất cho chúng ta là: • Tài liệu ◦ Dự án Tài liệu Linux. Chúng ta có thể thấy hầu hết các sách chỉ dẫn đang tồn tại, các sách chỉ dẫn cách làm HOWTOS, các hỏi đáp thường gặp FAQ... trên site này, bổ sung thêm là trong vài ngôn ngữ: http://www.tdlp.org/ ◦ Linux tiếng Tây Ban Nha. Dự án tài liệu lớn cho GNU/Linux, các HOWTOS, các sách chỉ dẫn ... bằng tiếng Tây Ban Nha: http://lucas.linux.org.mx ◦ Các sách HOWTO của HOWTOS: http://lucas.linux.org.mx/ ◦ Linux.com. Trang với các phần tin, tài liệu khác nhau, ...: http://www.linux.com/ ◦ Tài liệu cho Debian GNU/Linux: http://www.debian.org/doc/ • Tin tức ◦ Slashdot. Tin và thảo luận từ cộng đồng GNU/Linux bằng tiếng Anh: http://slashdot.org ◦ Barrapunto. Tương tự như Slashdot bằng tiếng Tây Ban Nha: http://barrapunto.com ◦ Puntbarra. Tương tự như Slashdot trong tiếng Catalan: http://puntbarra.com ◦ Bulmalug. Những người mới sử dụng Linux từ Mallorca và xung quanh đó. Tin tức và các phần chuyên cho các chủ đề đặc biệt: http://bulmalug.net ◦ Tin tức tiếng Tây Ban Nha về GNU: http://www.es.gnu.org/ ◦ Linux ngày nay (Linuxtoday). Một trang tin rất thực tế khác được cập nhật với tin tức mới nhất. http://www.linuxtoday.com/ ◦ Libertonia. Trang tin. Phần các nguồn tin của nó là đặc biệt thú vị với vô số các đường liên kết tới các trang khác dạng tương tự: http://libertonia.escomposlinux.org • Các diễn đàn ◦ Foroslinux.org. Vài diễn đàn GNU/Linux về tất cả các dạng chủ đề. ◦ Các diễn đàn an ninh Linux. Các diễn đàn tập trung vào các vấn đề an ninh và tương tự. • Tìm kiếm ◦ Linux trên Google. Máy tìm kiếm lớn nhất thế giới cũng dành cho GNU/Linux. http://www.google.com/linux ◦ Buscadoc. Máy tìm kiếm cho các tài liệu CNTT tiếng Tây Ban Nha. • Các phát tán ◦ Trang web chính thức của Quỹ Phần mềm Tự do: http://www.fsf.org/ ◦ Trang web chính thức của Debian GNU/Linux: http://www.debian.org/ ◦ Trang web chính thức của Red Hat Linux: http://www.redhat.com/ ◦ Trang web chính thức của SuSE: http://www.novell.com/es-es/linux/ Trang 23/232
  • 24. GNUFDL • PID_00148369 GNU/Linux cơ bản ◦ Trang web chính thức của Slackware Linux: http://www.slackware.com/ ◦ Trang web chính thức của Knoppix: http://www.knoppix.com/ ◦ Trang web chính thức của Ubuntu: http://ubuntu.org/ • Tải về ◦ Sourceforge. Trang lớn nhất với các dự án PMTD: http://sourceforge.net/ ◦ Linux trong Softonic. Phần tải GNU/Linux về từ một trong nhiều trang tải về: http://www.softonic.com/ ◦ Tải về. Trang tải về: http://www.download.com/ • Khác ◦ An ninh của Linux. Trang với thông tin thích hợp về tất cả các dạng vấn đề an ninh với GNU/Linux: http://www.linuxsecurity.com/ ◦ LinuxHQ: Thông tin chung về các phát tán GNU/Linux: http://www.linuxhq.com/ ◦ Tạp chí Linux. Trang tin và các bài báo về GNU/Linux: http://www.linuxjournal.com/ ◦ Tạp chí Linux. Tạp chí GNU/Linux: http://www.linuxgazette.com/ ◦ Linux-mag. Tạp chí GNU/Linux: http://www.linux-mag.com/ ◦ Trang web chính thức của dự án XFree86: http://www.xfree86.org/ Trang 24/232
  • 25. GNUFDL • PID_00148369 GNU/Linux cơ bản 2. Các khái niệm và lệnh cơ bản 2.1. Giới thiệu Trong phần này chúng ta sẽ học những ý tưởng và lệnh cơ bản cần thiết cho việc dịch chuyển xung quan hệ thống. Nếu chúng ta không quen sử dụng dòng lệnh để làm việc với hệ điều hành, thì ban đầu có thể thấy một chút phức tạp, nhưng khi chúng ta sử dụng nó thì chúng ta sẽ thấy các dòng lệnh đó là rất hữu dụng và chúng cho phép chúng ta thực hiện được bất kỳ nhiệm vụ nào chúng ta cần. Hơn nữa, biết cách sử dụng dòng lệnh đúng sẽ là rất hữu dụng khi chúng ta cần kết nối từ xa tới một máy tính nơi mà chúng ta sẽ, tương tự, có khả năng thiết kế các chương trình nhỏ (shell scripts - các scripts biên dịch) để tự động hóa hầu hết những nhiệm vụ quản trị chúng. Hầu hết các lệnh chúng ta sẽ thấy trong phần này tạo thành một phần của tiêu chuẩn (IEEE POSIX norms) và được tất cả các hệ thống GNU/Linux và UNIX chia sẻ. Mặc dù từng phát tán có các ứng dụng quản lý và quản trị của riêng mình, thì nhiều hành động mà chúng thực hiện cũng có thể được triển khai với các lệnh mà chúng ta sẽ thấy. Sử dụng chúng, chúng ta sẽ có khả năng điều khiển hầu hết tất cả các tính năng của hệ thống và dịch chuyển qua hệ thống một cách có hiệu quả. Bằng việc học cách sử dụng các lệnh đó một cách đúng đắn, chúng ta cũng sẽ học được cách định vị qua bất kỳ hệ thống nào dựa vào GNU/Linux, bất chấp là phát tán nào chúng ta sử dụng. Mỗi trong số các lệnh hệ thống có xu hướng có một số lượng lớn các tham số khác nhau. Bằng việc truyền các tham số, chúng ta có thể sử dụng lệnh y hệt để triển khai nhiều hành động khác nhau, thậm chí nếu tất cả chúng là cùng một loại dạng y hệt. Trong tài liệu này chúng ta sẽ không chỉ định các tham số khác nhau của từng lệnh mà chúng ta xem xét, vì văn bản đó có thể trở nên quá dài; nó vừa không có ý nghĩa để biết chính xác tất cả các tham số có khả năng cho từng lệnh. Tất cả chúng có một sách chỉ dẫn mở rộng, chỉ định từng lựa chọn, sao cho bất kỳ lúc nào chúng ta cần thực hiện một hành động đặc thù thì chúng ta có thể hướng tới nó. Trong các bài tập xuyên khắp khóa học này, chúng ta sẽ thấy một số lựa chọn đó, dù quan trọng để biết rằng với sách chỉ dẫn đó chúng ta có thể luôn phát hiện ra nhiều thứ khác mà có thể giúp chúng ta triển khai mọi thứ chúng ta cần. 2.2 Người sử dụng và nhóm Hiện hành, hầu hết các hệ điều hành đang sử dụng là đa người sử dụng và đa nhiệm. Điều này có nghĩa là hơn một người sử dụng có thể làm việc trong hệ thống cùng một lúc, triển khai một hoặc nhiều nhiệm vụ cùng một lúc. Vì lý do này, rất quan trọng cho hệ điều hành phải có các cơ chế cho phép chúng ta kiểm soát và quản lý những người sử dụng một cách đúng đắn: hệ thống truy cập và nhận diện (đăng nhập), các chương trình mà mỗi người sử dụng có thể chạy, các cơ chế an ninh để Trang 25/232 Lệnh Một lệnh là một chương trình thực hiện một hành động đặc thù có liên quan tới hệ điều hành. Tham số của lệnh Một tham số là một lựa chọn đặc biệt của một lệnh mà chúng ta bổ sung vào sau lệnh, sao cho trước nó là một dấu trống, và thường có một dấu gạch ngang. Ví dụ, nếu lệnh là list, thì chúng ta có thể bổ sung một tham số như là list all. Chính sách các tên Một chính sách các tên được sử dụng thường xuyên sẽ đặt ra như một sự đăng nhập ký tự đầu của tên người sử dụng đi tiếp sau với họ của người sử dụng đó.
  • 26. GNUFDL • PID_00148369 GNU/Linux cơ bản bảo vệ phần cứng thiết bị, bảo vệ cho các tệp của người sử dụng, … Hệ điều hành dựa vào UNIX tổ chức tất cả các thông tin trong các nhóm và người sử dụng. Để vào được hệ thống đó, chúng ta cần nhận diện tự bản thân mình, bằng việc sử dụng một đăng nhập và một mật khẩu. Đăng nhập đó có xu hướng sẽ là một tên để nhận diện người sử dụng một cách duy nhất. Đối với các hệ thống với nhiều hơn là chỉ một ít người sử dụng, thì điều quan trọng phải có một chính sách các tên tốt sao cho tất cả những người sử dụng có thể được nhận diện rõ ràng. Mật khẩu phải bao gồm sự kết hợp các ký tự, các con số và các ký tự đặc biệt. Nó không nên bao gồm bất kỳ từ ngữ từ điển hoặc tương tự nào vì điều này có thể gây ra một rủi ro an ninh nghiêm trọng. Hệ thống các mật khẩu là dạng đơn hướng. Điều này có nghĩa là mật khẩu của chúng ta không được lưu giữ ở dạng văn bản, thay vào đó nó được mã hóa và được lưu giữ như nó có. Khi chúng ta vào hệ thống và viết mật khẩu của chúng ta, thì nó được mã hóa và được so sánh với mật khẩu được lưu giữ, nếu chúng khớp nhau, thì sự nhận diện là tích cực, còn nếu chúng không khớp nhau, thì không có sự nhận diện. Điều quan trọng của hệ thống này là thông qua việc mã hóa chúng ta không thể có được mật khẩu gốc ban đầu bằng bất kỳ cách gì. Điều mà tất cả các chương trình được thiết kế để phá các mật khẩu của người sử dụng có thể làm là viết thành mật mã các từ dựa vào các từ điển (có sử dụng các hệ thống tự động để dẫn xuất chúng và tìm ra những phương án) và kiểm thử liệu chúng có trùng với việc mã hóa của bất kỳ mật khẩu nào của người sử dụng hay không. Vì thế, chúng ta cần chọn các mật khẩu của chúng ta cẩn thận; nếu không chúng ta có thể bị tổn thương về an ninh cho toàn bộ hệ thống. Hiện hành, trong các hệ thống GNU/Linux chúng ta có thể chọn 2 dạng có khả năng mã hóa cho các mật khẩu của người sử dụng. Một dạng được sử dụng kể từ đầu của UNIX là 3DES. Sự bất tiện duy nhất với dạng mã hóa này là nó chỉ cho phép chúng ta có các mật khẩu 8 ký tự (nếu chúng ta viết nhiều hơn, chúng sẽ bỏ qua), không giống như dạng mã hóa khác, gọi là MD5, cho phép chúng ta sử dụng các mật khẩu có độ dài như chúng ta muốn (trong thực tế, MD5 là một hệ thống băm, nhưng cũng có thể được sử dụng để mã hóa các mật khẩu có sử dụng dạng mã hóa thứ 2. Trong bất kỳ trường hợp nào, chúng ta nên nhớ rằng nếu chúng ta cần sử dụng một chương trình đặc biệt để quản lý người sử dụng, như NIS, thì nó có thể không tương thích với MD5. Mặc dù một người sử dụng là một cá nhân có thể truy cập hệ thống, còn một nhóm là một tập hợp những người sử dụng chia sẻ cùng y hệt các đặc tính, nghĩa là hữu dụng để nhóm họ cùng vào nhau sao cho chúng ta có thể trao cho họ một loạt các quyền đặc thù trong hệ thống. Một người sử dụng phải thuộc về ít nhất 1 nhóm, nhưng cũng có thể thuộc về nhiều hơn 1 nhóm. Hệ thống cũng sử dụng toàn bộ cơ chế này của người sử dụng và các nhóm để quản lý các máy chủ ứng dụng và các cơ chế khác. Vì lý do này, bổ sung thêm vào những người sử dụng thực tế, một hệ thống sẽ có nhiều người sử dụng khác có liên quan tới các nhiệm vụ cần phải được triển khai trong hệ điều hành. Thông thường, dạng người sử dụng này sẽ không có khả năng đi vào hệ thống (sử dụng một đăng nhập thông thường). Bất kỳ hệ điều hành nào cũng phải có một siêu người sử dụng (gốc root). Người sử dụng gốc root có các quyền ưu tiên tối đa để triển khai bất kỳ hoạt động nào trong hệ điều hành. Người sử dụng gốc root cần phải tồn tại, vì gốc root sẽ có trách nhiệm cho việc quản trị và quản lý các máy chủ, các nhóm... Tài khoản này không nên được sử dụng để làm việc thông thường trong hệ thống. Chúng ta nên vào như gốc root khi thực sự cần thiết, và sẽ sử dụng các tài khoản khác cho người sử dụng thông thường làm việc. Điều này sẽ ngăn ngừa chúng ta gây hại cho hệ thống thông qua vô số Trang 26/232 NIS NIS là một loạt các ứng dụng cho phép chúng ta quản lý tất cả những người sử dụng của cùng mạng đó theo cách tập trung trong một máy chủ duy nhất. Máy chủ Một máy chủ là một chương trình có trách nhiệm cung cấp một số dạng dịch vụ (như phục vụ các trang web, cho phép những người sử dụng kết nối từ xa ...), thường được kết nối tới Internet.
  • 27. GNUFDL • PID_00148369 GNU/Linux cơ bản các hoạt động hoặc trong việc kiểm thử các chương trình độc hại, ... Tất cả thông tin của người sử dụng và nhóm được lưu giữ trong các tệp sau: • /etc/passwd: thông tin (tên, thư mục, thư mục home ...) của người sử dụng. • /etc/group: thông tin về các nhóm người sử dụng • /etc/shadow: các mật khẩu được mã hóa của người sử dụng và cấu hình để kiểm tra tính hợp lệ, việc thay đổi chúng... Sử dụng tệp shadow là lựa chọn tùy ý. Ban đầu, các mật khẩu người sử dụng được mã hóa từng được lưu giữ trong cùng tệp passwd, nhưng vì các lý do an ninh (nhiều cơ chế cần có khả năng đọc tệp này, nghĩa là từng rất dễ nắm được nó và cố để phá các mật khẩu), cơ chế này đã được quyết định thay đổi sao cho tệp shadow chỉ có khả năng truy cập được đối với số ít người sử dụng với các quyền ưu tiên đặc biệt trong hệ thống. Lựa chọn này có thể được cấu hình trong quá trình cài đặt hệ thống và nó thường được khuyến cáo sử dụng. Tất cả các tệp đó được tổ chức theo các dòng, nơi mà mỗi dòng xác định một người sử dụng hoặc một nhóm (phụ thuộc vào tệp đó). Trong từng dòng có vài trường tách bạch nhau bằng ký tự “:”. Đối với các nhiệm vụ quản trị, điều quan trọng phải biết các trường đó là cái gì, trường nào và vì sao mà chúng ta sẽ xem xét chúng chi tiết hơn một chút: Cấu hình mật khẩu Cũng có khả năng cấu hình hệ thống để sử dụng tệp shadow cho các nhóm (trong trường hợp chúng cần phải đưa ra được một mật khẩu). Tệp này có thể có tên /etc/gshadow. Thông thường, cấu hình mật khẩu được đưa ra khi hệ thống được cài đặt, dù nó tất cả có thể bị thay đổi và được áp dụng theo ý của chúng ta, bằng việc sử dụng các Module Xác thực Cài cắm được (PAM - Pluggable Authentication Modules) cho Linux, mà là các chương trình có trách nhiệm cho toàn bộ hệ thống xác thực người sử dụng. • passwd 1) Đăng nhập (login): tên người sử dụng. Không thể có bất kỳ 2 tên nào y hệt nhau, mặc dù có thể có một tên mà trùng với một nhóm hệ thống. 2) Mật khẩu được mã hóa: Nếu chúng ta không sử dụng tệp shadow, thì các mật khẩu được mã hóa sẽ được lưu giữ trong trường này. Nếu chúng ta sử dụng tệp shadow, thì tất cả những người sử dụng đang tồn tại trong tệp này cũng cần phải ở trong tệp shadow đó, và chúng ta cần phải gõ một “x” vào trường đó. 3) Mã của người sử dụng (User ID): số của nhóm mà người sử dụng đó thuộc về. Đây là số mà hệ thống sử dụng để nhận diện người sử dụng. 0 chỉ là một giá trị được dự phòng cho gốc root. 4) Mã của nhóm (Group ID): số của nhóm mà người sử dụng đó thuộc về. Vì một người sử dụng có thể thuộc về nhiều hơn một nhóm, nên nhóm này được gọi là nhóm ban đầu. 5) Các bình luận: trường được giữ để đưa vào các bình luận mà chúng ta mong muốn về người sử dụng. Nó thường được sử dụng để vào tên đầy đủ hoặc một số dạng nhận Trang 27/232 Phá mật khẩu Việc phá mật khẩu có nghĩa là có được mật khẩu thông qua sử dụng các chương trình được thiết kế đặc biệt. Những chương trình đó cũng được các quản trị hệ thống sử dụng để phát hiện những người sử dụng nào đang sử dụng các mật khẩu quá dễ dàng để phát hiện (các mật khẩu tốt không thể bị phá theo bất kỳ cách gì mà không sử dụng tới các siêu máy tính lớn).
  • 28. GNUFDL • PID_00148369 GNU/Linux cơ bản diện cá nhân. 6) Thư mục Home (gốc): thư mục Home của người sử dụng là nơi người sử dụng có thể lưu tất cả các tệp của anh ta. Tất cả chúng thường được lưu giữ trong một thư mục hệ thống (thường là /home/) và được tổ chức theo các nhóm. 7) Trình biên dịch các lệnh: Trình biên dịch các lệnh (shell) là một chương trình đọc mọi thứ chúng ta viết bằng việc sử dụng bàn phím và chạy các chương trình hoặc các lệnh mà chúng ta chỉ định. Có hàng tá chúng, mặc dù thứ được sử dụng phổ biến nhất không nghi ngờ gì, là bash (GNU Bourne-Again Shell). Nếu trong trường này chúng ta viết /bin/false/ thì chúng ta sẽ không cho phép người sử dụng thực thi bất kỳ lệnh nào trong hệ thống, thậm chí nếu người sử dụng được hệ thống đăng ký. • Group 1) Tên nhóm 2) Mật khẩu được mã hóa: Một mật khẩu nhóm được sử dụng để cho phép những người sử dụng của một nhóm đặc thù để thay đổi sang nhóm khác hoặc chạy một số chương trình với các quyền của nhóm khác (trong điều kiện có mật khẩu). 3) Mã nhóm (Group ID): số nhận diện nhóm. Đây là số với nó hệ thống nhận diện các nhóm một cách nội bộ. 0 chỉ là một mã được lưu giữ dành cho nhóm gốc (các quản trị viên). 4) Danh sách người sử dụng: các tên của những người sử dụng thuộc về nhóm, được tách bạch nhau bằng dấu phẩy. Mặc dù tất cả những người sử dụng nên thuộc về một nhóm cụ thể (được chỉ định trong trường thứ 4 của tệp passwd), thì trường này có thể được sử dụng cho những người sử dụng của các nhóm khác để có cùng các quyền y hệt như của nhóm theo yêu cầu. • shadow 1) Đăng nhập (login): nó nên là tên y hệt như được sử dụng trong tệp passwd. 2) Mật khẩu được mã hóa. 3) Ngày tháng, kể từ 01/01/1970, cho tới khi mật khẩu được thay đổi lần cuối. 4) Ngày tháng đi qua trước khi mật khẩu có thể được thay đổi. 5) Ngày tháng đi qua trước khi mật khẩu nên được thay đổi. 6) Ngày tháng trước khi mật khẩu hết hạn khi người sử dụng được lưu ý để thay đổi nó. 7) Ngày tháng có thể đi qua sau khi hết hạn mật khẩu, trước khi tài khoản của người sử dụng bị khóa (trừ phi mật khẩu được thay đổi). 8) Ngày, kể từ 01/01/1970, khi tài khoản đã bị khóa. 9) Trường dự phòng. Khi một người sử dụng vào hệ thống, anh ta được đặt trong thư mục home và trình biên dịch shell được thiết lập cấu hình để chạy được. Người sử dụng bây giờ có thể bắt đầu làm việc. Chỉ gốc root của hệ thống (hoặc những người sử dụng nhóm root) có quyền để điều khiển thông tin của người sử dụng Trang 28/232 Ngày tháng trong các hệ thống UNIX Trong các hệ thống UNIX, ngày tháng thường được chỉ ra theo số giây đã trôi qua kể từ ngày 01/01/1970.
  • 29. GNUFDL • PID_00148369 GNU/Linux cơ bản và nhóm, để đăng ký và bỏ đăng ký chúng... Có nhiều lệnh để làm việc với điều này. Hơn nữa, mỗi một người sử dụng có vài tham số cho việc quản lý tất cả các trường chúng ta đã thấy trước đó. Sau đây, chúng ta sẽ xem xét một số các lệnh đó: • adduser: điều này cho phép chúng ta thêm một người sử dụng mới vào hệ thống. Cách thêm nó (nếu chúng ta không chỉ định bất kỳ thứ gì khác) có thể được cấu hình trong tệp /etc/adduser.conf. Một số lựa chọn khác nhau có thể được chỉ định bằng việc tham chiếu tới thư mục home, trình biên dịch sẽ được sử dụng... • useradd: tạo một người sử dụng mới hoặc thay đổi cấu hình mặc định của người sử dụng. Lệnh này và lệnh trước có thể được sử dụng để hoàn thành các nhiệm vụ hệt như nhau. • usermod: với lệnh này chúng ta có thể sửa hầu hết các trường trong tệp passwd và shadow, như thư mục home, trình biên dịch shell, thời điểm hết hạn mật khẩu... • chfn: thay đổi thông tin cá nhân của người sử dụng trong các trường bình luận của tệp passwd. • chsh: thay đổi trình biên dịch shell của người sử dụng. • deluser: hạn chế một người sử dụng đối với hệ thống, xóa hoặc lưu tất cả các tệp của người sử dụng phụ thuộc vào các tham số chúng ta đã thiết lập, với một bản sao lưu của chúng hoặc không... Cấu hình được sử dụng mặc định với lệnh này được chỉ định trong tệp /etc/deluser.conf. • userdel: lệnh với y hệt các khả năng như lệnh trên. • passwd: chúng ta có thể sử dụng nó để thay đổi mật khẩu, thông tin về sự hết hạn của mật khẩu của một người sử dụng hoặc khóa hay mở khóa cho một tài khoản đặc biệt nào đó. • addgroup: cho phép chúng ta thêm một nhóm vào hệ thống. • groupadd: y hệt như lệnh trước, nhưng với các tham số khác. • groupmod: cho phép chúng ta sửa thông tin (tên và GID) của một nhóm đặc biệt nào đó. • delgroup: loại bỏ một nhóm nhất định nào đó. Nếu một người sử dụng vẫn còn trong nhóm gốc ban đầu, thì nhóm đó không thể bị loại bỏ. • groupdel: như trong trường hợp ở trước. • gpasswd: chúng ta có thể sử dụng nó để thay đổi mật khẩu nhóm. Để biết người sử dụng nào chúng ta có thể sử dụng lệnh whoami, mà sẽ chỉ ra sự đăng nhập của chúng ta. groups cho phép chúng ta biết các nhóm nào chúng ta thuộc về và id sẽ chỉ cho chúng ta người sử dụng và các nhóm. Cũng thú vị để có khả năng trở thành người sử dụng khác mà không phải thoát khỏi phiên (lệnh login hoặc su) hoặc để thay đổi các nhóm với lệnh newgrp. Chúng ta chỉ nên sử dụng lệnh này khi chúng ta không thuộc về nhóm theo yêu cầu và biết mật khẩu (mà nên Trang 29/232 Khẩu phần đĩa Đối với các hệ thống với hàng trăm người sử dụng thì nói chung để triển khai một số dạng cơ chế để hạn chế không gian đĩa mà từng cơ chế đó có thể sử dụng. Trong các hệ thống GNU/Linux, hệ thống này được gọi là khẩu phần (quota).
  • 30. GNUFDL • PID_00148369 GNU/Linux cơ bản phải được kích hoạt trong tệp group). Nếu tất cả điều chúng ta cần là các quyền của nhóm theo yêu cầu để chạy một lệnh cụ thể, thì chúng ta cũng có thể sử dụng sg. Tính linh hoạt của GNU/Linux Như chúng ta có thể thấy, với GNU/Linux chúng ta có hơn một cách thức triển khai các nhiệm vụ nhất định. Đây là tiếp cận tổng thể của hệ thống: chúng ta có thể sửa các tệp trực tiếp và tự chúng ta sửa chúng, bằng việc sử dụng một số lệnh đang tồn tại, tự chúng ta tạo ra chúng... Tất nhiên, chúng ta cũng có thể chọn những gì chúng ta thích nhất. Như chúng ta đã nhắc tới trước đó, GNU/Linux là một hệ điều hành đa người sử dụng, nghĩa là bất kỳ lúc nào cũng có thể có vài người sử dụng được kết nối tới hệ thống cùng một lúc. Để biết được có những người sử dụng nào ở bất kỳ thời điểm cụ thế nào, chúng ta có thể sử dụng lệnh who, nó sẽ chỉ cho chúng ta danh sách những người sử dụng trong hệ thống. w, nó cũng chỉ cho chúng ta những gì chúng đang làm. Chúng ta có thể giao tiếp với chúng bằng việc sử dụng lệnh write, với nó thông điệp mà chúng ta đã viết trong màn hình của người sử dụng cụ thể hoặc wall sẽ xuất hiện, viết nội dung của tệp mà chúng ta đã chỉ định cho tất cả những người sử dụng trong hệ thống. Để kích hoạt hoặc giải hoạt lựa chọn của các thông điệp nhận được thì chúng ta có lệnh mesg. Chúng ta cũng có thể có một giản đồ cá nhân với một người sử dụng bằng việc sử dụng lệnh talk. 2.3. Hệ thống tệp 2.3.1. Tôn ti trật tự của hệ thống tệp Bất kỳ hệ điều hành nào cũng cần lưu vô số các tệp: từ các tệp cấu hình hệ thống, tới các tệp lưu ký hoặc các tệp của người sử dụng ... Nói chung, mỗi hệ điều hành sử dụng hệ thống tệp của riêng mình đặc trưng cho nó trong nhiều khía cạnh, như hiệu năng, an ninh, độ tin cậy ... GNU/Linux có khả năng đọc và ghi các tệp với bất kỳ hệ thống tệp nào hiện đang tồn tại, dù đối với root của riêng nó và các thư mục chính thì nó đòi hỏi một hệ thống tệp cho phép các hoạt động nhất định. Nói chung, chúng ta sử dụng dạng ext2, ext3 hoặc ReiserFS. Hệ thống tệp ext2 là phổ biến nhất và được sử dụng rộng rãi. Hiệu năng của nó là khá tốt, nó kết hợp tất cả các dạng cơ chế, an ninh và tinh chỉnh và rất tin cậy. Hệ thống tệp ext3 là sự tiến hóa của nó và kết hợp một công nghệ được biết tới như là ghi nhật ký (journaling). Một trong những ưu điểm chính của công nghệ này là nếu việc cung cấp điện bị cắt và máy tính tắt không đúng cách, thì các hệ thống phục hồi tệp là có hiệu quả hơn. ReiserFS là một dạng mới của hệ thống có kết hợp các công nghệ thiết kế mới để làm cho nó nhanh hơn. Trong quá trình cài đặt, hệ điều hành sẽ hỏi chúng ta trong 3 hệ thống tệp đó thì chúng ta muốn sử dụng cái nào. Thông thường, chúng ta sẽ sử dụng ext2 hoặc ext3 vì chúng đã được kiểm thử hơn nhiều so với ReiserFS. Hệ thống tệp Hệ thống tệp là chương trình (hoặc các module của nhân hệ điều hành) có trách nhiệm cho tất cả các hoạt động có liên quan tới việc điều khiển các tệp và lưu trữ. Chúng là những chức năng làm việc với các thiết bị lưu trữ vật lý của máy tính, như đĩa cứng. Một đặc tính rất quan trọng của tất cả các hệ điều hành dựa vào UNIX là tất cả các thiết bị hệ thống có thể được điều khiển dường như chúng là các tệp. Như vậy, khi chúng ta muốn truy cập nội dung của một đĩa CD, đĩa mềm hoặc bất kỳ thiết bị lưu trữ nào khác, thì chúng ta sẽ phải kích hoạt (mount) nó trong một thư mục hệ thống đang tồn tại rồi và sẽ định vị thông qua nó dường như nó chỉ là một tệp nữa (sử dụng các đơn vị khác như A:, B:, C:, D:, ... là một sơ đồ chỉ tồn tại trong dạng Trang 30/232
  • 31. GNUFDL • PID_00148369 GNU/Linux cơ bản các hệ điều hành Windows. Hệ thống tệp ext2 Hệ thống tệp ext2 từng được thiết kế để điều khiển các tệp nhỏ, là những gì một hệ điều hành có xu hướng có nhiều hơn, nhanh hơn. Không thật tốt để điều khiển và vận hành các tệp đa phương tiện lớn, mặc dù chúng ta luôn có thể tinh chỉnh một chút để tùy biến thích nghi nó cho các nhu cầu của chúng ta. Điều đầu tiên chúng ta cần hiểu rõ là bất kỳ hệ thống tệp nào cũng bắt đầu từ gốc root y hệt, mà chúng ta tham chiếu tới với ký tự “/”. Đây là gốc của toàn bộ hệ thống tệp và chỉ có một. Để tổ chức đúng các tệp, hệ thống cung cấp những gì chúng ta gọi là các thư mục, nơi chúng ta có thể đặt các tệp và nhiều hơn các thư mục. Điều này cho phép chúng ta có được một tổ chức có tôn ti trật tự như được chỉ ra trong hình sau: Hình 2.1 2.3.2. Các thư mục hệ thống Hầu hết các hệ điều hành trong thị trường tuân theo tiêu chuẩn FHS, nó chỉ định các đặc tính chính mà bất kỳ hệ điều hành nào cũng có. Chúng bao gồm cách chúng ta nên phân phối các tệp của chúng ta trong các thư mục để tổ chức chúng đúng và có khả năng tìm kiếm chúng nhanh chóng và dễ dàng. Hầu hết các phát tán dựa vào GNU/Linux tuân theo những khuyến cáo đó và chúng ta có thể thấy các thư mục chính sau đây: • /bin/: các lệnh cơ bản cho tất cả những người sử dụng hệ thống. • /boot/: các tệp tĩnh được yêu cầu cho việc khởi động hệ thống. • /dev/: các thiết bị hệ thống. • /etc/: các tệp cấu hình hệ thống và các ứng dụng được cài đặt trong hệ thống. Trang 31/232
  • 32. GNUFDL • PID_00148369 GNU/Linux cơ bản • /home/: thư mục cho các tệp ở gốc home của người sử dụng. • /lib/: các thư viện cơ bản cho nhân của hệ thống và các module của nó. • /mnt/: điểm kích hoạt tạm thời cho các thiết bị. • /proc/: các qui trình và các biến của nhân hệ thống... • /root/: thư mục gốc home cho gốc root của hệ thống. • /sbin/: các lệnh cơ bản cho root của hệ thống. • /tmp/: các tệp tạm thời. Phụ thuộc vào phát tán (hoặc cấu hình) mà chúng ta sử dụng thì chúng bị xóa khi hệ thống được khởi động hoặc sau mỗi chu kỳ thời gian nhất định. • /usr/: cấu trúc tôn ti trật tự thứ 2, được sử dụng cho việc lưu giữ tất cả các phần mềm được cài đặt trong hệ thống. • /var/: thư mục cho việc in tiện ích spooler, các tệp lưu ký... Được khuyến cáo cao độ phải lưu giữ và không loại bỏ bất kỳ thư mục nào (hoặc những thư mục mà phát tán của chúng ta đang sử dụng được tạo ra một cách mặc định), vì chúng là cơ bản cho việc vận hành đúng của hệ thống. Thông thường, các qui trình cài đặt ứng dụng mới đòi hỏi tổ chức này và nhiều tệp cấu hình chương trình cần phải được nằm trong các thư mục nhất định. Những gì chúng ta có thể làm mà không có bất kỳ dạng hạn chế nào là tạo ra những thư mục mới trong root của hệ thống hoặc trong bất kỳ thư mục nào khác. 2.3.3. Dịch chuyển Để dịch chuyển quanh cấu trúc các thư mục, chúng ta cần sử dụng các lệnh để liệt kê các nội dung và thay đổi các thư mục. Khi chúng ta vào hệ thống, đăng nhập sẽ thường đặt chúng ta vào thư mục home của chúng ta, mà thường được tham chiếu tới với ký tự “~”. Nếu chúng ta muốn thấy có gì đó trong thư mục chúng ta đang đứng, thì chúng ta hãy liệt kê các nội dung đó bằn việc sử dụng lệnh ls. Chúng ta nên nhớ rằng mặc định thì lệnh đó sẽ không chỉ ra cho chúng ta các tệp bắt đầu với dấu chấm. Bằng việc sử dụng tham số -a thì tất cả các tệp sẽ được liệt kê. Trong tất cả các thư mục có một dấu chấm “.” và cái khác có dấu “..”. Dấu chấm tham chiếu tới thư mục hiện hành, trong khi 2 dấu chấm tham chiếu tới thư mục ngay bên trên thư mục hiện hành một cấp (trong cây tôn ti trật tự). Thông thường, khi chúng ta đang đứng ở gốc root của hệ thống tệp, thì “..” sẽ không tồn tại vì chúng ta đang đứng ở mức cao nhất rồi. Để thay đổi thư mục chúng ta có thể sử dụng lệnh cd. Nếu chúng ta không thêm bất kỳ tham số nào thì chúng ta sẽ được đưa về thư mục home của chúng ta một cách mặc định. Thông thường, chúng ta có xu hướng chỉ ra nơi chúng ta muốn tới, theo cách tương đối hoặc tuyệt đối. Theo cách tương đối, nó có nghĩa là chúng ta sẽ bắt đầu từ thư mục mà chúng ta đang đứng ở thời điểm đang thực hiện lệnh. Ví dụ, nếu chúng ta đứng trong thư mục /usr/bin/ và chúng ta muốn đi tới /root/, thì chúng ta nên vào lệnh sau: cd ../../root (2 dấu chấm đầu chỉ /usr/ và 2 dấu chấm sau chỉ gốc root / của hệ thống, từ đó chúng ta có thể truy cập được /root/). Theo cách tuyệt đối, chúng ta luôn bắt đầu từ gốc root, nghĩa là lệnh chúng ta có thể sử dụng trong ví dụ trước có thể là: cd /root. Để biết thư mục nào chúng ta đang đứng thì chúng ta có thể sử dụng lệnh pwd. Trang 32/232