5 čaulas skripti iesācējiem Linux, lai uzzinātu čaulas programmēšanu - II daļa
Lai kaut ko iemācītos, jums tas jādara, nebaidoties no neveiksmes. Es ticu praktiskumam un tāpēc pavadīšu jūs skriptu valodas praktiskajā pasaulē.
Šis raksts ir mūsu pirmā raksta Saprast Linux čaulu un pamata čaulas skriptu - I daļa turpinājums, kur mēs jums sniedzām garšu par skriptiem, turpinot, ka šajā rakstā jūs nepievilsim.
1. scenārijs: īpaša modeļa uzzīmēšana
#!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read MAX_NO if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ] ; then echo "WTF... I ask to enter number between 5 and 9, Try Again" exit 1 fi clear for (( i=1; i<=MAX_NO; i++ )) do for (( s=MAX_NO; s>=i; s-- )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done ###### Second stage ###################### 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 "" done echo -e "\n\n\t\t\t Whenever you need help, linux-console.net is always there"
Lielākā daļa iepriekš minēto atslēgas vārdu būtu jums zināmi, un lielākā daļa no tiem ir pašsaprotami. Piemēram, MAX iestata mainīgā maksimālo vērtību, jo ir cilpa, un viss, kas atrodas ciklā, atkal un atkal tiek izpildīts, līdz cilpa ir derīga dotajai ievades vērtībai.
chmod 755 Special_Pattern.sh ./Special_Pattern.sh Enter Number between (5 to 9) : 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Whenever you need help, linux-console.net is always there
Ja jūs esat mazliet informēts par jebkuru programmēšanas valodu, iemācīties iepriekš minēto skriptu nav grūti, pat ja esat jauns skaitļošanas, programmēšanas un Linux lietotājs, tas nebūs daudz grūti.
2. skripts: krāsaina skripta izveide
Kas saka, ka Linux ir bezkrāsains un garlaicīgs, saglabājiet zemāk esošos kodus [dot] sh, padariet to izpildāmu un palaidiet, neaizmirstiet man pateikt, kā tas bija, Padomājiet, ko jūs varat sasniegt, kaut kur to īstenojot.
#!/bin/bash clear echo -e "33[1m Hello World" # bold effect echo -e "33[5m Blink" # blink effect echo -e "33[0m Hello World" # back to normal echo -e "33[31m Hello World" # Red color echo -e "33[32m Hello World" # Green color echo -e "33[33m Hello World" # See remaining on screen echo -e "33[34m Hello World" echo -e "33[35m Hello World" echo -e "33[36m Hello World" echo -e -n "33[0m" # back to normal echo -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"
Piezīme: Tagad neuztraucieties par krāsu kodu. Tie, kas jums ir svarīgi, pakāpeniski būs pie mēles.
Brīdinājums: iespējams, ka jūsu terminālis nespēj mirgot.
chmod 755 Colorfull.sh ./Colorfull.sh Hello World Blink Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World
3. skripts: šifrējiet failu/direktoriju
Šis skripts šifrēs failu (atcerieties? Direktoriju/draiveri /…. Viss Linux sistēmā tiek uzskatīts par failu). Pašreizējais iepriekš minētā skripta ierobežojums ir tāds, ka tas neatbalsta vārda automātisku aizpildīšanu, izmantojot TAB. Turklāt šifrējamais skripts un fails ir jāievieto tajā pašā mapē. Iespējams, jums būs jāinstalē “pinentry-gui”, izmantojot pakotni yum vai apt, ja nepieciešams.
yum install pinentry-gui apt-get install pinentry-gui
Krētā izveidojiet failu ar nosaukumu “Encrypt.sh” un ievietojiet šādu skriptu, padariet to izpildāmu un palaidiet, kā parādīts.
#!/bin/bash echo "Welcome, I am ready to encrypt a file/folder for you" echo "currently I have a limitation, Place me to thh same folder, where a file to be encrypted is present" echo "Enter the Exact File Name with extension" read file; gpg -c $file echo "I have encrypted the file successfully..." echo "Now I will be removing the original file" rm -rf $file
Izlaides paraugs
chmod 755 Encrypt.sh ./Encrypt.sh Welcome, I am ready to encrypt a file/folder for you currently I have a limitation, Place me to the same folder, where a file to be encrypted is present Enter the Exact File Name with extension package.xml ┌─────────────────────────────────────────────────────┐ │ Enter passphrase │ │ │ │ │ │ Passphrase *******_________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ Please re-enter this passphrase ┌─────────────────────────────────────────────────────┐ │ Please re-enter this passphrase │ │ │ │ Passphrase ********________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ I have encrypted the file successfully... Now I will be removing the original file </pre>
gpg -c: Tas šifrēs jūsu failu, izmantojot paroli jeb paroli. Šajā mācību procesā jūs nekad nebūtu domājis, ka faktiskais mācīšanās process varētu būt tik vienkāršs. Tātad pēc faila šifrēšanas, kas jums nepieciešams? Skaidrs! atšifrējot failu. Un es vēlos, lai jūs - izglītojamais, lasītājs pats uzrakstītu atšifrēšanas skriptu, neuztraucieties, ka es neatstāju jūs pa vidu, es tikai vēlos, lai jūs kaut ko iegūtu no šī raksta.
Piezīme: gpg -d filename.gpg> faila nosaukums ir tas, kas jums jāievieš atšifrēšanas skriptā. Ja tas ir veiksmīgi, komentāros varat ievietot komentārus, ja nē, varat lūgt, lai es jums to uzrakstu.
4. skripts: servera izmantošanas pārbaude
Servera izmantošanas pārbaude ir viens no svarīgiem administratora uzdevumiem, un labs administrators ir tas, kurš zina, kā automatizēt savu ikdienas uzdevumu. Zemāk ir skripts, kas sniegs daudz šādas informācijas par jūsu serveri. Pārbaudiet to pats.
#!/bin/bash date; echo "uptime:" uptime echo "Currently connected:" w echo "--------------------" echo "Last logins:" last -a |head -3 echo "--------------------" echo "Disk and memory usage:" df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}' free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}' echo "--------------------" start_log=`head -1 /var/log/messages |cut -c 1-12` oom=`grep -ci kill /var/log/messages` echo -n "OOM errors since $start_log :" $oom echo "" echo "--------------------" echo "Utilization and most expensive processes:" top -b |head -3 echo top -b |head -10 |tail -4 echo "--------------------" echo "Open TCP ports:" nmap -p- -T4 127.0.0.1 echo "--------------------" echo "Current connections:" ss -s echo "--------------------" echo "processes:" ps auxf --width=200 echo "--------------------" echo "vmstat:" vmstat 1 5
chmod 755 Server-Health.sh ./Server-Health.sh Tue Jul 16 22:01:06 IST 2013 uptime: 22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 Currently connected: 22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 USER TTY FROM [email IDLE JCPU PCPU WHAT tecmint pts/0 116.72.134.162 21:48 0.00s 0.03s 0.03s sshd: tecmint [priv] -------------------- Last logins: tecmint pts/0 Tue Jul 16 21:48 still logged in 116.72.134.162 tecmint pts/0 Tue Jul 16 21:24 - 21:43 (00:19) 116.72.134.162 -------------------- Disk and memory usage: Free/total disk: 292G / 457G Free/total memory: 3510 / 3838 MB -------------------- OOM errors since Jul 14 03:37 : 0 -------------------- Utilization and most expensive processes: top - 22:01:07 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 Tasks: 149 total, 1 running, 148 sleeping, 0 stopped, 0 zombie Cpu(s): 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 migration/0
Piezīme: Es jums esmu devis skriptu, kas dod izvadi pašā terminālā, kā par izejas iegūšanu failā turpmākai izmantošanai. Ieviesiet to, izmantojot novirzīšanas operatoru.
- ‘>’: novirzīšanas operators izraisa faila izveidi, un, ja tāds pastāv, saturs tiek pārrakstīts.
- ‘>>’: lietojot >>, jūs pievienojat informāciju, nevis to aizstājat.
- ‘>>’ ir drošs, salīdzinot ar ‘>’
5. skripts: pārbaudiet diska vietu un nosūta brīdinājumu par e-pastu
Kā būtu ar e-pasta saņemšanu, ja diska izmantošana nodalījumā PART ir lielāka par maksimāli atļauto, tas ir dzīvības taupīšanas skripts tīmekļa administratoriem ar nelielu modifikāciju.
MAX=95 [email PART=sda1 USE=`df -h |grep $PART | awk '{ print $5 }' | cut -d'%' -f1` if [ $USE -gt $MAX ]; then echo "Percent used: $USE" | mail -s "Running out of disk space" $EMAIL fi
Piezīme. Noņemiet “USER” ar savu lietotājvārdu. Jūs varat pārbaudīt pastu, izmantojot komandu ‘pasts’.
Skriptu rakstīšana un programmēšana pārsniedz robežas, jebko un visu varēja realizēt pēc nepieciešamības. Pagaidām tas ir viss. Nākamajā rakstā es jums sniegšu dažāda veida skriptu garšu. Līdz tam paliec vēss un noregulēts, baudi.