Hướng dẫn sử dụng hệ điều hành Linux
Tham khảo tài liệu 'hướng dẫn sử dụng hệ điều hành linux', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Khoa Toán – Cơ – Tin học
Hướng dẫn sử dụng hệ điều hành Linux
(sử dụng Môi trường văn bản (text))
Các hệ điều hành ngày nay đều có giao diện đồ họa (graphics) nhằm giúp cho người sử dụng dễ dàng
"nói chuyện" với máy một cách trực quan mà không cần hiểu những gì diễn ra sau giao diện ấy. Tuy
nhiên, là sinh viên ngành Tin học, bạn không thể bằng lòng với vai trò "người sử dụng" đơn giản. Bạn
hãy khám phá hệ điều hành Linux trong môi trường văn bản (text): sử dụng thành thạo nó sẽ giúp bạn
có khả năng làm chủ máy tính và có thể trở thành một lập trình viên giỏi.
Hướng dẫn sử dụng hệ điều hành Linux............................................................................................. 1
1 Khởi động................................................................................................................................. 1
2 Thay đổi mật khẩu ................................................................................................................... 2
3 Các lệnh Linux cơ bản............................................................................................................. 2
3.1 Tổ chức dữ liệu ................................................................................................................ 3
3.2 Chạy chương trình. Quản lí tiến trình ............................................................................ 7
3.3 Hệ thống vào/ra của Linux.............................................................................................. 9
3.4 Trao đổi với những người sử dụng khác trong mạng.................................................. 10
Phụ lục 1- Hệ thống tệp ..................................................................................................................... 11
Phụ lục 2- Sử dụng trình soạn thảo văn bản Vi................................................................................ 11
Phụ lục 3 - Biểu thức chính quy ........................................................................................................ 13
Phụ lục 4 – Cài đặt ứng dụng trong Linux........................................................................................ 15
Cài đặt các gói RPM (Red Hat Package Management):.............................................................. 15
Cài đặt các gói DEB: ..................................................................................................................... 16
Gỡ nén............................................................................................................................................. 17
Biên dịch gói chương trình nguồn ................................................................................................ 17
1 Khởi động
Bật máy (công tắc phía trước) J
Đối với máy chạy hệ điều hành Windows:
Sau khi truy nhập vào môi trường Windows, chạy tiện ích Putty (qua nút bấm tắt trên Desktop
hoặc nếu không có thì tìm trong thư mục C:\Apps\Putty).
Trong cửa sổ giao diện Putty, chọn trong danh sách cấu hình kết nối tới máy chủ jupiter đã được
thiết lập sẵn, kích nút Load rồi sau đó kích nút Open để kết nối. Màn hình làm việc sẽ hiện ra
với yêu cầu nhập tên đăng nhập (login as). Đăng nhập vào môi trường Linux với tên và mật
khẩu được cấp cho bạn.
Sau khi đăng nhập, kích nút phải chuột trên phần cửa sổ làm việc này và chọn "Full screen".
Đối với máy chạy hệ điều hành Linux:
Sau khi máy nạp xong hệ điều hành Linux, sẽ xuất hiện màn hình cho phép đăng nhập (login).
Ấn tổ hợp phím Ctrl-Alt-F1 để về màn hình đăng nhập ở chế độ văn bản.
Tại dòng login gõ tên đăng nhập của bạn, ấn Enter và gõ mật khẩu được cấp cho bạn.
Bộ môn Tin học 1
Khoa Toán – Cơ – Tin học
2 Thay đổi mật khẩu
Sau khi bạn đăng nhập lần đầu tiên vào tài khoản máy tính của bạn, hãy ngay lập tức thay đổi
mật khẩu truy nhập để bảo đảm tính an toàn cho dữ liệu của bạn từ nay về sau. Các điểm cần chú
ý:
- Không trao đổi mật khẩu của mình với bất kì ai. Việc chia sẻ hoặc để lộ mật khẩu cá
nhân sẽ làm mất tính riêng tư của bạn và có thể gây hại đến dữ liệu trong tài khoản của
bạn cũng như khiến bạn phải chịu trách nhiệm về những vấn đề hỏng hóc hệ thống máy
tính vốn không phải do bạn gây ra. Bạn phải chịu hoàn toàn trách nhiệm về mọi vấn đề
liên quan đến tài khoản máy tính của bạn.
- Yêu cầu về mật khẩu: mật khẩu bao gồm ít nhất 6 kí tự, cần có ít nhất một kí hiệu không
phải là chữ cái.
Lệnh thay đổi mật khẩu:
yppasswd
- Sau khi bấm Enter, máy chờ nhập dữ liệu ở dòng Old password (hoặc current password).
Gõ mật khẩu hiện thời của bạn và ấn Enter.
- Máy hiện yêu cầu Enter new password. Gõ mật khẩu mới và ấn Enter.
- Máy yêu cầu bạn gõ lại mật khẩu mới lần thứ hai để đảm bảo bạn không nhầm lẫn. Gõ lại
đúng mật khẩu mới và ấn Enter.
Hãy thoát khỏi hệ thống bằng lệnh:
logout
Mời bạn đăng nhập (login) lại bằng tên đăng nhập của bạn và mật khẩu mới.
3 Các lệnh Linux cơ bản
Là sinh viên học Tin học, bạn cần học những gì?
1. Tổ chức dữ liệu của mình:
§ Đặt các tệp (file) chứa dữ liệu của bạn vào các thư mục (directory) thích hợp để
việc tìm kiếm khi cần thiết được dễ dàng (ví dụ các tệp liên quan đến bài tập của
một môn học đặt trong thư mục riêng cho môn học đó. Trong cùng một môn học
có thể có nhiều loại bài tập khác nhau cũng nên được đặt vào các thư mục riêng
biệt)
§ Sao chép dữ liệu từ nơi này sang nơi khác
§ Xóa bỏ những dữ liệu không cần thiết nữa
§ Bảo mật dữ liệu của mình (không cho người ngoài truy nhập vào các tệp dữ liệu
mang tính riêng tư của mình)
§ v.v
2. Chạy một chương trình ứng dụng có trên máy tính
3. Quản lí các tiến trình (process) của mình trên hệ thống máy tính
4. Cài đặt một chương trình mới lên máy tính
5. Soạn thảo văn bản (tài liệu, chương trình)
6. Viết chương trình cho máy tính
7. Trao đổi với những người sử dụng mạng khác (mail, talk)
8. Tìm kiếm, thu thập, phân phát dữ liệu trong mạng máy tính (mạng nội bộ ở nơi
học/làm việc, mạng toàn cầu – Internet)
9. Quản trị mạng máy tính
10. v.v.
Bộ môn Tin học 2
Khoa Toán – Cơ – Tin học
Các bạn sẽ có thể thực hành 1, 2, 3, 5, 6, 7 ở trường. 4, 8, 9, 10 dành cho các bạn đọc thêm và
thực hành máy tính ở nhà.
3.1 Tổ chức dữ liệu
Nội dung của bài thực hành này tập trung vào vấn đề tổ chức dữ liệu. Bạn cần học các lệnh cơ
bản của Linux cho phép bạn thao tác với các tệp dữ liệu và tệp thư mục. Các lệnh này được dùng
chung cho tất cả các phần mềm vỏ (shell) của Linux (ví dụ như sh, bash, v.v.).
Cần chú ý là mỗi người sử dụng hệ thống Unix/Linux được cấp một thư mục làm việc riêng, gọi
là thư mục chủ của người sử dụng. Ví dụ, một sinh viên của lớp K50 A5 với số thứ tự được cấp
là 72 thì sẽ có thư mục chủ của mình là /home/students/K50A5_072/. Nói chung, bạn chỉ có
quyền ghi/xoá dữ liệu trên thư mục của bạn. Dữ liệu trong các thư mục khác thông thường bạn
có khả năng đọc (read) hoặc chạy (execute) nếu đó là chương trình, trừ khi người sở hữu dữ liệu
cấm toàn bộ quyền truy nhập.
3.1.1 Giới thiệu lệnh
Sau đây là danh sách các lệnh cơ bản sẽ thực hành:
Lệnh Ý nghĩa Cú pháp
Lệnh thao tác với thư mục
pwd Xem đường dẫn đầy đủ của thư pwd
mục làm việc hiện thời
ls Xem nội dung thư mục hiện thời ls [-l|-alt]
du Xem thông tin dung lượng của du [-s|-a]
một thư mục
cd Chuyển đến thư mục khác cd
mkdir Tạo thư mục mới mkdir
rmdir Xóa 1 thư mục rỗng rmdir
Lệnh thao tác với tệp (tệp dữ liệu thông thường và tệp thư mục)
cat Xem nội dung tệp cat
more Xem nội dung tệp từng trang một more
head Xem dòng đầu của tệp văn bản head
tail Xem dòng cuối của tệp văn bản tail
cp Sao chép tệp từ nơi này sang nơi cp
khác cp –r
mv Di chuyển (đổi tên) tệp/thư mục mv
rm Xóa tệp/thư mục rm [-i]
rm –r
chmod Đặt quyền truy nhập tệp cho những chmod
người dùng khác trong hệ thống (xem giải thích phân quyền ở dưới)
ln Tạo tệp liên kết (link) ln [-s]
find Tìm kiếm tệp find
grep Tìm kiếm xâu trong tệp grep ""
grep –e
(xem phụ lục biểu thức chính quy)
Bộ môn Tin học 3
Khoa Toán – Cơ – Tin học
Phân quyền: Các hệ thống Unix/Linux cho phép phân quyền cho 3 đối tượng người sử dụng hệ
thống máy tính: người sở hữu dữ liệu (user), những người thuộc cùng nhóm (group) làm việc với
người sở hữu, và những người dùng khác (other). Với mỗi đối tượng có thể có ba quyền sau:
quyền đọc (read), quyền ghi (write), và quyền chạy (execute - nếu là tệp chương trình). Đối
của lệnh chmod được biểu diễn theo 2 cách:
- Dạng số: Gồm 3 chữ số n1n2n3, trong đó ni ∈ [0, 7]. n1 thể hiện quyền truy nhập tệp/thư
mục cho user, n2 thể hiện quyền cho group, và n3 thể hiện quyền cho other.
0 1 2 3 4 5 6 7
--- --x -w- -wx r-- r-x rw- rwx
- Dạng chữ cái: [+ | -]
§ đối tượng: u (cho user), hoặc g (cho group), hoặc o (cho other), hoặc a (cho all –
tất cả mọi người dùng)
§ +: cho quyền, -: không cho quyền
§ quyền: r, w, x
§ Ví dụ: u+x : cho user có quyền chạy chương trình. g-w : cấm những người dùng
khác trong cùng nhóm (group) quyền ghi lên tệp.
Sử dụng kí tự gộp *:
Một số lệnh cho phép thao tác với nhiều tệp một lúc. Khi đó, tên các tệp này phải có khả năng
viết gộp lại thành một tên chung. Kí tự * có ý nghĩa là "xâu kí tự bất kì", được dùng cho việc viết
gộp tên tệp này.
Ví dụ: *.c nghĩa là tất cả các tệp có phần đuôi của tên là .c.
3.1.2 Bài tập thực hành
Yêu cầu I:
Một số tệp/thư mục dành cho phần bài tập thực hành này đã được tạo sẵn, đặt trong thư mục
/home/local/exercises/. Bạn được yêu cầu làm các thao tác sau:
1. Kiểm tra tên thư mục hiện thời của mình.
2. Nếu thư mục hiện thời không phải là /home/ thì chuyển về thư mục đó.
3. Sao chép thư mục /home/local/exercises/BaitapLinux/ về thư mục chủ của bạn (tức là
thư mục /home/students//).
4. Chuyển về thư mục chủ của bạn.
5. Xem thư mục hiện thời, kiểm tra xem đã có thư mục BaitapLinux trong đó chưa.
6. Đổi tên thư mục BaitapLinux thành Baitap1.
7. Xem nội dung thư mục Baitap1.
8. Kiểm tra xem tệp nào trong thư mục Baitap1 là tệp chương trình chạy được (excutable).
9. Xem nội dung tệp chương trình tìm được. Đoán xem chương trình đó sẽ làm gì J
10. Chạy chương trình đó. (Bạn có đoán đúng kết quả chương trình không? J)
11. Thay đổi quyền truy nhập tệp của bạn để bạn không có quyền x (thực hiện) đối với tệp
chương trình đó.
12. Chuyển vào thư mục Baitap1.
13. Xem lại nội dung thư mục Baitap1 để kiểm tra xem việc thay đổi quyền truy nhập của
bạn đã được thực hiện đúng chưa.
14. Thử chạy chương trình để chắc chắn là bạn không chạy được chương trình đó nữa J
15. Xoá các tệp có tên bắt đầu bằng k49 trong thư mục Baitap1.
Bộ môn Tin học 4
Khoa Toán – Cơ – Tin học
16. Xem danh sách các tệp có đuôi .tmp trong thư mục hiện thời. Ghi tên các tệp này ra giấy.
17. Tạo thư mục temp (temporory – có nghĩa là tạm thời) trong thư mục Baitap1.
18. Di chuyển tất cả các tệp có đuôi .tmp trong thư mục Baitap1 vào thư mục temp mới tạo
này.
19. Chuyển vào thư mục temp.
20. Xem danh sách tệp trong thư mục hiện thời. Danh sách này có giống danh sách thu được
ở bước 15 không?
21. Đổi quyền truy nhập cho tất cả các tệp có đuôi .tmp trên sao cho tất cả mọi người sử
dụng hệ thống có quyền đọc và ghi đối với các tệp đó.
22. Xem lại thư mục temp để chắc chắn là bạn đã thực hiện đúng lệnh đổi quyền.
23. Nghỉ giải lao: trao đổi với bạn bên cạnh xem có khó khăn gì không J.
Cách thực hiện yêu cầu I:
Để thực hiện được các yêu cầu trên, bạn lần lượt thực hiện các bước sau (sau khi thực hiện
xong mỗi bước, chỉ chuyển sang bước sau nếu không nhận được thông báo lỗi gì):
1. Gõ lệnh:
pwd
2. Nếu kết quả ở bước 1 hiện ra trên màn hình là /home thì bạn không phải làm gì. Nếu không
phải, bạn gõ lệnh:
cd /home
3. Để sao chép thư mục cần có tham số -r cho lệnh cp. Bạn chọn gõ 1 trong 2 lệnh sau:
cp –r /home/local/exercises/BaitapLinux /home/students/
cp –r local/exercises/BaitapLinux students/
sBạn chọn cách nào? Vì sao 2 lệnh này có tác dụng như nhau?
4. Gõ lệnh:
cd students/
5. Gõ lệnh:
ls
sBạn có thấy trong danh sách kết quả có tên BaitapLinux không? Bây giờ gõ tiếp lệnh
sau:
ls -l
sBạn thấy khi bổ sung tham số -l thì kết quả hiện ra có gì khác? Hãy nhìn dòng chứa thông
tin liên quan đến BaitapLinux. Các thông tin hiện ra bao gồm:
. Thuộc tính kiểu tệp và phân
quyền tệp được biểu diễn bằng một xâu gồm 10 kí tự (ví dụ tệp thư mục BaitapLinux có
thuộc tính là drwxr-xr-x): kí tự đầu tiên là kiểu tệp (thường gặp nhất d tương ứng với tệp
thư mục, - tương ứng với tệp thông thường), 9 kí tự sau là phân quyền tương ứng với 3 đối
tượng (người sở hữu, người sử dụng thuộc cùng nhóm làm việc, những người sử dụng khác –
xem lại giới thiệu phân quyền ở phần 3.1.1).
6. Gõ lệnh:
mv BaitapLinux Baitap1
s Thực hiện lại lệnh ở bước 5 để xem có thư mục Baitap1 thay cho BaitapLinux không?
7. Ở bước 5 ta xem nội dung thư mục hiện thời nên không cần gõ tên thư mục sau lệnh ls. Bây
giờ để xem thư mục Baitap1, cần gõ lệnh:
ls –l Baitap1
Bộ môn Tin học 5
Khoa Toán – Cơ – Tin học
8. Tệp chương trình trong thư mục Baitap1 là tệp có thuộc tính phân quyền x cho đối tượng
người sở hữu (user). Phần tiếp theo khi viết thì bạn phải gõ tên tệp này.
9. Gõ lệnh:
cat Baitap1/
hoặc
more Baitap1/
sVới lệnh more, nếu nội dung tệp dài quá 1 trang trong cửa sổ lệnh, cần ấn phím cách
(Space) để xem tiếp trang sau. Muốn thoát khỏi lệnh more thì ấn phím Q. Đoán xem chương
trình này làm gì? J (Chú ý: không phải tệp chương trình nào bạn cũng có thể "đọc hiểu"
được. Chương trình bạn vừa xem là một chương trình nguồn dạng văn bản, được máy thông
dịch khi chạy. Đa số các chương trình khác thì thường đã được biên dịch thành mã nhị phân
– khi đó bạn không "đọc hiểu" được).
10. Chạy chương trình bằng cách gõ:
Baitap1/
sKết quả chương trình có đúng như bạn đoán không? J
11. Đổi quyền truy nhập:
chmod u-x Baitap1/
12. Gõ lệnh:
cd Baitap1
13. Gõ lệnh:
ls –l
sTệp trong danh sách có thông tin thuộc tính bắt đầu bằng –rw- không?
Nếu có tức là bạn đã làm đúng ở bước 10. Nếu không, cần thực hiện lại lệnh ở bước 10
(chú ý viết đúng đường dẫn)
14. Thử chạy lại chương trình:
./
sBạn có nhận được thông báo lỗi không?
15. Xem lại khái niệm kí tự gộp * ở mục 3.1.1. Để xoá tất cả các tệp có tên bắt đầu bằng k49 thì
gõ lệnh:
rm –I k49*
Tham số -i cho phép bạn khẳng định lại nếu bạn thực sự muốn xoá tệp nào đó. Bạn trả lời y
(yes) nếu chắc chắn, n (no) nếu không. Nói chung nên có tham số này vì nếu không bạn sẽ
mất hẳn dữ liệu khi trót gõ nhầm tên tệp cần xoá (trong Unix/Linux bạn không thể khôi phục
dữ liệu đã xoá bằng lệnh rm).
16. Gõ lệnh:
ls *.tmp
Ghi danh sách tên tệp thu được ra giấy.
17. Gõ lệnh:
mkdir temp
sXem lại thư mục hiện thời bằng lệnh ls để kiểm tra xem đã có thư mục temp chưa.
18. Gõ lệnh:
mv *.tmp temp/
19. Gõ lệnh:
cd temp
20. Gõ lệnh:
ls –l
21. Xem lại khái niệm phân quyền ở mục 3.1.1. Để tất cả mọi người có quyền đọc, ghi, nhưng
không có quyền thực hiện (vì các tệp này không phải là tệp chương trình), thì cả 3 đối tượng
Bộ môn Tin học 6
Khoa Toán – Cơ – Tin học
(user, group, other) đều có quyền rw- (biểu diễn dạng số là 6). Vậy cần gõ lệnh sau:
chmod 666 *.*
22. Gõ lệnh:
ls –l
sNếu làm đúng thì các tệp trong danh sách đều có thông tin thuộc tính là:
–rw-rw-rw-
23. Nghỉ giải lao J
Mẹo nhỏ:
- Dùng phím con trỏ lên ↑, xuống ↓ để lấy lại một lệnh đã thực hiện
- Khi gõ tên tệp/thư mục, có thể gõ một vài chữ cái đầu rồi dùng phím Tab để nhận được
hỗ trợ tự động điền tên tệp/thư mục. Như thế có 2 lợi ích:
§ Tiết kiệm công gõ khi tên tệp/thư mục dài
§ Tránh lỗi khi truy nhập tệp/thư mục do gõ nhầm tên
Sửa chữa lỗi sai trong quá trình thực hành:
- Trong khi làm bài thực hành, một trong các lỗi thường gặp nhất của học viên là tạo thư
mục không đúng tên theo đề bài yêu cầu. Vì thế, sau mỗi lần tạo thư mục, bạn cần kiểm
tra lại bằng lệnh xem nội dung thư mục. Nếu tạo sai, cần xoá đi thư mục vừa tạo (bằng
lệnh hoặc rmdir hoặc rmdir ), rồi làm lại thao tác tạo
thư mục.
- Lỗi thường gặp khác: Không đặt khoảng cách giữa lệnh và các đối của lệnh (ví dụ thay vì
làm (cp ) thì lại làm (cp).
- Hãy cùng bổ sung danh sách lỗi thường gặp J
Yêu cầu 2: Giáo viên hướng dẫn cho bài tập liên quan đến các lệnh trên, yêu cầu sinh viên tự
thực hiện.
3.2 Chạy chương trình. Quản lí tiến trình
3.2.1 Chạy chương trình
Khi bạn gõ lệnh thực hiện một thao tác tổ chức dữ liệu ở trên, thì thực ra là bạn đã chạy một
chương trình tiện ích đã cài đặt trong vỏ của hệ điều hành Linux.
Một cách tổng quát, để chạy một chương trình có trong một hệ thống Linux, có thể làm một
trong những cách sau:
- Nếu tệp chương trình nằm trong thư mục đã khai báo trong biến môi trường PATH (là
biến chứa tập hợp đường dẫn tới các thư mục mà hệ thống sẽ tìm kiếm chương trình
trong đó), thì chỉ cần gõ:
- Nếu tệp chương trình nằm trong thư mục chưa có trong PATH, thì có thể:
§ Bổ sung đường dẫn đến tệp chương trình vào biến môi trường PATH, rồi chạy
chương trình như ở trên.
§ Chuyển đến thư mục có chứa tệp chương trình, rồi gõ:
./
(dấu . biểu thị thư mục hiện thời)
§ Gõ tên tệp chương trình với đường dẫn đầy đủ (kể từ thư mục gốc).
Chú ý:
Bộ môn Tin học 7
Khoa Toán – Cơ – Tin học
- Khi trong hệ thống có nhiều tệp chương trình trùng tên, thì hệ thống chạy chương trình
nằm trong thư mục đầu tiên trong danh sách các thư mục trong PATH. Muốn gọi một
chương trình nằm trong các thư mục đứng sau trong danh sách thì chạy phải gõ đường
dẫn đầy đủ tới chương trình đó.
- Tệp chương trình trong Linux không được nhận biết bằng phần đuôi tên tệp như trong
Windows, mà nhận biết bằng thuộc tính x (execute) của tệp. Do đó, nếu bạn gọi một
chương trình mà không thấy chương trình chạy, cần kiểm tra lại xem bạn có quyền x đối
với tệp đó không. Nếu không có, và tệp chương trình đó thuộc quyền sở hữu của bạn, thì
cần dùng lệnh chmod để đổi lại quyền truy nhập của bạn là x.
- Đối với các chương trình hệ thống, để xem hướng dẫn sử dụng chương trình (lệnh) – bạn
có thể thực hiện những cách sau:
§ --help
§ man
Các lệnh trợ giúp:
- Xem nội dung biến môi trường PATH hiện thời:
echo $PATH
sLệnh echo hiển thị xâu tham số ra màn hình. Dấu $ thêm vào trước một tên biến cho
phép lấy giá trị của biến đó. Ở đây $PATH là giá trị của biến môi trường PATH.
- Bổ sung một đường dẫn vào PATH:
export PATH=$PATH:
- Tìm kiếm một tệp chương trình trong hệ thống tệp:
find / -name ""
- Xác định thư mục chứa một chương trình mà đường dẫn đã có trong PATH:
which
Thực hành:
- Xem nội dung biến môi trường PATH.
- Xem các lệnh đã thực hành như more, ls, chmod, cp, mv, rm nằm trong thư mục nào.
- Bổ sung thư mục Baitap1 ở bài thực hành trước vào PATH. Chạy chương trình có trong
thư mục Baitap1 từ bất kì thư mục nào.
- Tìm thư mục chứa chương trình có tên "gcc".
3.2.2 Quản lí tiến trình
Mỗi chương trình chạy trong hệ thống tương ứng với một tiến trình (process). Bạn có thể
theo dõi hoạt động của các chương trình thông qua việc quan sát trạng thái các tiến trình này.
Các thông tin liên quan đến một tiến trình bao gồm: mã số tiến trình, mức độ ưu tiên, tài nguyên
máy tính mà tiến trình sử dụng (bộ nhớ, CPU), v.v.
Bạn cũng có thể tạm ngừng một tiến trình, cho chạy tiếp một tiến trình bị tạm ngừng hoặc
ngừng hẳn một tiến trình.
Các lệnh trợ giúp:
- Xem thông tin liên quan đến hoạt động của các tiến trình:
top
- Xem các chương trình nào đang chạy trên máy:
ps
Bộ môn Tin học 8
Khoa Toán – Cơ – Tin học
- Tạm ngừng một tiến trình:
Ấn tổ hợp phím Ctrl-Z
- Chạy tiếp một tiến trình đang tạm ngừng:
fg
- Cho một tiến trình đang tạm ngừng chạy dưới nền:
bg
- Ngừng một tiến trình đang thực hiện:
kill
- Chạy một chương trình dưới nền (background):
&
Các hệ thống Unix/Linux còn có cơ chế ống dẫn (pipe) cho phép các tiến trình liên lạc với
nhau: đầu ra (kết quả) của tiến trình trước là đầu vào (đối) của tiến trình sau. Ví dụ, bạn hãy gõ
và so sánh hai lệnh sau:
1) ls –l /usr/bin
2) ls –l /usr/bin | more
(lệnh thứ 2 có nghĩa là kết quả của lệnh ls sẽ là đối của lệnh more).
Thực hành:
- Xem thông tin liên quan đến hoạt động của các tiến trình;
- Chạy chương trình man để xem hướng dẫn sử dụng lệnh chmod.
- Tạm ngừng chương trình man.
- Thực hiện lệnh ps để xem danh sách các tiến trình đang hoạt động.
- Gõ lệnh fg để chạy tiếp chương trình man.
3.3 Hệ thống vào/ra của Linux
Trong các hệ thống Unix/Linux, tất cả mọi thiết bị đều được quản lí như các tệp. Bàn phím và
màn hình cũng vậy.
Khi một chương trình chạy, nó đòi hỏi một tệp vào chuẩn (stdin standard input) để lấy dữ liệu
vào, một tệp ra chuẩn để in kết quả ra (stdout standard output) và một tệp lỗi chuẩn (stderr
standard error output) để in lỗi (nếu có). Nếu không có chỉ thị gì khác trong chương trình, thì
tệp vào chuẩn (stdin) là bàn phím, tệp ra chuẩn (stdout) cũng như tệp lỗi (stderr) là màn hình
(hay cửa sổ máy trạm).
Các chương trình vỏ Linux (tương ứng với các lệnh chạy ở dòng lệnh) đều sử dụng các tệp vào
ra chuẩn như trên. Tuy nhiên, người sử dụng có thể làm thao tác chuyển hướng (redirect) vào ra
– tức là chỉ ra tệp nào được dùng như stdin, tệp nào dùng như stdout.
Để lấy dữ liệu từ một tệp làm vào chuẩn, bổ sung vào cuối lệnh (lời gọi chương trình) xâu :
< tên_tệp
Để đặt kết quả của chương trình vào một tệp mới, bổ sung vào cuối lệnh xâu:
> tên_tệp
Để đặt kết quả của chương trình vào cuối một tệp đã có, bổ sung vào cuối lệnh xâu:
>> tên_tệp
Để chuyển hướng kết quả ra và lỗi vào một tệp mới, bổ sung vào cuối lệnh xâu:
Bộ môn Tin học 9
Khoa Toán – Cơ – Tin học
>& tên_tệp
Thực hành:
- Gõ lệnh:
ls -l /home/local
- Gõ lệnh:
ls -l /home/local > ~/thumuc.lst
sLệnh này tạo tệp thumuc.lst trong thư mục chủ của bạn (tức là thư mục /home/students/ - cả xâu này kí hiệu bằng ~ trong Unix/Linux).
- Kiểm tra lại kết quả bằng cách thực hiện lệnh:
more ~/thumuc.lst
- Gõ lệnh:
ls -l /home/local > /dev/null
sTheo bạn chuyện gì xảy ra ở lệnh trên?
- Gõ lệnh:
echo "Xin chao"
sLệnh echo in xâu đối lên thiết bị ra chuẩn, tức là màn hình hay cửa sổ lệnh.
- Gõ lệnh:
echo "This is the end of the file" >> ~/thumuc.lst
- Kiểm tra lại kết quả bằng cách thực hiện lệnh:
more ~/thumuc.lst
3.4 Trao đổi với những người sử dụng khác trong mạng
Khi làm việc trong hệ thống mạng nội bộ và truy nhập vào máy chủ, bạn có thể chia sẻ và
trao đổi thông tin với những người sử dụng khác đang nối với máy chủ. Ngoài khả năng có thể
chia sẻ tài nguyên chung trên mạng (tệp dữ liệu, thiết bị ngoại vi như máy in, máy scan, v.v.) –
bạn còn có thể trao đổi bằng cách gửi thông điệp trực tuyến hay gửi thư điện tử.
Các lệnh hỗ trợ:
- Xem danh sách người sử dụng đang truy nhập máy chủ:
who
- Gửi thông điệp tới một người sử dụng đang kết nối tới máy chủ:
write
sNhững tin nhắn trực tuyến kiểu này có thể làm phiền bạn trong khi bạn đang bận làm
việc. Trường hợp không muốn nhận thông điệp, bạn gõ lệnh sau: mesg n. Nếu bạn gõ
lệnh gửi tin nhắn tới một người đã chặn chức năng này, bạn sẽ nhận được thông báo
" has messages disabled".
- Gửi thư điện tử (email) tới một người sử dụng trong mạng:
mail
Máy sẽ yêu cầu bạn nhập tiêu đề thư (Subject). Sau khi nhập tiêu đề và ấn Enter – bạn có
thể gõ nội dung thư – và khi kết thúc nội dung, muốn gửi đi thì bạn ấn tổ hợp phím Ctrl-
D. Bạn có thể nhận được đề nghị gửi đồng thời thư này tới cho người khác (Cc: carbon
copy) – nếu muốn thì bạn gõ tên người sử dụng mà bạn muốn gửi, nếu không thì gõ Enter
để bỏ qua.
Bộ môn Tin học 10
Khoa Toán – Cơ – Tin học
Phụ lục 1- Hệ thống tệp
Hệ thống tệp cơ bản của Unix/Linux được tổ chức như trong bảng sau.
Tên tệp Nội dung
/ Thư mục gốc, chứa tất cả các thư mục và tệp khác
/bin Chứa các chương trình thiết yếu của hệ thống (dùng cho tất cả mọi người
sử dụng máy)
/boot Chứa các tệp nạp nhân của hệ điều hành (khi khởi động máy)
/dev Chứa các tệp thiết bị ngoại vi
/etc Chứa các tệp thông số liên quan đến quản trị hệ thống (mật khẩu, nhóm
người sử dụng, v.v.)
/etc/X11 chứa các tệp đựng thông số cấu hình của X
/etc/opt các tệp đựng thông số của gói ứng dụng cài trong thư mục opt
/home chứa các thư mục riêng của từng người sử dụng
/lib chứa các thư viện chuẩn dùng chung cho các ứng dụng khác nhau của
toàn hệ thống
/mnt chứa các kết nối tới các vùng đĩa tạm thời (đĩa mềm, đĩa CD, USB key, v.v.)
/opt chứa các gói ứng dụng bổ sung
/proc chứa các tệp ảo cho phép lấy thông tin về hệ thống hay về các tiến trình
(processus) đang thực hiện
/root thư mục của người quản trị hệ thống root
/sbin chứa các chương trình hệ thống thiết yếu (cho người quản trị hệ thống)
/tmp chứa các tệp tam thời
/usr hệ thống tệp bổ trợ
/usr/X11R6 chứa các tệp của hệ thống X – version 11 – release 6
/usr/X386 trước đây dành cho hệ thống X – version 5. Hiện tại là liên kết ảo tới
/usr/X11R6
/usr/bin chứa phần lớn các tệp chương trình và lệnh của người sử dụng
/usr/include chứa các tệp header của các chương trình C và C++
/usr/lib chứa hầu hết các thư viện dùng chung của hệ thống
/usr/local chứa các dữ liệu liên quan đến chương trình do người quản trị root cài
trên máy đơn
/usr/sbin chứa các tệp tiện ích bổ trợ cho người quản trị hệ thống
/usr/share dành cho các dữ liệu dùng chung trên mọi kiến trúc máy
/usr/src chứa các tệp mã nguồn
/var chứa các dữ liệu hệ thống thay đổi thường xuyên như các tệp CSDL, các
tệp nhật kí (log), các tệp đệm đợi in, v.v.
Phụ lục 2- Sử dụng trình soạn thảo văn bản Vi
(tham khảo từ www.commentcamarche.net)
vi là trình soạn thảo văn bản phổ biến trong các hệ thống kiểu Unix (cùng với emacs và pico),
chạy hoàn toàn trong chế độ văn bản (text), các thao tác đều được thực hiện thông qua các câu
lệnh. Trong các hệ thống Linux có phiên bản miễn phí gọi là Vim (Vi improved) Trình soạn
thảo này không thật tiện lợi nhưng rất hữu ích trong trường hợp không có giao diện đồ họa.
Bộ môn Tin học 11
Khoa Toán – Cơ – Tin học
Cú pháp chạy chương trình:
vi []
Sau khi mở tệp, có thể di chuyển trong văn bản nhờ các phím mũi tên, hoặc nếu bàn phím không
có các phím mũi tên thì dùng h (sang trái), j (xuống), k (lên) và l (sang phải).
vi có 3 chế độ hoạt động:
- Chế độ chuẩn: cho phép gõ câu lệnh thao tác
- Chế độ chèn: cho phép chèn các kí tự vào vị trí hiện thời của con trỏ trong văn bản đang
soạn thảo. Để chuyển sang chế độ chèn, ấn phím Insert (hoặc i). Dùng phím Esc (Escape)
để quay lại chế độ chuẩn (gõ lệnh).
- Chế độ thay thế: cho phép thay thế kí tự hiện thời trong văn bản bằng kí tự mới. Dùng
phím Esc để quay lại chế độ chuẩn (gõ lệnh).
Các lệnh cơ bản trong trình soạn thảo vi:
Lệnh cơ bản Chức năng
q Thoát khỏi trình soạn thảo
q! Bỏ qua các thay đổi chưa lưu lên đĩa, thoát khỏi trình soạn thảo
wq Lưu các thay đổi, thoát khỏi trình soạn thảo
file Lưu giữ tài liệu đang soạn với vào tệp có tên là
Lệnh soạn thảo Chức năng
x Xóa kí tự tại vị trí hiện thời của con trỏ
dd Xóa dòng văn bản chứa vị trí hiện thời của con trỏ
dnd Xóa n dòng văn bản kể từ dòng chứa vị trí hiện thời của con trỏ
nx Xóa n kí tự kể từ vị trí hiện thời của con trỏ
n>> Dồn n dòng kể từ dòng chứa vị trí hiện thời của con trỏ sang phải 1 cột
nKhoa Toán – Cơ – Tin học
- Gõ /th, bấm phím Enter
- Tìm xâu "th" tiếp theo: gõ phím N.
Thay thế:
Để thay thế một xâu kí tự trong dòng hiện thời bằng một xâu mới, trong chế độ chuẩn gõ lệnh
sau:
:s///
Xâu cần thay thế và xâu thay thế có thể là các biểu thức chính quy (regular expression) mô tả
mẫu xâu (xem tài liệu giới thiệu Biểu thức chính quy).
Muốn thực hiện thay thế trong cả văn bản, gõ lệnh:
:%s///
Sao chép và cắt dán:
Trình soạn thảo Vi cho phép sao chép một khối n dòng. Trong chế độ lệnh, gõ:
:nyy
Lệnh này sao chép n dòng trong văn bản (kể từ dòng hiện thời) vào bộ nhớ đệm. Chuyển con trỏ
tới vị trí cần sao chép và gõ :
:p
Muốn cắt dán (di chuyển) một khối văn bản gồm n dòng, di chuyển con trỏ tới dòng đầu tiên và
gõ lệnh:
:ndd
Chuyển con trỏ tới dòng định dán và gõ lệnh p.
Phụ lục 3 - Biểu thức chính quy
(tham khảo từ commentcamarche.net)
Trong lập trình, khái niệm biểu thức chính quy dùng để chỉ các chuỗi kí tự ASCII cho phép mô
tả các xâu kí tự có đặc điểm chung nào đó. Biểu thức chính quy đóng vai trò "mẫu" mô tả các
đặc điểm chung này.
Mỗi biểu thức chính quy là một xâu gồm các kí tự chuẩn thông thường và các kí tự đặc biệt. Các
kí tự đặc biệt bao gồm:
Kí Ý nghĩa Ví dụ
hiệu biểu thức Các xâu được mô tả
^ - biểu diễn vị trí đầu xâu ^an Xâu bắt đầu bằng chữ an
- đánh dấu danh sách kí tự cấm
(nằm giữa cặp [])
$ biểu diễn vị trí cuối xâu an$ Xâu kết thúc bằng chữ an
Bộ môn Tin học 13
Khoa Toán – Cơ – Tin học
() gộp các kí tự nằm giữa cặp ngoặc
thành một nhóm kí tự
* kí tự/nhóm kí tự xuất hiện 0 hoặc an* Xâu có chứa chữ a, theo sau bởi 0
nhiều lần hay nhiều chữ n (a, an, ann, v.v)
+ kí tự/nhóm kí tự xuất hiện 1 hoặc an+ Xâu có chứa chữ a, theo sau bởi ít
nhiều lần nhất 1 chữ n (an, ann, annn, v.v)
? kí tự/nhóm kí tự xuất hiện 0 hoặc 1 lần and? Xâu có chứa an hoặc and
{} các số tự nhiên nằm giữa 2 dấu ngoặc a(bc){2} - xâu chứa abcbc;
này cho phép đưa ra giới hạn số lần a(bc){2,} - xâu chứa abcbc, hoặc abcbcbc, …,
xuất hiện của một kí tự hay một nhóm abc{2,4} - xâu chứa abcc, hoặc abccc, hoặc
kí tự. Có 3 dạng: {X}, {X,}, {X, Y}, abcccc
trong đó X là cận dưới, Y là cận trên
| toán tử HOẶC (OR) (a|the) xâu chứa a car hoặc the car
car xâu chứa dãy gồm các kí tự a và b
(a|b)+
. biểu diễn một kí tự bất kì ^.{3}$ xâu chứa đúng 3 kí tự bất kì
[] cho phép định nghĩa một danh sách [abc] - như a|b|c
các kí tự được phép hoặc bị cấm (khi [a-z] - xâu chứa 1 chữ cái thường
có kí tự ^ sau dấu [). Dấu – cho phép ^[a-z] - xâu bắt đầu bằng 1 chữ cái
mô tả một khoảng. ^[^a-z] - xâu không bắt đầu bằng 1 chữ cái
- dùng mô tả một khoảng liên tục các kí
tự (chữ cái hoặc chữ số)
\ đặt trước các kí tự trùng với các kí tự \* xâu chứa dấu *
đặc biệt dùng trong biểu thức chính \{ xâu chứa dấu ngoặc {
quy (trừ mô tả trong danh sách giữa \\ xâu chứa dấu \
cặp ngoặc vuông [])
Chú ý:
- khi định nghĩa danh sách các kí tự trong cặp ngoặc [], nếu có kí tự ] thì nó phải được viết
đầu tiên trong danh sách, kí tự - phải nằm cuối danh sách (hoặc đầu tiên).
- ngoài ra, giữa cặp [] ta còn có thể định nghĩa các lớp kí tự thuộc kiểu nào đó (chữ số, chữ cái
chữ số, v.v.) với cú pháp :: . Các lớp chủ yếu được liệt kê trong bảng dưới đây.
Tên lớp Mô tả
[:alnum:] kí tự chữ cái hoặc chữ số (tương đương [A-Za-z0-9]
[:alpha:] kí tự chữ cái
[:blank:] kí tự trắng (dấu cách hoặc dấu tab)
[:ctrl:] kí tự điều khiển
[:digit:] kí tự chữ số
[:graph:] kí tự đồ họa
[:print:] kí tự in được ra màn hình (tất cả kí tự trừ các kí tự điều khiển)
[:punct:] kí tự dấu câu
[:space:] kí tự cách
[:upper:] kí tự in hoa
[:xdigit:] kí tự biểu diễn các chữ số trong hệ thập lục phân
Bộ môn Tin học 14
Khoa Toán – Cơ – Tin học
Phụ lục 4 – Cài đặt ứng dụng trong Linux
(tham khảo từ commentcamarche.net)
Một ứng dụng có thể cài đặt trên hệ thống Linux thường được cung cấp dưới các dạng sau:
- Các gói RPM: tên tệp có đuôi .rpm. Các gói này cho phép cài đặt tự động trong các phân
phối Linux như RedHat hay Mandrake
- Các gói DEB: tên tệp có đuôi .deb. Cho phép cài đặt tự động trong các phân phối Debian,
Ubuntu.
- Các tệp nén: tên tệp có đuôi .tar.gz, .gz, .tar.bz2, v.v. Trước khi cài đặt cần gỡ nén tệp.
- Gói chương trình nguồn: cần phải biên dịch các tệp này để ứng dụng chạy được trên máy.
Cài đặt các gói RPM (Red Hat Package Management):
Danh sách lệnh:
- Cài đặt một gói chương trình:
rpm –ivh .rpm
- Gỡ bỏ một gói chương trình:
rpm –e
- Cập nhật một gói chương trình:
rpm –Uvh .rpm
- Truy vấn thông tin liên quan đến các gói chương trình:
o Xem thông tin chi tiết về một gói cụ thể:
rpm -q .rpm
o Xem thông tin về tất cả các gói:
rpm -qa
o Tìm các gói chứa 1 tệp cụ thể:
rpm -f
o Xem thông tin về một gói:
rpm -p
- Kiểm tra: xác định tính toàn vẹn của gói chương trình
o Kiểm tra về 1 tệp cụ thể:
rpm -Vf
o Kiểm tra tất cả các gói:
rpm -Va
o Kiểm tra 1 gói cụ thể:
rpm -Vp
Bộ môn Tin học 15
Khoa Toán – Cơ – Tin học
Nếu không có lỗi trong gói chương trình thì sẽ không có thông báo gì. Nếu có lỗi, trên
màn hình sẽ hiện xâu kí tự cho biết các kiểu lỗi tìm được. Xâu kí tự này có thể chứa 8 kí
tự sau: D (thiết bị), G (nhóm), L (liên kết ảo), M (quyền truy nhập), T (ngày tháng của
tệp), S (kích thước tệp), U (người sử dụng).
Ngoài ra, các môi trường đồ hoạ đều cung cấp giao diện đồ hoạ để quản lý việc cài đặt ứng dụng.
Cài đặt các gói DEB:
Có thể cài đặt 1 gói chương trình có đuôi .deb bằng lệnh:
dpkg -i .deb
Trong các hệ thống Debian có tiện ích APT (Advanced Packaging Tool) để quản lí các gói phụ
thuộc và cho phép cập nhật một ứng dụng bằng cách tải cập nhật chương trình từ Internet. Tiện
ích này hoạt động từ một danh sách chỉ ra vị trí chứa các gói chương trình cần cài đặt. Danh sách
này lưu trong tệp: /etc/apt/sources.list.
Danh sách lệnh:
- Cài đặt:
apt-get install [-f]
Tuỳ chọn f (force) cho phép bỏ qua lỗi về phụ thuộc giữa các gói khi cài đặt. Tuỳ chọn
này chỉ dùng khi thực sự hiểu chắc chắn nguồn gốc lỗi phụ thuộc này.
- Mô phỏng cài đặt: Trước khi cài đặt chương trình thật sự, apt-get cho phép cài đặt mô
phỏng để người sử dụng lường được trước những vấn đề có thể xảy ra sau khi cài đặt,
cũng như biết được danh sách các gói phụ thuộc nếu có
apt-get install -s
- Gỡ bỏ một gói ứng dụng:
apt-get remove [--purge]
Nếu không có tuỳ chọn purge, các tệp cấu hình (nếu có) của gói ứng dụng vẫn được giữ
lại.
- Cập nhật danh sách các gói cần cài đặt (sau khi đã sửa trong tệp sources.list nói trên):
apt-get update
- Cập nhật lại các gói chương trình đã cài đặt:
apt-get [-u] [dist-]upgrade
Tuỳ chọn u cho phép hiển thị tên các gói được cập nhật. Tham số dòng lệnh upgrade nếu
thêm dist- ở trước cho phép kiểm tra tính nhất quán giữa các gói phụ thuộc khi cập nhật
một gói nào đó.
- Dọn dẹp: Mỗi khi cài một ứng dụng, APT tải các gói chương trình liên quan vào một thư
mục đệm và lưu giữ ở đó. Để dọn dẹp một cách an toàn các gói chương trình được sao
lưu này, có thể thực hiện lệnh:
apt-get clean
Ngoài ra, cũng có thể xoá bỏ riêng các gói không còn được bảo trì (không còn được phân
phối trên địa chỉ Internet đã cho nữa):
apt-get autoclean
- Truy vấn thông tin về các gói:
Bộ môn Tin học 16
Khoa Toán – Cơ – Tin học
o Xem danh sách các gói chứa một từ khoá cụ thể:
apt-cache search
o Xem thông tin về một gói cho trước:
apt-cache show
o Xem danh sách các gói phụ thuộc một gói nào đó:
apt-cache depends
o Tìm gói chứa 1 tệp cụ thể:
apt-file search
o Hiện danh sách các tệp trong một gói:
apt-file list
Trong các hệ thống Debian còn có phần mềm deborphan cho phép chỉ ra tất cả các thư viện
không còn dùng trong hệ thống, để người sử dụng dễ dàng tìm được các gói có thể dọn dẹp được
khỏi hệ thống.
Cũng như các hệ thống khác, các môi trường đồ hoạ Debian đều cung cấp giao diện đồ hoạ để
quản lý việc cài đặt ứng dụng.
Gỡ nén
Trong các hệ thống Unix/Linux, nhiều tệp của một chương trình có thể nhóm lại thành 1 tệp
bằng tiện ích tar. Mỗi tệp có thể nén lại nhờ tiện ích gzip (cho tên tệp nén có đuôi .gz), bzip2
(cho tên tệp nén có đuôi .bz2), compress (cho tên tệp nén có đuôi .Z).
Các lệnh gỡ nén như sau:
- Tệp .tar:
tar xvf .tar
- Tệp .gz:
gunzip .gz
- Tệp .bz2:
bzip2 -d .bz2
- Tệp .tar.gz (nhiều tệp gộp lại bằng tar rồi được nén bằng gzip):
tar zxvf .tar.gz
- Tệp .tar.bz2 (nhiều tệp gộp lại bằng tar rồi được nén bằng gzip):
tar jxvf .tar.bz2
- Tệp .Z :
uncompress .Z
Biên dịch gói chương trình nguồn
Phần lớn các phần mềm được cung cấp mã nguồn đều được biên dịch và cài đặt cùng một kiểu.
Tuy nhiên cần đọc kĩ tệp INSTALL hoặc README để chắc chắn về cách cài đặt không có gì
khác với thông lệ.
Bộ môn Tin học 17
Khoa Toán – Cơ – Tin học
Quy trình biên dịch và cài đặt thông thường:
- Chuyển đến thư mục chứa mã nguồn chương trình
- Chạy chương trình configure cho phép đặt cấu hình phù hợp với máy:
./configure
- Xác định thư mục sẽ cài ứng dụng vào:
./configure --prefixe=""
- Biên dịch chương trình bằng lệnh:
make
- Cài đặt chương trình vào thư mục đã chỉ ở trên, hoặc nếu không thì trong thư mục
/usr/local/:
make install
- Trường hợp có lỗi trong quá trình biên dịch, trước khi biên dịch mới cần xoá bỏ các tệp
makefile đã được tạo tự động khi biên dịch:
make clean
Bộ môn Tin học 18