5 skrip shell untuk pemula linux untuk mempelajari pengaturcaraan shell - Bahagian II

5 skrip shell untuk pemula linux untuk mempelajari pengaturcaraan shell - Bahagian II

Untuk mempelajari sesuatu yang perlu anda lakukan, tanpa takut tidak berjaya. Saya percaya dengan kepraktisan dan oleh itu akan menemani anda ke dunia praktikal bahasa skrip.

Belajar skrip shell asas

Artikel ini adalah lanjutan artikel pertama kami memahami shell linux dan skrip shell asas - Bahagian I, di mana kami memberi anda rasa skrip, meneruskan bahawa kami tidak akan mengecewakan anda dalam artikel ini.

Skrip 1: Melukis corak khas

#!/bin/bash max_no = 0 echo -n "Masukkan nombor antara (5 hingga 9):" Baca max_no jika ! [$ Max_no -ge 5 -a $ max_no -le 9]; Kemudian echo "wtf ... saya minta masukkan nombor antara 5 dan 9, cuba lagi" Keluar 1 fi jelas untuk ((i = 1; i = i; s--)) lakukan echo -n "" dilakukan untuk ((j = 1; j<=i; j++ )) do echo -n " ." done echo "" done ###### Second stage ###################### for (( i=MAX_NO; i>= 1; i--)) lakukan untuk ((s = i; s<=MAX_NO; s++ )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done echo -e "\n\n\t\t\t Whenever you need help, Tecmint.com is always there"

Sebilangan besar di atas 'kata kunci'akan diketahui oleh anda dan kebanyakannya adalah penjelasan diri. e.g., Maks Menetapkan nilai maksimum pembolehubah, kerana adalah gelung dan apa -apa dalam gelung yang akan dilaksanakan lagi dan lagi sehingga gelung sah untuk nilai input yang diberikan.

Output sampel
[[dilindungi e -mel] ~]# chmod 755 special_pattern.sh [[dilindungi e -mel] ~]# ./Special_pattern.sh masukkan nombor antara (5 hingga 9): 6 ... bila -bila masa anda memerlukan bantuan, tecmint.com selalu ada

Sekiranya anda sedikit menyedari bahasa pengaturcaraan, mempelajari skrip di atas tidak sukar, walaupun anda baru untuk pengiraan, pengaturcaraan dan linux, ia tidak akan menjadi sukar.

Muat turun Special_pattern.sh

Skrip 2: Membuat skrip berwarna -warni

Siapa kata, Linux tidak berwarna dan membosankan, simpan kod di bawah apa -apa [titik] sh, Jadikannya boleh dilaksanakan dan jalankan, jangan lupa beritahu saya bagaimana ia, fikirkan apa yang boleh anda capai, melaksanakannya di suatu tempat.

#!/bin/bash clear echo -e "33 [1m hello world" # bold effect echo -e "33 [5m blink" # blink effect echo -e "33 [0m hello world" # kembali ke echo -e biasa "33 [ 31m Hello World " # Red Color Echo -e" 33 [32m Hello World " # Green Color Echo -e" 33 [33m Hello World " # lihat baki di skrin echo -e" 33 [34m hello dunia "echo -e" 33 [35m Hello World "Echo -e" 33 [36m Hello World "echo -e -n" 33 [0m " # kembali ke echo -e biasa" 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"

Catatan: Jangan ganggu kod warna sekarang, yang penting bagi anda akan berada di lidah anda, secara beransur -ansur.

Amaran: Terminal anda mungkin tidak mempunyai kemudahan berkedip.

Output sampel
[[dilindungi e -mel] ~]# chmod 755 colorfull.sh [[dilindungi e -mel] ~]# ./Colorfull.SH Hello World Blink Hello World Hello World Hello World Hello World Hello World World World Hello World World Hello World World Hello World World World Hello World Hello World

Muat turun Colorfull.sh

Skrip 3: menyulitkan fail/direktori

Skrip ini akan menyulitkan a fail (Ingat? direktori/pemandu/… . semuanya dianggap sebagai fail, di Linux). Batasan semasa skrip di atas adalah bahawa ia tidak menyokong penyempurnaan nama auto menggunakan Tab. Selain itu, anda perlu meletakkan skrip dan fail untuk disulitkan dalam folder yang sama. Anda mungkin perlu memasang "Pinentry-Gui", Menggunakan yum atau Apt pakej, jika diperlukan.

[[dilindungi e-mel] ~]# yum Pasang pinentry-gui [[dilindungi e-mel] ~]# apt-get install pinentry-gui

Crete fail yang dipanggil "Menyulitkan.sh"Dan letakkan skrip berikut, menjadikannya boleh dilaksanakan dan jalankan seperti yang ditunjukkan.

#!/bin/bash echo "Selamat datang, saya bersedia untuk menyulitkan fail/folder untuk anda" echo "pada masa ini saya mempunyai batasan, letakkan saya ke folder yang sama, di mana fail yang disulitkan hadir" echo "masukkan fail yang tepat Nama dengan lanjutan "Baca fail; gpg -c $ file echo "Saya telah menyulitkan fail dengan jayanya ..." echo "sekarang saya akan mengeluarkan fail asal" rm -rf $ file

Output sampel

[[dilindungi e -mel] ~]# CHMOD 755 Encrypt.sh [[dilindungi e -mel] ~]# ./Enkripsi.SH Welse, saya sudah bersedia untuk menyulitkan fail/folder untuk anda pada masa ini saya mempunyai batasan, letakkan saya ke folder yang sama, di mana fail yang disulitkan adalah hadir masukkan nama fail yang tepat dengan pakej lanjutan.XML ┌──── memandikan ────┐ │ Masukkan frasa laluan │ │ │ │ │ │ frasa laluan ******* _________________________________ │ │ │ │ │ └ └iku ───— ─────ote ──────enti frasa laluan ini │ │ │ │ │ │ ____ ____________________________________ │ │ │ │ └ └────────────────—─────— ──────enti 

gpg -c : Ini akan menyulitkan fail anda, menggunakan alias passkey kata laluan. Dalam proses pembelajaran ini, anda tidak akan pernah berfikir bahawa proses pembelajaran sebenar mungkin begitu mudah. Jadi setelah menyulitkan fail apa yang anda perlukan? Jelas! menyahsulit fail. Dan saya mahukan anda - pelajar, pembaca untuk menulis skrip penyahsulitan sendiri, jangan risau saya tidak meninggalkan anda di tengah, saya hanya mahu anda mendapatkan sesuatu dari artikel ini.

Catatan: GPG -D FileName.GPG > nama fail adalah apa yang anda perlukan untuk melaksanakan dalam skrip penyahsulitan anda. Anda boleh menghantar skrip anda dalam komen jika berjaya, jika tidak, anda boleh meminta saya menulisnya untuk anda.

Muat turun Encrypt.sh

Skrip 4: Memeriksa penggunaan pelayan

Memeriksa penggunaan pelayan adalah salah satu tugas penting pentadbir, dan pentadbir yang baik adalah orang yang tahu bagaimana untuk mengotomatisasi tugasnya sehari -hari. Berikut adalah skrip yang akan memberikan banyak maklumat mengenai pelayan anda. Periksa sendiri.

#!/bin/bash tarikh; echo "uptime:" uptime echo "yang kini disambungkan:" w echo "--------------------" echo "Login terakhir:" Terakhir -A | kepala -3 echo "--------------------" Echo "cakera dan penggunaan memori:" DF -H | Xargs | awk 'cetak "cakera percuma / total:" $ 11 " /" $ 9' free -m | Xargs | awk 'cetak "Memori percuma / total:" $ 17 " /" $ 8 "mb"' echo "--------------------" start_log = "kepala -1 /var/log/mesej | potong -c 1-12 "oom =" grep -ci membunuh/var/log/mesej "echo -n" ralat oom sejak $ start_log: "$ oom echo" "echo" ---- ---------------- "echo" penggunaan dan proses yang paling mahal: "atas -b | kepala -3 echo top -b | kepala -10 | ekor -4 echo" --- ----------------- "Echo" Port TCP Terbuka: "NMAP -P- -T4 127.0.0.1 echo "--------------------" Echo "Sambungan Semasa:" SS -S Echo "--------------- ----- proses "echo": "PS auxf --width = 200 echo" -------------------- "echo" vmstat: "vmstat 1 5
Output sampel
[[dilindungi e-mel] ~]# chmod 755 pelayan-kesihatan pelayan.sh [[dilindungi e -mel] ~]# ./Pelayan-kesihatan.sh tue Jul 16 22:01:06 IST 2013 Uptime: 22:01:06 Up 174 Days, 4:42, 1 pengguna, beban purata: 0.36, 0.25, 0.18 Saat ini disambungkan: 22:01:06 UP 174 hari, 4:42, 1 pengguna, beban purata: 0.36, 0.25, 0.18 Pengguna TTY Dari [E -mel dilindungi] Idle JCPU PCPU Apa TECMINT PTS/0 116.72.134.162 21:48 0.00s 0.03s 0.03S SSHD: TECMINT [priv] -------------------- Log masuk terakhir: TECMINT PTS/0 TUE JUL 16 21:48 MASIH LAGA DI 116.72.134.162 Tecmint Pts/0 Tue Jul 16 21:24 - 21:43 (00:19) 116.72.134.162 ----------------- ------------- Kesalahan OOM Sejak 14 Jul 03:37: 0 -------------------- Penggunaan dan proses yang paling mahal: Atas - 22:01:07 Up 174 hari, 4:42, 1 pengguna, beban purata: 0.36, 0.25, 0.18 Tugas: 149 Jumlah, 1 Berjalan, 148 Tidur, 0 Berhenti, 0 Zombie CPU (s): 0.1%AS, 0.0%Sy, 0.0%Ni, 99.ID 3%, 0.6%WA, 0.0%Hai, 0.0%SI, 0.0 %St Pid User Pr Ni Virt Res Shr S %CPU %Memempht 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 Migrasi/0

Catatan: Saya telah memberi anda skrip yang memberikan output di terminal itu sendiri, bagaimana dengan mendapatkan output dalam fail untuk rujukan masa depan. Melaksanakannya menggunakan pengendali redirect.

  1. '>': pengendali pengalihan menyebabkan penciptaan fail, dan jika ia wujud, kandungannya ditimpa.
  2. '>>': Apabila anda menggunakan >>, anda menambah maklumat, bukannya menggantinya.
  3. '>>'selamat, berbanding dengan'>'

Muat turun pelayan-kesihatan.sh

Skrip 5: Periksa ruang cakera dan hantar amaran e -mel

Bagaimana dengan mendapatkan e -mel semasa menggunakan cakera dalam partition Bahagian lebih besar daripada maksimum yang dibenarkan, ia adalah skrip penyelamat hidup untuk pentadbir web dengan sedikit pengubahsuaian.

Max = 95 [dilindungi e -mel] Part = sda1 use = "df -h | grep $ bahagian | awk" print $ 5 '| potong -d '%' -f1 'jika [$ use -gt $ max]; Kemudian echo "Peratus Digunakan: $ Use" | Mail -s "Running Of Disk Space" $ e -mel FI

Catatan: Keluarkan "Pengguna"Dengan nama pengguna anda. Anda boleh menyemak mel menggunakan menggunakan 'mel'Perintah.

Muat turun ruang cakera-cakera.sh

Penulisan dan pengaturcaraan skrip adalah di luar sempadan, apa sahaja dan segala -galanya dapat dilaksanakan seperti yang diperlukan. Itu semua buat masa ini, dalam artikel saya yang seterusnya saya akan memberikan beberapa perisa yang berbeza dari skrip. Sehingga kemudian tetap sejuk dan ditala, nikmati.