Jinsi ya Kuandika na Kutumia Kazi Maalum za Shell na Maktaba


Katika Linux, hati za ganda hutusaidia kwa njia nyingi tofauti ikiwa ni pamoja na kutekeleza au hata kuweka kiotomatiki kazi fulani za usimamizi wa mfumo, kuunda zana rahisi za mstari wa amri na mengi zaidi.

Katika mwongozo huu, tutaonyesha watumiaji wapya wa Linux mahali pa kuhifadhi hati maalum za shell kwa uaminifu, kueleza jinsi ya kuandika vitendaji maalum vya shell na maktaba, kutumia vipengele kutoka kwa maktaba katika hati zingine.

Mahali pa Kuhifadhi Hati za Shell

Ili kuendesha hati zako bila kuandika njia kamili/kabisa, lazima zihifadhiwe katika saraka moja katika utofauti wa mazingira wa PATH.

Kuangalia PATH yako, hutoa amri hapa chini:

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Kawaida, ikiwa bin ya saraka iko kwenye saraka ya nyumbani ya watumiaji, inajumuishwa kiotomatiki kwenye PATH yake. Unaweza kuhifadhi hati zako za ganda hapa.

Kwa hivyo, tengeneza saraka ya bin (ambayo inaweza pia kuhifadhi hati za Perl, Awk au Python au programu zingine zozote):

$ mkdir ~/bin

Ifuatayo, unda saraka inayoitwa lib (fupi kwa maktaba) ambapo utaweka maktaba yako mwenyewe. Unaweza pia kuweka maktaba za lugha zingine kama vile C, Python na kadhalika, ndani yake. Chini yake, tengeneza saraka nyingine inayoitwa sh; hii itakuhifadhia maktaba za ganda:

$ mkdir -p ~/lib/sh 

Unda Kazi Zako Mwenyewe za Shell na Maktaba

Kazi ya shell ni kundi la amri zinazofanya kazi maalum katika hati. Wanafanya kazi sawa na taratibu, subroutines na kazi katika lugha nyingine za programu.

Syntax ya kuandika kazi ni:

function_name() { list of commands }

Kwa mfano, unaweza kuandika chaguo la kukokotoa katika hati ili kuonyesha tarehe kama ifuatavyo:

showDATE() {date;}

Kila wakati unapotaka kuonyesha tarehe, omba tu chaguo la kukokotoa hapo juu ukitumia jina lake:

$ showDATE

Maktaba ya ganda ni hati ya ganda, hata hivyo, unaweza kuandika maktaba ili kuhifadhi tu vitendaji vyako ambavyo unaweza kupiga simu kutoka kwa hati zingine za ganda.

Hapo chini kuna mfano wa maktaba inayoitwa libMYFUNCS.sh kwenye ~/lib/sh saraka yangu na mifano zaidi ya kazi:

#!/bin/bash 

#Function to clearly list directories in PATH 
showPATH() { 
        oldifs="$IFS"   #store old internal field separator
        IFS=:              #specify a new internal field separator
        for DIR in $PATH ;  do echo $DIR ;  done
        IFS="$oldifs"    #restore old internal field separator
}

#Function to show logged user
showUSERS() {
        echo -e “Below are the user logged on the system:\n”
        w
}

#Print a user’s details 
printUSERDETS() {
        oldifs="$IFS"    #store old internal field separator
        IFS=:                 #specify a new internal field separator
        read -p "Enter user name to be searched:" uname   #read username
        echo ""
       #read and store from a here string values into variables using : as  a  field delimiter
    read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep   "^$uname")"
       #print out captured values
        echo  -e "Username is            : $username\n"
        echo  -e "User's ID                 : $uid\n"
        echo  -e "User's GID              : $gid\n"
        echo  -e "User's Comments    : $comments\n"
        echo  -e "User's Home Dir     : $homedir\n"
        echo  -e "User's Shell             : $shell\n"
        IFS="$oldifs"         #store old internal field separator
}

Hifadhi faili na ufanye hati itekelezwe.

Jinsi ya Kuomba Kazi kutoka kwa Maktaba

Ili kutumia chaguo la kukokotoa kwenye lib, unahitaji kwanza kabisa kujumuisha lib kwenye hati ya ganda ambapo chaguo la kukokotoa litatumika, katika fomu iliyo hapa chini:

$ ./path/to/lib
OR
$ source /path/to/lib

Kwa hivyo ungetumia chaguo la kukokotoa printUSERDETS kutoka kwa lib ~/lib/sh/libMYFUNCS.sh kwenye hati nyingine kama inavyoonyeshwa hapa chini.

Sio lazima uandike msimbo mwingine katika hati hii ili kuchapisha maelezo ya mtumiaji fulani, piga tu chaguo la kukokotoa lililopo.

Fungua faili mpya yenye jina test.sh:

#!/bin/bash 

#include lib
.  ~/lib/sh/libMYFUNCS.sh

#use function from lib
printUSERDETS

#exit script
exit 0

Ihifadhi, kisha fanya hati itekelezwe na uiendeshe:

$ chmod 755 test.sh
$ ./test.sh 

Katika makala hii, tulikuonyesha mahali pa kuhifadhi hati za shell kwa uaminifu, jinsi ya kuandika kazi zako za shell na maktaba, kuomba kazi kutoka kwa maktaba kwenye hati za kawaida za shell.

Ifuatayo, tutaelezea njia moja kwa moja ya kusanidi Vim kama IDE ya uandishi wa Bash. Hadi wakati huo, endelea kushikamana na TecMint kila wakati na pia shiriki mawazo yako kuhusu mwongozo huu kupitia fomu ya maoni iliyo hapa chini.