Trong Linux để đơn giản hóa công việc, chúng ta có thể soạn thảo các kịch bản (shell script), tiện ích phục vụ công việc giúp cho việc quản trị hệ thống mạng trở nên nhẹ nhàng hơn.
1. Shell script
- Dùng soạn thảo các kịch bản, tiện ích phục vụ công việc quản trị hệ thống mạng.
- Nội dung shell script
– Các biến
– Các lệnh điều khiển (if, case)
– Vòng lặp (for, while)
2. Sử dụng biến
– Xem biến môi trường
#env
– Thiết lập biến môi trường
#export ten=”oktot”
#echo $ten //xem lại biến vừa thiết lặp
#echo $PATH //xem đường dẫn của biến
#unset ten //xóa biến
– Biến do người dùng tạo ra:
Không cần khai báo biến
Phân biệt chữ in và chữ thường
Gán giá trị cho biến
#tuoi=20
#echo ‘Chao $ten, tuoi cua bạn là: $tuoi ‘
echo: in ra màn hình thông báo
‘ ’: in nguyên văn
#echo “`clear` chao $ten, tuoi cua ban la: $tuoi”
Tham số:
-n: in không xuống dòng
-e: xử lý ký tự đặc biệt
\t: tab
\n: xuống dòng
\r: về đầu dòng
\v: tab đứng
– Ví dụ
3. Nhập giá trị cho biến
– Ví dụ
#echo $ten
#echo $ten
#read -n1 -p “Ban muon tiep tuc khong (Y/N): ” ans
4. Biểu thức tính toán
#expr 10 – 3
#expr 10 \* 3
#expr 10 / 3
#expr 10 % 3
– Ví dụ: viết một đoạn chương trình nhập vào 2 số, in ra tổng, hiệu, tích, thương
#vi vd1
read -p “Nhap vao so a: ” a
read -p “Nhap vao so b: ” b
tong=`expr $a + $b`
echo -e “\t Tong: $a + $b = $tong”
hieu=`expr $a – $b`
echo -e “\t Hieu: $a – $b = $hieu”
tich=`expr $a \* $b`
echo -e “\t Tich: $a * $b = $tich”
thuong=`expr $a / $b`
echo -e “\t Thuong: $a \ $b = $thuong”
5. Logon script
– /etc/profile: là file chứa script logon thực thi cho tất cà user trên hệ thống
– Tạo user nv1/123, nv2/123
– Ví dụ:
Cuối file thêm 1 dòng có nội dung mc
#date –s “12/2/2016 8:30”
#date +%d //trả ra ngay trong tháng
#date +%m
#date +%y
#echo “Hom nay ngay `date +%d` thang `date +%m` nam `date +%y`”
#vi /etc/profile
6. Soạn thảo banner
Tạo banner hiển thị khi user đăng nhập vào hệ thống
– Tạo banner
#vi /etc/banner
echo “***************************************”
echo –e “\n\t\t website oktot”
echo –e “\t\t Dia chỉ: TpHCM”
echo –e “\t\t Tieu chi: Free, chia se kien thuc cho moi nguoi”
echo –e “\t\t Ban dang login bang user `who` ”
– Cho banner hoạt động khi user login
#vi /etc/banner
Shitf+g: cuối file
o: thêm dòng
sh /etc/banner
esc+: x
– Login nv1 //khảo sát
7. Phát biểu if
Dạng 1
if điều kiện
then lệnh
fi
Dạng 2
if điều kiện
then lệnh
else lệnh
fi
Phép toán so sánh số:
n1 –eq n2 (n1=n2) n1 –gt n2 (n1>n2)
n1 –ge n2 (n1>=n2) n1 –le n2 (n1<=n2)
n1 –lt n2 (n1<n2) n1 –ne n2 (n1≠n2)
VD: nhập 3 số, in ra số lớn nhất
#vi lab1
read -p “Nhap so a: ” a
read -p “Nhap so b: ” b
read -p “Nhap so c: ” c
max=$a
if [ $max -lt $b ]
then max=$b
fi
if [ $max – lt $c ]
then max=$c
fi
echo “So lon nhat la: $max”
#sh lab1
Phép so sánh chuỗi
str1 >= str2 str1 <= str2
str1 < str2 str1 <> str2
str1 != str2
-n str1: đúng nếu độ dài str1>0
-z str1: đúng nếu độ dài str1=0
VD: nhập tên phần mềm, kiểm tra phần mềm đó được cài chưa
Nếu chưa: hỏi có muốn cài không
Nếu rồi: hỏi có muốn chạy không
#vi lab2
read –p “Nhap ten phan mem: ” pmem
if [ -z `rpm –qa $pmem` ]
then read –n1 –p “$pmem chua duoc cai, ban co muon cai khong (Y/N): ” ans
if [ $ans = “Y” ] || [ $ans = “y” ]
yum install $pmem
echo “$pmem da duoc cai thanh cong”
else
if [ $ans = “Y” ] || [ $ans = “y” ]
then $pmem
fi
: Viết chương trình đọc vào là một đối số dạng file, liệt kê lịch sử ngày giờ thay đổi tập tin
có thể cho mình hướng giải bài này không ạ