Rubutun Shell 5 don Sabbin Linux don Koyon Shirye-shiryen Harshen - Kashi na II


Don Koyon wani abu kana buƙatar yin shi, ba tare da tsoron samun nasara ba. Na yi imani da aiki kuma don haka zai kasance tare da ku zuwa ga duniyar amfani da Harshen Rubutun.

Wannan labarin ƙari ne na labarinmu na Farko Ka Fahimci Linux Shell da Basic Shell Scripting - Sashe na I, inda muka ba ku ɗanɗanar Rubutun, ci gaba da cewa ba za mu ba ku kunya a cikin wannan labarin ba.

Rubutu na 1: Zane Misali na Musamman

#!/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"

Yawancin mahimman kalmomin da ke sama za a san ku kuma yawancin su masu bayyana kansu ne. misali, MAX ya saita iyakar darajar mai canjin, domin madauki ne kuma duk abin da ke cikin madauki zai sake aiwatarwa akai-akai har sai madafin ya yi aiki don ƙimar shigarwar da aka bayar.

 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

Idan kun ɗan san kowane yare, to koyon rubutun da ke sama ba wuya bane, koda kuwa kuna da lissafi, shirye-shirye da kuma Linux ba zai zama mai wahala ba.

Rubutu na 2: Creatirƙirar Rubuta Mai Kala

Wane ne ya ce, Linux ba shi da launi kuma maras ban sha'awa, adana lambobin da ke ƙasa zuwa wani abu [dot] sh, sanya shi aiwatarwa da Gudanar da shi, kar ka manta faɗa mini yadda ya kasance, Yi tunanin abin da za ku iya cimmawa, aiwatar da shi a wani wuri.

#!/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"

Lura: Kada ku damu da lambar launi a yanzu, Waɗannan masu mahimmanci a gare ku zasu kasance a harshenku, a hankali.

Gargaɗi: Yourila tashar ka ba ta da ƙiftawa.

 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

Rubuta 3: ɓoye Fayil/Littafin Adireshi

Wannan rubutun zai ɓoye fayel (tuna? Directory/direba /…. Ana ɗaukar komai azaman fayil, a cikin Linux). Iyakancin yanzu na rubutun da ke sama shine cewa baya tallafawa kammala atomatik suna ta amfani da TAB. Haka kuma, kuna buƙatar sanya rubutun da fayil don ɓoyewa a cikin babban fayil ɗin. Wataƙila kuna buƙatar shigar da\"pinentry-gui", ta amfani da yum ko dace da kunshin, idan an buƙata.

 yum install pinentry-gui
 apt-get install pinentry-gui

Kirkiro fayil din da ake kira "Encrypt.sh" kuma sanya rubutun mai zuwa, sanya shi zartarwa kuma gudanar dashi kamar yadda aka nuna.

#!/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

Samfurin Fitarwa

 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: Wannan zai rufa maka fayil, ta amfani da passkey aka kalmar sirri. A wannan tsarin karatun ba zaku taba tunanin cewa ainihin aikin koyo na iya zama mai sauki haka ba. Don haka bayan ɓoye fayil ɗin abin da kuke buƙata? Babu shakka! warware fayil ɗin. Kuma ina son ku - mai koyo, mai karatu ka rubuta rubutun yanke hukunci da kanka, kar ka damu ba zan bar ka a tsakiya ba, kawai ina so ka samu wani abu ne daga wannan labarin.

Lura: gpg -d filename.gpg> sunan filen shine abin da kuke buƙatar aiwatarwa a cikin rubutaccen rubutunku. Kuna iya aiko muku da rubutu a cikin sharhi idan nasara, idan ba haka ba kuna iya tambayata in rubuto muku.

Rubutu na 4: Yin Amfani da Server

Duba yin amfani da sabar yana daga cikin mahimmin aikin mai gudanarwa, kuma kyakkyawan mai gudanarwa shine wanda yasan yadda ake sarrafa kayan aikin yau da kullun. Da ke ƙasa akwai rubutun da zai ba da yawa irin waɗannan bayanai game da sabar ku. Duba shi da kanka.

#!/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

Lura: Na baku rubutun da ke ba da fitarwa a cikin tashar kanta, yaya game da samun fitarwa a cikin fayil don tunani na gaba. Aiwatar da shi ta amfani da turawa afareta.

  1. ‘>‘: mai juyawa yana haifar da kirkirar fayil, kuma idan ya wanzu, an sake rubuta abubuwan da ke ciki.
  2. ‘>>‘: lokacin da kake amfani da shi >>, kana kara bayani ne, maimakon sauya shi.
  3. ‘>>‘ yana da aminci, idan aka kwatanta da ‘>‘

Rubutu na 5: Bincika Sararin Faifai da Aika Faɗakarwar Imel

Yaya game da samun imel yayin amfani da faifai a bangare SASHE ya fi girma fiye da allowedimar da aka yarda, yana da rubutun rai don masu kula da yanar gizo tare da ɗan gyare-gyare.

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

Lura: Cire “USER” tare da sunan mai amfani. Kuna iya bincika wasiku ta amfani da umarnin 'mail'.

Rubutun rubutu da shirye-shirye sun wuce iyakoki, ana iya aiwatar da komai da komai kamar yadda ake buƙata. Wannan haka ne a yanzu, A cikin labarin na na gaba zan ba ku wasu dandano daban-daban na rubutun. Har sai a kwantar da hankali kuma a saurare, a more.