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čaci | Opis |
---|---|
G | Pomiče se na kraj datoteke |
g | Pomiče na početak datoteke |
:50 | Prelazi na redak 50 datoteke |
q | Izlazi manje |
/pojam za pretraživanje | Niz za pretraživanje koji odgovara 'pojmu za pretraživanje' u nastavku trenutna linija |
/ | |
?pojam za pretraživanje | Potražite redak koji odgovara "pojmu za pretraživanje" iznad trenutnog retka |
? | Pomiče se na sljedeći odgovarajući rezultat pretraživanja |
gore | Pomiče se jedan red prema gore |
dolje | Pomiče jedan red prema dolje |
stranica gore | Pomiče se za jednu stranicu gore |
stranica niže | Pomič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.txtTransportne 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 > .
Ime | Deskriptor | Opis |
---|---|---|
stdin | 0 | Standardni unos |
stdout | 1 | standardni izlaz |
stderr | 2 | 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 ctrl–alt–F1 ili ctrl–alt–F2 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/bashAko 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 ctrl–D, 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 /usrZatim možemo otići do /usr/local/bin koristeći relativnu stazu
\$ cd lokalni/bin \$ pwd/usr/local/binUpotreba ".."
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/lokalnoKao š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/dijeliPrimjeri 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/../binRadni 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.
\$ ./myprogU 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
\$ CDBez 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.txtMeđ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.txtLinux 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 srcAko 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 sslDetaljan 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/ tmpPrvi 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/binRekurzivna 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/lokalnoKao š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/localU 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 toeZadana 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/fulOvu operaciju možete pojednostaviti dodavanjem opcije '-p' na naredbu mkdir. Ova vam opcija omogućuje stvaranje ugniježđene strukture imenika:
\$ mkdir -p lako/kao/pitaKako 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 copymeTim 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 datotekaDa bismo upisali niz u našu datoteku, preusmjeravamo izlaz naredbe na njega jeka:
\$ echo "firstfile" > copymeZnak > (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 copymemačka i cp
Za prikaz sadržaja datoteke na terminalu koristite naredbu mačka:
\$ mačka copyme prva datotekaSada 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 meTo 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 kopijamv
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 meInode 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/userDatoteka ć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.txtAko 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:
- Proširuje pseudonime za prečac najčešće korištene naredbe.
- Proširuje zamjenske znakove ili zamjenske znakove (*, ?, [, ], ~, (, )) za traženje datoteka prema obrascima naziva.
- Zamjenjuje varijable koje ljuska može koristiti.
- Preusmjerava izlaz jedne naredbe kao ulaz u drugu naredbu pomoću cijevi.
- Izvodi ulančavanje naredbi.
- Izvršava naredbu ako je to ugrađena naredba interpretera ili pokreće proces ako je naredba vanjska.
- 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 datoteka | Opis |
---|---|
/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.
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.