Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

5 Shell Scripts cho người mới sử dụng Linux để học lập trình Shell - Phần II

Để học một cái gì đó bạn cần phải làm nó, mà không sợ không thành công. Tôi tin vào tính thực tế và do đó sẽ đồng hành cùng bạn trong thế giới thực tế của Ngôn ngữ viết kịch bản.

5 Shell Scripts cho người mới sử dụng Linux để học lập trình Shell - Phần II

Bài viết này là phần mở rộng của bài viết Đầu tiên của chúng tôi Hiểu về Linux Shell và Kịch bản Shell cơ bản - Phần I, nơi chúng tôi đã cung cấp cho bạn kiến ​​thức về Scripting, tiếp tục rằng chúng tôi sẽ không làm bạn thất vọng trong bài viết này.

Tập lệnh 1:Vẽ một hình đặc biệt

 #! / bin / bashMAX_NO =0echo -n "Nhập Số từ (5 đến 9):" đọc MAX_NOif! [$ MAX_NO -ge 5 -a $ MAX_NO -le 9]; sau đó echo "WTF ... Tôi yêu cầu nhập số từ 5 đến 9, Thử lại" thoát 1ficlearfor ((i =1; i <=MAX_NO; i ++)) do for ((s =MAX_NO; s> =i; s -)) do echo -n "" được thực hiện cho ((j =1; j <=i; j ++)) do echo -n "." echo xong "" done ###### Giai đoạn thứ hai ####################### for ((i =MAX_NO; i> =1; i-- )) do for ((s =i; s <=MAX_NO; s ++)) do echo -n "" done for ((j =1; j <=i; j ++)) do echo -n "." done echo "" doneecho -e "\ n \ n \ t \ t \ t Bất cứ khi nào bạn cần trợ giúp, Tecmint.com luôn ở đó" 

Hầu hết các ‘ từ khóa ở trên ‘Sẽ được bạn biết đến và hầu hết chúng đều tự giải thích. ví dụ: MAX đặt giá trị lớn nhất của biến, for là một vòng lặp và bất kỳ thứ gì trong vòng lặp sẽ được thực thi lặp đi lặp lại cho đến khi vòng lặp hợp lệ với giá trị đầu vào đã cho.

Đầu ra mẫu
 [[email protected] ~] # chmod 755 Special_Pattern.sh [[email protected] ~] # ./Special_Pattern.sh Nhập số từ (5 đến 9):6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bất cứ khi nào bạn cần trợ giúp, Tecmint.com luôn có mặt 

Nếu bạn biết một chút về bất kỳ ngôn ngữ lập trình nào thì việc học tập lệnh trên không khó, ngay cả khi bạn mới làm quen với tính toán, lập trình và Linux thì cũng không quá khó khăn.

Tải xuống Special_Pattern.sh

Tập lệnh 2:Tạo tập lệnh đầy màu sắc

Ai nói, Linux không màu và nhàm chán, hãy lưu các mã bên dưới vào bất kỳ thứ gì [ dot ] sh , làm cho nó có thể thực thi và Chạy nó, đừng quên cho tôi biết nó như thế nào, Hãy nghĩ bạn có thể đạt được gì, triển khai nó ở đâu đó.

 #! / bin / bashclear echo -e "33 [1m Hello World" # bold effectecho -e "33 [5m Blink" # flash effectecho -e "33 [0m Hello World" # back to normalecho -e "33 [31m Hello World "# Red colorecho -e" 33 [32m Hello World "# Green colorecho -e" 33 [33m Hello World "# Xem còn lại trên screennecho -e" 33 [34m Hello World "echo -e" 33 [35m Hello World "echo -e" 33 [36m Hello World "echo -e -n" 33 [0m "# back to normalecho -e" 33 [41m Hello World "echo -e" 33 [42m Hello World "echo -e" 33 [43m Hello World "echo -e" 33 [44m Hello World "echo -e" 33 [45m Hello World "echo -e" 33 [46m Hello World "echo -e" 33 [0m Hello World "

Lưu ý :Đừng bận tâm về mã màu ngay bây giờ, Những thứ quan trọng đối với bạn sẽ dần dần nằm trong miệng bạn.

Cảnh báo :Thiết bị đầu cuối của bạn có thể không có chức năng nhấp nháy.

Đầu ra mẫu
 [[email protected] ~] # chmod 755 Colorfull.sh [[email protected] ~] # ./Colorfull.shHello WorldBlinkHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello World 

Tải xuống Colorfull.sh

Tập lệnh 3:Mã hóa tệp / thư mục

Tập lệnh này sẽ mã hóa tệp (nhớ không? thư mục / trình điều khiển /…. mọi thứ đều được coi là tệp trong Linux ). Hạn chế hiện tại của tập lệnh trên là nó không hỗ trợ tự động điền tên bằng TAB . Hơn nữa, bạn cần đặt tập lệnh và tệp cần mã hóa trong cùng một thư mục. Bạn có thể cần cài đặt “ pinentry-gui ”, Sử dụng yum hoặc apt gói, nếu được yêu cầu.

 [[email protected] ~] # yum install pinentry-gui [[email protected] ~] # apt-get install pinentry-gui 

Crete một tệp có tên “ Encrypt.sh ”Và đặt tập lệnh sau, làm cho nó có thể thực thi và chạy nó như được hiển thị.

"echo" Nhập Tên tệp chính xác với phần mở rộng "read file; gpg -c $ fileecho" Tôi đã mã hóa tệp thành công ... "echo" Bây giờ tôi sẽ xóa tệp gốc "rm -rf $ file

Đầu ra mẫu

 [[email protected] ~] # chmod 755 Encrypt.sh [[email protected] ~] # ./Encrypt.shChào mừng, tôi đã sẵn sàng mã hóa một tệp / thư mục cho bạn. Hiện tại, tôi có một giới hạn. vào cùng một thư mục, nơi có tệp cần mã hóa Nhập Tên tệp chính xác với extensionpackage.xml ┌─────────────────────────────── ────────────────────────── │ Nhập cụm mật khẩu │ │ │ │ │ │ Cụm mật khẩu ******* _________________________________ │ │ │ │  │ └───────────────────────────────────────────────── ─────────┘ Vui lòng nhập lại cụm mật khẩu này ┌──────────────────────────────────── ─────────────────────┐ │ Vui lòng nhập lại cụm mật khẩu này │ │ │ │ Cụm mật khẩu ******** ________________________________ │ │ │ │   │ └───────────────────────────────────────────────── ──────┘Tôi đã mã hóa tệp thành công ... Bây giờ tôi sẽ xóa tệp gốc 

gpg -c :Thao tác này sẽ mã hóa tệp của bạn bằng cách sử dụng khóa mật khẩu hay còn gọi là mật khẩu . Trong quá trình học tập này, bạn sẽ không bao giờ nghĩ rằng quá trình học tập thực sự có thể dễ dàng đến vậy. Vậy sau khi mã hóa một tập tin, bạn cần những gì? Rõ ràng! giải mã tệp. Và tôi muốn bạn - người học, người đọc tự viết kịch bản giải mã, đừng lo lắng, tôi sẽ không bỏ bạn giữa chừng, tôi chỉ muốn bạn thu được điều gì đó từ bài viết này.

Lưu ý : gpg -d filename.gpg > tên tệp là những gì bạn cần triển khai trong tập lệnh giải mã của mình. Nếu thành công, bạn có thể gửi kịch bản cho bạn trong phần bình luận, nếu không, bạn có thể yêu cầu tôi viết nó cho bạn.

Tải xuống Encrypt.sh

Tập lệnh 4:Kiểm tra việc sử dụng máy chủ

Kiểm tra việc sử dụng máy chủ là một trong những nhiệm vụ quan trọng của quản trị viên, và quản trị viên giỏi là người biết cách tự động hóa công việc hàng ngày của mình. Dưới đây là tập lệnh sẽ cung cấp nhiều thông tin như vậy về máy chủ của bạn. Hãy tự mình kiểm tra.

 #! / bin / bash date; echo "uptime:" uptime echo "Hiện đang kết nối:" w echo "--------------------" echo "Lần đăng nhập cuối cùng:" last -a | head -3 echo "--------------------" echo "Sử dụng đĩa và bộ nhớ:" df -h | xargs | awk '{print "Miễn phí / tổng số đĩa:" $ 11 "/" $ 9}' miễn phí -m | xargs | awk '{print "Dung lượng trống / tổng bộ nhớ:" $ 17 "/" $ 8 "MB"}' echo "--------------------" start_log =`head -1 / var / log / messages | cut -c 1-12` oom =`grep -ci kill / var / log / messages` echo -n" Lỗi OOM kể từ $ start_log:"$ oom echo" "echo" ---- ---------------- "echo" Quy trình sử dụng và tốn kém nhất:"top -b | head -3 echo top -b | head -10 | tail -4 echo" --- ----------------- "echo" Mở các cổng TCP:"nmap -p- -T4 127.0.0.1 echo" -------------- ------ "echo" Kết nối hiện tại:"ss -s echo" -------------------- Quy trình "echo":"ps auxf --width =200 echo "--------------------" echo "vmstat:" vmstat 1 5 
Đầu ra mẫu
 [[email protected] ~] # chmod 755 Server-Health.sh [[email protected] ~] # ./Server-Health.shTue ngày 16 tháng 7 22:01:06 IST 2013 Thời gian hoạt động:22:01:06 tăng 174 ngày, 4:42, 1 người dùng, tải trung bình:0,36, 0,25, 0,18 Kết nối hiện tại:22:01:06 tăng 174 ngày, 4:42, 1 người dùng, tải trung bình:0,36, 0,25, 0,18 @ wsxdn.com IDLE JCPU PCPU WHATtecmint pts / 0 116.72.134.162 21:48 0,00 giây 0,03 giây 0,03 giây sshd:tecmint [priv] -------------------- Cuối cùng đăng nhập:tecmint pts / 0 Thứ Ba ngày 16 tháng 7 21:48 vẫn đăng nhập 116.72.134.162 tecmint pts / 0 Thứ ba ngày 16 tháng 7 21:24 - 21:43 (00:19) 116.72.134.162 ---------- ---------- Sử dụng đĩa và bộ nhớ:Dung lượng trống / tổng số đĩa:292G / 457G Dung lượng trống / tổng bộ nhớ:3510/338 MB ------------------- -OOM lỗi kể từ ngày 14 tháng 7 03:37:0 -------------------- Các quy trình sử dụng và tốn kém nhất:đầu trang - 22:01:07 trong 174 ngày, 4:42, 1 người dùng, tải trung bình:0,36, 0,25, 0,18 Nhiệm vụ:tổng cộng 149, 1 đang chạy, 148 đang ngủ, 0 dừng, 0 zombieCpu:0 .1% us, 0.0% sy, 0.0% ni, 99.3% id, 0.6% wa, 0.0% hi, 0.0% si, 0.0% st PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 1 root 20 0 3788 1128 932 S 0.0 0.0 0:32.94 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:14.07 di chuyển / 0 

Lưu ý :Tôi đã cung cấp cho bạn tập lệnh cung cấp đầu ra trong chính thiết bị đầu cuối, vậy còn việc lấy đầu ra trong tệp để tham khảo trong tương lai. Triển khai nó bằng cách sử dụng toán tử chuyển hướng.

  1. > ‘:Toán tử chuyển hướng tạo ra một tệp và nếu nó tồn tại, nội dung sẽ bị ghi đè.
  2. >> ‘:Khi bạn sử dụng>>, bạn đang thêm thông tin chứ không phải thay thế thông tin đó.
  3. >> ‘An toàn, so với‘ >

Tải xuống Server-Health.sh

Tập lệnh 5:Kiểm tra dung lượng đĩa và gửi thông báo qua email

Làm thế nào về việc nhận được email khi sử dụng đĩa trong phân vùng PHẦN lớn hơn mức Tối đa cho phép, đây là một tập lệnh bảo vệ cuộc sống dành cho quản trị viên web với một chút sửa đổi.

 [email protected]=sda1USE=`df -h | grep $ PART | awk '{print $ 5}' | cut -d '%' -f1`if [$ USE -gt $ MAX]; sau đó echo "Phần trăm được sử dụng:$ USE" | mail -s "Hết dung lượng ổ đĩa" $ EMAILfi 

Lưu ý :Xóa “ USER ”Với tên người dùng của bạn. Bạn có thể kiểm tra thư bằng cách sử dụng ‘ mail Lệnh ‘.

Tải xuống Check-Disk-Space.sh

Viết kịch bản và lập trình vượt ra ngoài ranh giới, mọi thứ và mọi thứ đều có thể được thực hiện theo yêu cầu. Đó là tất cả bây giờ, Trong bài viết tiếp theo của tôi, tôi sẽ cung cấp cho bạn một số hương vị khác nhau của kịch bản. Cho đến lúc đó, hãy bình tĩnh và điều chỉnh, hãy tận hưởng.