Bài tập về linux

TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
-----  -----

THỰC HÀNH HỆ
ĐIỀU HÀNH LINUX
GVHD: Mai Cường Thọ
SV: Võ Xuân Vương
Lớp: 7TH1

Nha Trang, ngày 13, tháng 4 năm 2018

Thực hành Linux – Phần 1 – K57 -NTU

Bài 1. Bài tập về lệnh cat, touch, more, less
* Lệnh touch dùng để làm gì? Lệnh cat có mấy công dụng. Thực hiện các chức năng
của chúng. (xem thêm trang 72 và 78 trong sách “Fundamentals of Linux”).
- Lệnh touch dùng để tạo file mới.
vd: touch Desktop/NoidungA.txt để tạo file text mới ở Desktop có tên NoidungA
- Lệnh cat có 3 công dụng:
+ Hiển thị nội dung một tập tin ra màn hình
vd: cat Desktop/NoidungA.txt
+ Hiển thị nội dung nhiều tập tin
vd: cat Desktop/NoidungA.txt Desktop/NoidungB.txt
+ Nối nội dung nhiều tập tin (Nếu nối 1 tập tin thì coi như copy)
vd: cat Desktop/NoidungA.txt Desktop/NoidungB.txt > Desktop/AB.txt
* Thực hiện các ví dụ của lệnh more và less (xem thêm trong sách “Fundamentals of
Linux” và các sách tham khảo khác).
cd /media/louis/HOCTAP/Linux/BuoiTH3_Python/Bai4
more QuanLySV.py

less QuanLySV.py

1

Thực hành Linux – Phần 1 – K57 -NTU

Bài 2. Bài tập về wc và sort
* Hiển thị số lượng các từ trong một file text.
* Hiển thị số dòng trong một file text.
* Hiển thị số ký tự trong một file text.
* Hiển thị danh sách các file trong thư mục /usr/bin và sắp sếp kết quả trả lại theo thứ
tự giảm dần / tăng dần.
* Hiển thị số lượng các file trong một thư mục cụ thể nào đó (ví dụ : /etc). Gợi ý : sử
dụng cơ chế ống lệnh (pipe)

2

Thực hành Linux – Phần 1 – K57 -NTU

Bài 3. Bài tập về lệnh head, tail
* Dùng lệnh cat xem /etc/passwd rồi copy tập tin passwd sang /mydir/mypasswords.txt
cat /etc/passwd
cp /etc/passwd mydir/mypasswords.txt
* Dùng lệnh head cho biết thông tin về 3 user đầu trong mypasswords.txt
head -3 mydir/mypasswords.txt
* Dùng lệnh tail cho biết thông tin về 3 user cuối trong mypasswords.txt 
tail -3 mydir/mypasswords.txt
* Lệnh nào trong ba lệnh trên cho ta biết thông tin từ user thứ 4 cho đến hết.

Lệnh tail: tail -n +4 mydir/mypasswords.txt
* Cho biết thông tin của user thứ 4 đến user thứ 15.
head -15 mydir/mypasswords.txt | tail -12
* Sử dụng lệnh wc cho thích hợp để cho biết tổng số user trong mypassword.txt
wc -l mydir/mypasswords.txt

Bài 4. Thực hiện theo thứ tự các yêu cầu sau
1. Chuyển vào thư mục /etc/init.d
cd /etc/init.
- So sánh và giải thích kết quả của lệnh pwd và pwd –P
pwd sẽ cho ra kết quả: /etc/init.d , pwd –P sẽ cho ra kết quả: /etc/rc.d/init.d
Thư mục /etc/init.d -> được liên kết mềm đến /etc/rc.d/init.d
lệnh pwd: xem đường dẫn hiện hành
lệnh pwd -P: Xem đường dẫn đến thư mục liên kết
2. So sánh và giải thích kết quả khi thực hiện các nhóm lệnh sau:
cd / && pwd && cd -P /etc/init.d && pwd
&& cd cd / && pwd && cd -L /etc/init.d && pwd && cd ~
- Lệnh cd -L : Buộc theeo các liên kết tượng trưng. Đây là một liên kết
tượng trưng đến một thư mục, nó sẽ chuyển vào thư mục mà liên kết tượng trưng trỏ
đến.
- Lệnh cd -P : Sử dụng cấu trúc thư mục vật lý. Chỉ thay đổi vào thư mục
được chỉ định nếu nó thực sự tồn tại như được đặt tên.
- cd và cd ~: Tuy cú pháp khác nhau nhưng có chức năng trở về thư mục home.
3

Thực hành Linux – Phần 1 – K57 -NTU

3. Chuyển vào thư mục /etc
cd /etc/

4. So sánh và giải thích kết quả của các lệnh ls, ls -i, ls -l, ls -a, ls –ila.
5. Thực hiện hiển thị kết xuất từng lệnh trên theo từng trang màn hình
- Lệnh ls dùng để lấy danh sách tất cả các file và thư mục trong thư mục hiện hành.

- Lệnh ls -i: Hiển thị inode của các tập tin

4

Thực hành Linux – Phần 1 – K57 -NTU

- Lệnh ls -l: Hiển thị thông tin chi tiết (long format) của các tập tin và thư mục

- Lệnh ls -a: Hiển thị tất cả tập tin kể cả tập tin ẩn

5

Thực hành Linux – Phần 1 – K57 -NTU

- Lệnh ls -ila: Hiển thị chi tiết các thông tin của các tập tin

6. Các tập tin có mầu white, blue, green, cyan, orange có kiểu gì?
- white: file văn b hoặc không phải tên f
- blue: Thư mục
- green: File dữ liệu thực thi hoặc được nhận dạng
- cyan(lục lam): File âm thanh
- orange: File nén
7. Giải thích kết quả khi thực hiện các lệnh
mkdir /a/b/c/d/e/f/g/h

- Tạo thư mục con bên trong các thư mục được ghi tính từ trái sang phải. Tuy nhiên
lệnh trên không tạo được nếu /a/b/c/d/e/f/g không tồn tại trước đó, còn nếu đã có sẽ
tạo được thư mục con /h bên trong
mkdir /a /a/b /a/b/c
- Lệnh này tạo thư mục nhưng thực hiện tuần tự, do đó sẽ tạo lần lượt từ trái sang phải
mkdir -p /a/b/c/d/e/f
- Giống như lệnh đầu tiên nhưng do có tùy chọn -p nên sẽ kiểm tra thư mục cha có
tồn tại chưa nếu chưa sẽ tạo thư mục cha đó.

6

Thực hành Linux – Phần 1 – K57 -NTU

Bài 5. Thực hiện theo thứ tự các yêu cầu sau
1. Login in Linux OS, sau đó sử dụng các lệnh sau : date, pwd, ls, who, su, cal, cat,
more, head, tail.

7

Thực hành Linux – Phần 1 – K57 -NTU

2. Sử dụng lệnh cat để tạo ra file với tên file là : thegioimang.txt. Nhập nội dung file
thegioimang.txt như sau :
“Chào mừng các bạn đến với diễn đàn Mạng Máy Tính –
wWw.TheGioiMang.oRg. Nơi giao lưu trao đổi và chia sẻ các kiến thứ Mạng Máy
Tính nói riêng và CNTT nói chung .
Chúc các bạn thành công và hạnh phúc !!!”

3. Tạo ra cây thư mục như sau :

8

Thực hành Linux – Phần 1 – K57 -NTU

3. Copy file thegioimang.txt vào trong các thư mục : class1,class2,class3 and class4.

- Tạo thêm 2 file mới bất kì với nội dung trống (dùng lệnh touch). Sau đó copy nó qua
class5 và class6.

- Sử dụng lệnh pwd

4. Xóa file thegioimang.txt trong class1, class3
rm -rf athena/class1/thegioimang.txt athena/class3/thegioimang.txt
5. Di chuyển ccna qua ccnp và Linux qua ceh
mv athena/class3/Linux/ athena/class4/ccna/ athena/class6/ceh/
6. Copy nội dung của thư mục ceh vào bên trong thư mục ccnp
cp -r athena/class6/ceh/. athena/class5/ccnp
7. Tạo ra các liên kết cứng (hard link) và liên kết mềm (symbol link) giữa file
thegioimang.txt và các file trống vừa tạo ở trên
ln thegioimang.txt file1.txt
ln -sf file1.txt thegioimang.txt
ln -sf file2.txt thegioimang.txt
8. Xóa các liên kết cứng và liên kết mềm
rm hardlink
find -type l -delete
9

Thực hành Linux – Phần 1 – K57 -NTU

9. Tổng hợp lại các lệnh và cho nhận xét về các lệnh đó
Các lệnh trên giúp người dùng thao tác với file dễ dàng, có nhiều tùy chọn như di
chuyển, xóa, c cùng lúc nhiều file chỉ bằng một câu lệnh.

Bài 6. Thực hiện các thao tác sau
1. Cho biết thư mục HOME của mình (user’s home directory)
cd
pwd
2. Giả sử đang ở thư mục HOME của bạn, hãy cho biết đường dẫn tương đối để đến
thư mục /etc
cd /etc/
3. Cho biết lệnh dùng để chuyển sang thư mục /usr/lib
cd /usr/lib
4. Cho biết lệnh dùng để liệt kê tất cả file và thư mục ở thư mục HOME
ls ~
5. Cho biết lệnh dùng để liệt kê tất cả file và thư mục kể cả thư mục con ở thư mục
HOME, xem kết quả này từng trang.
ls -la | more
6. Cho biết lệnh tạo alias là lietke tương đương với lệnh “ls –l”
alias lietke='ls -l'
7. Yêu cầu như câu trên nhưng kết quả được lưu vào file home.list
alias lietke='ls -l >> home.txt'
8. Cho biết lệnh dùng để đổi tên file home.list trên thành homelist.txt
mv home.txt homelist.txt
9. Cho biết lệnh tạo thư mục linux2002 trong thư mục HOME
mkdir ~/linux2002
10. Cho biết lệnh để copy file homelist.txt ở trên vào thư mục linux2002

cp homelist.txt linux2002/
11. Cho biết lệnh liệt kê tất cả các file trong thư mục /etc bắt đầu bằng b, k, n
ls -d /etc/[bkn]*

10

Thực hành Linux – Phần 1 – K57 -NTU

12. Cho biết lệnh liệt kê tất cả các file trong thư mục /etc bắt đầu bằng các ký tự từ m
đến t (m-t)
ls /etc/[m-t]*
13. Cho biết lệnh liệt kê tất cả các file trong thư mục /etc có ký tự thứ hai là h
ls /etc/?h*
14. Cho biết lệnh liệt kê tất cả các file trong thư mục /etc có ký tự kế cuối cùng là a
ls /etc/*a?
15. Cho biết lệnh liệt kê tất cả các file trong thư mục /etc bắt đầu bằng ký tự từ a-e và
không bắt đầu bằng b, c
ls /etc | grep ^[a-e] | grep ^[^bc]
16. Cho biết lệnh tạo file “-myfile” trong thư mục HOME dùng touch hoặc cat
touch ~/-myfile
17. Cho biết lệnh xoá file “-myfile” đã tạo ở trên
rm ./-myfile
18. Tạo các file “hello ”, “hello?” và “hello*” trong thư mục linux2002. Cho biết lệnh
liệt kê quyền truy cập của từng file kể trên (mỗi lệnh chỉ liệt kê cho 1 file)
touch -- linux2002/"hello "
chmod 000 linux2002/"hello "
touch – linux2002/"hello?"
chmod 777 linux2002/"hello?"
touch – linux2002/"hello*"

chmod 764 linux2002/"hello*"
19. Cho biết lệnh liệt kê nội dung thư mục /boot, kết quả được sắp xếp theo thứ tự
ngược (zZ-aA) và lưu kết quả này vào file bootlist.txt trong thư mục HOME
mkdir HOME && ls -r /boot > HOME/bootlist.txt
20. Cho biết lệnh in ra các thông tin của user sv trong file /etc/passwd
grep sv /etc/passwd
21. Cho biết lệnh in ra tất cả các dòng trong file /etc/passwd có chứa chuỗi
/bin/bash
grep /bin/bash /etc/passwd

11

Thực hành Linux – Phần 1 – K57 -NTU

22. Cho biết lệnh in ra tất cả các dòng trong file /etc/passwd không chứa chuỗi
/bin/false
grep -v /bin/bash /etc/passwd
23. Cho biết giá trị số octal tương ứng với các quyền truy cập
rwxr-xr-x : 755
r-xrwxrw- : 576
rw-r--r-- : 644
24. Cho biết lệnh đổi quyền truy cập tất cả các file “.ttf” trong thư mục HOME sao
cho chỉ owner có quyền đọc ghi và group có quyền đọc.
chmod u=rw,g=r *.ttf
25. Tạo một thư mục trong thư mục HOME. Bỏ tất cả quyền thực thi trên thư mục và
cd vào thư mục này. Cho biết lỗi xảy ra, từ đó giải thích ý nghĩa quyền thực thi đối với
thư mục.
Quyền thực thi đối với thư mục quan trọng cho việc bảo mật dữ liệu. Khi ta bỏ mọi
quyền truy cập hiển nhiên ta không thể truy cập vào thư mục đó. Và cũng là cách

nhanh nhất để phân quyền cho tất cả các file bên trong thư mục.
26. Cho biết đường dẫn đầy đủ của lệnh startx và lệnh dùng để lấy thông tin đó
Path: /usr/bin/startx
command: whereis -b startx
27. Cho biết lệnh để xem 20 dòng cuối của file /etc/services. Tương tự cho 20 dòng
đầu.
tail -20 /etc/services
head -20 /etc/services
28. Cho biết lệnh xem các user hiện đang login vào hệ thống
who
29. Cho biết lệnh tạo archive linux2002.tar.gz với nội dung là toàn bộ thư mục
linux2002 trong thư mục HOME
tar -czvf linux2002.tar.gz ~/linux2002

12

Thực hành Linux – Phần 1 – K57 -NTU

30. Cho biết ý nghĩa và các tuỳ chọn thường dùng của các lệnh sau: clear, cut, uniq,
tr, wc, file, du, df, date, cal, dirname, basename, uname, tee, whereis, whatis,
locate
- clear: Xóa màn hình Terminal
- cut: Cắt, trích xuất nội dung file theo cột
- uniq: Loại bỏ các dòng chữ giống nhau
- tr: Chuyển đổi các ký tự
- wc: Đếm số dòng, số từ hay số byte của một tập tin
- file: Xác định loại tập tin
- du: Tính toán kích thước tập tin, thư mục và không gian đĩa
- df: Tương tự lệnh du

- date: Làm việc với ngày giờ
- cal: Xem lịch
- dirname, basename: Cho một biến có chứa 1 string dạng đường dẫn đến 1 thư mục
D hoặc 1 file X, lệnh basename sẽ trả về đúng tên thư mục D hoặc tên file X, conf
lệnh dirname sẽ trả về đường dẫn đến thư mục mẹ của D hoặc X
- uname: Xem phiên bản hạt nhân
- tee: Đọc nội dung từ STDIN và xuất STDOUT và ghi vào file
- whereis: xác định vị trí lưu trữ các binary file, source code, manual page của 1
chương trình trên máy tính
- whatis: Hiển thị mô tả về câu lệnh
- locate: Tìm kiếm thông tin nhanh

13