Osnovne Bash naredbe

Ova varalica pokriva sljedeće teme: Uvod u ljusku, navigaciju, osnovne naredbe, varijable okruženja, konektore, cijevi, I/O preusmjeravanje, dopuštenja i prečace na tipkovnici.

Bash Shell: Uvod

Shell ili shell je program, u našem slučaju nazvan "bash", što je skraćenica od Bourne Again Shell. Ljuska prihvaća vaše naredbe i prosljeđuje ih operativnom sustavu. Za interakciju sa sustavom koriste se terminali kao što su gnome-terminal, eterm, nxterm itd.

Navigacija

U Linux datoteke i imenici imaju hijerarhijsku organizaciju, odnosno postoji određeni početni direktorij koji se naziva korijen. Sadrži datoteke i poddirektorije, koji zauzvrat sadrže datoteke i svoje poddirektorije.

pwd

Naredba pwd, skraćenica za ispisati radni imenik, prikazuje Trenutna lokacija u strukturi imenika.

CD

Naredba cd omogućuje vam promjenu u novi direktorij.

mkdir

Naredba mkdir stvara novi direktorij u trenutnom direktoriju.

Osnovne naredbe

čovjek

Naredba man prikazuje priručnike za naredbe. Na primjer, sljedeća naredba prikazat će sve informacije o naredbi cat:

$ čovjek mačka

mačka

Naredba cat čita datoteku proslijeđenu kao argument i ispisuje njen sadržaj na standardni izlaz. Prosljeđivanjem više datoteka kao argumenta ispisat će se povezani sadržaji svih datoteka.

jeka

Naredba echo ispisuje svoje argumente na standardni izlaz.

$ echo Zdravo svijete Zdravo svijete

Ako pozovete echo bez argumenata, ispisat će se prazan niz.

glava

Naredba head čita prvih 10 redaka bilo kojeg proslijeđenog teksta i šalje ih u standardni kanal. Broj prikazanih redaka može se promijeniti:

$head -50 test.txt

rep

Naredba tail radi slično kao naredba head, ali čita retke s kraja:

$ rep -50 test.txt

Također možete vidjeti retke koji se dodaju datoteci u stvarnom vremenu pomoću zastavice -f:

$ tail -f test.txt

manje

Naredba less omogućuje vam kretanje kroz prenesenu datoteku ili dio teksta, u oba smjera.

$ manje test.txt $ ps aux | manje

Saznajte više o namjeni simbola | bit će obrađeno u nastavku u odjeljku povijesti naredbe.

Uobičajeni tipkovnički prečaciOpis
GPomiče se na kraj datoteke
gPomiče se na početak datoteke
:50 Prelazi na redak 50 datoteke
qIzlazi manje
/pojam za pretraživanjePotražite niz koji odgovara "pojmu za pretraživanje" ispod trenutna linija
/
?pojam za pretraživanjePronalaženje retka koji odgovara 'pojmu za pretraživanje' iznad trenutnog retka
? Pomiče se na sljedeći odgovarajući rezultat pretraživanja
gorePomiče se jedan redak gore
doljePomiče jedan red prema dolje
pageupPomiče se za jednu stranicu gore
stranica nižePomiče jednu stranicu prema dolje

pravi

True naredba uvijek vraća nulu kao izlazni status koji označava uspjeh.

lažno

Naredba false uvijek vraća različitu od nule kao izlazni status koji označava neuspjeh.

$?

$? je varijabla koja sadrži izlazni status posljednjeg pokretanja naredbe. Status se obično odnosi na povratni kod programa. 0 znači uspješno izvršenje programa, svaka vrijednost veća od 0 odražava činjenicu da je došlo do nekih grešaka tijekom izvođenja. Usput, zato se u bashu 0 smatra istinitim, a sve što nije 0 je lažnim:

$pravi$jeka$? 0 $ lažno $ echo $? 1

grep

Naredba grep traži proslijeđeni niz navedena datoteka:

$ cat korisnici.txt korisnik: lozinka učenika: 123 korisnik: lozinka nastavnika: 321 $ grep "student` file1.txt korisnik: lozinka učenika: 123

grep također može prihvatiti više datoteka i regularni izrazi da pojasnim format teksta.

povijesti

Naredba history prikazuje povijest naredbenog retka. Obično se koristi zajedno s naredbom grep za traženje određene naredbe. Na primjer, sljedeći kod će pronaći sve naredbe koje sadrže niz g++:

$povijest | grep g++ 155 g++ datoteka1.txt 159 g++ datoteka2.txt

Ovdje se također koristi simbol |. - ovo je takozvani transporter (cijev). Zahvaljujući njemu, možete preusmjeriti izlaz jedne naredbe na ulaz druge – tako je u gornjem primjeru cijela priča, koja u normalni mod izlaz naredbom history izravno na izlaz terminala bit će preusmjeren na grep kao ulaz. Nećemo vidjeti izlaz naredbe history, ali ćemo vidjeti izlaz naredbe grep.

Ovo može biti prilično teško razumjeti bez vježbe, pa sami eksperimentirajte s naredbama ls, history, ps (opisanim u nastavku) preusmjeravajući njihov izlaz na grep, sed ili, na primjer, manje.

izvoz

Naredba za izvoz postavlja varijable okoline koje se prosljeđuju podređenim procesima. Na primjer, ovako možete proslijediti varijablu imena s vrijednošću student:

$ ime izvoza=student

p.s

Naredba ps prikazuje informacije o pokrenuti procesi.

$ ps PID TTY VRIJEME CMD 35346 pts/2 00:00:00 bash

Izlaze četiri elementa:

  • ID procesa (PID),
  • vrsta terminala (TTY),
  • vrijeme rada procesa (TIME),
  • naziv naredbe koja je pokrenula proces (CMD).

nezgodno

Naredba awk pronalazi i zamjenjuje tekst u datotekama pomoću zadanog uzorka: awk "uzorak (akcija)" test.txt

wget

Naredba wget preuzima datoteke s interneta i smješta ih u trenutni direktorij.

$ wget https://github.com/mikeizbicki/ucr-cs100

nc

ping

Naredba ping testira mrežnu vezu.

$ ping google.com PING google.com (74.125.224.34) 56(84) bajtova podataka. 64 bajta od lax17s01-in-f2.1e100.net (74.125.224.34): icmp_req=1 ttl=57 time=7.82 ms --- statistika pinga google.com --- 1 paket poslano, 1 primljeno, 0% gubitka paketa , vrijeme 8ms rtt min/avg/max/mdev = 7,794/8,422/10,792/0,699 ms

Statistika na kraju pokazuje broj veza napravljenih prije dovršetka naredbe i vrijeme koje je bilo potrebno da se dovrše.

git

Varijable okoline

Varijable okoline su imenovane varijable koje sadrže vrijednosti koje koristi jedna ili više aplikacija.

Varijabla PATH sadrži popis direktorija u kojima sustav traži izvršne datoteke.

Varijabla HOME sadrži stazu do početne mape trenutnog korisnika.

Priključci

Konektori vam omogućuju istovremeno pokretanje više naredbi.

$ true && echo Hello Hello $ false || echo Zdravo Zdravo $ echo Zdravo ; ls Pozdrav test.txt file1.txt file2.txt

Transportne trake

Transporteri, odnosno cijevi, omogućuju povezivanje ulaznih i izlaznih kanala različitih timova. U sljedećem primjeru, izlaz naredbe ls bit će proslijeđen u head i kao rezultat će biti ispisano samo prvih 10 elemenata.

$ ls -l | glava

I/O preusmjeravanje

Preusmjeravanje izlaza

Simboli > i >> koriste se za standardno preusmjeravanje izlaza.

Na primjer, ovaj kod će ispisati ls izlaz u datoteku, a ne na ekran:

$ ls > files.txt $ cat files.txt file1.cpp sample.txt

Ako datoteka ne postoji, kreira se, a ako postoji, prebriše se. Da biste izbjegli prepisivanje, trebali biste koristiti naredbu >> - ona dodaje podatke na kraj datoteke.

Preusmjeravanje unosa

Za standardno preusmjeravanje izlaza koristi se simbol< . В следующем примере sort берет входные данные из файла, а не с клавиатуры:

$ cat files.txt c b $ sort< files.txt b c

Naredba sort ispisuje sadržaj datoteke na ekran jer nismo preusmjerili izlaz. To se može učiniti ovako:

$sortirati< files.txt >datoteke_razvrstane.txt

Napredno preusmjeravanje

Dodavanje & u > uzrokuje preusmjeravanje standardnog izlaza i pogreške. Na primjer, datoteka test.cpp ispisat će liniju stdout u cout i liniju stderr u cerr.

$ g++ test.cpp $ ./a.out >& test.txt $ cat test.txt stdout stderr

Ako želite ispisati određeni deskriptor datoteke, možete dodijeliti njegov broj > .

ImeDeskriptorOpis
stdin0 Standardni unos
stdout1 Standardni izlaz
stderr2 Standardni izlaz pogreške

Na primjer, da biste preusmjerili stderr na test.txt učinili biste sljedeće:

$ g++ test.cpp $ ./a.out 2> test.txt stdout $ cat test.txt stderr

Prava pristupa

Naredba ls -l prikazuje mnogo informacija o dopuštenjima svake datoteke:

chmod

Naredba chmod mijenja dopuštenja datoteke. Ovdje su tipične kombinacije zastavica za promjenu prava određenih korisnika:

Možete pozvati chmod s opisom što učiniti na određenoj datoteci. Simbol - znači uklanjanje prava, simbol + znači dodavanje. Sljedeći primjer omogućit će vlasniku i grupi datoteku da može čitati i pisati:

$ chmod ug+rw test.txt $ ls -l test.txt -rw-rw---- 1 korisnička grupa 1097374 26. siječnja 2:48 test.txt

Dodatno, chmod se može koristiti s oktalni brojevi, gdje je 1 prisutnost prava, a 0 odsutnost:

Rwx = 111 = 7 rw- = 110 = 6 r-x = 101 = 5 r-- = 100 = 4

Sljedeća naredba će raditi isto kao i prethodna.

Moskovski državni institut za elektroničku tehnologiju

(Tehničko sveučilište)

Zavod za integriranu elektroniku i mikrosustave

LABORATORIJSKI PRAKTIKUM

PO TEČAJU:

OPERACIJSKI SUSTAVLINUX

Sastavio: asistent katedre. IEMS Kozlov A.V.

Moskva, 2007

Laboratorijska radionica namijenjena je prvenstveno magistrima inženjera i tehnologija koji studiraju na prvoj godini Synopsys programa smjera 210100.68, za ovladavanje operativnim sustavom Red Hat Enterprise Linux (RHEL) 4.0. Također je dizajniran za studente FreeScale i sve korisnike s početnom razinom ili bez iskustva s Linuxom koji žele naučiti Linux naredbeno okruženje i osnovne aplikacije koje su korisniku potrebne pri radu sa sustavima za računalno potpomognuto projektiranje.

Ova radionica se sastoji od osam laboratorijskih radova koji korisniku omogućuju učinkovito svladavanje naredbi interpretera naredbi, kao i postupno učenje pisanja datoteka – Shell, Gawk, Perl i Tcl skripti. Svaki laboratorijski rad sadrži sljedeće cjeline: naslov, zadatak i svrha rada; teorijske informacije s kontrolnim pitanjima; primjer laboratorijskog rada; postupak izvođenja laboratorijskih radova; laboratorijski zadatak i obrazac izvješća o radu. Sintaksa za pisanje naredbi u ljusci, zajedno s opcijama, parametrima, radnjama, izrazima i stazama objekata, dizajnirana je za okruženje naredbi BASH. Popis literature nalazi se na kraju laboratorijske radionice.

MOSKVSKI DRŽAVNI INSTITUT ZA ELEKTRONIČKI INŽENJERING (TEHNIČKO SVEUČILIŠTE)

LABORATORIJSKI RAD br.1

U KOLEGJU “LINUX OPERATIVNI SUSTAV”

Učenje bash naredbi na Linuxu

OPIS DOVRŠEN:

KOZLOV A.V.

MOSKVA 2007

Laboratorijski rad br. 1 Proučavanje bash naredbi na Linuxu

Cilj rada : pomoću BASH interpretera naredbi svladati vještine rada s naredbama u operativnom sustavu Red Hat Enterprise Linux 4.0.

Trajanje rada - 4 sata

Teorijske informacije

operacijski sustav Linux izvorno je razvijen kao besplatna, fleksibilna, značajkama bogata, višekorisnička platforma visokih performansi dizajnirana da služi i rješava probleme znanstvenika diljem svijeta. Zbog "znanstvenog fokusa", takva platforma u početku nije imala prošireno grafičko sučelje, koje se široko koristi pri rješavanju kućnih problema - računalne igrice, internet, interaktivni programi za povezivanje korisnika, kao i pri rješavanju uredskih problema - radni sa sustavima baza podataka, iscrtavanjem grafikona i histograma. Često se rad znanstvenika s operativnim sustavom Linux svodio jednostavno na uobičajenu interakciju korisnika (osobe koja radi na računalu) s konzolom (prozor terminala na ekranu monitora s tekstualnim informacijama). Za razumijevanje naredbi koje korisnik unese u Linuxu, razvijen tumači naredbi, koji su prevoditelji naredbi razumljivih ljudima u upravljačke signale razumljive jezgri operacijskog sustava. Glavna zadaća operacijskog sustava je posredovanje u prijenosu naredbi od osobe do računala. I, unatoč činjenici da se operativni sustav Linux danas koristi posvuda, ne samo u institutima, dizajnerskim centrima, računalnim centrima, već i za kućne i uredske potrebe, konzole (terminalni prozori) i dalje su u širokoj upotrebi, a mnogima se čine i više pogodan u usporedbi s radom s mišem i ikonama (ikone u Linuxu) u grafičkom okruženju.

Tumač naredbi je string interaktivno sučelje s odzivnikom naredbenog retka između korisnika i operativnog sustava. Korisnik upisuje naredbe u naredbeni redak, interpretator naredbi ih “prihvaća” i šalje ih kao instrukcije operativnom sustavu na izvršenje. Interpretator naredbi omogućuje vam ne samo unos naredbi, već i preusmjeravanje ulaza i izlaza iz naredbenog retka, kao i izvođenje operacija u pozadina, dajući korisniku mogućnost obavljanja drugih zadataka u ovom trenutku.

Za Linux su razvijeni mnogi tumači naredbi: Bourne Again shell (BASH), Public Domain shell (PDKSH), TCSH interpreter i Z-shell. Iako je BASH zadani tumač, možete koristiti bilo koje drugo okruženje. Za udobnost svakodnevnog rada dovoljan je samo jedan prevoditelj naredbi. Red Hal Linux uključuje sve glavne ljuske, ali je BASH ljuska instalirana i koristi se prema zadanim postavkama. To znači da ovaj operativni sustav koristi BASH za rad u naredbenom retku osim ako nije drugačije navedeno.

Naredbeni redak. Sučelje naredbenog retka Linuxa sastoji se od jednog retka u koji se unose naredbe s opcijama i parametrima. U BASH ljusci obično je označen početak naredbenog retka poziv u obliku znaka dolara ($); Druge Linux ljuske mogu koristiti drugačiji oblik upita. Nakon upita, korisnik može unijeti jednu naredbu ili naredbu s opcijama i parametrima. Ako korisnik nema dovoljno veličine za naredbeni redak, tada ga je moguće ograničiti znakom “/”. Naredba se unosi s tipkovnice i unosi pomoću tipke. Na primjer, za prikaz sistemskog datuma i sistemskog vremena, korisnik može koristiti naredbu datum .

$datum

Pet, 8. lipnja 15:42:35 MSD 2007

Ili, na primjer, za prikaz kalendara s trenutnim mjesecom koristite naredbu cal.

$kal

srpnja 2007

Ne Po Ut Sr Če Pe Sub

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

Glavno sučelje ljuske je sučelje naredbenog retka koje interpretira unesene naredbe i šalje ih sustavu. Naredbe unesene u naredbeni redak moraju slijediti određena pravila sintakse. Opće pravilo za unos naredbi je: prva riječ unesena u naredbeni red treba biti naziv naredbe; Sljedeće riječi su opcije i parametri naredbe. Svaka riječ u naredbenom retku odvojena je od drugih riječi s jednim ili više razmaka ili kartica.

Opcija - je kod od jednog ili više slova ispred kojeg stoji crtica koji mijenja vrstu akcije koju izvodi naredba. Kao primjer naredbe s opcijama navodimo naredbu ls . Kada se koristi bez opcija, ova naredba daje popis svih datoteka i direktorija sadržanih u trenutnom direktoriju. Osim naziva datoteka s ekstenzijama i bez njih, na ovom popisu nema ničega drugog. Na primjer, kada unesete naredbu ls s opcijom - l tim ls proizvodi redak po redak izlaz informacija za svaku datoteku, naime njezinu veličinu, datum i vrijeme Posljednja promjena. U sljedećem primjeru korisnik unosi naredbu ls s opcijom - l. Crtica ispred opcije je obavezna. Ovo je način na koji Linux sustav razlikuje opciju od parametra.

$ ls -l

ukupno 28

Opcija -a omogućuje prikaz svih datoteka u trenutnom direktoriju, uključujući i tzv skrivene datoteke. Konfiguracijske datoteke često su skrivene. Nazivi skrivenih datoteka uvijek počinju s točkom, zbog čega se često nazivaju isklesandatoteke. U većini slučajeva opcije se kombiniraju. U ovom slučaju, jedna zajednička crtica se stavlja ispred grupe opcija. Na primjer, opcija -al prikazuje informacije o svim datotekama sadržanim u trenutnom direktoriju, uključujući skrivene datoteke. Prikazuje se nova ttt datoteka.

$ls -al

ukupno 40

Parametar je riječ koja se upisuje u naredbeni redak nakon opcija. Naredbe za upravljanje datotekama obično koriste nazive datoteka kao parametre. Na primjer, ako trebate samo informacije o jednoj datoteci, gauss.plx, navedite njezin naziv nakon opcije -l:

$ ls -l gauss.plx

Rad korisnika počinje u okruženju ljuske BASH, koje se učitava prema zadanim postavkama. Ima posebne mogućnosti uređivanja naredbenog retka koje mogu biti vrlo korisne pri učenju OS-a Linux. Prije izvršavanja naredbi, možete ih urediti pomicanjem kursora po naredbenom retku i umetanjem ili brisanjem znakova. Ovo je posebno korisno kada radite s vrlo složenim timovima. Operacije uređivanja pomoći će ispraviti pogrešku prilikom upisivanja naredbe. Korištenje |gore| Možete prikazati naredbu koju ste upravo izvršili. Zatim možete ponovno pokrenuti naredbu ili, nakon što je uredite, pokrenuti izmijenjenu naredbu. Ova je značajka vrlo prikladna kada se određene operacije ponavljaju više puta, na primjer, kada uređujete jedan i ista datoteka.

Svrha tumača naredbi je rad s datotekama: stvaranje, kopiranje, preimenovanje, premještanje, brisanje i mijenjanje podataka. Čak i ako korisnik ne radi izravno s konzolom, već koristi grafičke aplikacije, te se operacije s datotekama odvijaju neovisno o njemu.

Izrada datoteka i direktorija. U Linuxu su datoteka i direktorij dvije vrste podataka, pa se njihovo stvaranje vrši pomoću različite ekipe. Da biste kreirali imenik (imenik, mapa), koristite naredbu rezerviranu u Linuxu mkdir (“make directory” - kreirajte direktorij). U sljedećem primjeru stvorit ćemo novi direktorij u trenutnom direktoriju. Da biste to učinili, upotrijebite naredbu mkdir i naziv direktorija new, odvojen razmakom.

$ mkdir novi

Imenik je napravljen. Međutim, ponekad morate stvoriti cijelu ugniježđenu strukturu, kada unutar već stvorene mape treba postojati još jedna, a unutar nje još jedna, i tako dalje. U ove svrhe, opcija privitka –p koristi se kao dio naredbe mkdir. Sljedeći primjer koristi jednu naredbu za stvaranje podmapa: prva mapa 1, unutar nje mapa 2, a unutar nje mapa 3.

$ mkdir -p 1/2/3

Datoteke možete stvarati pomoću naredbi ili pomoću ugrađenih i vanjskih uređivača teksta Linuxa, kao što su kedit, nedit, gedit i tako dalje. Međutim, navedeni editori zahtijevaju rad grafičke ljuske, što znači rad grafičkog sustava. Ako ga nemate, možete se, primjerice, poslužiti uređivačem teksta VIM ili analozi koji ne zahtijevaju rad grafičkog sustava. Također možete stvarati datoteke pomoću upravitelja tekstualnim datotekama kao što je Midnight Commander (naredba mc). Korisnik (dizajner) često treba štedjeti tekstualne informacije, koji prati proces proračuna integriranog kruga ili, primjerice, električnih parametara simuliranog poluvodičkog uređaja. Također je potrebno obraditi (brisati, dodati, sortirati, podijeliti) primljene podatke. Takve radnje također se izvode pomoću Linux naredbi. Jedna od najjednostavnijih naredbi za stvaranje tekstualne datoteke je naredba mačka.

Naredba cat nema vlastito sučelje, pa nakon unosa naredbe cat sa simbolom za preusmjeravanje (vidi dolje) i nazivom nove datoteke, možete odmah napisati tekstualne informacije pomicanjem iz retka u red pomoću tipke Enter. Izlazak iz cat editora (filtara) vrši se kombinacijom tipki Ctrl-D. Ispod je primjer stvaranja datoteke pomoću naredbe cat.

$ mačka > novi _ datoteka

Rezultirajuća datoteka se pregledava pomoću naredbe cat i naziva datoteke odvojenog razmakom.

$ mačka novi _ datoteka

Ili, na primjer, spremanje tekstualnih informacija s konzole kada se naredba pokrene ls s opcijom -a za datoteku r, možete koristiti funkciju preusmjeravanja podataka (vidi dolje) i naredbu tee s opcijom -a.

$ ls -l | tee-a r

Kopiranje datoteka i direktorija. Kopiranje datoteka i direktorija provodi se pomoću naredbe cp, nakon čega se objekt kopiranja označava relativnim ili apsolutnim putanjama, odvojenim razmakom, i novim odredištem kopije ovog objekta, odvojenim razmakom. Sljedeći primjer kopira datoteku gauss.plx iz trenutnog direktorija u poddirektorij 1, koji se nalazi u trenutnom direktoriju.

$ cp gauss . plx 1

Ako imate prava pristupa Linux objektima (laboratorijski rad br. 2), ovu datoteku možete kopirati i korisniku Alexu, čiji radni direktorij ima sljedeću apsolutnu putanju /home/alex, pomoću sljedeće naredbe.

$ cp gauss . plx / Dom / Alex

Ako datoteka s istim nazivom već postoji na odredištu prilikom kopiranja datoteke, ona će biti prebrisana. To može dovesti do gubitka potrebnih podataka. Da biste to izbjegli, koristite cp naredbu s –i opcijom i Linux će svaki put pitati korisnika želi li doista prebrisati datoteku. Novi pogled na posljednju naredbu je sljedeći.

$ cp -i gauss.plx /home/alex

Imenici se kopiraju na isti način kao i datoteke. Međutim, kod kopiranja direktorija s datotekama i poddirektorija, opcija –R koristi se kao dio naredbe cp. Budući da ste u direktoriju /home/antonk/111, kopirajte direktorij laba2 na višu razinu, tj. u direktorij /home/antonk. Dvije točke označavaju razinu hijerarhije jednu stepenicu višu.

$ cp - R laba 2 ..

Preimenovanje i premještanje datoteka i direktorija. Preimenovanje datoteka i direktorija vrši se pomoću naredbe mv, nakon čega se označava objekt koji treba preimenovati, odvojen razmakom, i novi naziv objekta, odvojen razmakom. Preimenovanje direktorija događa se na isti način kao i datoteke. Preimenujmo datoteku gauss.plx u novu datoteku pod nazivom gauss2.plx. Ako datoteka s istim nazivom kao i novi naziv preimenovane datoteke već postoji u ovom direktoriju, ona će biti prebrisana sadržajem preimenovane datoteke. Da biste to spriječili, također koristite opciju –i. Usput, na Linuxu upotreba ekstenzija nije potrebna. Koriste se samo za povezivanje datoteka i izvršnih programa.

$ mv –i gauss.plx gauss2.plx

Brisanje datoteka i direktorija. Uklanjanje datoteka i direktorija u Linuxu vrši se pomoću naredbe rm, gdje su naznačena imena datoteka za brisanje, odvojena razmakom. !!! Budite oprezni kada radite s ovom naredbom, možete izbrisati potrebne podatke. Slično naredbi cp, koristite opciju –i u kombinaciji s naredbom rm. Naredba s ovom opcijom tražit će potvrdu za brisanje svake datoteke i direktorija. U sljedećem primjeru ćemo izbrisati datoteku gauss 2. plx , tražeći potvrdu za brisanje .

rm –i gauss2.plx

Zamjenski znakovi. Ponekad kada radite s tumačem naredbi trebate pronaći ili upariti datoteke pomoću uzorka. Na primjer, znate samo prvo slovo naziva datoteke i želite pronaći sve datoteke u radnom direktoriju koje počinju tim slovom. Ili znate niz od nekoliko slova u nazivu ili ekstenziji datoteke i trebate ga pronaći među nekoliko stotina drugih datoteka. U ovom slučaju trebate koristiti posebne znakove Linuxa. Interpretator naredbi koristi niz posebni znakovi, zvani zamjenski znakovi, koji se mogu koristiti za traženje datoteka, njihovo podudaranje i stvaranje popisa naziva datoteka. Ovi znakovi su zvjezdica, upitnik i uglate zagrade (*, ?, ). Nakon što primi djelomični naziv datoteke, tumač naredbi koristi te znakove kao predložak za pretraživanje i generiranje popisa imena otkrivenih datoteka. Parametar s nekvalificiranim nazivom datoteke zamjenjuje se popisom odgovarajućih naziva datoteka. Ovaj popis naziva može se koristiti kao parametar u naredbama koje rade na više datoteka (na primjer, ls). Zamjenski znakovi tumača naredbi navedeni su u tablici. 1.

Tablica 1. Specijalni znakovi ljuske

Uobičajeni simboli

Svrha

Razdvajanje naredbi na jednoj naredbenoj liniji

"tim"

Izvršavanje naredbe

Usporedba s klasom mogućih znakova u nazivima datoteka

Označava sljedeći znak kao poseban. Koristi se za označavanje kontrolnih znakova

Prevođenje standardnog izlaza jedne naredbe kao ulaza za drugu naredbu

Izvođenje naredbe u pozadini

Naredba za rad s popisom prethodno unesenih naredbi

Zamjenski znakovi

Rezultat primjene

Odgovara bilo kojem skupu znakova u nazivima datoteka

Odgovara bilo kojem zaseban lik u nazivima datoteka

Simboli za preusmjeravanje

Rezultat primjene

Preusmjerava standardni izlaz u datoteku ili uređaj. U ovom slučaju, ako datoteka ne postoji, kreira se, ali ako postoji, prebriše se

Uskličnik uzrokuje brisanje datoteke ako postoji. Ovaj simbol nadjačava opciju koja sprječava prepisivanje. postojeće datoteke

Preusmjerava standardni unos iz datoteke ili uređaja u program

Preusmjerava standardni izlaz u datoteku ili uređaj, dodajući izlaz na kraj datoteke

Simboli za preusmjeravanje

Rezultat primjene standardnog izlaza poruke o pogrešci

Preusmjerava i dodaje standardni izlaz pogreške u datoteku ili uređaj

Preusmjerava standardni izlaz pogreške na standardni ulaz

Preusmjerava standardni izlaz pogreške u datoteku ili uređaj

Prebacuje standardni izlaz pogreške na ulaz druge naredbe

Na primjer, znak zvjezdice (*) može se koristiti za označavanje datoteka čija imena počinju ili završavaju određenom kombinacijom znakova. Primjer pokazuje kako koristiti znak zvjezdice (*) u bilo kojoj kombinaciji znakova.

$ls

docl doc2 dokument dokumenti mojdoc ponedjeljak utorak

Prikazana potpuna lista datoteka u radnom direktoriju.

$ls doc*

docl doc2 dokument dokumenti

Ovaj primjer pokazao je kako smo koristili znak zvjezdice za "filtriranje" naziva datoteka koji ne počinju kombinacijom slova "doc". Prikazuju se samo nazivi datoteka koji sadrže kombinaciju “doc”. U tom slučaju, preostale datoteke se ne brišu; jednostavno se ne prikazuju korisniku.

$ ls *dan

ponedjeljak t utorak

Ovdje smo prikazali nazive datoteka koji završavaju kombinacijom "dan".

$ ls [ mt ] * d *

ponedjeljak utorak

I ovdje smo prikazali nazive datoteka čiji je prvi znak slovo “m” ili “t”, sljedeći znakovi su proizvoljni, zatim slovo “d” i opet proizvoljni znakovi.

Budite oprezni kada koristite zvjezdicu u kombinaciji s naredbom rm - to može dovesti do gubitka vaših podataka. Sljedeća naredba briše sav sadržaj trenutne mape.

rm *

$ ls *dan

docl doc2 dokumenti

Upitnik (?) označava samo jedan nespecificiran znak u nazivima datoteka.

Najvažniji korisnički proces je naredbena ljuska (također poznata kao tumač naredbi ili jednostavno ljuska). To je ono što osigurava interakciju korisnika sa sustavom u tekstualnom načinu, omogućujući vam unos naredbi. To je onaj koji se pokreće kada se prijavite na tekstualnu konzolu i pruža vam sučelje naredbenog retka.

Neka vas ne zanese praktičnost grafičkog sučelja i ne podcijenite naredbeni redak. Prvo, mnogi administrativni zadaci mogu se dovršiti samo tamo; drugo, naredbeni redak je najprikladniji način automatizacije rutinskih postupaka. Naredba u Linuxu je sve što se može izvršiti: izvršne datoteke, ugrađene naredbe ljuske, aliasi naredbi, korisnički definirane funkcije, skript datoteke (skripte) - unaprijed pripremljene sekvence naredbi u tekstualnom obliku.

Tako, tumač naredbi je program koji ima svoje ugrađene naredbe, vlastito varijabilno okruženje, a također vam omogućuje izvršavanje vanjskih naredbi koje su prisutne u sustavu.

Shell prihvaća naredbe koje unese korisnik, obrađuje njihove argumente ako je potrebno, izdaje naredbe za izvršenje, prihvaća njihove povratne vrijednosti i izvodi određene radnje ovisno o tim vrijednostima. Osim toga, ljuska ima ugrađeni programski jezik (komandni jezik) koji vam omogućuje pisanje složenih razgranatih naredbenih skripti. To je naredbeni jezik koji razlikuje različite školjke jedne od drugih i od njega korisnici počinju pri odabiru školjki.

Linux je OS sličan Unixu. Linux je izvorno razvio Linus Torvalds sa Sveučilišta u Helsinkiju (Finska) na temelju Minixa, malog UNIX sustava koji je stvorio Andry Tanenbaum. Rano Linux razvoj prvenstveno se odnosio na problem prebacivanja zadataka u zaštićenom načinu rada za 80386. I Linus je "počeo ozbiljno razmišljati o maničnoj ideji kako učiniti Minix boljim od sebe."

Naredbena ljuska je već postojala u UNIX sustavima; bila je "Bourneova ljuska" (Bourneova ljuska ili jednostavno ljuska). Nešto kasnije, UNIX sustavi razvili su C shell, koji koristi drugačiju sintaksu, pomalo podsjećajući na sintaksu C programskog jezika.

Za Linux su razvijeni mnogi tumači naredbi. Zadani je "Bash", razvijen u na temelju ljuske i nazvan "Nova Bourneova školjka" (Bourne Again Shell). Stoga je Bash evolucija prethodne ljuske, dodajući mnoge korisne značajke djelomično sadržane u C ljusci. Budući da se Bash može smatrati nadskupom stare sintakse ljuske, svaki program napisan u dobroj staroj Bourneovoj ljusci trebao bi raditi u Bashu.

Međutim, treba napomenuti da Linux OS nije UNIX sustav, budući da je njegov kod potpuno prepisan, u početku od strane Linusa, kasnije uz pomoć mnogih UNIX programera i entuzijasta s Interneta, onih koji imaju dovoljno vještina i sposobnosti za razvoj sustav.

Linux kernel ne koristi kod iz UNIX-a ili bilo kojeg drugog vlasničkog izvora, i to većinu Linux programi razvijen od strane GNU projekta Zaklade za slobodni softver u Cambridgeu, Massachusetts. No tome su pridonijeli i programeri diljem svijeta.

Ovo su najčešće Linux ljuske:

  • Bourneova ljuska - Bourneova ljuska, standardna za mnoge sustave slične UNIX-u;
  • bash - Bourne Again shell, “nova Bourne shell” (koristi se prema zadanim postavkama na Linuxu);
  • csh - C shell, C shell: sintaksa njegovog naredbenog jezika slična je sintaksi jezika C;
  • tcsh - mala C ljuska, minimalna C ljuska;
  • pdksh - javna Korn ljuska, javna Korn ljuska;
  • sash - samostalna ljuska, autonomna ljuska, može se koristiti u slučajevima kada softverske biblioteke nisu dostupne.

Popis svih programa ljuski instaliranih na sustavu nalazi se u datoteci /etc/shells.

Inicijalna ljuska za svakog korisnika koja se za njega pokreće kada se prijavljuje na sustav navedena je u datoteci /etc/passwd. To ne mora nužno biti bash. Administrator općenito može zabraniti određenim korisnicima prijavu u sustav navođenjem /sbin/nologin kao “ljuske” koja se učitava nakon registracije. Ili čak odredite posebno dizajniranu skriptu koja vam omogućuje pregled zapisa, na primjer.

Za uređivanje /etc/passwd datoteke u Linuxu postoji posebna naredba vipw, koja provjerava ispravnost uređivanja (naredba je dostupna samo administratoru).

Kasnije, kada radite u zadanoj ljusci, možete promijeniti trenutnu ljusku u bilo koju od instaliranih (točnije, unijeti podljusku). Za izlaz i povratak na nadređenu ljusku unesite naredbu za izlaz. U početnoj ljusci ova naredba završava sesiju.

U bilo kojoj ljusci možete pokrenuti naredbene skripte koje se sastoje od naredbi iz druge ljuske: prvi redak svake skripte sadrži indikaciju u kojoj ljusci treba biti izvršena, a trenutna ljuska za nju pokreće navedeni podređeni proces.

Kao što sam rekao, prema zadanim postavkama novom korisniku je dodijeljena bash ljuska. Ovo je sjajna ljuska, s mnogo poboljšanja i najboljim značajkama drugih ljuski, i ne preporučujem da je mijenjate. U nastavku, kad kažem "ljuska", mislit ću na bash.

2. Raščlanjivanje naredbenog retka, odabrane bash funkcije

Tumač, primivši naredbeni redak, izvodi niz transformacija na njemu, koristeći svoje moćne funkcije za to, naime:

  1. Proširuje pseudonime za brzi pristup najčešćim naredbama.
  2. Proširuje metaznakove ili zamjenske znakove (*, ?, [, ], ~, (, )) za traženje datoteka pomoću uzoraka naziva.
  3. Zamjenjuje varijable koje može koristiti ljuska.
  4. Preusmjerava izlaz jedne naredbe kao ulaz u drugu naredbu pomoću cijevi.
  5. Izvodi spajanje naredbi.
  6. Izvršava naredbu ako se radi o ugrađenoj naredbi tumača ili pokreće proces ako je naredba vanjska.
  7. Preusmjerava standardni I/O.

Za izvođenje posljednje tri funkcije morate koristiti posebne operatore. Pogledajmo sve navedene funkcije.

2.1. Nadimci

Aliasi naredbi dizajnirani su kako bi omogućili učinkovitiji unos naredbi ljuske. Pomoću aliasa, naredba gotovo bilo koje složenosti može se zamijeniti proizvoljnim nizom. Da biste pregledali popis aliasa i, ako je potrebno, dodali mu novi alias, koristite naredbu alias.

Na primjer:

$ export HELLO="Pozdrav iz okruženja! " # razmak mora biti označen navodnicima

Varijable okoline

Okolina je skup varijabli čije vrijednosti mogu promijeniti ponašanje ljuske.

Kada se ljuska pokrene, postavlja nekoliko varijabli okruženja za sebe. Njihova imena su standardna. Programi i skripte mogu tražiti svoje vrijednosti umjesto da pokušavaju sami otkriti informacije koje su im potrebne.

Na taj način tumač naredbi određuje varijable okoline koje se koriste u trenutnoj sesiji. Svaka nova unesena naredba zapravo se pokreće kao podređeni proces nadređenog procesa, kao što u u ovom slučaju Koristi se bash interpreter naredbi. Varijable okoline razlikuju se od normalnih promjenjive teme da su dostupni i roditeljskim i podređenim procesima. Automatsko otkrivanje varijabli okruženja događa se nakon autentifikacije korisnika u sustavu. Program za prijavu, u slučaju uspješnog završetka procesa autentifikacije, na temelju /etc/passwd datoteke, određuje koji će se interpretator naredbi koristiti u sesiji ovog korisnika. Nakon definiranja tumača naredbi, sesija se konfigurira prema dolje prikazanim konfiguracijskim datotekama.

Konfiguracijska datotekaOpis
/etc/profil

Definira varijable okruženja za sve korisnike u sustavu. Ova datoteka se izvršava pri prvoj prijavi i sadrži osnovne varijable okoline, kao što je varijabla pretraživanja lokacije naredbe PATH, varijabla naziva hosta HOSTNAME i varijabla veličine povijesti naredbe HISTSIZE. Osim toga, ova datoteka generira dodatne varijable okoline iz konfiguracijskih datoteka koje se nalaze u direktoriju /etc/profile.d.

/etc/bashrc

Izvršava se za sve korisnike svaki put kada se pokrene bash shell. Ova datoteka definira vrijednost varijable PS1, kao i dodatne aliase naredbi. Alias ​​je skraćeno, proizvoljno definirano ime naredbe ili niza naredbi koje vam omogućuje izvršavanje složenih nizova naredbi bez unošenja s tipkovnice, već njihovim pozivanjem pozivom odgovarajućeg aliasa. Varijable definirane u ovoj datoteci mogu "preraspodijeliti slične korisnička datoteka-/.bashrc, koji ima veći prioritet.

-/.bashprofil

Koristi se kao datoteka koja sadrži pojedinačne korisničke postavke. Izvršava se samo jednom kada se korisnik prijavi. Osim toga, ova datoteka pokreće datoteku -/.bashrc

~/.bashrc

Ova datoteka sadrži varijable okruženja i pseudonime koje je postavio korisnik. Izvršava se svaki put kada se korisnik prijavi ili kada se otvori nova bash sesija. Ova je datoteka najprikladnija za definiranje korisničkih varijabli i aliasa.

~/.bash_odjava

Ova datoteka se izvršava svaki put kada se odjavite ili završite posljednju sesiju bash interpretera. Prema zadanim postavkama ova datoteka sadrži naredbu za brisanje zaslona terminala.

/etc/inputrc

Ova datoteka sadrži opis tumačenja različitih kombinacija tipki, a sadrži i posebne kombinacije tipki čijim pritiskom se izvršavaju određene naredbe.

Varijable okoline su prilično prikladan način pohranjivanje informacija koje se često koriste unutar trenutna sesija rad sa sustavom. Ako je potrebno, korisnik može kreirati gotovo sve varijable okoline (pokušajte ne mijenjati vrijednosti varijabli okoline koje se već koriste) i čitati njihove vrijednosti tijekom cijelog vremena rada s naredbenom ljuskom. Da biste stvorili privremenu varijablu okruženja, morate unijeti njezin naziv i dodijeliti mu odgovarajuću vrijednost. Na primjer,

izvoz AB=/usr/dog/contagious/ringbearer/grind

U u ovom primjeru Privremenoj varijabli okruženja AB dodijeljena je staza do direktorija koji se nalazi prilično "duboko" u hijerarhiji direktorija datotečnog sustava. Naredba za izvoz ukazuje na potrebu izvoza vrijednosti varijable AB u ljusku kako bi bila dostupna drugim ljuskama koje mogu biti otvorene unutar trenutne sesije sa sustavom. Sada se gore navedenom direktoriju može pristupiti izvršavanjem naredbe cd $AB

Jedini nedostatak privremenih varijabli okruženja je da se one automatski uništavaju kada završi trenutna sesija sa sustavom. Kako bi se stvorila trajna (za razliku od privremene) varijabla okoline, mora se dodati konfiguracijskoj datoteci ljuske.bashrc.

Za promjenu konfiguracijskih datoteka /etc/profile i /etc/bashrc morate biti root.

Obični korisnici mogu mijenjati ~/.bash_profile, ~/.bashrc i ~/.bash_Iogout konfiguracijske datoteke koje se nalaze u njihovim matičnim direktorijima. Ove konfiguracijske datoteke mogu se konfigurirati za postavljanje varijabli vaše okoline pomoću naredbe izvoza i mogu se koristiti u bilo kojoj sesiji.

Jedna od najčešće mijenjanih varijabli okruženja je varijabla PATH. Također možete nadjačati ili proširiti varijablu okruženja PATH u konfiguracijskoj datoteci ~/.bashrc.

u ovom primjeru, varijabla PATH će sadržavati svoju trenutnu vrijednost plus matični direktorij kao put pretraživanja za izvršne datoteke.

Da bi se ove promjene primijenile u okruženju trenutne ljuske, morate pokrenuti izvor naredbe .bashrc

Najčešće varijable okruženja ljuske su:

  • BASH - Sadrži puni put do naredbe bash (obično /bin/bash).
  • BASH_VERSION - broj Bash verzije.
  • DIRSTACK - Niz koji sadrži trenutnu vrijednost stoga direktorija.
  • UREDNIK- uređivač teksta zadano.
  • EUID - Numerički efektivni identifikator trenutnog korisnika.
  • FUNCNAME - ime trenutna funkcija u scenariju.
  • GRUPE - niz koji sadrži popis grupa kojima trenutni korisnik pripada.
  • HISTFILE - Lokacija datoteke povijesti naredbi. Obično je povijest naredbi pohranjena u datoteci ~/.bash_history.
  • HISTFILESIZE - Broj naredbenih redaka koji se mogu pohraniti u datoteku povijesti. Nakon što se dostigne ovaj broj, nove naredbene linije se unose u povijest brisanjem najstarijih naredbenih linija. Prema zadanim postavkama, veličina popisa nedavno korištenih naredbi je 1000 redaka.
  • DOM - Početni imenik korisnik.
  • HOSTNAME - Naziv ovog računala (čvora).
  • HOSTTYPE - Vrsta računala.
  • JEZIK - Trenutačni zadani jezik.
  • LC_CTYPE je interna varijabla koja određuje kodiranje znakova.
  • MAIL - lokacije datoteka poštanskih sandučića E-mail korisnik. Obično je to datoteka koja se nalazi u direktoriju /var/spool/mail, čije je ime isto kao registracijsko ime korisnik.
  • MAILCHECK - Interval u minutama između provjera pošte.
  • OLDPWD - Imenik koji je bio aktualan do zadnje izmjene imenika.
  • OSTYPE - Trenutačni operativni sustav.
  • PATH - Dvotočkom odvojen popis direktorija u kojima se traže izvršne datoteke. Redoslijed kojim se pretražuju nazivi direktorija iznimno je važan. Prilikom izvršavanja naredbi, direktoriji navedeni u ovoj varijabli provjeravaju se redom s lijeva na desno. Dakle, prilikom izvršavanja naredbe foo koja se nalazi u direktorijima /bin i /usr/bin, izvršit će se naredba koja se nalazi u direktoriju /bin. Za pokretanje naredbe foo koja se nalazi u direktoriju /usr/bin u sličnoj situaciji, morate ili navesti punu stazu do ove naredbe ili promijeniti redoslijed imena direktorija u varijabli okoline PATH. Trenutni direktorij za pretraživanje mora biti eksplicitno naveden ("."); Traženje programa za pokretanje u trenutnom direktoriju potencijalno je opasno zbog mogućnosti nenamjernog pokretanja opasnog programa, pa se PATH varijabla obično inicijalizira bez "." Da biste dodali stazu do svojih naredbi ili skripti ljuske u PATH varijablu, smjestite ih u /bin poddirektorij vašeg matičnog direktorija, koji će automatski biti dodan u PATH varijablu. Nisu sve izvršne naredbe smještene u direktorijima navedenima u varijabli okruženja PATH. Neke su naredbe ugrađene izravno u ljusku. Ostale naredbe mogu se redefinirati korištenjem pseudonima, čime se naredbe s parametrima gotovo bilo koje složenosti (u smislu sintakse) mogu zamijeniti jednim jednostavnim imenom. Osim toga, moguće je kreirati funkcije koje pohranjuju cijeli niz naredbi.
  • PPID Identifikacijski broj proces koji odgovara naredbi koja je pokrenula trenutnu ljusku (na primjer, proces koji je stvorio ljusku).
  • PS1, PS2, PS3, PS4 - Varijable koje određuju vrstu prompta ljuske.

    Varijable PS1 i PS2 postavljaju primarne i sekundarne upite ljuske.

    Sekundarni upit (PS2) pojavljuje se ako pritisnete tipku Enter bez sintaktičkog dovršetka unosa naredbe.

    Ova varijabla sadrži manji upit koji se pojavljuje prilikom uređivanja teksta u više redaka ili nepotpunog unosa naredbe. Standardno je označen kao >.

    PS3. Ova varijabla sadrži prompt prisutan u odaberite izjavu, koristi se za organiziranje interaktivnih izbornika konzole. Prema zadanim postavkama, upit za PS3 u izjavi za odabir je #?.

    PS4. Ova se varijabla primarno koristi pri otklanjanju pogrešaka u skriptama ljuske i prema zadanim postavkama sadrži vrijednost niza "++".

    Na primjer, pokretanje naredbe za dobivanje DNS informacija:

    # nslookup >

  • PWD - Korisnikov trenutni radni imenik. Ova se vrijednost mijenja svaki put kada prijeđete u drugi direktorij pomoću naredbe cd.
  • SECONDS - vrijeme rada skripte (u sekundama).
  • SHELL - Trenutačni tumač naredbi.
  • SHELLOPTS - Popis omogućenih opcija tumača.
  • SHLVL - Broj pokretanja novih kopija tumača naredbi.
  • UID - Numerički identifikator trenutnog korisnika.
  • KORISNIK - Trenutno korisničko ime.
  • $# - Ukupan broj parametara proslijeđenih skripti.
  • $* - Svi argumenti se ne prosljeđuju skripti (izlaz u liniju).
  • $@ - Isto kao prethodni, ali su parametri prikazani u stupcu.
  • $! - PID posljednjeg procesa koji se izvodi u pozadini.
  • $$ - PID same skripte.

Za prikaz vrijednosti svih varijabli u trenutnoj sesiji, i onih koje definirate i onih u okruženju, izdajte naredbu set bez parametara ili env printenv.

Varijablu možete ukloniti naredbom unset.

2.4. Zamjene i organizacija interakcije između naredbi

Zamjena vrijednosti varijable okruženja trenutna sesija sa sustavom može se izvršiti korištenjem metaznaka znaka dolara ($). Kao rezultat toga, ljuska automatski zamjenjuje naziv varijable njenom vrijednošću. Na primjer,

Zamjena rezultata aritmetičkog izraza

Postoje dva sintaktička oblika za zamjenu rezultata aritmetičkog izraza: $[izraz] i $((izraz)). Na primjer,

echo "Imam $ godina."

Zamjena naredbi

Zamjena naredbi omogućuje vam korištenje izlaza jedne naredbe u naredbenom retku koji sadrži drugu naredbu. Mogu se koristiti dva alternativni formati zamjene: $(naredba) ili `naredba` (jednostruki povratni navodnici). Na primjer,

Proširivanje znaka tilde

Znak tilda (~) omogućuje vam brzi unos naziva direktorija.

~ Naziv korisničkog matičnog direktorija ~/poddirektorij Naziv jednog od poddirektorija u korisnikovom početnom direktoriju ~+ Naziv trenutnog direktorija ~- Naziv prethodnog direktorija

Razotkrivanje vitičaste zagrade

Pomoću vitičastih zagrada možete unijeti jednu naredbu umjesto nekoliko iste vrste. Zagrade moraju sadržavati popis čiji elementi moraju biti odvojeni zarezima. Interpretator čita elemente jedan po jedan i sa svakim od njih formira zasebnu naredbu koju zatim izvršava. Na primjer, naredba

mkdir troškovi/(siječanj, veljača, ožujak) ekvivalentno je mkdir troškovima/siječanj mkdir troškovi/veljača mkdir troškovi/ožujak

Kanali

Metaznak kanala (|) označava potrebu organiziranja interakcije između naredbi korištenjem rezultata izvršenja (izlaza) druge naredbe kao ulaznog podatka (inputa) naredbe. Drugim riječima, korištenjem cijevi (cjevovoda), rezultati prve naredbe mogu se proslijediti kao ulaz u drugu naredbu. Na primjer,

mačka /etc/passwd | sortirati | glava -3

Nizovi i skupine naredbi

Korištenje sekvenci naredbi i grupa omogućuje vam unos više naredbi u jednom retku.

naredba1;naredba2 Prvo izvrši naredbu 1, zatim naredbu 2 (naredba1;naredba2) Pokreni zaseban primjerak interpreter u kojem se izvršavaju naredbe 1 i 2 uzastopno ( naredba1;naredba2) Izvršava naredbe 1 i 2 uzastopno u trenutnom tumaču naredba1 && naredba2 Izvršava naredba 2 samo ako je naredba 1 uspješno dovršena naredba1 || naredba2 Izvrši naredbu 2 samo ako naredba 1 ne uspije

Rezultat bilo kojeg izvršenja naredbe (odnosno rezultat završetka odgovarajućeg procesa) je izlazni kod. Uspješno dovršenje ima šifru 0, a neuspješno dovršenje kod 1. Je li vrijednost koda dovršetka dodijeljena unaprijed definiranoj varijabli? (upitnik). Na primjer, echo $?

Ponovno izvršavanje naredbi

Ljuska ima mogućnosti koje vam omogućuju da se prisjetite prethodnih naredbi i uredite ih. Povijest naredbi ljuske je popis prethodno korištenih naredbi. Ovaj se popis može pregledati pomoću naredbe history.

Nakon što unesete naredbeni redak, ljuska ga smješta u povijest naredbi. Popis prethodno korištenih naredbi pohranjuje se u datoteci, što vam omogućuje pozivanje bilo koje željene naredbene linije iz nje u bilo kojem trenutku za ponovno izvršenje. Nakon ponovnog pozivanja naredbenog retka, može se uređivati. Povijest naredbi pohranjuje se u datoteci .bash_history koja se nalazi u početnom direktoriju korisnika. Prema zadanim postavkama, naredbena ljuska može "pamtiti" do 1000 naredbenih redaka.

Za pregled popisa prethodno korištenih naredbi, pokrenite naredbu history. Može se koristiti ili bez parametara ili s parametrom koji vam omogućuje da odredite broj naredbi koje će se prikazati. Svaka naredbena linija ima svoj broj u povijesti naredbi.

Sintaksa proširenja povijesti: !n Izvrši zadani broj naredbe!! Izvrši prethodnu naredbu!string Izvrši posljednju naredbu počevši s danim nizom!?string? Izvrši posljednju naredbu koja sadrži zadani niz

Umjesto izravnog izvršavanja naredbenog retka sadržanog u povijesti naredbi, možete ga pozvati za kasnije uređivanje. Koristite kursorske tipke "strelica gore" i "strelica dolje" Za korak po korak gledanja povijest naredbi i odabir željene naredbene linije.

3. Ugrađeni bash

Popis ugrađenih bash shell-ova može se dobiti pomoću naredbe help ili se može pronaći na man stranici u odjeljku SHELL BUILTIN COMMANDS.

Evo nekoliko korisnih ugrađenih naredbi:

  • echo [argumenti] - Ispis argumenata na ekran.
  • enable - Uzrokuje da ljuska izvrši izvršnu datoteku istog imena umjesto ugrađene naredbe. Korisno ako imate vlastitu skriptu nazvanu poput echo.
  • eval [argumenti] - Konstruira naredbu u hodu od navedenih argumenata i šalje je na izvršenje.
  • neka - Procjena izraza.
  • - Čitajte i izvršavajte naredbe sadržane u datoteci. Koristi se za definiranje korisničkih varijabli. i funkcije.
  • osnovno ime - Označite lokalno ime.
  • expr - Evaluacija izraza.
  • read - Unesite vrijednost varijable.
  • shift - Pomakni popis parametara.
  • test - Testirajte stanje.
Ostale ugrađene naredbe služe kao upute u jeziku bash naredbi.

Na većini Linux operativnih sustava, bash je zadani tumač naredbenog retka. Za određivanje trenutnog tumača unesite sljedeću naredbu:

$ echo $SHELL
/bin/bash

Ovaj primjer koristitumač naredbenog retka udarac. Postoje mnogi drugi tumači naredbi. Da biste aktivirali drugi tumač, možete unijeti njegovo ime u naredbeni redak (ksh, tcsh, csh, sh, bash, itd.).

Većina operativnih sustava Linux s punim značajkama nudi sve ovdje opisane tumače naredbi. Ali u malom operativni sustavi mogu se osigurati jedan ili dva tumača.

Provjera raspoloživosti artikla koji vas zanimatumačnaredbeni redak

Najviše na jednostavan način Za provjeru dostupnosti naredbenog tumača od interesa, unesite njegovo ime u naredbeni redak. Ako je prevoditelj započeo, dostupan je.

Postoji nekoliko razloga za odabir alternativnih školjki.

  • Navika rada u UNIX sustavi System V (mnogi od njih koriste ksh prema zadanim postavkama) ili Sun Microsystems i drugi Berkeley UNIX-bazirani sustavi (koji često koriste csh). U ovom slučaju, korištenje ovih tumačanaredbeni redakbit će prikladnije.
  • Potreba za pokretanjem skripti koje su stvorene za određeni tumač naredbi.
  • Mogućnosti alternativne ljuske mogu biti poželjnije. Na primjer, jedan od članova grupe Korisnici Linuxa radije koristi ksh jer mu se ne sviđa način na koji bash stvara aliase.

Iako većina korisnika radije radi u jednoj ljusci, stečene vještine pomažu im da nauče raditi u drugima.tumači naredbeni redak , povremeno gledajući referentni priručnik (na primjer, pomoću naredbe manbash). Većina ljudi koristi bash jer nema razloga za prebacivanje na drugog tumača.

Korištenje Basha i pogl

Naziv bash je akronim za Bourne Again SHell. Ova kratica označava da bash nasljeđuje Bourneshell tumač (naredba sh), koji je stvorio Steve Bourne iz AT&TBell Labsa. Brian Fox iz Free Software Foundationa stvorio je bash kao dio GNU projekta. Nakon toga, razvoj je prešao u ruke Cheta Rameya na Sveučilištu Case Western Reserve.

Bash interpreter sadrži značajke koje su razvijene za sh i ksh interpretere u ranim verzijama UNIX-a, kao i brojne značajke csh interpretera.

Možete očekivati ​​da se na većini Linux sustava, osim na specijaliziranim (na primjer, onima koji su ugrađeni ili se dižu s vanjskog diska), bash interpreter koristi prema zadanim postavkama. U specijaliziranim sustavima može biti potreban manji interpreter naredbi, što također implicira ograničene mogućnosti.

Većina primjera u ovomčlanakdizajniran za bash upotrebu.

Bash prevoditelj se može uključiti razni modovi kompatibilnost oponašanjem ponašanja drugih ljuski. Može oponašati ponašanje Bourneove ljuske (sh) ili ljuske usklađene s POSK standardima (bash -posix).

Kao rezultat toga, veća je vjerojatnost da će bash moći uspješno čitati konfiguracijske datoteke i pokretati skripte napisane posebno za druge ljuske.

Svi ponuđeni Linux operativni sustavi prema zadanim postavkama koriste bash interpreter, osim operativnih sustava iz kojih se pokreće sustav prijenosni medij, u kojem se primjenjuje zadana vrijednost ash tumač.

Korištenje tcsh (i ranijeg tumača csh)

Interpretator naredbi tcsh je implementacija Cshell (csh) interpretera otvorenog koda. Csh interpreter kreirao je Bill Joy i koristi se prema zadanim postavkama na gotovo svim Berkeley UNIX sustavima (takve sustave distribuira Sun Microsystems).

Mnoge značajke csh-a, kao što je uređivanje naredbenog retka i metode upravljanja poviješću naredbi, implementirane su u tcsh i druge ljuske. Kao što naredba sh pokreće bash interpreter u sh-kompatibilnom načinu rada, csh naredba pokreće tcsh interpreter u csh-kompatibilnom načinu rada.

Korištenje prevoditelja pepela

Ash interpreter je lagana verzija Berkeley UNIX sh interpretera. Ne sadrži mnogo osnovne funkcije i ne pruža značajke kao što je povijest naredbi.

Interpretator pepela vrlo je prikladan za upotrebu u ugrađenim sustavima s ograničenim resursi sustava. Na operativnom sustavu FedoraCore 4, ash interpreter je red veličine manji od bash interpretera.

Korištenje zsh

Zsh interpreter je još jedan klon sh interpretera. Sukladan je s POSIX-om (kao bash), ali ima druge značajke, uključujući provjeru pravopisa i drugačiji pristup uređivanju naredbenog retka. Interpretator zsh bio je zadani tumač na ranim operativnim sustavima MacOS X, ali moderni sustavi koriste bash interpreter prema zadanim postavkama.

Ovaj odjeljak pokriva sljedeće teme:

  • Interakcija s školjkama i naredbama
  • Naredbe i sekvence naredbi
  • Definiranje, korištenje i izvoz varijabli okoline
  • Povijest naredbi i alati za uređivanje
  • Izvođenje naredbi unutar i izvan varijable okruženja PATH
  • Korištenje zamjene naredbe
  • Rekurzivna primjena naredbi na stablo imenika
  • Korištenje man stranica (pomoć) za pronalaženje informacija o naredbama

Ovaj odjeljak opisuje neke od osnovnih značajki bash ljuske. Poseban naglasak stavljen je na sposobnosti potrebne za certifikaciju. Tumač naredbi je bogato okruženje i potičemo daljnje samoistraživanje. Po timu UNIX tumači i Linux, napisane su mnoge knjige, a posebno bash.

interpreter bash naredbi

Tumač udarac jedan od nekoliko tumača dostupnih na Linuxu. Također se zove B naš- a dobiti sh ell, u čast Stephena Bournea, tvorca rana verzija tumač ( /bin/sh).Bash je u osnovi kompatibilan sa sh, ali uvodi mnoga poboljšanja, kako u funkcionalnosti tako iu mogućnostima programiranja. Uključuje mogućnosti tumača Korn (ksh) i C (csh) i osmišljen je kao tumač usklađen s POSIX-om.

Prije nego počnemo učiti bash, zapamtimo to tumač je program koji prima i izvršava naredbe. Također podržava mogućnosti programiranja, omogućujući vam sastavljanje složenih dizajna od običnih naredbi. Ove složene strukture odn scenariji mogu se spremiti u datoteke, koje su pak same po sebi nove naredbe. Štoviše, mnoge naredbe na tipičnom Linux sustavi Nisu implementirane kao skripte ljuske.

Tumači sadrže ugrađeni naredbe kao što su cd, break i exec. Ostale naredbe su vanjski.

Tumači također koriste tri standarda teći I/O:

  • stdin Ovaj standardni tok ulazni, koji daje unos za naredbe.
  • stdout Ovaj standardni izlaz, koji prikazuje rezultate naredbe u prozoru terminala.
  • stderr Ovaj standardni tok pogrešaka, koji prikazuje pogreške koje se javljaju prilikom izvođenja naredbi.

Ulazni tokovi daju unos u programe, obično povezan s tipkovnicom terminala. Izlazni tokovi ispisuju tekstualne znakove, obično na terminal. Terminal je izvorno bio ASCII pisaći stroj ili video terminal, ali sada je često prozor na grafičkoj radnoj površini. Ostatak ovog odjeljka fokusirat će se na preusmjeravanje visoke razine.

Ako koristite Linux sustav bez GUI-ja ili ste otvorili prozor terminala u grafički način rada, vidjet ćete naredbeni redak sličan Ispisu 1.

Ispis 1. Primjeri tipičnih korisničkih upita

$
ian@lyrebird:~>
$

Ako ste prijavljeni kao root (ili superuser), vaš bi upit mogao izgledati kao Ispis 2.

Ispis 2. Primjeri pozivnica za root korisnik ili superkorisnika

#
ptica lira:~ #
#

Root korisnik ima značajnu moć, stoga ga koristite s oprezom. Ako imate root privilegije, većina upita počinje znakom funte (#). Upit za običnog korisnika obično počinje drugim znakom, obično znakom dolara ($). Vaša se pozivnica može razlikovati od primjera u ovom vodiču. Vaš upit može sadržavati vaše korisničko ime, naziv stroja, trenutni direktorij, datum ili vrijeme ispisa upita i tako dalje.

Neke konvencije ovog vodiča

Vodiči za ispite developerWorks LPI 101 i 102 uključuju ogledni kod iz stvarnih Linux sustava, koristeći zadane upite za te sustave. U našem slučaju, root prompt počinje s #, tako da ga možete razlikovati od promptova obični korisnici, koji počinju znakom $. Ova je konvencija ista kao ona koja se koristi u knjigama na tu temu. Pažljivo pogledajte prompt ljuske u svakom primjeru.

Naredbe i sekvence

Nalazite se u tumaču naredbi, da vidimo što sada možete učiniti. Glavna funkcija tumača naredbi je da izvršava vaše naredbe preko kojih komunicirate sa sustavom Linux. Na Linux (i UNIX) sustavima naredbe se sastoje od naziva naredbe, opcija i parametara. Neke naredbe nemaju ni opcije ni parametre, druge imaju opcije ali ne i parametre, dok treće nemaju ni opcije ni parametre.

Ako redak sadrži znak #, tada se svi sljedeći znakovi u njemu zanemaruju. Dakle, simbol # može značiti ili početak komentara ili pozivnicu korisniku. Daljnje tumačenje bit će očito iz konteksta.

Tim Eho

Naredba echo ispisuje popis svojih argumenata na terminal kao što je prikazano u ispisu 3.

Ispis 3. Primjeri naredbe echo

$ echo Riječ
Riječ
$ echo I rečenica
I prijedlog
$ echo Gdje su nestali razmaci?
Gdje su nestali razmaci?
$ echo "Evo mjesta." # i komentar
A evo i mjesta.

U trećem primjeru ispisa 3, svi razmaci između riječi u izlazu naredbe postali su iste veličine, jedan razmak. Da biste to izbjegli, morat ćete string staviti u navodnike, koristeći dvostruke navodnike (“) ili jednostruke navodnike (‘). Bash koristi znakove za razgraničenje kao što su razmaci, kartice i simboli nova linija da podijelite ulazni niz u tokene, koji se zatim prosljeđuju vašem timu. Stavljanje niza u navodnike potiskuje njegovo razdvajanje i stoga je to jedan token. U gornjem primjeru, svaki token nakon naziva naredbe je parametar, tako da imamo 1, 2, 4 i 1 parametar redom.

Naredba echo ima nekoliko opcija. Obično echo dodaje znak novog retka nakon izlaza. Koristite opciju -n kako ne bi dodala znak novog retka. Upotrijebite opciju -e kako bi naredba interpretirala izlazne sekvence.

Escape sekvence i prijelomi redaka

Postoji mali problem kada se koristi obrnuta kosa crta u bashu. Kada znak obrnute kose crte (\) nije u navodnicima, on sam služi kao izlazna sekvenca za bash, čuvajući značenje sljedećeg znaka. Ovo je neophodno za posebne metakaraktere, koje ćemo pogledati malo kasnije. Postoji jedna iznimka od ovog pravila: obrnuta kosa crta iza kojeg slijedi novi redak uzrokuje da bash proguta oba znaka i tretira niz kao zahtjev za nastavak reda. Ovo može biti korisno kod dijeljenja dugih redaka, posebno u skriptama.

Da bi se gore opisane sekvence ispravno obradile naredbom echo ili jednom od mnogih drugih naredbi koje koriste slične upravljačke znakove izlaza, sekvence izlaza morate staviti u navodnike ili ih uključiti u navodnički niz ili upotrijebiti drugu kosu crtu unazad da biste dobili to pravo tumačenje simbola. Ispis 4 sadrži primjere različitih upotreba \.

Ispis 4. Primjeri korištenja echo

$ echo -n Nema novog retka
Bez novog retka$ echo -e "Bez novog retka\c"
Nema novog retka$ echo "Redak na koji ste kliknuli
> Tipka za unos"
Linija na koju ste kliknuli
Enter tipka
$ echo -e "Redak s izlaznim znakom za novi redak"
Niz s izlaznim znakom
nova linija
$ echo "Redak s izlaznim znakom za novi red, ali bez opcije -e"
Niz s izlaznim znakom za novi red, ali bez opcije -e
$ echo -e Metaznakovi s dvostrukom\\n\\tkosom crtom
Metaznakovi s dvostrukom
obrnuta kosa crta
$ echo obrnuta kosa crta \
> nakon čega slijedi Enter \
> služi kao zahtjev za nastavak linije.
Obrnuta kosa crta nakon koje slijedi Enter služi kao zahtjev za nastavak retka.

Imajte na umu da bash prikazuje poseban upit (>) kada upišete niz s nezavršenim navodnicima. Vaš se redak unosa prelama u drugi redak i uključuje znak novog retka.

Bash metakarakteri i kontrolne izjave

Bash uključuje nekoliko znakova koji, kada su bez navodnika, također služe za dijeljenje ulaznog niza u riječi. Osim razmaka, takvi simboli su ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, и ‘>’. O nekim od ovih simbola ćemo detaljnije govoriti u drugim odjeljcima ovog vodiča. Za sada imajte na umu da ako želite uključiti metakarakter kao dio svog teksta, on mora biti unutar navodnika ili mu prethoditi obrnuta kosa crta (\) kao u ispisu 4.

Novi redak i odgovarajući metaznakovi ili parovi metaznakova također služe kao kontrolne naredbe. Takvi simboli su ‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘|’ '(', I ')'. Neke od ovih kontrolnih naredbi omogućuju vam stvaranje nizova ili popisa naredbi.

Najjednostavniji niz naredbi sastoji se od dvije naredbe odvojene točkom i zarezom (;). Svaka sljedeća naredba se izvršava nakon prethodne. U svakom programskom okruženju, naredbe vraćaju kod koji pokazuje je li program završio normalno ili nije uspio; Linux naredbe obično vraćaju 0 ako su uspješne i različitu od nule ako su neuspješne. Možete izvršiti uvjetnu obradu pomoću kontrolnih operatora && ||. Ako dvije naredbe odvojite kontrolnim operatorom &&, druga će se naredba izvršiti samo ako je prva vratila nulu. Ako naredbe odvojite s ||, tada će se druga naredba izvršiti samo ako prva vrati vrijednost različitu od nule. Ispis 5 sadrži neke nizove naredbi koje koriste naredbu echo. Ovi primjeri nisu baš zanimljivi budući da echo vraća 0, ali pogledat ćemo još primjera kada naučimo kako koristiti više naredbi.

Ispis 5. Nizovi naredbi

$ echo linija 1;echo linija 2; eho linija 3
linija 1
linija 2
linija 3
$ echo linija 1&&echo linija 2&&echo linija 3
linija 1
linija 2
linija 3
$ echo linija 1||echo linija 2; eho linija 3
linija 1
linija 3

Iz ljuske možete izaći pomoću naredbe exit. Osim toga, možete navesti izlazni kod kao parametar. Ako radite s tumačem naredbi u prozoru terminala u grafičkom načinu rada, tada će se u ovom slučaju jednostavno zatvoriti. Isto tako, ako ste spojeni na udaljeni sustav koristeći ssh ili telnet (na primjer), veza neće uspjeti. U bash interpreteru također možete pritisnuti Tipka Ctrl i d za izlaz.

Pogledajmo još jednu kontrolnu izjavu. Ako naredbu ili popis naredbi stavite u zagradu, naredba ili niz naredbi bit će izvršen u vlastitoj kopiji ljuske, tako da izlazna naredba izlazi iz kopije ljuske, a ne iz ljuske u kojoj se trenutno nalazite trčanje. Ispis 6 sadrži jednostavne primjere korištenja && i ||.

Ispis 6. Ljuske i nizovi naredbi

$ (echo U kopiji tumača; izlaz 0) && echo OK || echo Loš izlaz
U kopiji tumača
u redu
$ (echo U kopiji tumača; izlaz 4) && echo OK || echo Loš izlaz
U kopiji tumača
Loš izlaz

Pratite nas za više naredbi u ovom vodiču.

Varijable okoline

Kada pokrećete bash, okruženi ste skupom postavki koje čine vaše okruženje, kao što je format vašeg odzivnika, naziv vašeg matičnog direktorija, vaš radni direktorij, naziv vašeg tumača, datoteke koje ste otvorili, funkcije koje ste definirali i tako dalje. Vaše okruženje uključuje mnoge varijable koje možete postaviti i vi i bash. Bash vam također omogućuje stvaranje varijabli ljuske koje možete izvesti u svoje okruženje za korištenje drugim procesima koji se izvode u interpreteru ili drugim interpreterima koje možete pokrenuti iz trenutnog interpretera.

I varijable okruženja i varijable ljuske imaju ime. Možete se pozvati na vrijednost varijable stavljanjem znaka ‘$’ ispred naziva varijable. Neke od najčešćih varijabli bash okruženja navedene su u tablici 4.

  • KORISNIK Prijavljeno korisničko ime
  • UID Digitalni ID prijavljenog korisnika
  • DOM Korisnički matični imenik
  • P.W.D. Trenutni radni imenik
  • LJUSKA Naziv školjke
  • $ ID procesa (ili PID) bash (ili drugog) procesa
  • PPID ID procesa koji je nastao ovaj proces(odnosno ID nadređenog procesa)
  • ? Zadnji izlazni kod naredbe

U ispisu 7 možete vidjeti neke bash varijable.

Ispis 7. Varijable okoline i ljuska

$ echo $USER $UID
jan 500
$ echo $SHELL $HOME $PWD
/bin/bash /home/ian /home/ian
$ (izlaz 0);echo $?;(izlaz 4);echo $?
0
4
$ echo $$ $PPID
30576 30575

Možete stvoriti ili postaviti varijablu ljuske upisivanjem znaka jednakosti (=) neposredno iza naziva varijable. Varijable razlikuju velika i mala slova, pa su var1 i VAR1 dvije različite varijable. Prema konvenciji, varijable, posebno eksportirane varijable, upisuju se u velika slova, ali to nije obavezan uvjet. Formalno, $$ i $? su parametri ljuske, a ne varijable. Možete se pozivati ​​na njih, ali ne i dodjeljivati ​​vrijednosti.

Kada stvorite varijablu ljuske, često ćete je htjeti izvesti u okruženje tako da bude dostupna drugim procesima koje pokrenete iz ljuske. Varijable koje izvozite nisu dostupne nadređenim tumačima. Za izvoz varijable koristite naredbu izvoz. Radi praktičnosti, možete dodijeliti vrijednost i izvesti varijablu u jednom koraku.

Za ilustraciju dodjele i izvoza, kreirajmo još jedan bash iz trenutnog bash interpretera, a zatim pokrenimo Korn interpreter iz (ksh) kreiranog bash. Koristit ćemo naredbu ps za prikaz informacija o pokrenutim procesima. Naučit ćemo više o naredbi ps kada kasnije u ovom vodiču budemo govorili o statusu procesa.

Ne koristite bash?

Bash interpreter je zadani tumač na mnogim distribucijama Linuxa. Ako ne radite s bashom, razmislite o tome sljedeće metode vježbati korištenje basha.

  • Koristite naredbu
    chsh -s /bin/bash
    za promjenu zadanog tumača. Promjene će stupiti na snagu sljedeći put kada se prijavite.
  • Tim
    su – $KORISNIK -s /bin/bash
    će stvoriti drugi proces koji će biti dijete vašeg trenutnog tumača. Novi proces će pokrenuti proces prijave s bash ljuskom.
  • Stvorite bash korisnika za pripremu za LPI ispit.

Ispis 8. Varijable okoline i ljuska

$ ps -p $$ -o "pid ppid cmd"
PID PPID CMD
30576 30575 -baš
$bash

PID PPID CMD
16353 30576 bash
$ VAR1=var1
$ VAR2=var2
$izvoz VAR2
$ izvoz VAR3=var3
$VAR2 $VAR3
var1 var2 var3
$ echo $VAR1 $VAR2 $VAR3 $SHELL
var1 var2 var3 /bin/bash
$ksh
$ ps -p $$ -o "pid ppid cmd"
PID PPID CMD
16448 16353 ksh
$ izvoz VAR4=var4
$ echo $VAR1 $VAR2 $VAR3 $VAR4 $SHELL
var2 var3 var4 /bin/bash
$ izlaz
$ $ echo $VAR1 $VAR2 $VAR3 $VAR4 $SHELL
var1 var2 var3 /bin/bash
$ ps -p $$ -o "pid ppid cmd"
PID PPID CMD
16353 30576 bash
$ izlaz
$ ps -p $$ -o "pid ppid cmd"
PID PPID CMD
30576 30575 -baš
$ echo $VAR1 $VAR2 $VAR3 $VAR4 $SHELL
/bin/bash

Bilješka:

  1. Na početku ove sekvence bash interpreter je imao PID 30576.
  2. Drugi bash interpreter ima PID 16353, a njegov nadređeni PID je 30576, odnosno izvorni bash.
  3. Stvorili smo varijable VAR1, VAR2 i VAR3 u drugoj instanci basha, ali smo izvezli samo VAR2 i VAR3.
  4. U Korn interpreteru stvorili smo VAR4. Naredba echo prikazuje samo vrijednosti VAR2, VAR3 i VAR4 i potvrđuje da VAR1 nije izvezen. Niste li bili iznenađeni kada se vrijednost varijable SHELL nije promijenila iako se upit promijenio? Ne možete se uvijek osloniti na SHELL da odredite koji tumač radovi u tijeku, ali naredba ps će vam omogućiti da točno odredite što je što. Imajte na umu da ps stavlja crticu (-) ispred prve instance basha da bismo znali što je to izvorna ljuska.
  5. U drugoj instanci basha možemo vidjeti VAR1, VAR2 i VAR3.
  6. Konačno, kada se vratimo izvornom tumaču, u njemu ne postoji niti jedna varijabla.

Ranije smo raspravljali o mogućnosti korištenja jednostrukih i dvostrukih navodnika. Između njih postoji značajna razlika. Interpretator izvodi zamjenu varijabli ljuske između dvostrukih navodnika ($), ali ne izvodi zamjenu ako se koriste jednostruki navodnici (‘). U prethodnom smo primjeru stvorili novu instancu tumača iz druge instance i primili novi ID procesa. Korištenje opcije -c možete proslijediti naredbu drugom tumaču, koji će izvršiti naredbu i vratiti se. Ako proslijedite niz kao naredbu u jednostrukim navodnicima, tada će ih druga instanca tumača ogoliti i obraditi niz. Korištenje dvostruki navodnici dolazi do supstitucije varijable prije toga kako se niz prosljeđuje, tako da se rezultati mogu razlikovati od očekivanih. Interpretator i naredba izrodit će proces koji će imati vlastiti PID. Ispis 9 ilustrira ove koncepte. PID originalnog bash interpretera je u drugom fontu.

Ispis 9. Navodnici i varijable ljuske

$ echo "$SHELL" "$SHELL" "$$" "$$"
/bin/bash $SHELL 19244 $$
$ bash -c "echo Proširi u nadređenom $$ $PPID"
Proširi u roditelju 19244 19243
$ bash -c "echo Proširi u dijete $$ $PPID"
Proširi u dijete 19297 19244

Do sada su sve naše varijable završavale razmakom, tako da je bilo jasno gdje završava naziv varijable. Zapravo, naziv varijable može se sastojati samo od slova, brojeva ili podvlake. Interpretator zna da naziv varijable završava čim se naiđe na drugi znak. Ponekad je potrebno koristiti varijable u izrazima gdje njihovo značenje može biti dvosmisleno. U takvim slučajevima možete koristiti vitičaste zagrade za odvajanje naziva varijable kao što je prikazano u Ispisu 10.

Ispis 10. Korištenje vitičastih zagrada s imenima varijabli

$ echo "-$HOME/abc-"
-/home/ian/abc-
$ echo "-$HOME_abc-"
--
$ echo "-$(HOME)_abc-"
-/home/ian_abc-

naredba env

Naredba env, bez ikakvih opcija ili parametara, prikazuje trenutne varijable okruženja. Također ga možete koristiti za pokretanje naredbe u unaprijed definiranom okruženju. Opcija -i (ili samo -) briše trenutno okruženje prije izvršavanja naredbe, dok opcija -u briše varijable okruženja za koje ne želite da budu proslijeđene.

Ispis 11 sadrži djelomični izlaz naredbe env bez ikakvih parametara, nakon čega slijede tri primjera koji pokreću različite tumače bez nadređenog okruženja. Pažljivo ih pregledajte prije nego što o njima raspravljamo.

Ispis 11. naredba env

$env
HOSTNAME=echidna
POJAM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=9.27.89.137 4339 22
SSH_TTY=/dev/pts/2
KORISNIK=ian
...
_=/bin/env
OLDPWD=/usr/src
$ env -i bash -c "echo $SHELL; env"
/bin/bash
OSI=/dom/jan
SHLVL=1
_=/bin/env
$ env -i ksh -c "echo $SHELL; env"
_=/bin/env
PATH=/bin:/usr/bin
$ env -i tcsh -c "echo $SHELL; env"
LJUSKA: Nedefinirana varijabla.

Imajte na umu da je bash postavio varijablu SHELL, ali je nije eksportirao u okruženje, iako je bash stvorio tri druge varijable u okruženju. U ksh primjeru imamo dvije varijable okoline, ali naš pokušaj da prikažemo vrijednost varijable SHELL rezultira praznim redom. Konačno, tcsh nije stvorio nijednu varijablu okruženja i izbacio je pogrešku kada smo pokušali dobiti vrijednost varijable SHELL.

Postavljanje i resetiranje varijabli

Ispis 11 pokazao je kako se tumači ponašaju prilikom obrade varijabli i okruženja. Iako se ovaj vodič fokusira na bash, trebali biste biti svjesni da se svi tumači ne ponašaju isto. Štoviše, tumači se ponašaju različito ovisno o tome jesu li izvorna ljuska ili ne. Za sada ćemo samo reći da je početna ljuska ona koju dobijete kada se prijavite; možete pokrenuti druge ljuske tako da se ponašaju kao originalne ako želite. Tri tumača u gornjem primjeru, pokrenuta naredbom env -i, nisu originalni tumači. Pokušajte proslijediti opciju -l da vidite razliku pri pokretanju originalne ljuske.

Pogledajmo naš pokušaj prikaza vrijednosti varijable SHELL u ovim ljuskama:

  • Kada se bash pokrenuo, postavio je varijablu SHELL, ali je nije automatski eksportirao u okolinu.
  • Kada je ksh pokrenut, nije postavio varijablu SHELL. Međutim, referenca na nedefiniranu varijablu okruženja je ekvivalentna referenci na praznu vrijednost.
  • Kada je tcsh pokrenut, nije postavio vrijednost varijable SHELL. U ovom slučaju, zadano ponašanje je drugačije od ksh (i bash) i rezultiralo je generiranjem pogreške kada smo pokušali pristupiti varijabli.

Naredbu unset možete koristiti za brisanje varijable i uklanjanje s popisa varijabli ljuske. Ako je varijabla izvezena u okruženje, također će biti izbrisana iz okruženja. Možete koristiti naredbu set da kontrolirate kako se bash (ili drugi tumači) ponašaju. Postavi je ugrađena naredba u tumaču, tako da opcije ovise o pojedinom tumaču. U bashu opcija -u govori bashu da ne generira pogrešku kada se poziva na nedefinirane varijable, već da ih tretira kao da su prazne vrijednosti. Možete dodati razne opcije za postavljanje pomoću – i onemogućiti ih pomoću +. Možete prikazati trenutni popis postavljenih opcija s echo $-.

Listing 12. Poništavanje i postavljanje

$echo$-
muBH
$ echo $VAR1
$set -u;echo$-
himuBH
$ echo $VAR1
bash: VAR1: nevezana varijabla
$VAR1=v1
$VAR1=v1;echo $VAR1
v1
$unset VAR1;echo $VAR1
bash: VAR1: nevezana varijabla
$ set +u;echo $VAR1;echo $-
muBH

Možete koristiti naredbu set bez ikakvih opcija, koja će prikazati sve vaše varijable ljuske i njihove vrijednosti (ako postoje). Tu je i druga naredba, declare, s kojom možete kreirati, izvesti i prikazati vrijednosti varijabli ljuske. Možete naučiti o drugim opcijama za naredbe za postavljanje i deklariranje na stranicama priručnika. Kasnije u ovom odjeljku pogledat ćemo man stranice.

naredba exec

Posljednja naredba koju ćemo pogledati u ovom odjeljku je exec. Naredbu exec možete koristiti za pokretanje druge naredbe koja će zamijeniti trenutni tumač. Ispis 13 stvara bash instancu i zatim koristi exec da je zamijeni Korn interpreterom. Nakon izlaska iz Korn interpretera, vraćate se na izvorni bash interpreter (PID 22985 u ovom primjeru).

Ispis 13. Korištenje exec

$ odjek $$
22985
$bash
$ odjek $$
25063
$ exec ksh
$ odjek $$
25063
$ izlaz
$ odjek $$
22985

Povijest tima

Ako ste upisivali naredbe dok ste čitali priručnik, možda ste primijetili da se često koriste gotovo iste naredbe. Dobra vijest je da bash može pohraniti povijest vaših naredbi. Prema zadanim postavkama, povijest je omogućena. Možete ga onemogućiti naredbom set +o history i omogućiti naredbom set -o history. Varijabla okoline HISTSIZE govori bashu koliko redaka treba pohraniti. Skup drugih svojstava određuje ponašanje i rad priče. Za detalje pogledajte bash man stranice.

Ako ste upisivali naredbe dok ste čitali priručnik, možda ste primijetili da se često koriste gotovo iste naredbe. Dobra vijest je da bash može pohraniti povijest vaših naredbi. Prema zadanim postavkama, povijest je omogućena. Možete ga onemogućiti naredbom set +o history i omogućiti naredbom set -o history. Varijabla okoline HISTSIZE govori bashu koliko redaka treba pohraniti. Skup drugih svojstava određuje ponašanje i rad priče. Za detalje pogledajte bash man stranice.

Evo nekoliko naredbi koje možete koristiti za rad s poviješću:

povijesti
Prikazuje cijelu povijest
povijestN
Prikazuje zadnjih N redaka vaše povijesti
povijest -dN
Uklanja liniju N iz vaše povijesti; ovo se može koristiti ako na primjer želite ukloniti redak koji sadrži lozinku
!!
Unesena je vaša zadnja naredba
!N
N-ti povijesni tim
!-N
Naredba koja je udaljena N koraka od trenutne u povijesti (!-1 ekvivalent!!)
!#
Trenutna naredba koju upisujete
!niz
Najnovija naredba koja počinje nizom
!?niz?
Najnovija naredba koja sadrži niz

Možete koristiti dvotočku (:) nakon koje slijedi određena vrijednost za pristup ili promjenu naredbe u povijesti. Listing 14 prikazuje neke od mogućnosti povijesti.

Ispis 14. Upravljanje poviješću

$ odjek $$
22985
$ env -i bash -c "echo $$"
1542
$ !!
env -i bash -c "echo $$"
1555
$!ec
odjek $$
22985
$ !en:s/$$/$PPID/
env -i bash -c "echo $PPID"
22985
$povijest 6
1097 odjek $$
1098 env -i bash -c "echo $$"
1099 env -i bash -c "echo $$"
1100 echo $$
1101 env -i bash -c "echo $PPID"
1102 povijest 6
$povijest -d1100

Naredbe u ispisu 14 čine sljedeće:

1. Ispišite PID trenutnog tumača
2. Pokrenite naredbu echo u novoj instanci tumača i ispišite njegov PID
3. Pokrenite posljednju naredbu
4. Ponovno pokrenite naredbu počevši s 'ec'; pokrenut će se prva naredba u ovom primjeru
5. Pokrenite posljednju naredbu koja počinje s 'en', ali zamijenite '$PPID' s '$$' tako da zapravo prikazuje nadređeni PID
6. Prikaži zadnjih 6 naredbi povijesti
7. Brisanje naredbe broj 1100, zadnja naredba echo

Priče možete uređivati ​​interaktivno. Bash interpreter koristi readline biblioteku za obradu naredbi i uređivanje povijesti. Standardno, tipke i kombinacije tipki koje se koriste za kretanje kroz povijest ili redove za uređivanje su iste kao one koje se koriste u uređivaču GNU Emacs. U Emacsu se kombinacije tipki obično pišu kao C-x ili M-x, gdje je x obična tipka, a C i M su tipke Control i Meta. Na tipičnom osobnom računalu tipka Ctrl odgovara tipki Emacs Control, a tipka Alt odgovara tipki Meta. Dodatna funkcionalnost, kao i mogućnost konfiguriranja opcija korištenjem readline inicijalizacijske datoteke (obično inputrc u vašem početnom direktoriju), mogu se pronaći na stranicama priručnika.

Ako više volite kontrolirati povijest u načinu rada vi, upotrijebite naredbu set -o vi za prebacivanje u način rada vi. Možete se vratiti u emacs način rada pomoću naredbe set -o emacs. Kada izdvojite naredbu u vi modu, prvo ste u vi umetnutom modu.

Staze

Neke bash naredbe su ugrađene, dok su druge vanjske. Pogledajmo sada vanjske naredbe i kako ih pokrenuti, kao i kako razlikovati unutarnju naredbu.

Gdje tumač traži naredbe?

Vanjske naredbe predstavljaju datoteke u datotečnom sustavu. Odjeljak Jednostavno upravljanje datotekama ovog vodiča i vodič za temu 104 idu u više detalja. Na Linux i UNIX sustavima sve su datoteke dio ogromnog stabla čiji je korijen /. U gornjim primjerima, naš trenutni imenik bio je korisnikov kućni imenik. Za obične korisnike, kućni direktoriji se nalaze u /home direktoriju, to jest /home/ian, u mom slučaju. Root-ov matični direktorij je /root. Nakon što upišete naredbu, bash je traži u zadanom popisu direktorija za pretraživanje, koji je dvotočkom odvojen popis direktorija pohranjenih u varijabli okruženja PATH.

Ako želite znati koja će se naredba izvršiti ako upišete određeni red, upotrijebite naredbu which ili type. Ispis 15 prikazuje moju zadanu putanju kao i lokaciju nekoliko naredbi.

Ispis 15. Pronalaženje lokacija naredbi

$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/ian/bin
$ koji bash env zip xclock echo set ls
alias ls="ls --color=tty"
/bin/ls
/bin/bash
/bin/env
/usr/bin/zip
/usr/X11R6/bin/xclock
/bin/jeka
/usr/bin/which: nije postavljeno u (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/b
u:/home/ian/bin)
$ tip bash env zip xclock echo set ls
bash je /bin/bash
env je /bin/env
zip je /usr/bin/zip
xclock je /usr/X11R6/bin/xclock
echo je ugrađena ljuska
set je ugrađen u ljusku
ls je alias `ls --color=tty"

Imajte na umu da svi direktoriji u stazi završavaju s /bin. Ovo je uobičajena konvencija, ali nije uvjet. Naredba which nas je izvijestila da je naredba ls alias i da se naredba set ne može pronaći. U ovom slučaju, može se protumačiti da naredba ili ne postoji ili je ugrađena. Naredba type rekla nam je da je naredba ls zapravo alias, a također je utvrdila da je naredba set ugrađena naredba tumača; Također je rekla da postoji ugrađena naredba echo, a postoji i jedna u /bin koju smo pronašli pomoću naredbe which. Dvije naredbe različito proizvode svoj izlaz.

Vidjeli smo da je naredba ls koja se koristi za pregled sadržaja direktorija zapravo alias. Pseudonimi pružaju prikladan način korištenja naredbi s različitim skupovima opcija ili jednostavno kao alternativni naziv za naredbu. U našem primjeru, opcija –color=tty uzrokuje da popis datoteka direktorija bude istaknut ovisno o vrsti datoteka i direktorija. Pokušajte pokrenuti dircolors –print-database da biste vidjeli kodove boja kao i koje se boje koriste za određenu vrstu datoteke.

Svaka od ovih naredbi ima dodatne opcije. Ovisno o vašim zahtjevima, možete koristiti jednu ili drugu naredbu. Radije koristim which kada sam siguran da ću pronaći izvršnu datoteku i trebam samo njen puni put. Naredba tipa daje mi više od točne informacije, koji mi ponekad treba u skriptama.

Izvođenje drugih naredbi

U ispisu 15 vidjeli smo da puna staza izvršnih datoteka počinje u korijenskom direktoriju /. Na primjer, program xclock zapravo je /usr/X11R6/bin/xclock, datoteka koja se nalazi u /usr/X11R6/bin direktoriju. Ako program nije u varijabli PATH, tada ga možete pokrenuti navođenjem pune staze do programa i samog programa. Postoje dvije vrste staza koje možete koristiti:

  • Apsolutne staze koje počinju s /, kao što smo vidjeli u Ispisu 15 (/bin/bash, /bin/env, i tako dalje).
  • Relativne staze su staze u odnosu na vaš trenutni radni direktorij, čije se ime može dobiti pomoću naredbe pwd. Takve naredbe ne počinju s /, ali sadrže barem jedan znak /.

Možete koristiti apsolutne staze bez obzira na vaš trenutni radni direktorij, ali možda ćete htjeti koristiti relativne staze kada je naredba blizu trenutnog direktorija. Recimo da razvijate novu verziju klasičnog programa “Hello World!”. u mytestbin poddirektoriju vašeg matičnog direktorija. Možda ćete htjeti koristiti relativnu stazu i pokrenuti naredbu kao mytestbin/hello. Postoje dva posebna imena koja možete koristiti u stazi; jedna točka (.) odnosi se na trenutni direktorij, a par točaka (..) koji se odnose na nadređeni direktorij trenutnog direktorija. Budući da vaš matični direktorij nije u varijabli okruženja PATH (i ne bi trebao biti), morat ćete dati eksplicitnu stazu do datoteke koju želite pokrenuti iz svog matičnog direktorija. Na primjer, ako imate kopiju programa hello u svom matičnom direktoriju, možete jednostavno koristiti naredbu ./hello da ga pokrenete. Možete koristiti oboje. i.. kao dio apsolutnog puta, iako jednostruko nije vrlo korisno u ovom slučaju. Možete koristiti tildu (~) za pozivanje na svoj matični direktorij i ~korisničko ime za pozivanje na početni direktorij korisničkog imena. Pogledajte Ispis 16 za neke primjere.

Listing 16. Apsolutni i relativni putovi

$ /bin/echo Koristite naredbu echo umjesto ugrađene
Koristite naredbu echo radije nego ugrađenu
$ /usr/../bin/echo Uključi roditeljski direktorij u stazu
Uključi nadređeni direktorij u stazu
$ /bin/././echo Dodajte nekoliko beskorisnih komponenti staze
Dodajte nekoliko beskorisnih komponenti staze
$ pwd # Vidi gdje smo
/dom/ian
$ ../../bin/echo Koristite relativni put za echo
Koristite relativni put za odjek
$ myprogs/hello # Koristite relativni put bez točkica
-bash: myprogs/hello: Nema takve datoteke ili direktorija
$ mytestbin/hello # Koristite relativni put bez točkica
Pozdrav svijete!
$ ./hello # Pokreni program u trenutnom direktoriju
Pozdrav svijete!
$ ~/mytestbin/hello # pokreni hello koristeći ~
Pozdrav svijete!
$ ../hello # Pokušajte pokrenuti pozdrav od roditelja
-bash: ../hello: Nema takve datoteke ili direktorija

Promjena radnog imenika

Baš kao što možete izvršavati programe iz različitih direktorija, možete promijeniti svoj trenutni radni direktorij pomoću naredbe cd. Argument za cd mora biti apsolutni ili relativni put do direktorija. U naredbi također možete koristiti ., .., ~ i ~korisničko ime kada navodite staze. Ako upišete cd bez parametara, otići ćete u svoj matični direktorij. Prosljeđivanje jednog (-) kao parametra znači odlazak u prethodni radni direktorij. Početni direktorij je pohranjen u varijabli okruženja HOME, a prethodni direktorij je pohranjen u varijabli okruženja OLDPWD, tako da je cd ekvivalentan cd $HOME, a cd je ekvivalentan cd $OLDPWD. Obično govorimo kratko o promjeni direktorija umjesto da potpuno promijenimo trenutni radni direktorij.

Što se tiče naredbi, postoji varijabla okoline CDPATH koja sadrži dvotočkom odvojen popis direktorija koje treba pretraživati ​​(uz trenutni radni direktorij) prilikom rješavanja relativnih staza. Ako rješenje koristi stazu iz CDPATH-a, tada će cd ispisati punu stazu pronađenog direktorija kao izlaz. Obično je uspješna promjena imenika popraćena pojavom nove pozivnice ili malo izmijenjene pozivnice. Neki primjeri prikazani su u ispisu 17.

Ispis 17. Mijenjanje direktorija

$ cd /;pwd
$ cd /usr/X11R6;pwd
/usr/X11R6
$cd ;pwd
/dom/ian
$ cd -;pwd
/usr/X11R6
/usr/X11R6
$ cd ~ian/..;pwd
/Dom
$ cd ~;pwd
/dom/ian
$ izvoz CDPATH=~
$ cd /;pwd
$ cd mytestbin
/home/ian/mytestbin

Rekurzivno korištenje naredbi

Mnoge Linux naredbe mogu se primijeniti rekurzivno na sve datoteke u stablu direktorija. Na primjer, naredba ls ima opciju -R za rekurzivno ispisivanje direktorija, a naredbe cp, mv, rm i diff imaju opciju -r za rekurzivnu primjenu.

Zamjena naredbi

bash ima izuzetno snažna prilika prijenos rezultata jednog programa na ulaz drugog; to se zove zamjena naredbi. To možete učiniti tako da naredbu čije rezultate želite okružite apostrofima (`). Kada koristite više ugniježđenih naredbi, naredbu možete staviti između $(i).

U prethodnom vodiču “LPI 101: Instalacija Linuxa i upravljanje paketima” vidjeli smo da naredba rpm može reći koji paket posjeduje koju naredbu; Ovdje je bilo zgodno koristiti zamjenu naredbi. Sada znate da smo to stvarno uspjeli.

Zamjena naredbi neprocjenjiv je alat prilikom pisanja skripti, kao i kada se koristi u naredbenom retku. Ispis 18 pokazuje primjer kako dobiti apsolutnu putanju direktorija iz relativne, kako pronaći paket koji pruža naredbu /bin/echo i kako (kao root) vidjeti oznake triju particija na tvrdom disku. Potonji koristi naredbu seq za stvaranje niza cijelih brojeva.

Ispis 18. Zamjena naredbi

$ echo "../../usr/bin" direktorij je $(cd ../../usr/bin;pwd)
../../usr/bin direktorij je /usr/bin
$koje odjekuju
/bin/jeka
$ rpm -qf `koji odjek`
sh-utils-2.0.12-3
$su -
Lozinka:
# za n u $(seq 7 9); do echo p$n `e2label /dev/hda$n`;gotovo
p7 RH73
p8 SUSE81
p9 SLIKE

Man stranice

U posljednjem odjeljku ovog vodiča pogledat ćemo kako dobiti pomoć Linux timovi pomoću man stranica i drugih vrsta dokumentacije.

Man stranice i odjeljci

Glavni (i tradicionalni) izvor dokumentacije su stranice priručnika, kojima se može pristupiti pomoću naredbe man. Slika 1 prikazuje man stranicu za man naredbu. Za dobivanje ovih informacija upotrijebite naredbu man man.

Slika 1 prikazuje neke tipične stavke man stranice:

* Zaglavlje s nazivom naredbe iza kojeg slijedi broj odjeljka u zagradama
* Naziv naredbe i druge slične naredbe o kojima se govori na ovoj stranici priručnika
* Popis opcija i parametara primjenjivih na naredbu
* Kratki opis tima
* Detaljan opis svake opcije

Također možete pronaći odjeljke o korištenju, kako prijaviti pogreške, informacije o autoru i popis drugih naredbi. Na primjer, man stranica za man navodi da postoje dodatne naredbe(i njihovi priručnici):

apropos(1), whatis(1), less(1), groff(1) i man.conf(5).

Tipično, man stranice imaju 8 zajedničkih odjeljaka. Većina stranica se obično instalira kada je paket instaliran, tako da ako paket nije instaliran, gotovo će vam sigurno nedostajati njegove man stranice. Osim toga, neki dijelovi stranica mogu biti prazni ili gotovo prazni. Najviše opći odjeljci man stranice su:

1. Korisničke naredbe (env, ls, echo, mkdir, tty)
2. Sistemski pozivi ili funkcije jezgre (link, sethostname, mkdir)
3. Funkcije knjižnice (acosh, asctime, btree, locale, XML::Parser)
4. Podaci o opremi (isdn_audio, miš, tty, nula)
5. Opis formata datoteke (keymaps, motd, wvdial.conf)
6. Igre (imajte na umu da se mnoge igre sada izvode u grafičkom načinu, tako da mogu imati vlastiti sustav pomoći umjesto man stranica)
7. Razno (arp, boot, regex, unix utf8)
8. Administracija sustava(debugfs, fdisk, fsck, mount, renice, rpm)

Ostali odjeljci mogu uključivati ​​9 za dokumentaciju o Linux kernel, nza novu dokumentaciju, o za staru dokumentaciju i l za lokalnu dokumentaciju.

Neki se unosi mogu pojaviti u više odjeljaka. Naši primjeri su pokazali da je mkdir sadržan u odjeljcima 1 i 2, a tty u odjeljcima 1 i 4. Možete definirati određeni odjeljak, kao što je man 4 tty ili man 2 mkdir, ili možete koristiti opciju -a za popis svih man odjeljci -stranice.

Primijetili ste na slici da čovjek ima puno opcija koje možete pogledati sami. Za sada, bacimo brzi pogled na odjeljak "Vidi također" naredbi koje se odnose na čovjeka.

Vidi također

Dvije najvažnije zapovijedi koje se odnose na čovjeka su što je i apropos. Naredba whatis pretražuje stranice priručnika za naziv koji navedete i prikazuje informacije o imenu s odgovarajućih stranica priručnika. Naredba apropos traži ključne riječi na man stranicama i vraća one koje sadrže vašu riječ. Ispis 19 prikazuje ove naredbe.

Ispis 19. Primjeri naredbi whatis i apropos

$što je čovječe
man (1) - formatirajte i prikažite stranice priručnika na mreži
man (7) - makronaredbe za formatiranje man stranica
man (1) - formatirajte i prikažite stranice priručnika na mreži
man.conf (5) - konfiguracijski podaci za man
$što je mkdir
mkdir (1) - napraviti imenike

$ apropos mkdir
mkdir (1) - napraviti imenike
mkdir(2) - kreira direktorij
mkdirhier (1x) - pravi hijerarhiju imenika

Usput, ako ne možete pronaći man stranicu za man.conf, pokušajte pokrenuti man man.conf ig.

Prikazuje se naredba čovjek poseban program ispis stranice. Na većini Linux sustava ovaj će program biti manji. Druga opcija može biti stariji program više. Ako želite ispisati stranicu, navedite opciju -t za formatiranje stranice i ispis pomoću programa groff ili troff.

Program manje izlaza ima nekoliko naredbi koje olakšavaju pronalaženje nizova u prikazanom tekstu. Koristite man less da biste saznali više o / (pretraživanje naprijed), ? (pretraživanje unatrag) i n (za zadnje izvršeno pretraživanje), kao i mnoge druge naredbe.

Ostali izvori dokumentacije

Uz stranice s uputama kojima se može pristupiti iz naredbenog retka, Free Software Foundation je stvorio veliki broj info datoteke koje se obrađuju info program. Ima izvrsne navigacijske mogućnosti, uključujući mogućnost prelaska na drugi odjeljak. Upišite informacije o čovjeku ili informacije o informacijama da biste dobili više informacija. Nisu sve naredbe dokumentirane u info, tako da možete koristiti i man stranice i info.

Ima ih nekoliko grafička sučelja na stranice priručnika kao što su xman (iz projekta XFree86) i yelp (Gnome 2.0 preglednik pomoći).

Ako ne možete pronaći pomoć za naredbu, pokušajte pokrenuti naredbu s opcijom –help. Na taj način možete saznati što ste htjeli ili dobiti savjet gdje još možete potražiti.

Sljedeći odjeljak govori o obradi tekstualnih tokova pomoću filtara.