Odabir tumača Linux naredbenog retka. Raščlanjivanje naredbenog retka, bash favoriti. Neke konvencije ovog vodiča

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 školjka, je program, u našem slučaju nazvan "bash", što je skraćenica od Bourne Again Shell. Ljuska preuzima 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, to jest, postoji neki početni direktorij, koji se naziva korijen. Sadrži datoteke i poddirektorije, koji zauzvrat sadrže datoteke i njihove poddirektorije.

pwd

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

CD

Naredba cd omogućuje vam odlazak na novi katalog.

mkdir

Naredba mkdir stvara novi direktorij u trenutnom direktoriju.

Osnovne naredbe

čovjek

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

$ čovjek mačka

mačka

Naredba cat čita datoteku zadanu kao argument i šalje njezin sadržaj u standardni kanal izlaz. Prosljeđivanjem više datoteka kao argumenta izvest ć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 prazna linija.

glava

Naredba head čita prvih 10 redaka bilo kojeg zadanog teksta i ispisuje ih na standardnoj cijevi. Broj izlaznih linija može se mijenjati:

$ glava -50 test.txt

rep

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

$ rep -50 test.txt

Također možete vidjeti retke dodane 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, i to u oba smjera.

$ manje test.txt $ ps aux | manje

Više o namjeni simbola | raspravljat će se u nastavku u odjeljku s naredbama povijesti.

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

pravi

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

lažno

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

$?

$? je varijabla koja sadrži izlazni status zadnje pokrenute naredbe. Status se obično shvaća kao 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, zbog toga se u bashu true (true) smatra 0, a sve što nije 0 je false (false):

$ istina $ echo $? 0 $false $echo $? 1

grep

Naredba grep traži zadani niz u 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 pronalaž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 prakse, stoga eksperimentirajte sami, na primjer s naredbama ls, history, ps (opisanim u nastavku), preusmjeravajući njihov izlaz na grep, sed ili less, na primjer.

izvoz

Naredba za izvoz postavlja varijable okoline koje se prosljeđuju podređenim procesima. Na primjer, ovako možete proslijediti ime varijable 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

Prikazuju se četiri stavke:

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

nezgodno

Naredba awk pronalazi i zamjenjuje tekst u datotekama s danim uzorkom: awk "uzorak (akcija)" test.txt

wget

Naredba wget preuzima datoteke s weba 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 nego što je naredba dovršena i vrijeme koje je bilo potrebno za dovršetak.

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 pokretanje više naredbi u isto vrijeme.

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

Transportne trake

Cjevovodi, ili cijevi, omogućuju povezivanje ulaznih i izlaznih kanala različitih naredbi. U sljedećem primjeru, izlaz naredbe ls bit će prebačen u head, što će rezultirati ispisom samo prvih 10 stavki.

$ ls -l | glava

I/O preusmjeravanje

Preusmjeravanje izlaza

Standardno preusmjeravanje izlaza koristi simbole > i >>.

Na primjer, ovaj kod će ispisati izlaz ls-a u datoteku umjesto 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

Standardno preusmjeravanje izlaza koristi 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 > rezultira preusmjeravanjem like-a standardni tok izlaz i tok grešaka. Na primjer, datoteka test.cpp će ispisati niz stdout u cout i niz stderr u cerr.

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

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

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

Na primjer, da preusmjerite stderr na test.txt, učinite sljedeće:

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

Prava pristupa

Naredba ls -l ispisuje puno 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 s određenom datotekom. Simbol - označava uklanjanje prava, simbol + - dodavanje. Sljedeći primjer učinit će datoteku čitljivom i pisati od strane vlasnika i grupe:

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

Također, chmod se može koristiti s oktalnim brojevima, gdje je 1 dopuštenje, a 0 nije:

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

Sljedeća naredba će raditi kao i prethodna.

Nakon što pročitate ovaj članak, znat ćete što je udarac(standardna linux ljuska), naučite kako rukovati standardnim naredbama: ls, cp, mv...razumjeti svrhu inode-ova, tvrdih i simboličkih veza i više.

Ovaj vodič je namijenjen onima koji tek počinju koristiti Linux i koji žele pregledati ili poboljšati svoje razumijevanje osnovnih koncepata Linuxa kao što su kopiranje i premještanje datoteka, stvaranje veza, korištenje standardnih Linux naredbi zajedno s preusmjeravanjima i cijevima. U ovom ćete članku pronaći mnogo primjera koji objašnjavaju prezentirani materijal. Za početnike će većina informacija biti nova, ali za naprednije korisnike ovaj materijal može biti izvrstan alat za sažimanje postojećih znanja i vještina.

Uvod u bash

Ljuska

Ako koristite Linux, onda znate da će vas nakon prijave pozdraviti prompt interpretera naredbi. Na primjer ovo:

\$

Ako se nakon prijave učita grafička ljuska, tada da biste došli do interpretera naredbi morate pokrenuti emulator terminala (gnome-terminal, xfce4-terminal, konsole, xterm, rxvt ...) ili se prebaciti na neki od virtualnih terminala pomoću prešanje ctrlaltF1 ili ctrlaltF2 itd.

Shell prompt na vašem računalu može se razlikovati od onoga što je prikazano u primjeru. Može sadržavati korisničko ime, naziv računala i naziv trenutnog radnog direktorija. Ali unatoč svim tim razlikama, program koji ispisuje ovaj upit zove se " ljuska” (ljuska), a najvjerojatnije je vaša ljuska program tzv udarac.

Trčiš li bash?

Možete provjeriti radi li bash sljedećom naredbom:

\$ odjek \$SHELL/bin/bash

Ako dobijete pogrešku kao rezultat pokretanja ove naredbe ili se njen izlaz razlikuje od onoga u primjeru, tada je moguće da se bash ne koristi kao naredbena ljuska na vašem sustavu. Unatoč tome, većina materijala će biti relevantna, ali ipak preporučujemo da se prebacite na bash. To se može učiniti (ako je bash instaliran na sustavu) naredbom:

\$ udarac

Što je bash

Bash (akronim za " B naš- a dobiti SH ell") je standardni tumač naredbi na većini Linux sustava. Njegove odgovornosti uključuju obradu i izvršavanje naredbi kojima korisnik upravlja računalom. Nakon što ste završili svoj posao, možete završiti proces ljuske. Nakon pritiska na tipke ctrlD, naredbe Izlaz ili Odjavite se proces ljuske će biti prekinut i ekran će vas ponovo pitati za korisničko ime i lozinku.

Korištenje "cd"

Počnimo koristiti bash za navigaciju datotečnim sustavom. Za početak upišite sljedeću naredbu:

$ cd /

Ovom naredbom rekli smo bashu na koji se želimo pomaknuti korijenski direktorij - / . Svi imenici u sustavu organizirani su u strukturu stabla i / ovo je njegov početak (ili korijen). Tim CD koristi se za promjenu trenutnog radnog direktorija.

Načini

Da saznam gdje sustav datoteka trenutno ste u (trenutni radni direktorij) tip:

\$ pwd /

U gornjem primjeru / - argument naredbe CD- pozvao staza. Ovo je lokacija datotečnog sustava na koju se želimo premjestiti. U ovom slučaju / - apsolutni put, što znači da je staza relativna u odnosu na korijenski direktorij.

Apsolutni putevi

Evo nekoliko primjera apsolutnih putanja

/dev /usr /usr/bin /usr/local/bin

Kao što ste možda primijetili, sve ove staze ujedinjuje činjenica da počinju s / . Navođenje staze /usr/local/bin kao argumenta naredbe CD kažemo mu da ide u korijenski direktorij / , zatim u direktorij usr, zatim u local i bin. Apsolutni putovi uvijek počinju sa /

Relativni putovi

Druga vrsta staza naziva se relativnim. udarac, tim CD a druge naredbe broje ove staze u odnosu na trenutni direktorij. Relativni putovi nikad ne počinju sa / . Na primjer, ako smo u /usr

\$ cd /usr

Zatim možemo otići do /usr/local/bin koristeći relativnu stazu

\$ cd lokalni/bin \$ pwd/usr/local/bin

Upotreba ".."

Relativne staze mogu sadržavati jedan ili više direktorija «..» . ".." označava nadređeni direktorij našeg radnog direktorija. Primjer:

\$ pwd/usr/local/bin\$ CD.. \$ pwd/usr/lokalno

Kao što vidite ekipa CD..'vodi nas na višu razinu'.

Može dodati .. relativnom putu. Ovo će se pomaknuti u direktorij koji je na istoj razini kao i onaj u kojem se nalazimo. Primjer:

\$ pwd/usr/local\$ cd ../dijeli \$ pwd/usr/dijeli

Primjeri korištenja relativnih puteva

Relativni putovi mogu biti prilično nezgodni. Evo nekoliko primjera. Rezultat izvršavanja naredbi se ne prikazuje, pokušajte odrediti u kojem direktoriju ćete se naći koristeći bash.

\$ cd /bin \$ cd ../usr/share/zoneinfo \$ cd /usr/X11R6/bin \$ cd ../lib/X11 \$ cd /usr/bin \$ cd ../bin/../bin

Radni imenik "."

Prije nego završi razgovor o timu CD, treba spomenuti još nekoliko stvari. Prvo, postoji još jedan poseban imenik «.» , koji pokazuje na trenutni direktorij. Ovaj direktorij se koristi za pokretanje izvršnih datoteka koje se nalaze u trenutnom direktoriju.

\$ ./myprog

U posljednjem primjeru, myprog je izvršna datoteka u trenutnom direktoriju koja će se izvršiti.

cd i korisnički matični imenik

Kako bi otišao na kućni imenik, trebate nazvati

\$ CD

Bez argumenta, cd će vas premjestiti u vaš početni direktorij. Za superkorisnika, početni direktorij je obično /root, a za obični korisnici- /kućna/korisničko ime/. Ali što ako želimo navesti određenu datoteku koja se nalazi u početnom direktoriju. Na primjer, kao argument programu 'myprog'? Možete napisati:

\$ ./myprog /home/user/myfile.txt

Međutim, korištenje apsolutnih staza datoteka nije uvijek zgodno. Ista se operacija može izvesti s ~ –tilde:

\$ ./myprog ~/myfile.txt

~ je posebno ime koje upućuje na korisnikov početni direktorij u bashu.

Domaći imenici drugih korisnika

Ali što ako trebamo pokazati na datoteku u početnom direktoriju drugog korisnika? Da biste to učinili, nakon tilde morate navesti ime ovog korisnika. Na primjer, da pokažete na datoteku fredsfile.txt koja se nalazi u korisničkom početnom direktoriju fred:

\$ ./myprog ~fred/fredsfile.txt

Linux naredbe

Uvod u ls

Momčad vjerojatno već poznajete ls, koji, pozvan bez argumenata, prikazuje popis datoteka pohranjenih u radnom direktoriju:

\$ cd /usr \$ ls X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info lokalni portage.old src

Ako navedete opciju -a, moći ćete vidjeti sve datoteke, uključujući i one skrivene (čija imena počinju s točkom).

\$ je-a. bin gentoo-x86 include libexec portage share tmp .. distfiles i686-linux info lokalni portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

Detaljan popis imenika

Nakon zapovijedi ls jedna ili više datoteka ili direktorija mogu se navesti kao njegov argument. Ako navedete naziv datoteke, tada naredba ls prikazat će informacije samo o toj datoteci. A ako navedete naziv imenika, lsće prikazati sav njegov sadržaj. Opcija '-l' naredbe ls može biti vrlo korisno ako želite znati više od naziva datoteka detaljne informacije o njima (dozvole za datoteku, ime vlasnika, vrijeme zadnje izmjene datoteke i njezina veličina).

Sljedeći primjer pokazuje korištenje opcije '-l' za prikaz informacija o datotekama pohranjenim u direktoriju /usr

\$ ls -l / usr drwxr-xr-x 7 root root 168 24. studenog 14:02 X11R6 drwxr-xr-x 2 root root 14576 27. prosinca 08:56 bin drwxr-xr-x 2 root root 8856 26. prosinca 12:47 distfiles lrwxrwxrwx 1 root root 9 22. prosinca 20:57 doc -> dijeljenje/doc drwxr-xr-x 62 root root 1856 27. prosinca 15:54 gentoo-x86 drwxr-xr-x 4 root root 152 12. prosinca 23:10 i686-linux drwxr-xr-x 4 root root 96 24. studenog 13:17 i686-pc-linux-gnu drwxr-xr-x 54 root root 5992 24. prosinca 22:30 uključi lrwxrwxrwx 1 root root 10. 22. prosinca 20:57 info -> share/info drwxr-xr -x 28 root root 13552 26. prosinca 00:31 lib drwxr-xr-x 3 root root 72 25. studeni 00:34 libexec drwxr-xr-x 8 root root 240 22. prosinca 20:57 lokalni lrwxrwxrwx 1 root root 9. 22. prosinca 20. :57 man -> share/man lrwxrwxrwx 1 root root 11. prosinac 8 07:59 portage -> gentoo-x86/ drwxr-xr-x 60 root root 1864 8. prosinac 07:55 portage.old drwxr-xr-x 3 root root 3096 22. prosinca 20:57 sbin drwxr-xr-x 46 root root 1144 24. prosinca 15:32 dijeli drwxr-xr-x 8 root root 25 ssl lrwxrwxrwx 1 root root 10. 22. prosinca 20:57 tmp -> ../var/ tmp

Prvi stupac prikazuje informacije o dopuštenjima za svaku datoteku na popisu. (Malo kasnije ću objasniti koje slovo označava što.) Sljedeći stupac prikazuje broj poveznica na svaki element popisa. Treći i četvrti stupac su vlasnik odnosno grupa datoteke. Peti stupac je veličina. Šesto je vrijeme zadnje izmjene datoteke ('last modified time' ili mtime). Posljednji stupac je naziv datoteke ili direktorija (ako je ovo veza, onda nakon ' –> ‘ je naziv objekta na koji se odnosi).

Kako vidjeti samo imenike

Ponekad postoji potreba za pregledom informacija samo o imenicima, a ne o svim njihovim sadržajima. Opcija će vam pomoći u ovom zadatku. '-d', koji govori naredbi da prikaže informacije samo o imenicima. Primjer:

\$ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 4 root root 96 Dec 18 18:17 ../share drwxr-xr-x 17 root root 576 Dec 24 09:03 /usr /X11R6/bin drwxr-xr-x 2 root root 14576 Dec 27 08 :56 /usr/bin

Rekurzivna lista i informacije o inodima

Opcijska radnja '-R' suprotno djelovanje '-d'. Omogućuje rekurzivni prikaz informacija o datotekama u direktoriju. Prvo se prikazuje sadržaj imenika. vrhunska razina, zatim redom sadržaj svih poddirektorija i tako dalje. Izlaz ove naredbe može biti prilično velik, stoga ne dajemo primjer, ali možete isprobati sami upisivanjem ' je -R' ili ' ls-RL‘.

I na kraju opcija '-ja' koristi se za izlaz inodesa svakog objekta datotečnog sustava.

\$ ls -i /usr 1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 3892 portage 36737 ssl 70744 gentoo-x86 1585 lib 5132 portage.old 784 tmp

Što su inodi?

Svaki objekt datotečnog sustava (datoteka, direktorij...) ima svoj jedinstveni broj, tzv inod(broj inode). Ove se informacije mogu činiti beznačajnima, ali razumijevanje funkcije inodesa pomoći će vam da razumijete mnoge operacije datotečnog sustava. Na primjer, pogledajmo «.» I «..» poput veza prisutnih u svakom imeniku. Da bismo razumjeli što je imenik «..» , pronađite inod direktorija /use/local

\$ ls -id /usr/local 5120 /usr/lokalno

Kao što možemo vidjeti, inode direktorija /usr/local je 5120. Sada da vidimo koji inode ima direktorij /usr/local/bin/..:

\$ ls -id /usr/local/bin/.. 5120 /usr/local/bin/..

Ispostavilo se da su inodi direktorija /usr/local i /usr/local/bin/.. isti! To znači da se dva imena odnose na inode 5120: /usr/local i /usr/local/bin/.. To jest, to su dva različita imena za isti direktorij. Svaki inode pokazuje na određeno mjesto na disku.

Svaki inode može imati više naziva objekata datotečnog sustava povezanih s njim. Broj 'sinonima' datoteka (objekata datotečnog sustava koji se odnose na jedan inode) pokazuje broj u drugom stupcu izlaza naredbe ' ls-l‘.

\$ ls -dl /usr/lokalno drwxr-xr-x 8 root root 240 22. prosinca 20:57 /usr/local

U ovom primjeru možete vidjeti (drugi stupac) da direktorij /usr/local referencira 8 različitih objekata datotečnog sustava. Evo njihovih imena:

/usr/lokalno /usr/lokalno/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/.. /usr/local/share/.. /usr/local/ src/..

mkdir

Pogledajmo naredbu mkdir. Koristi se za stvaranje novih imenika. Sljedeći primjer pokazuje stvaranje tri nova direktorija (tic, tac, toe) u /tmp direktoriju

\$ cd /tmp $ mkdir tic tac toe

Zadana naredba mkdir ne može stvoriti ugniježđenu strukturu imenika. Stoga, ako trebate stvoriti nekoliko ugniježđenih direktorija ( osvojio/der/ful), tada ćete morati pozvati ovu naredbu tri puta za redom:

\$ mkdir je osvojio/der/ful mkdir: ne može stvoriti direktorij "won/der/ful": Nema takve datoteke ili direktorija \$ mkdir je pobijedio \$ mkdir osvojio/der \$ mkdir je osvojio/der/ful

Ovu operaciju možete pojednostaviti dodavanjem opcije '-p' na naredbu mkdir. Ova vam opcija omogućuje stvaranje ugniježđene strukture imenika:

\$ mkdir -p lako/kao/pita

Kako biste saznali više o mogućnostima ovog uslužnog programa, pročitajte pomoć koju poziva naredba čovjek mkdir. Pomoć je dostupna za gotovo sve naredbe u ovom priručniku (npr. čovjek je), osim CD, jer ugrađen je u bash (za takve naredbe pomoć se zove ovako: pomoć cd)

dodir

Prijeđimo na učenje naredbi cp I mv, koristi se za kopiranje, preimenovanje i premještanje datoteka i direktorija. Ali prije toga, napravimo praznu datoteku u /tmp direktoriju pomoću naredbe dodir:

\$ cd /tmp \$ dodirnuti copyme

Tim dodir ažurira vrijeme posljednji pristup u datoteku (šesti stupac izlaza naredbe ls-l) ako već postoji ili stvara novu praznu datoteku ako već ne postoji. Nakon ove operacije trebali bismo imati praznu datoteku /tmp/copyme.

jeka

Sad kad imamo praznu datoteku, zapišimo u nju tekstualni niz pomoću naredbe jeka, koji daje argument koji mu je proslijeđen standardni uređaj izlaz (u našem slučaju tekstualni terminal).

\$ echo "prva datoteka" prva datoteka

Da bismo upisali niz u našu datoteku, preusmjeravamo izlaz naredbe na njega jeka:

\$ echo "firstfile" > copyme

Znak > (veće) govori ljusci da preusmjeri izlaz naredbe s lijeve strane na naziv datoteke s desne strane. Ako datoteka s istim nazivom ne postoji, automatski će se stvoriti. A ako takva datoteka već postoji, tada će biti prebrisana (sav će njen sadržaj biti izbrisan prije pisanja našeg retka). Tim 'je -l' pokazat će da je veličina naše datoteke sada 10 bajtova - devet bajtova zauzima riječ 'firstfile', a jedan bajt je znak za novi redak.

\$ ls -l copyme-rw-r--r-- 1 root root 10. prosinca 28. 14:13 copyme

mačka i cp

Za prikaz sadržaja datoteke na terminalu koristite naredbu mačka:

\$ mačka copyme prva datoteka

Sada možemo početi analizirati osnovnu funkcionalnost naredbe cp. Ova naredba uzima dva argumenta. Prvi je naziv već postojeće datoteke ('copyme'), drugi je naziv nove kopije koju želimo napraviti ('copyme').

\$ cp kopiraj kopiraj me

To možemo osigurati novi primjerak datoteka ima drugačiji inode broj (to znači da smo dobili stvarno novu zasebnu datoteku, a ne samo vezu na staru)

\$ ls -i kopiraj me kopirao 648284 kopija

mv

Sada primijenimo naredbu mv za preimenovanje datoteke ("copiedme" -> "movedme"). Inode broj nakon ove operacije se ne mijenja, već samo naziv datoteke.

\$ mv kopirao-me-pomaknuo-me \$ Je li me potaknuo 648284 preselio me

Inode broj se ne mijenja samo pod uvjetom da preimenovana datoteka ostane unutar datotečnog sustava gdje se nalazila izvorna datoteka. U kasnijem dijelu ovog vodiča pobliže ćemo pogledati kako su datotečni sustavi raspoređeni.

Tim mv omogućuje vam ne samo preimenovanje datoteka, već i njihovo premještanje. Na primjer, za premještanje datoteke /var/tmp/myfile.txt u imenik /dom/korisnik morate dati naredbu:

\$ mv /var/tmp/myfile.txt /home/user

Datoteka će biti premještena u korisnikov početni direktorij korisnikčak i ako je u drugom datotečnom sustavu (u ovom slučaju datoteka će se kopirati na novu lokaciju, a original će biti izbrisan). Kao što ste do sada mogli pogoditi, premještanje datoteke u drugi datotečni sustav mijenja njen inode. To je zato što svaki datotečni sustav ima vlastiti skup inodesa.

Treba napomenuti da postoji mogućnost da novi dodijeljeni inode broj bude isti kao i stari, ali je ona izuzetno mala.

Za premještanje nekoliko datoteka istovremeno u jedan direktorij, morate napisati:

\$ mv /var/tmp/myfile1.txt /var/tmp/myfile2.txt /home/user \$ mv -t /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt

Ako dodate opciju '-v', na ekranu će se prikazati izvješće o izvršenoj operaciji:

\$ mv -vt /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt"/var/tmp/myfile1.txt" -> "/home/user/myfile1.txt" "/var/tmp/myfile2.txt" -> "/home/user/myfile2.txt"

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 na manjim operativnim sustavima mogu se osigurati jedan ili dva tumača.

Provjera dostupnosti osobe od interesatumačnaredbeni redak

Najlakši način da provjerite dostupnost ljuske od interesa je da unesete njeno ime u naredbeni redak. Ako je prevoditelj započeo, dostupan je.

Postoji nekoliko razloga za odabir alternativnih školjki.

  • Navika rada na System V UNIX sustavima (od kojih mnogi koriste ksh tumač prema zadanim postavkama) ili na Sun Microsystems i drugim Berkeley UNIX sustavima (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đenu ljusku.
  • Alternativne značajke ljuske mogu biti poželjne. Na primjer, jedan član grupe korisnika Linuxa radije koristi ksh jer mu se ne sviđa način na koji se aliasi stvaraju u bashu.

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

Korištenje bash 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 Foundation kreirao bash kao dio GNU projekta. Daljnji razvoj prešao je u ruke Cheta Rameya na Sveučilištu Case Western Reserve.

Bash interpreter sadrži značajke koje su razvijene za sh i ksh interpretatore u to vrijeme rane verzije UNIX, kao i niz značajki csh interpretera.

Može se očekivati ​​da će na većini Linux sustava, osim na specijaliziranim (na primjer, ugrađenim ili pokrenutim s vanjski disk), bash interpreter se koristi prema zadanim postavkama. Specijalizirani sustavi mogu zahtijevati manju ljusku, što podrazumijeva ograničenja.

Većina primjera u ovomčlanakdizajniran za bash.

Bash interpreter se može pokrenuti u različitim načinima kompatibilnosti, oponašajući ponašanje drugih ljuski. Može oponašati ponašanje Bourneove ljuske (sh) ili ljuske kompatibilne s POSK-om (bash -posix).

Kao rezultat toga, veća je vjerojatnost da će bash interpreter 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 koji se učitavaju iz prijenosni medij, koji prema zadanim postavkama koriste ash interpreter.

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 su uređivanje naredbenog retka i metode upravljanja poviješću naredbi, implementirane su u tcsh ljusku i druge ljuske. Kao što naredba sh pokreće bash interpreter u sh kompatibilnom modu, csh naredba pokreće tcsh interpreter u csh kompatibilnom modu.

Korištenje prevoditelja pepela

Ash interpreter je lagana verzija Berkeley UNIX sh interpretera. Ne sadrži mnogo osnovnih značajki i ne nudi značajke kao što je povijest naredbi.

Ash interpreter je vrlo prikladan za korištenje u ugrađenim sustavima s ograničenim sistemskim resursima. Na 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 standardom (kao bash), ali ima druge značajke, uključujući provjeru pravopisa i drugačiji pristup uređivanju naredbenog retka. Zsh tumač bio je zadani tumač u ranim operativnim sustavima. macOS sustavi X ali unutra moderni sustavi bash interpreter se koristi prema zadanim postavkama.

Najvažniji od korisničkih procesa je komandna ljuska (ona je također interpretator naredbi ili jednostavno ljuska). Ona je ta koja pruža 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.

Nema potrebe, ponesen pogodnostima GUI, podcijeniti naredbeni redak. Prvo, mnogi administrativni zadaci mogu se obavljati 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, datoteke skripti (skripte) - unaprijed pripremljene sekvence naredbi u tekstualnom obliku.

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

Ljuska prihvaća naredbe koje daje korisnik, obrađuje njihove argumente ako je potrebno, šalje naredbe na izvršenje, prihvaća njihove povratne vrijednosti i izvodi određene radnje na temelju tih vrijednosti. 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 polaze 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. Rani razvoj Linux je prvenstveno bio zabrinut problemom prebacivanja zadataka zaštićenog načina rada 80386. A Linus je "počeo ozbiljno razmatrati manijakalnu ideju kako učiniti Minix boljim od sebe."

Naredbena ljuska na UNIX sustavima je već postojala, bila je to "Bourneova ljuska" (Bourne shell ili jednostavno shell). 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 razvijene mnoge ljuske. Glavni koji se koristi prema zadanim postavkama je "Bash" razvijen na na bazi ljuske i nazvan "Nova Bourneova školjka" (Bourne Again Shell). Stoga je Bash evolucija stare ljuske, dodajući mnoge korisne značajke koje se djelomično nalaze 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 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 sustava. .

Linux kernel ne koristi UNIX kodove niti bilo koji drugi vlasnički izvor, i to većinu Linux programi razvijen u okviru GNU projekta Zaklade za slobodni softver u Cambridgeu, Massachusetts. No tome su pridonijeli i programeri iz cijeloga svijeta.

Ovo su najčešće naredbene ljuske Linuxa:

  • Bourneova ljuska - Bourneova ljuska, standardna na mnogim sustavima sličnim 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, može se koristiti kada softverske biblioteke nisu dostupne.

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

Inicijalna ljuska za svakog korisnika, koja se za njega pokreće kada se prijavi u sustav, navedena je u datoteci /etc/passwd. To ne mora nužno biti bash. Administrator može određenim korisnicima zabraniti prijavu navođenjem /sbin/nologin kao "ljuske" učitane nakon registracije. Ili čak odredite posebno dizajniranu skriptu koja vam omogućuje pregled toga dnevnika (logova), na primjer.

Za uređivanje datoteke /etc/passwd na Linuxu postoji posebna ekipa vipw , koji provjerava je li uređivanje ispravno (naredba je dostupna samo administratoru).

Ubuduće, kada radite u zadanoj ljusci, možete promijeniti trenutnu ljusku u bilo koju od instaliranih (točnije, unijeti podljusku). Za izlaz iz nje i povratak na nadređenu ljusku upišite 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 navodi u kojoj se ljusci treba izvoditi, a trenutna ljuska pokreće onu koja je navedena kao podređeni proces za nju.

Kao što sam rekao, prema zadanim postavkama novom korisniku je dodijeljena bash ljuska. To je sjajna ljuska koja uključuje mnoga poboljšanja i najbolje značajke drugih ljuski i ne preporučujem da je mijenjate. Ubuduće, kad kažem "ljuska", mislit ću na bash.

2. Raščlanjivanje naredbenog retka, bash favoriti

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

  1. Proširuje pseudonime za prečac najčešće korištene naredbe.
  2. Proširuje zamjenske znakove ili zamjenske znakove (*, ?, [, ], ~, (, )) za traženje datoteka prema obrascima naziva.
  3. Zamjenjuje varijable koje ljuska može koristiti.
  4. Preusmjerava izlaz jedne naredbe kao ulaz u drugu naredbu pomoću cijevi.
  5. Izvodi ulančavanje naredbi.
  6. Izvršava naredbu ako je to ugrađena naredba interpretera ili pokreće proces ako je naredba vanjska.
  7. Preusmjerava standardni unos/zaključak.

Posljednje tri funkcije zahtijevaju korištenje posebnih operatora. Pogledajmo sve te značajke.

2.1. Aliasi

Aliasi naredbi dizajnirani su za učinkovitije upisivanje 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 okoline!" # razmak mora biti označen navodnicima

Varijable okoline

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

Kad se školjka pokrene, postavi ih nekoliko varijable okoline. Njihova imena su standardna. Programi i skripte mogu postavljati upite o njihovim vrijednostima umjesto da pokušavaju sami otkriti informacije koje su im potrebne.

Dakle, ljuska određuje varijable okruženja koje se koriste u trenutnoj sesiji. Svaka nova unesena naredba zapravo se pokreće kao podređeni proces nadređenog procesa, što je u ovom slučaju bash ljuska. Varijable okoline su različite 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 datoteke /etc/passwd određuje koji će se interpreter naredbi koristiti u sesiji ovog korisnika. Nakon što je ljuska definirana, sesija se konfigurira prema konfiguracijskim datotekama prikazanim u nastavku.

Konfiguracijska datotekaOpis
/etc/profil

Definira varijable okruženja za sve korisnike sustava. Ova datoteka se izvršava pri prvoj prijavi i sadrži glavne varijable okruženja, 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). Pseudonim je skraćeno proizvoljno dano ime naredbe ili slijeda naredbi koje vam omogućuje izvršavanje složenih nizova naredbi bez da ih upisujete s tipkovnice, već ih pozivate putem poziva odgovarajućeg aliasa. Varijable definirane u ovoj datoteci mogu se nadjačati sličnom korisničkom datotekom -/.bashrc koja ima viši prioritet.

-/.bashprofil

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

~/.bashrc

Ova datoteka sadrži varijable okruženja i aliase instaliran od strane korisnika. Izvršava se svaki put kada se korisnik prijavi ili otvori novu bash sesiju. Ova je datoteka najprikladnija za definiranje prilagođenih varijabli i aliasa.

~/.bash_odjava

Ova datoteka se izvršava svaki put kada se odjavite ili izađete iz posljednje bash sesije. 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 okruženja prilično su zgodan način za pohranu informacija koje se često koriste unutar trenutne sesije sa sustavom. Ako je potrebno, korisnik može kreirati gotovo sve varijable okoline (pokušajte ne mijenjati vrijednosti varijabli okoline koje su već u upotrebi) i čitati njihove vrijednosti tijekom trajanja ljuske. Da biste stvorili privremenu varijablu okruženja, unesite njezin naziv i dodijelite mu odgovarajuću vrijednost. Na primjer,

izvoz AB=/usr/pas/zarazan/ringbearer/grind

U ovaj primjer privremena varijabla okoline AB postavljena je na stazu do direktorija koji se nalazi dovoljno "duboko" u hijerarhiji direktorija datotečnog sustava. Naredba za izvoz specificira da se vrijednost varijable AB treba izvesti u ljusku kako bi bila dostupna drugim ljuskama koje se mogu otvoriti unutar trenutne sesije sustava. Gore navedenom direktoriju sada se može pristupiti izvršavanjem cd $AB

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

Morate biti root da biste mijenjali konfiguracijske datoteke /etc/profile i /etc/bashrc.

Obični korisnici mogu mijenjati konfiguracijske datoteke ~/.bash_profile, ~/.bashrc i ~/.bash_Iogout koje se nalaze u njihovim matičnim direktorijima. Ove konfiguracijske datoteke mogu uključivati ​​postavljanje svojih varijabli u okruženju pomoću naredbe izvoza i njihovu upotrebu u bilo kojoj sesiji.

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

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

Kako bi se ove promjene primijenile u trenutnom okruženju ljuske, morate pokrenuti izvornu naredbu .bashrc

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

  • BASH - Sadrži puni put Do naredba bash(obično je vrijednost ove varijable /bin/bash).
  • BASH_VERSION - broj bash verzije.
  • DIRSTACK - Niz koji sadrži trenutnu vrijednost stoga direktorija.
  • EDITOR je zadani uređivač teksta.
  • EUID - Numerički efektivni ID 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 dosegne ovaj broj, nove naredbene linije se unose u povijest brisanjem najranijih naredbenih linija. Zadani popis nedavno korištenih naredbi je 1000 redaka.
  • HOME - Korisnikov matični imenik.
  • HOSTNAME - Ime ovo računalo(čvor).
  • 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 korisničko ime za prijavu.
  • MAILCHECK - Interval u minutama između provjera pošte.
  • OLDPWD - Imenik koji je bio aktualan prije zadnje promjene imenika.
  • OSTYPE - Trenutačni operativni sustav.
  • PATH - Dvotočkom odvojen popis direktorija za traženje izvršnih datoteka. Redoslijed kojim se ispituju imena direktorija je kritičan. Prilikom izvršavanja naredbi, direktoriji navedeni u ovoj varijabli provjeravaju se redom s lijeva na desno. Dakle, izvršavanje naredbe foo koja se nalazi u direktorijima /bin i /usr/bin izvršit će naredbu koja se nalazi u direktoriju /bin. Kako biste izvršili naredbu foo koja se nalazi u direktoriju /usr/bin u sličnoj situaciji, morate navesti punu stazu do ove naredbe ili promijeniti redoslijed imena direktorija u varijabli okruženja PATH. Trenutačni direktorij za pretraživanje mora biti eksplicitno naveden ("."), ljuska ne pretražuje trenutni direktorij prema zadanim postavkama. Traženje izvršnih programa u trenutnom direktoriju potencijalno je opasno zbog mogućnosti nenamjernog izvođenja opasan program, tako da se varijabla PATH obično inicijalizira bez "." Da biste dodali stazu do svojih vlastitih naredbi ili skripti ljuske u svoju PATH varijablu, smjestite ih u /bin poddirektorij vašeg matičnog direktorija, koji će se automatski dodati u PATH varijablu. Ne sve izvršne naredbe nalaze se u direktorijima navedenim u varijabli okruženja PATH. Neke su naredbe ugrađene izravno u ljusku. Ostale naredbe mogu se redefinirati s aliasima, što vam omogućuje da zamijenite naredbe s parametrima gotovo bilo koje složenosti (u smislu sintakse) 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 iznjedrio ljusku).
  • PS1, PS2, PS3, PS4 - Varijable koje određuju izgled odzivnika ljuske.

    Varijable PS1 i PS2 postavljaju primarne i sekundarne upite ljuske.

    Sekundarni upit (PS2) pojavljuje se ako kliknete Enter tipka, bez sintaktičkog dovršavanja unosa naredbe.

    Ova varijabla sadrži manji upit koji se pojavljuje prilikom uređivanja teksta u više redaka ili nepotpunog unosa naredbe. Prema zadanim postavkama označeno je 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 get DNS informacije:

    #nslookup>

  • PWD - Korisnikov trenutni radni imenik. Ova se vrijednost mijenja svaki put kada promijenite direktorij pomoću naredbe cd.
  • SECONDS - vrijeme rada skripte (u sekundama).
  • SHELL - Trenutni tumač naredbi.
  • SHELLOPTS - Popis uključenih opcija tumača.
  • SHLVL - Broj pokretanja novih kopija prevoditelja naredbi.
  • UID - Numerički ID trenutnog korisnika.
  • KORISNIK - Ime trenutnog korisnika.
  • $# - Ukupan broj parametara proslijeđenih skripti.
  • $* - Svi argumenti sada se prosljeđuju skripti (prikazuju se u nizu).
  • [e-mail zaštićen]- Isti 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 varijabli okruženja, izdajte naredbu set bez opcija ili env printenv.

Varijablu možete ukloniti naredbom unset.

2.4. Zamjene i organizacija interakcije između naredbi

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

Zamjena rezultata izračuna aritmetičkog izraza

Postoje dva sintaktička oblika za zamjenu rezultata vrednovanja 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 alternativna formata 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 kućni imenik korisničko ime ~+ Trenutni naziv direktorija ~- Prethodni naziv direktorija

Otvaranje vitičastih zagrada

Pomoću vitičastih zagrada možete unijeti jednu naredbu umjesto nekoliko naredbi 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 crte (|) označava potrebu organiziranja interakcije između naredbi korištenjem rezultata izvršenja (izlaza) druge naredbe kao ulaza (inputa) naredbe. Drugim riječima, uz pomoć kanala (cjevovoda), rezultati prve naredbe mogu se proslijediti kao ulaz u drugu naredbu. Na primjer,

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

Naredbene sekvence i grupe

Korištenje nizova i grupa naredbi omogućuje 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 naredba 1 naredba1 || naredba2 Izvrši naredbu 2 samo ako naredba 1 ne uspije

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

Ponovno izvršavanje naredbi

Ljuska ima mogućnosti za pozivanje prethodnih naredbi i njihovo uređivanje. Povijest (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, ljuska može "zapamtiti" do 1000 naredbenih redaka.

Da biste vidjeli popis prethodno korištenih naredbi, pokrenite naredbu history. Može se koristiti bez parametara ili s parametrom za određivanje broja naredbi za prikaz. Svaka naredbena linija ima svoj broj u povijesti naredbi.

Sintaksa proširenja povijesti: !n Izvrši naredbu s danim brojem!! Pokreni prethodnu naredbu!string Pokreni najnoviju 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že se pozvati za kasnije uređivanje. Koristite kursorske tipke strelica gore i strelica dolje za kretanje kroz povijest naredbi i odabir željene naredbene linije.

3. Ugrađene bash naredbe

Popis ugrađenih naredbi bash školjke može se dobiti iz naredbe za pomoć ili pronaći na stranici priručnika pod odjeljkom UGRAĐENE NAREDBE SHELL.

Evo nekoliko korisnih ugrađenih naredbi:

  • echo [argumenti] - Izlaz argumenata na ekran.
  • enable - Uzrokuje da ljuska izvrši izvršnu datoteku s istim imenom umjesto ugrađene naredbe. Korisno ako imate vlastitu skriptu nazvanu poput echo.
  • eval [argumenti] - Konstruiranje naredbe u hodu, od navedenih argumenata, i slanje na izvršenje.
  • neka - Evaluacija izraza.
  • - Čitajte i izvršavajte naredbe sadržane u datoteci. Koristi se za definiranje korisničkih varijabli. i funkcije.
  • osnovno ime - Označavanje lokalnog imena.
  • expr - Evaluacija izraza.
  • read - Unesite vrijednost varijable.
  • shift - Pomak popisa parametara.
  • test - Provjera stanja.
Druge ugrađene naredbe služe kao upute za jezik naredbi bash.

Moskovski državni institut za elektroničku tehnologiju

(Tehničko sveučilište)

Zavod za integriranu elektroniku i mikrosustave

LABORATORIJSKA RADIONICA

PO TEČAJU:

OPERACIJSKI SUSTAVLinux

Sastavio: asistent katedre. IEMS Kozlov A.V.

Moskva, 2007

Laboratorij je prvenstveno namijenjen studentima magistra inženjerstva i tehnologije prve godine studija Synopsys smjera 210100.68, za ovladavanje operativnim sustavom Red Hat Enterprise Linux (RHEL) 4.0. Također je namijenjen studentima FreeScale i svim korisnicima s početnim ili nikakvim iskustvom u Linuxu koji žele naučiti naredbeno okruženje Linuxa i njegove osnovne aplikacije koje su korisniku potrebne za rad sa sustavima za računalno potpomognuto projektiranje.

Ova radionica sastoji se 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; laboratorijska zadaća i obrazac izvješća o radu. Sintaksa za pisanje naredbi u ljusci, zajedno s opcijama, parametrima, radnjama, izrazima i stazama do 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)

LABORATORIJ #1

NA TEČAJU "LINUX OPERATIVNI SUSTAV"

Učenje bash shell naredbi na linuxu

OPIS IZRADIO:

A. V. KOZLOV

MOSKVA 2007

Lab #1 Učenje bash shell naredbi u Linux OS-u

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

Radno vrijeme - 4 sata

Teorijske informacije

operacijski sustav linux izvorno je razvijen kao besplatna, fleksibilna, višenamjenska, višekorisnička platforma visokih performansi dizajnirana da služi i rješava probleme znanstvenika diljem svijeta. Zbog "znanstvene orijentacije", takva platforma u početku nije imala prošireno grafičko sučelje, koje se naširoko koristi u rješavanju kućanskih zadataka - računalne igrice, Internet, interaktivni programi za komunikaciju s korisnicima, kao iu rješavanju uredskih problema - rad sa sustavima baza podataka, crtanje grafova 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 unosi u Linuxu razvijeni su interpreteri naredbi, koji su prevoditelji naredbi razumljivih ljudima u upravljačke signale razumljive jezgri operacijskog sustava. Glavna zadaća operacijskog sustava je posredovati u prijenosu naredbi od osobe do računala. I, unatoč činjenici da se danas operativni sustav Linux 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 široko korištene, a mnogima se čine i više prikladniji od korištenja miša i ikona (ikona 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 kao upute operacijski sustav za izvršenje. Interpretator naredbi omogućuje vam ne samo unos naredbi, već i preusmjeravanje ulaza i izlaza podataka iz naredbenog retka, kao i izvođenje operacija u pozadina, dopuštajući korisniku da obavlja druge zadatke u isto vrijeme.

Za Linux su razvijene mnoge ljuske: Bourne Again shell (BASH), Public Domain shell (PDKSH), TCSH interpreter i Z-shell. Iako je BASH zadani tumač, može se koristiti bilo koje drugo okruženje. Za udobnost rada u svakodnevnom načinu 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 operacije naredbenog retka, osim ako nije drugačije navedeno.

Naredbeni redak. Komandno sučelje linux nizovi sastoji se od jedne linije u koju se unose naredbe s opcijama i parametrima. U BASH ljusci obično je označen početak naredbenog retka poziv kao znak dolara ($); druge ljuske na Linux sustavu mogu koristiti drugačiji oblik upita. Nakon upita, korisnik može unijeti jednu naredbu ili naredbu s opcijama i parametrima. Ako korisniku nije dovoljna veličina naredbenog retka, tada ju je moguće ograničiti znakom “/”. Naredba se upisuje s tipkovnice, a unos tipkom. Na primjer, za izlaz sistemski datum i sistemsko vrijeme, 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

lipnja 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 da prva riječ upisana u naredbenom retku mora 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 s jednim ili više slova ispred crtice koji mijenja vrstu radnje koju izvodi naredba. Kao primjer naredbe s opcijama, ovdje je naredba ls . Kada se koristi bez opcija, ova naredba ispisuje sve datoteke i direktorije sadržane u trenutnom direktoriju. Osim naziva datoteka s ekstenzijama i bez njih, na ovom popisu nema ničega drugog. Na primjer, prilikom unosa naredbe ls s opcijom - l tim ls proizvodi redak po redak izlaz informacija za svaku datoteku, naime njezinu veličinu, datum i vrijeme zadnje izmjene. 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, pa 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 daje 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. Datotečne naredbe obično koriste nazive datoteka kao parametre. Na primjer, ako želite informacije samo o jednoj datoteci gauss.plx, navedite njezin naziv nakon opcije -l:

$ ls -l gauss.plx

Korisnikov rad počinje u okruženju ljuske BASH, koje se učitava prema zadanim postavkama. Sadrži posebne značajke za uređivanje naredbenog retka koje mogu biti vrlo korisne pri učenju OS-a Linux. Prije izvršavanja naredbi, one se mogu ispraviti pomicanjem kursora na naredbenom retku i umetanjem ili brisanjem znakova. Ovo je posebno korisno kada radite s vrlo složenim naredbama. Operacije uređivanja pomoći će ispraviti pogrešku prilikom upisivanja naredbe. Pomoću tipke |gore| možete izvaditi zaslon upravo izvršene naredbe. Zatim možete ponovno pokrenuti naredbu ili je urediti da biste pokrenuli izmijenjenu naredbu. Ova je značajka vrlo prikladna kada se neke operacije ponavljaju mnogo 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.

Stvorite datoteke i direktorije. U Linuxu su datoteka i direktorij dvije vrste podataka, pa se stvaraju pomoću različite ekipe. Za izradu imenika (imenika, mape) koristi se naredba mkdir rezervirana u Linuxu (“make directory” - kreiraj direktorij). U sljedećem primjeru stvorit ćemo novi direktorij u trenutnom direktoriju. Da biste to učinili, upotrijebite naredbu mkdir i, odvojene razmakom, ime novog direktorija.

$ mkdir novi

Imenik je napravljen. Međutim, ponekad je potrebno izraditi cijelu ugniježđenu strukturu, kada unutar već stvorene mape treba postojati još jedna, pa unutar nje još jedna i tako dalje. U tu svrhu naredba mkdir koristi opciju ugniježđivanja -p. Sljedeći primjer stvara podmape jednom naredbom: prva mapa 1, unutar mape 2 i unutar mape 3.

$ mkdir -p 1/2/3

Datoteke možete stvarati pomoću naredbi, kao i pomoću ugrađenih i vanjskih uređivača teksta Linuxa, kao što su kedit, nedit, gedit itd. Međutim, navedeni editori zahtijevaju rad grafičke ljuske, a time i rad grafičkog sustava. Ako ga nema, možete, na primjer, koristiti uređivač teksta VIM ili analozi koji ne zahtijevaju rad grafičkog sustava. Također možete stvarati datoteke koristeći tekstualne upravitelje datoteka kao što je Midnight Commander (naredba mc). Korisnik (dizajner) često treba tekstualne datoteke spremiti tekstualne informacije koje prate proces izračuna integriranog kruga ili, na primjer, elektrofizičke parametre 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, tako da 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. Izađite iz cat editora (filtar) pritiskom na Ctrl-D. Slijedi primjer stvaranja datoteke pomoću naredbe cat.

$ mačka > novi _ datoteka

Pregled primljene datoteke provodi se pomoću naredbe cat i naziva datoteke odvojenog razmakom.

$ mačka novi _ datoteka

Ili, na primjer, spremanje tekstualnih informacija s konzole prilikom izvođenja naredbe 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 vrši se pomoću naredbe cp, nakon čega se objekt kopiranja označava relativnom ili apsolutnom stazom, odvojenim razmakom, a novo odredište kopije ovog objekta također se odvaja 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 #2), možete također kopirati ovu datoteku korisniku Alexu, čiji radni direktorij ima sljedeću apsolutnu putanju /home/alex, koristeći sljedeću naredbu.

$ cp Gauss . plx / Dom / Alex

Ako datoteka s istim nazivom već postoji na odredištu kada se datoteka kopira, bit će prebrisana. To može dovesti do gubitka potrebnih podataka. Da biste to izbjegli, koristite cp naredbu s -i opcijom, u kojem će slučaju Linux svaki put pitati korisnika želi li doista prebrisati datoteku. Novi prikaz posljednje naredbe izgleda ovako.

$ cp -i gauss.plx /home/alex

Imenici se kopiraju na isti način kao i datoteke. Međutim, kada kopirate direktorije s datotekama i poddirektorijima, opcija -R koristi se kao dio naredbe cp. Budući da smo u direktoriju /home/antonk/111, kopirajmo direktorij laba2 na višu razinu, tj. u direktorij /home/antonk. Dvije točke označavaju razinu hijerarhije jednu stepenicu više.

$ 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 preimenovanja odvojen razmakom i novi naziv objekta odvojen drugim razmakom. Preimenovanje direktorija je isto što i preimenovanje datoteka. 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, u 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. Brisanje datoteka i direktorija u Linuxu vrši se pomoću naredbe rm, gdje se zadaju nazivi datoteka za brisanje odvojeni razmakom. !!! Budite oprezni kada radite s ovom naredbom, možete izbrisati potrebne podatke. Slično naredbi cp, koristite opciju -i 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

grupni simboli. Ponekad kada radite s ljuskom morate pronaći ili upariti datoteke prema uzorku. Na primjer, znate samo prvo slovo naziva datoteke i želite pronaći sve datoteke u radnom direktoriju koje počinju tim slovom. Ili znate slijed 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 seriju posebni znakovi, zvani zamjenski znakovi, koji se mogu koristiti za traženje, podudaranje i popis naziva datoteka. Ovi znakovi su zvjezdica, upitnik i uglate zagrade (*, ?, ). S obzirom na djelomični naziv datoteke, ljuska koristi te znakove kao uzorak za traženje i izradu popisa pronađenih naziva datoteka. Parametar s nekvalificiranim nazivom datoteke zamjenjuje se popisom podudarnih naziva datoteka. Ovaj popis naziva može se koristiti kao parametar u naredbama koje rade na više datoteka (na primjer, ls). Zamjenski znakovi ljuske navedeni su u tablici 1. 1.

Tablica 1. Specijalni znakovi ljuske

Opći simboli

Svrha

Razdvajanje naredbi na istoj naredbenoj liniji

"tim"

Izvršenje naredbe

Usporedba s klasom mogućih znakova u nazivima datoteka

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

Usmjerite stdout jedne naredbe kao ulaz u 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 zasebni simbol u nazivima datoteka

Simboli preusmjeravanja

Rezultat primjene

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

Uskličnik uzrokuje brisanje datoteke ako postoji. Ovaj znak nadjačava opciju koja onemogućuje 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 preusmjeravanja

Rezultat primjene standardnog ispisa pogreške

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

Preusmjerava standardni izlaz poruke o pogrešci na standardni ulaz

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

Prebacuje standardni izlaz poruka o greškama 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

U ovom primjeru je pokazano kako smo “filtrirali” nazive datoteka sa zvjezdicom koji ne počinju kombinacijom slova “doc”. Prikazuju se samo nazivi datoteka koji sadrže kombinaciju "doc". U ovom 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, u kojima 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, jer 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 neodređeni znak u nazivima datoteka.