12
Bài tập thực hành Linux (Red Hat) Quản trị hệ thống tập tin B1. So sánh kết quả khi thực hiện 2 lệnh sau: tree /etc | more ls -R /etc | more B2. Chuyển vào thư mục /etc/init.d, so sánh và giải thích kết quả của lệnh pwd pwd -P B3. 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 ~ B4. Thực hiện hai lệnh sau, giải thích kết quả: ls -l /dev/lo? ; ls -l /dev/init* ; ls -l /dev/fd? B5. Chuyển vào thư mục /etc 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 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 Các tập tin có mầu white, blue, green, cyan, orange có kiểu gì? B6. 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 mkdir /a /a/b /a/b/c mkdir -p /a/b/c/d/e/f B7. So sánh và giải thích kết quả khi thực hiện: cat taptinkhongco && mkdir -p /a1/b1/c1 ; ls / | grep a1 cat taptinkhongco ; mkdir -p /a2/b1/c1 ; ls / | grep a2 B8. So sánh và giải thích kết quả khi thực hiện: echo "line1" echo "line1">abc.txt ; echo "line2">abc.txt ; echo "line3">abc.txt

Linux-BaiTap

Embed Size (px)

Citation preview

Page 1: Linux-BaiTap

Bài tập thực hành Linux (Red Hat)

Quản trị hệ thống tập tin

B1. So sánh kết quả khi thực hiện 2 lệnh sau:

tree /etc | morels -R /etc | more

B2. Chuyển vào thư mục /etc/init.d, so sánh và giải thích kết quả của lệnh pwd và pwd -P

B3. 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 ~

B4. Thực hiện hai lệnh sau, giải thích kết quả:

ls -l /dev/lo? ; ls -l /dev/init* ; ls -l /dev/fd?

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

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

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

Các tập tin có mầu white, blue, green, cyan, orange có kiểu gì?

B6. 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

mkdir /a /a/b /a/b/c

mkdir -p /a/b/c/d/e/f

B7. So sánh và giải thích kết quả khi thực hiện:

cat taptinkhongco && mkdir -p /a1/b1/c1 ; ls / | grep a1

cat taptinkhongco ; mkdir -p /a2/b1/c1 ; ls / | grep a2

B8. So sánh và giải thích kết quả khi thực hiện:

echo "line1"

echo "line1">abc.txt ; echo "line2">abc.txt ; echo "line3">abc.txt

echo "line1">abc.txt ; echo "line2">>abc.txt ; echo "line3">>abc.txt

B9. So sánh và giải thích kết quả khi thực hiện:

cat taptinkhongco > abc1.txt

cat taptinkhongco 2> abc1.txt

Page 2: Linux-BaiTap

B10. Thực hiện và giải thích câu lệnh để:

- tạo lần lượt các tập tin hay thư mục có tên abc, a*, a?, -a

- xóa lần lượt từng tập tin/thư mục trên

B11. Sử dụng trình soạn thảo vi để soạn thảo tập tin có tên file1.txt có nội dung tùy ý, thí dụ như sau:

# Add this to the auth_param section of squid.conf

auth_param basic program /usr/lib/squid/ncsa_auth 

# Add this to the bottom of the ACL section of squid.conf

acl ncsa_users proxy_auth REQUIRED

# Add this at the top of the http_access section of squid.conf

http_access allow ncsa_users

B12. Thực hiện các lệnh thêm, xóa, sửa, sao chép, tìm kiếm, thay thế trong tập tin file1.txt và sau đó ghi lại với tên file2.txt

B13. Thực hiện các lệnh cmp và diff (với các lựa chọn khác nhau) để so sánh nội dung của hai tập tin file1.txt và file2.txt. So sánh và giải thích các kết xuất thu được.

B14. Thực hiện lệnh sau:

mkdir -p /s1/s2 ; cd /s1/s2 ; echo > a.txt ; cp -s a.txt soft.txt

So sánh kết quả và giải thích khi thực hiện 2 lệnh:cd /s1/s2 ; cp soft.txt ../soft1.txt cp -d soft.txt ../ soft2.txt ; ls -l ../

B15. Thực hiện và giải thích kết quả:

mkdir -p /s2/s2 ; cd /s2/s2 ; echo > a.txt ; cp -s a.txt s1.txt ; cp -s /s2/s2/a.txt soft2.txt ; ls -l

cp -d soft1.txt ../ ; cp -d soft2.txt ../ ; ls -l

B16. Dùng lệnh ls -l để xác địch kích thước của 2 tập tin file1.txt và file2.txt.Giải thích kết quả khi thực hiện lệnh du -h file?.txt

B17. Giải thích kết quả khi thực hiện lệnh df -h

B18. Tạo các tập tin liên kết, các thủ tục sao chép, di chuyển, tìm kiếm ...

B19. Dùng lệnh fdisk -l để xem thông tin về các ổ đĩa. Tiến hành chia ổ đĩa /dev/sdb thành 2 partition (lệnh fdisk) và định dạng (lệnh mkfs) những partition mới tạo.

B20. Thực hiện tuần tự, giải thích và so sánh kết xuất của các lệnh sau:

cat /etc/mtab

Page 3: Linux-BaiTap

mount /dev/sdb1 /nondir

mount /dev/sdb1 /mnt && cat /etc/mtab

umount /dev/sdb1 && cat /etc/mtab

B21. Thực hiện tuần tự, giải thích và so sánh kết xuất của các lệnh sau:

mount /dev/sdb1 /mnt ; echo "sdb1" > /mnt/abc.txt ; ls /mnt

mount /dev/sdb2 /mnt ; ls /mnt

cd /mnt ; umount /mnt

cd ~ ; umount /mnt ; ls /mnt

B22. Sửa tập tin /etc/fstab để khai báo mount tự động hai partition /dev/sdb1 vào /mnt/sdb1 với quyền rw và /dev/sdb2 vào /mnt/sdb2 với quyền ro. Thực hiện truy xuất các thư mục /mnt/sdb1 và /mnt/sdb2 để kiểm chứng.

Quản trị tài khoản

B1. Thực hiện, giải thích câu lệnh và kết quả của từng lệnh dưới đây. Sau khi thực hiện mỗi lệnh, kiểm tra nội dung của các tập tin /etc/passwd, /etc/shadow, /etc/group và thư mục /home xem có những thay đổi gì?

useradd UserA

useradd 123user

useradd -u 0 -o useradmin

useradd -G groupa,groupb,groupc userb

useradd -G root,apache userc

useradd -g groupc userd

B2. Thực hiện và giải thích ý nghĩa câu lệnh dưới đây, sau đó khảo sát tập tin /etc/group xem có những thay đổi gì?

groupadd groupa && groupadd groupb && groupadd -g 0 -o groupc

B3. Thực hiện lại bài B1. Sau đó xem lại thông tin tài khoản bằng lệnh id tentaikhoan.

B4. Giải thích kết quả khi thực hiện thủ tục: chuyển sang tty3 và đăng nhập với quyền tài khoản userc.

B5. Sử dụng lệnh passwd để gán mật mã truy nhập cho các tài khoản useradmin, userb, userc. Khảo sát tập tin /etc/passwd và /etc/shadow xem có những thay đổi gì?

Page 4: Linux-BaiTap

B6. Thực hiện các thủ tục sau, tìm sự khác nhau của kết quả và giải thích:

Đăng nhập với quyền tài khoản useradmin (tại tty4)

Đăng nhập với quyền tài khoản userb (tại tty5)

Đăng nhập với quyền tài khoản userc (tại tty6)

B7. Tạo tài khoản có tên 123user. Đánh giá kết quả.Tạo tài khoản user, mở tập tin /etc/passwd và /etc/shadow sửa tên user thành 123user. Sau đó gán mật mã cho 123user. Đánh giá kết quả.

B8. Thực hiện lần lượt:

Khóa tài khoản userb. Tìm sự thay đổi trong /etc/shadow

Mở khóa tài khoản userb. Tìm sự thay đổi trong /etc/shadow

Xóa mật mã tài khoản userb. Tìm sự thay đổi trong /etc/shadow

B9. Thực hiện sửa nội dung trong /etc/shadow, (và đăng nhập lại để kiểm chứng) để

Khóa tài khoản userc.

Mở khóa tài khoản userc.

Xóa mật mã tài khoản userc.

B10. Thực hiện thay đổi các thông tin (UID, GID, home dir, shell) tài khoản userd bằng lệnh usermod. Mở các tập tin /etc/passwd, /etc/shadow, /etc/group, và đăng nhập lại với quyền userd (nếu cần) để kiểm chứng.

B11. Thực hiện thay đổi nội dung tập tin /etc/login.defs và /etc/default/useradd, sau đó tạo tài khoản có tên userx. So sánh thông tin tài khoản userx với tài khoản usera$.

Quyền tập tin

B1. Tạo thư mục /baitap và tập tin /baitap/abc.txt (nội dung bất kỳ). Xác định nhóm, chủ nhân và quyền của thư mục, tập tin vừa tạo?

B2. Xem quyền mặc định khi tạo tập tin bằng lệnh umask -S. Thực hiện thay đổi quyền mặc định khi tạo tập tin, sau đó tạo tập tin abc1.txt và thư mục tm1 (trong /baitap) để kiểm chứng.Cho nhận xét về quyền của tập tin mới tạo khi quyền mặc định có quyền x.

B3. Dùng lệnh chmod để thay đổi lại quyền cho các tập tin trong /baitap, sử dụng cả phương pháp tượng trưng và tuyệt đối (dùng lệnh ls -l để kiểm chứng kết quả)

B4. Thực hiện tuần tự và giải thích

chmod 700 /baitap/abc.txt. Đăng nhập với quyền userb, và mở xem tập tin /baitap/abc.txt. Cho biết kết quả?

Đổi chủ nhân tập tin abc.txt thành userb. Đăng nhập với quyền userb, và truy xuất tập tin /baitap/abc.txt. Cho biết kết quả?

Đăng nhập với quyền userd, và truy xuất tập tin /baitap/abc.txt. Cho biết kết quả?

Page 5: Linux-BaiTap

Thực hiện lệnh chmod 755 /baitap/abc.txt && chown :groupc /baitap/abc.txt. Đăng nhập với quyền userd, và truy xuất tập tin /baitap/abc.txt. Cho biết kết quả?

B5. Thực hiện và giải thích

Lệnh mkdir /baitap2 ; chmod 777 /baitap2

Đăng nhập với quyền userb, tạo một tập tin có tên “tap tin cua b.txt” trong /baitap2.

Đăng nhập vói quyền userc, thực hiện sửa, xóa tập tin do userb tạo. Cho biết kết quả.

Thực hiện lệnh chmod 1777 /baitap2 ; ls -l /baitap2. Kết quả?

Đăng nhập với quyền userb, tạo một tập tin có tên “tap tin 2 cua b.txt” trong /baitap2.

Đăng nhập vói quyền userc, thực hiện sửa, xóa tập tin do userb tạo. Cho biết kết quả.

B6. Tạo một symbolic link cho một tập tin bất kỳ. Tiến hành thay đổi quyền của symbolic link mới tạo này. Cho biết kết quả.

Tiến trình

B1. Xem danh sách tiến trình bằng các lệnh top và ps -aux. Khảo sát kết quả.

B2. Thực hiện

Tại tty1 (Alt-F1), thi hành lệnh ps -aux | grep tty

Đăng nhập vào quyền root tại tty5 (Alt-F5) và tty6 (Alt-F6).

Tại tty1 (Alt-F1), thi hành lệnh ps -aux | grep tty. Cho biết kết quả

Tại tty1, thực hiện kết thúc tiến trình bash tại tty5 và tty6 bằng lệnh kill. Chuyển sang tty5 và tty6 xem kết quả.

B3. Thực hiện lệnh kill -9 1. Cho biết kết quả, nguyên nhân

B4. Thực hiện tuần tự các lệnh, giải thích ý nghĩa và kết quả

/etc/rc.d/init.d/httpd stop ; ps -aux | grep httpd ; service httpd status

service httpd start ; ps -aux | grep httpd ; /etc/rc.d/init.d/httpd status

B5. Thực hiện tuần tự, giải thích ý nghĩa và kết quả

chkconfig --list | more chkconfig --list httpd chkconfig --delete httpd ; ls /etc/rc[0-6].d | grep httpd chkconfig --add httpd ; ls /etc/rc[0-6].d | grep httpd chkconfig --list httpd && chkconfig --levels 2345 httpd on ;

chkconfig --list httpd ; ls /etc/rc[0-6].d | grep httpd

init 1 , sau đó dùng lệnh ps -aux | grep httpd

Page 6: Linux-BaiTap

init 3, sau đó dùng lệnh ps -aux | grep httpd killall -9 httpd ; ps -aux | grep httpd

B6. Mở tập tin /etc/inittab, tìm đến dòng id:3:initdefault và sửa số 3 thành số 1. Khởi động lại máy bằng lệnh reboot. Hãy cho biết kết quả.

B7. Thực hiện thay đổi mức thi hành khi khởi động linux và tại lời nhắc của shell.

B8. Dùng lệnh crontab -e để tạo lịch thi hành có nội dung dưới đây.

* * * * * echo "hello" ; date >> /lich.txt 30 4-10 2 7,10 * echo "lenh thi hanh luc `date`" > /lich2.txt

Cho biết kết quả và giải thích.

B9. Đăng nhập với quyền userb, lập lịch có nội dung dưới đây và kiểm tra kết quả thực hiện

* * * * * echo "hello" ; date >> /lichcuaB.txt

B10. Thực hiện tuần tự các bước dưới đây. Kiểm tra và giải thích kết quả

- Tại quyền của tài khoản root, thi hành lệnh echo > /etc/cron.allow. Tại quyền của usera thực hiện lệnh crontab -e để tạo lịch. Cho biết kết quả và giải thích.

- Tại quyền của tài khoản root, thi hành lệnh mv -f /etc/cron.allow /etc/cron.deny. Tại quyền của usera thực hiện lệnh crontab -e để tạo lịch. Cho biết kết quả và giải thích.

- Tại quyền của tài khoản root, thi hành lệnh echo "usera" > /etc/cron.allow. Tại quyền của usera thực hiện lệnh crontab -e để tạo lịch. Cho biết kết quả và giải thích.

- Tại quyền của tài khoản root, thi hành lệnh echo "usera" > /etc/cron.deny. Tại quyền của usera thực hiện lệnh crontab -e để tạo lịch. Cho biết kết quả và giải thích.

B11. Thực hiện tuần tự các bước dưới đây. Kiểm tra và giải thích kết quả

Dưới quyền của root, tạo tập tin /etc/cron.allow, trong đó chứa dòng userc

Dưới quyền userb, thực hiện lệnh crontab -e, sửa lịch đã có của userb

Dưới quyền userc, thực hiện lệnh crontab -e để tạo lịch cho userc

Xem nội dung có trong thư mục /var/spool/cron

Dưới quyền của root, tạo tập tin /etc/cron.deny, trong đó chứa dòng userc

Dưới quyền userc, thực hiện lệnh crontab -e, sửa lịch đã có của userc

Dưới quyền root, xóa tập tin /etc/cron.allow. Dưới quyền userb, thực hiện lệnh crontab -e, sửa lịch đã có của userb

B12. Thực hiện tuần tự các lệnh dưới đây. Giải thích kết quả

vi a.txt & vi b.txt & vi c.txt &

Page 7: Linux-BaiTap

jobs fg %2 thoát khỏi vi và thi hành lại lệnh jobs

thi hành: cat /dev/* 2> /dev/null, sau đó nhấn ngay Ctrl-Z và thi hành lệnh bg và lệnh jobs

Nén, lưu trữ, cài đặt ứng dụng

B1. Thực hiện các lệnh, cho biết kết quả và giải thích

mkdir -p /bt/nen/tm1/tm2 ; cd /bt/nen ; echo "hello" > a.txt ; echo "hello" > tm1/b.txt ; echo "hello" > tm1/tm2/c.txt ; treegzip -rd * ; treegzip -rd * ; treebzip2 * ; tree ; bzip2 -d *bzip2 -k * ; tree

B2. Thực hiện tuần tự, cho biết kết quả, so sánh và giải thích:

cd /tmp ; tar -cf etc.tar /etc

tar -czf etc.tgz /etc ; ls -l | grep etc.

tar -tf etc.tgz

tar –tzf etc.tgz

tar –xjf etc.tgz

tar –xzf etc.tgz

B3. Thực hiện các lệnh sau, giải thích và cho biết kết quả:

rpm -qa rpm -q httpd rpm -q -f /etc/named.conf rpm -q libstdc++-devel

B4. Thực hiện cài đặt các ứng dụng trong có trong thư mục /Software.

B5. Thực hiện:

(sau khi đã cài libstdc++-devel) Tiến hành xác định danh sách các tập tin của ứng dụng này (lệnh rpm –ql libstdc++-devel)

Thi hành lệnh rpm –V libstdc++-devel và giải thích kết xuất có được sau khi đã thực hiện:

- xóa một tập tin,

- thay đổi chủ nhân một tập tin,

- thay đổi nội dung của một tập tin bất kỳ của gói ứng dụng này.

Page 8: Linux-BaiTap

Thi hành lệnh và giải thích: rpm –e libstdc++-devel && rpm –q libstdc++-devel

Shell script

B1. So sánh và giải thích kết quả 3 lệnh sau

cd /tmp ; ls ~+ ls `pwd` cd ~ ; ls ~-

B2. So sánh và giải thích kết quả 3 lệnh sau (chú ý đến các dấu nháy)

x=flower ; echo 'ma thoat (exit code) la: $?' x=flower ; echo "ma thoat (exit code) la: $?" rm /tmp ; echo "ma thoat (exit code) la: $?" echo "today is `date`" echo "so nhieu la: $xs" echo "so nhieu la: ${x}s" c=0123456789 ; echo "chieu dai: ${#c}" ; echo "chuoi con: ${c:5}" ;

echo "chuoi con: ${c:5:3}"

B3. Thực hiện:

Viết script nhập vào 2 số (dạng đối số dòng lệnh) và tính tổng

Viết script tìm số lớn nhất trong 3 số được nhập từ dòng lệnh

Viết script in ra 5, 4, 3, 2, 1 sử dụng while

Viết script thực hiện các phép toán cơ bản được nhập từ dòng lệnh (thí dụ: ./q4 20 / 3 )

Viết script hiển thị ngày giờ, người dùng và thư mục hiện hành

Viết script in ra chuỗi theo thứ tự ngược (vd: 123 à 321)

Viết script tính tổng các ký số của một số được nhập vào

Viết script để xác định một tập tin có tồn tại hay không

Viết script để xác định xem đối số dòng lệnh có chứa ký tự * hay không, nếu không có thì thêm * vào ( vd /bin/* )

Viết script để hiển thị nội dung trong phạm vi những dòng xác định ( vd ./q13 5 5 file - hiển thị dòng 5-10 của file)

Viết script để in ra

Page 9: Linux-BaiTap
Page 10: Linux-BaiTap