Forståelse af Shell-kommandoer nemt ved hjælp af "Explain Shell" -skriptet i Linux


Mens vi arbejder på Linux-platform, har vi alle brug for hjælp til shell-kommandoer på et eller andet tidspunkt. Selvom indbygget hjælp kan lide man-sider, er whatis-kommandoen nyttig, men output for man-sider er for lang, og indtil og medmindre man har nogle erfaringer med Linux, er det meget vanskeligt at få hjælp fra massive man-sider. Outputtet af whatis-kommandoen er sjældent mere end en linje, som ikke er tilstrækkelig for nybegyndere.

Der er tredjepartsapplikationer som 'cheat', som vi har dækket her "Commandline Cheat Sheet for Linux-brugere. Selvom Cheat er en usædvanlig god applikation, der viser hjælp til shell-kommando, selv når computeren ikke har forbindelse til internettet, viser den kun hjælp på foruddefinerede kommandoer.

Der er et lille stykke kode skrevet af Jackson, som er i stand til at forklare shell-kommandoer i bash-shell meget effektivt og gætte, hvad det bedste er, du behøver ikke at installere nogen tredjepartspakke. Han navngav filen, der indeholder dette stykke kode, som explain.sh .

  1. Let kodeindlejring.
  2. Intet tredjepartsværktøj behøvede at blive installeret.
  3. Output lige nok information i løbet af forklaringen.
  4. Kræver internetforbindelse for at fungere.
  5. Ren kommandolinjeværktøj.
  6. Kunne forklare de fleste shell-kommandoer i bash shell.
  7. Ingen root-kontoinddragelse krævet.

Det eneste krav er curl pakke. I de fleste af nutidens seneste Linux-distributioner er curl-pakken forudinstalleret, hvis ikke kan du installere den ved hjælp af pakkehåndtering som vist nedenfor.

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

Installation af explain.sh Utility i Linux

Vi er nødt til at indsætte nedenstående stykke kode, som det er i filen ~/.bashrc . Koden skal indsættes for hver bruger og hver .bashrc -fil. Det anbefales at indsætte koden kun i brugerens .bashrc-fil og ikke i rootbrugers .bashrc.

Bemærk, at den første linje med kode, der starter med hash (#) , er valgfri og tilføjes bare for at differentiere resten af koderne for .bashrc.

# explain.sh markerer begyndelsen på koderne, vi indsætter i .bashrc-filen i bunden af denne fil.

# 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
}

Arbejder med explain.sh Utility

Når du har indsat koden og gemt den, skal du logge af den aktuelle session og logge ind igen for at få ændringerne til at træde i kraft. Hver ting er taget hånd om af 'curl' -kommandoen, der overfører inputkommandoen og -flagget, der har brug for forklaring til den mere mandlige server, og derefter udskriver de nødvendige oplysninger til Linux-kommandolinjen. For ikke at nævne at bruge dette værktøj, skal du altid have forbindelse til internettet.

Lad os teste nogle få eksempler på kommando, som jeg ikke kender betydningen med script.sh.

1. Jeg glemte hvad 'du -h' gør. Alt hvad jeg skal gøre er:

$ explain 'du -h'

2. Hvis du har glemt hvad 'tar -zxvf' gør, kan du bare gøre:

$ explain 'tar -zxvf'

3. En af min ven forveksler ofte brugen af 'whatis' og 'whereis' kommando, så jeg rådede ham.

Gå til interaktiv tilstand ved blot at skrive forklar kommandoen på terminalen.

$ explain

og skriv derefter kommandoerne efter hinanden for at se, hvad de gør i det ene vindue, som:

Command: whatis
Command: whereis

For at afslutte den interaktive tilstand skal han bare gøre Ctrl + c.

4. Du kan bede om at forklare mere end en kommando lænket ved hjælp af pipeline.

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

På samme måde kan du bede din shell om at forklare enhver shell-kommando. Alt hvad du behøver er en fungerende internetforbindelse. Outputtet genereres baseret på den nødvendige forklaring fra serveren, og outputresultatet kan derfor ikke tilpasses.

For mig er dette værktøj virkelig nyttigt, og det er blevet beæret for at blive føjet til min .bashrc. Lad mig vide, hvad synes du om dette projekt? Hvordan det kan være nyttigt for dig? Er forklaringen tilfredsstillende?

Giv os din værdifulde feedback i kommentarerne nedenfor. Synes godt om og del os og hjælp os med at blive spredt.