Shelli käskude mõistmine Linuxi skripti "Explain Shell" abil


Töötades Linuxi platvormil, vajame me kõik mingil ajahetkel abi shellikäskluste osas. Ehkki sisseehitatud spikker nagu manulehtedel, on whatis-i käsust abi, kuid man-lehtede väljund on liiga pikk ja seni, kuni kellelgi pole Linuxiga mingeid kogemusi, on massilistelt man-lehtedelt abi saada väga keeruline. Whatis-käsu väljund on harva rohkem kui üks rida, mis pole algajatele piisav.

On olemas kolmanda osapoole rakendusi nagu „petmine“, mida oleme siin käsitlenud „Commandline Cheat Sheet for Linux Users. Kuigi Cheat on erakordselt hea rakendus, mis näitab abi shellikäskudel ka siis, kui arvuti pole Internetiga ühendatud, näitab see abi ainult etteantud käskude korral.

Jacksoni poolt on kirjutatud väike kood, mis suudab väga tõhusalt seletada bashi kestas olevaid shellikäske ja arvata, mis on parim osa - te ei pea kolmanda osapoole paketti installima. Selle kooditükki sisaldava faili nimetas ta nimeks seleta.sh .

  1. Lihtne koodi sisestamine.
  2. Kolmanda osapoole utiliiti ei olnud vaja installida.
  3. Sisestage selgituse käigus lihtsalt piisavalt teavet.
  4. Töötamiseks on vaja Interneti-ühendust.
  5. Puht käsurea utiliit.
  6. Oskab selgitada enamikku bashi kestas olevatest käskudest.
  7. Juurdekonto kaasamine pole vajalik.

Ainus nõue on curl pakett. Enamikus tänapäeva uusimatest Linuxi distributsioonidest on curl-pakett eelinstallitud, kui mitte, saate selle installida paketihalduri abil, nagu allpool näidatud.

# apt-get install curl 	[On Debian systems]
# yum install curl 		[On CentOS systems]

Kommunaalteenuse seletamise.sh installimine Linuxis

Peame sisestama alloleva koodijupi sellisena, nagu see on failis ~/.bashrc . Kood tuleks sisestada iga kasutaja ja iga .bashrc -faili jaoks. Kood soovitatakse sisestada ainult kasutaja .bashrc-faili, mitte juurkasutaja .bashrc-faili.

Pange tähele, et esimene koodirida, mis algab räsiga (#) , on valikuline ja lisatakse lihtsalt ülejäänud .bashrc koodide eristamiseks.

# seleta.sh tähistab koodide algust, sisestame selle faili lõppu .bashrc-faili.

# explain.sh begins
explain () {
  if [ "$#" -eq 0 ]; then
    while read  -p "Command: " cmd; do
      curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
    done
    echo "Bye!"
  elif [ "$#" -eq 1 ]; then
    curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$1"
  else
    echo "Usage"
    echo "explain                  interactive mode."
    echo "explain 'cmd -o | ...'   one quoted command to explain it."
  fi
}

Selgitamise.sh utiliidi töö

Pärast koodi sisestamist ja salvestamist peate muudatuste jõustumiseks praegusest seansist välja logima ja uuesti sisse logima. Iga asja eest hoolitseb käsk curl, mis kannab sisendkäskluse ja selgitamist vajava lipu mankeriserverisse ning printib seejärel vajaliku teabe Linuxi käsureale. Selle utiliidi kasutamiseks peate olema alati Interneti-ühenduses.

Proovime skripti seletada.sh abil mõnda näidet käsust, mille tähendust ma ei tea.

1. Ma unustasin, mida ‘du -h’ teeb. Kõik, mida ma pean tegema, on:

$ explain 'du -h'

2. Kui unustasite tõrva-zxvf, mida saate teha, võite lihtsalt teha järgmist:

$ explain 'tar -zxvf'

3. Üks mu sõber ajab tihti segi käsu ‘whatis’ ja ‘whereis’ kasutamise, nii et soovitasin teda.

Minge interaktiivsesse režiimi, sisestades lihtsalt terminali käsu seleta.

$ explain

ja seejärel tippige käsud üksteise järel, et näha, mida nad ühes aknas teevad:

Command: whatis
Command: whereis

Interaktiivsest režiimist väljumiseks peab ta tegema lihtsalt klahvikombinatsiooni Ctrl + c.

4. Võite paluda selgitada rohkem kui ühte torujuhtme abil aheldatud käsku.

$ explain 'ls -l | grep -i Desktop'

Samamoodi võite paluda oma shellil selgitada mis tahes shellikäske. Vaja on ainult toimivat Interneti-ühendust. Väljund genereeritakse serverilt vajaliku selgituse põhjal ja seetõttu pole väljunditulem kohandatav.

Minu jaoks on see utiliit tõesti kasulik ja seda on au lisada .bashrc-i. Andke mulle teada, mida arvate sellest projektist? Kuidas see teile kasulik võib olla? Kas selgitus on rahuldav?

Esitage meile oma väärtuslikku tagasisidet allpool toodud kommentaarides. Meeldib ja jaga meid ning aitab meil levida.