Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Uvod u bash završavanje : 1. deo



Postavljeno od strane Stiva Petak 23. dec. 2005. u 09:34
Tagovi: bash , komanda završetak


Jedan od najboljih interpretatora je ugrađen u "completion" podršci. Ovi objekti omogućavaju vam da se lako završe komande i njihovi argumenti. Pročitajte kratak uvod o dodavanju svojih komandnih završetaka.

Većina interpretatora omogućavaju dovršavanje komandni, obično su vezani za TAB taster, koji omogućava da se završe imena komandi smeštenih na PATH , imena datoteka, ili direktorijuma. Najčešće se koristi na sledeći način:

ls /bo[TAB]

Kada pritisnete taster TAB argument / bo se automatski zamenjuje sa vrednošću / boot.

Od skoro, neki interpretatori počeli su da omogućavaju više: završavanje argumenata u komande. Dva značajnija interpretatora koji ovo omogućavaju su zsh, i bash. Pošto sam bash korisnik samo ću govoriti na temu bash -a.

Debian bash paket dostavlja fajl završavanja komandnih linija / etc / bash_completion koji ustanovljava uobičajenu podršku.

Ako ga ne koristite sada možete ga učitati tako što ćete uneti "/ etc / bash_completion." u personalizovani template kao što je ovde prikazano:

skx@lappy:~$ . /etc/bash_completion skx@lappy:~$

Kada ovo završite, biće omogućeno da putem TAB-a završavate mnoge zajedničke argumente na programima, na primer:

skx@lappy:~$ apt-get upd[TAB] skx@lappy:~$ apt-get upg[TAB]

Ali kako da proširite podršku ? Pa rutine završavanja koriste nekoliko internih bash komandi kao što je complete . Ovo se može koristiti od strane ličnih shell startap fajlova ili jednostavnije kreiranjem malog file-a i prebacivanjem tog file-a u direktorijum / etc / bash_completion.d /.

Kada je bash_completion-u nadjen izvor (ili se učita) sve unutar / etc / bash_completion.d direktorijuma je takođe učitano. To pojednostavljuje dodavanje svojih hook-ova.

Jedna od stvari koje vam bash omogućava je završavanje hostname-ova , što može biti veoma korisno za neke komande.

Na daljinu upravljam nekim računarima koristeći VNC i ja obično to radim komandom " xvncviewer hostname".

Da biste dozvolili da bash završi hostname fragment, ukucavam kompletnu komandu da ga obavestim da je xvncviewer-u potreban hostname:

skx@lappy:~$ complete -F _known_hosts xvncviewer

Sada kada sam ovo uradio mogu da pritisnem [Tab] da bih završio hostname-ove:

skx@lappy:~$ xvncviewer s[TAB] savannah.gnu.org ssh.tardis.ed.ac.uk scratchy steve.org.uk security.debian.org security-master.debian.org sun skx@lappy:~$ xvncviewer sc[TAB]

To mi kompletira hostname scratchy.

Funkcija _known_hosts je definisana u fajlu, / etc / bash_completion. Kako znam da mogu da je koristim? Pomoću komande "complete-P" za prikazivanje svih povezivanja u upotrebi:

skx@lappy:~$ complete -p .... complete -F _known_hosts tracepath6 complete -F _known_hosts host ...

Dakle, šta smo naučili do sada?
  • Komandna linija završetka postoji.
  • Završetak se obrađuje u fajlu / etc / bash_completion
  • Nove komande završavanja mogu biti postavljeni unutar direktorijuma / etc / bash_completion.d
  • Možemo izlistati sve aktuelne šeme završavanja koje su povezane preko "complete-p"
U drugom delu ćemo razmotriti definisanje prilagođenih komandnih linija za rukovanje rutinama - sličnim onima o kojima smo pricali . Dakle, možemo dodavati komandne linije završetka našim sopstvenim programima, ili komande koje nisu još pokrivene.

Do tada ćete možda želeti malo da eksperimentišete.




Published (Last edited): 09-10-2012 , source: http://www.debian-administration.org/articles/316