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.