Forstå Shell-kommandoer enkelt ved å bruke "Explain Shell"-skriptet i Linux


Mens vi jobber på Linux-plattformen trenger vi alle hjelp med skallkommandoer, på et tidspunkt. Selv om innebygd hjelp som man pages, whatis-kommandoen er nyttig, men man pages-utdata er for lange og inntil og med mindre man har litt erfaring med Linux, er det veldig vanskelig å få all hjelp fra massive man-sider. Utdata fra whatis-kommandoen er sjelden mer enn én linje som ikke er tilstrekkelig for nybegynnere.

Det er tredjepartsapplikasjoner som "cheat", som vi har dekket her "Commandline Cheat Sheet for Linux-brukere. Selv om Cheat er en usedvanlig god applikasjon som viser hjelp på shell-kommando selv når datamaskinen ikke er koblet til Internett, viser den hjelp på forhåndsdefinerte kommandoer.

Det er et lite stykke kode skrevet av Jackson som er i stand til å forklare skallkommandoer i bash-skallet veldig effektivt og gjett hva det beste er at du ikke trenger å installere noen tredjepartspakke. Han kalte filen som inneholder denne kodebiten 'explain.sh'.

Funksjoner i Explain Utility

  1. Enkel kodeinnbygging.
  2. Ingen tredjepartsverktøy må installeres.
  3. Gi akkurat nok informasjon i løpet av forklaringen.
  4. Krever internettforbindelse for å fungere.
  5. Rent kommandolinjeverktøy.
  6. Kunne forklare de fleste shell-kommandoene i bash shell.
  7. Ingen root-kontoinvolvering kreves.
Forutsetning

Det eneste kravet er pakken 'curl'. I de fleste av dagens nyeste Linux-distribusjoner kommer curl-pakken forhåndsinstallert, hvis ikke kan du installere den ved å bruke pakkebehandling som vist nedenfor.

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

Installasjon av explain.sh Utility i Linux

Vi må sette inn koden nedenfor slik den er i ~/.bashrc-filen. Koden skal settes inn for hver bruker og hver .bashrc-fil. Det foreslås å sette inn koden kun i brukerens .bashrc-fil og ikke i .bashrc til root-brukeren.

Legg merke til at den første linjen med kode som starter med hash (#) er valgfri og lagt til bare for å skille resten av kodene til .bashrc.

# explain.sh markerer begynnelsen av kodene, vi setter inn .bashrc-filen nederst i denne filen.


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
}

Fungerer av explain.sh Utility

Etter at du har satt inn koden og lagret den, må du logge ut av den gjeldende økten og logge på igjen for å gjøre endringene tre i kraft. Alt blir tatt hånd om av 'curl'-kommandoen som overfører inngangskommandoen og flagget som trenger forklaring til mankier-serveren og deretter skriver ut akkurat nødvendig informasjon til Linux-kommandoen -linje. For ikke å snakke om å bruke dette verktøyet, må du alltid være koblet til internett.

La oss teste noen eksempler på kommandoer som jeg ikke vet betydningen av med explain.sh-skriptet.

1. Jeg har glemt hva «du -h» gjør. Alt jeg trenger å gjøre er:

explain 'du -h'

2. Hvis du har glemt hva «tar -zxvf» gjør, kan du ganske enkelt gjøre:

explain 'tar -zxvf'

3. En av vennene mine forveksler ofte bruken av «hva er» og «hvor er»-kommandoen, så jeg rådet ham.

Gå til interaktiv modus ved ganske enkelt å skrive kommandoen forklar på terminalen.

explain

og skriv deretter kommandoene etter hverandre for å se hva de gjør i ett vindu, som:

Command: whatis
Command: whereis

For å avslutte interaktiv modus trenger han bare å gjøre Ctrl + c.

4. Du kan be om å forklare mer enn én kommando lenket av pipeline.

explain 'ls -l | grep -i Desktop'

På samme måte kan du be skallet ditt om å forklare en hvilken som helst shell-kommando. Alt du trenger er en fungerende Internett-tilkobling. Utdataene genereres basert på forklaringen som trengs fra serveren, og utdataresultatet kan derfor ikke tilpasses.

For meg er dette verktøyet veldig nyttig, og det har vært en ære å bli lagt til .bashrc. Fortell meg hva du synes om dette prosjektet? Hvordan kan det være nyttig for deg? Er forklaringen tilfredsstillende?

Gi oss din verdifulle tilbakemelding i kommentarene nedenfor. Lik og del oss og hjelp oss med å spre oss.