Upload
api-3772477
View
521
Download
2
Embed Size (px)
Citation preview
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
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
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ì?
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ả?
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
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 &
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.
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