[bookmarked] Bash za početnike: 21 korisna naredba

Materijal, čiji prijevod danas objavljujemo, namijenjen je onima koji žele savladati Linux komandnu liniju. Mogućnost efikasnog korištenja ovog alata može uštedjeti mnogo vremena. Konkretno, ovdje ćemo govoriti o Bash ljusci i 21 korisnoj komandi. Također ćemo razgovarati o tome kako koristiti komandne zastavice i Bash pseudonime da ubrzamo kucanje dugih instrukcija.

[bookmarked] Bash za početnike: 21 korisna naredba

Također pročitajte na našem blogu seriju publikacija o bash skriptama

Uslovi

Dok budete naučili raditi s Linux komandnom linijom, naići ćete na mnoge koncepte koji su korisni za navigaciju. Neki od njih, kao što su "Linux" i "Unix", ili "ljuska" i "terminal", ponekad su zbunjeni. Hajde da razgovaramo o ovim i drugim važnim terminima.

Unix je popularan operativni sistem koji je razvio Bell Labs 1970-ih. Njen kod je zatvoren.

Linux je najpopularniji operativni sistem sličan Unixu. Sada se koristi na mnogim uređajima, uključujući računare.

terminal (terminal), ili emulator terminala je program koji daje pristup operativnom sistemu. Možete otvoriti više prozora terminala u isto vrijeme.

Shell (ljuska) je program koji vam omogućava slanje komandi napisanih na posebnom jeziku operativnom sistemu.

bash označava Bourne Again Shell. To je najčešći shell jezik koji se koristi za interakciju sa operativnim sistemom. Takođe, Bash ljuska je podrazumevana na macOS-u.

Interfejs komandne linije (Command Line Interface, CLI) je metoda interakcije između osobe i računara, pomoću koje korisnik unosi komande sa tastature, a računar, izvršavajući te komande, prikazuje poruke u tekstualnom obliku za korisnika. Glavna upotreba CLI-a je dobivanje ažuriranih informacija o određenim entitetima, kao što su datoteke, i rad s datotekama. Interfejs komandne linije treba razlikovati od grafičkog korisničkog interfejsa (GUI), koji prvenstveno koristi miš. Interfejs komandne linije se često naziva jednostavno komandnom linijom.

Skripta (skripta) je mali program koji sadrži niz naredbi ljuske. Skripte se pišu u datoteke, mogu se više puta koristiti. Kada pišete skripte, možete koristiti varijable, uslovne, petlje, funkcije i druge karakteristike.

Sada kada smo pokrili važne termine, želim da istaknem da ću ovde naizmenično koristiti termine "Bash", "ljuska" i "komandna linija", kao i termine "direktorij" i "folder".

Standardno potoci, koji ćemo ovdje koristiti je standardni ulaz (standardni unos, stdin), standardni izlaz (standardni izlaz, stdout) i izlaz standardne greške (standardna greška, stderr).

Ako u primjeru naredbi koje će biti navedene u nastavku, naći ćete nešto poput my_whatever - to znači da ovaj fragment treba zamijeniti nečim vašim. Na primjer, naziv datoteke.

Sada, prije nego što nastavimo s analizom komandi kojima je posvećen ovaj materijal, pogledajmo njihovu listu i njihove kratke opise.

21 Bash komande

▍Dobijanje informacija

  • man: Prikazuje korisnički vodič (pomoć) za naredbu.
  • pwd: prikazuje informacije o radnom direktoriju.
  • ls: prikazuje sadržaj direktorija.
  • ps: Omogućava vam da vidite informacije o pokrenutim procesima.

▍Manipulacija sistemom datoteka

  • cd: promijeniti radni direktorij.
  • touch: kreirati datoteku.
  • mkdir: kreirajte direktorij.
  • cp: Kopiraj datoteku.
  • mv: Premjestite ili izbrišite datoteku.
  • ln: kreirajte vezu.

▍I/O preusmjeravanje i cjevovodi

  • <: preusmjeravanje stdin.
  • >: preusmjeravanje stdout.
  • |: prebacuje izlaz jedne komande na ulaz druge komande.

▍Čitanje fajlova

  • head: pročitajte početak datoteke.
  • tail: čitanje kraja datoteke.
  • cat: Pročitajte datoteku i odštampajte njen sadržaj na ekranu ili spojite datoteke.

▍Brisanje datoteka, zaustavljanje procesa

  • rm: Izbrišite datoteku.
  • kill: zaustavi proces.

▍Traži

  • grep: traženje informacija.
  • ag: napredna komanda za pretraživanje.

▍Arhiviranje

  • tar: kreiranje arhiva i rad sa njima.

Razgovarajmo o ovim naredbama detaljnije.

Detalji tima

Za početak, pozabavimo se komandama čiji se rezultati izdaju u obrascu stdout. Obično se ovi rezultati pojavljuju u prozoru terminala.

▍Dobijanje informacija

man command_name: prikazuje vodič za komande, tj. informacije o pomoći.

pwd: prikazuje putanju do trenutnog radnog direktorija. U toku rada sa komandnom linijom korisnik često treba da sazna gde se tačno u sistemu nalazi.

ls: prikazuje sadržaj direktorija. Ova komanda se takođe često koristi.

ls -a: prikaži skrivene fajlove. zastava primijenjena ovdje -a naredbe ls. Upotreba zastavica pomaže da se prilagodi ponašanje komandi.

ls -l: Prikaz detaljnih informacija o datotekama.

Imajte na umu da se zastavice mogu kombinovati. Na primjer - ovako: ls -al.

ps: Pogledajte pokrenute procese.

ps -e: Prikažite informacije o svim pokrenutim procesima, a ne samo onima povezanim sa trenutnom korisničkom ljuskom. Ova komanda se često koristi u ovom obliku.

▍Manipulacija sistemom datoteka

cd my_directory: promijenite radni direktorij u my_directory. Da biste se pomaknuli za jedan nivo u stablu direktorija, koristite my_directory relativni put ../.

[bookmarked] Bash za početnike: 21 korisna naredba
cd komanda

touch my_file: kreiranje fajla my_file duž zadatog puta.

mkdir my_directory: kreirajte folder my_directory duž zadatog puta.

mv my_file target_directory: premjestiti datoteku my_file u folder target_directory. Kada specificirate ciljni direktorij, trebate koristiti apsolutnu putanju do njega (a ne konstrukciju kao što je ../).

tim mvmože se koristiti i za preimenovanje datoteka ili foldera. Na primjer, to može izgledati ovako:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: kreirajte kopiju datoteke my_source_file i stavi u fasciklu target_directory.

ln -s my_source_file my_target_file: kreiranje simboličke veze my_target_file po fajlu my_source_file. Ako promijenite vezu, promijenit će se i originalni fajl.

Ako je fajl my_source_file tada će biti obrisan my_target_file ostaće. Zastava -s naredbe ln omogućava vam da kreirate veze za direktorijume.

Sada razgovarajmo o I/O preusmjeravanju i cjevovodima.

▍I/O preusmjeravanje i cjevovodi

my_command < my_file: zamjenjuje standardni deskriptor ulazne datoteke (stdin) po datoteci my_file. Ovo može biti korisno ako naredba čeka neki unos s tastature, a ovi podaci su već sačuvani u datoteci.

my_command > my_file: preusmjerava rezultate naredbe, tj. ono u šta bi inače ulazilo stdout i izlaz na ekran, u datoteku my_file. Ako je fajl my_file ne postoji - stvoreno je. Ako datoteka postoji, ona se prepisuje.

Na primjer, nakon izvršenja naredbe ls > my_folder_contents.txt biće kreiran tekstualni fajl koji sadrži listu onoga što se nalazi u trenutnom radnom direktorijumu.

Ako umjesto simbola > koristiti konstrukciju >>, onda, pod uslovom da datoteka na koju se preusmjerava izlaz naredbe postoji, ova datoteka neće biti prepisana. Podaci će biti dodati na kraj ove datoteke.

Hajde sada da pogledamo obradu cevovoda podataka.

[bookmarked] Bash za početnike: 21 korisna naredba
Izlaz jedne komande se unosi u ulaz druge komande. To je kao spajanje jedne cijevi na drugu

first_command | second_command: simbol transportera, |, koristi se za slanje izlaza jedne naredbe drugoj naredbi. Na što šalje naredba s lijeve strane opisane strukture stdout, Pasti u stdin naredba desno od simbola cjevovoda.

Na Linuxu, podaci se mogu slati pomoću bilo koje dobro oblikovane naredbe. Često se kaže da je sve u Linuxu cevovod.

Možete ulančati više naredbi koristeći simbol cjevovoda. izgleda ovako:

first_command | second_command | third_command

[bookmarked] Bash za početnike: 21 korisna naredba
Cjevovod od nekoliko naredbi može se uporediti sa cjevovodom

Imajte na umu da kada je naredba lijevo od simbola |, ispisuje nešto na stdout, ono što ona daje odmah je dostupno kao stdin drugi tim. Odnosno, ispostavilo se da, koristeći cevovod, imamo posla sa paralelnim izvršavanjem naredbi. Ponekad to može dovesti do neočekivanih rezultata. Detalje o ovome možete pročitati ovdje.

Hajde sada da pričamo o čitanju podataka iz datoteka i njihovom prikazivanju na ekranu.

▍Čitanje fajlova

head my_file: čita redove s početka datoteke i ispisuje ih na ekran. Možete čitati ne samo sadržaj datoteka, već i ono što komande izlaze stdinkoristeći ovu naredbu kao dio cjevovoda.

tail my_file: čita redove s kraja datoteke. Ova naredba se također može koristiti u cjevovodu.

[bookmarked] Bash za početnike: 21 korisna naredba
Glava (glava) je ispred, a rep (rep) iza

Ako radite s podacima koristeći pandas biblioteku, onda naredbe head и tail trebalo bi da vam bude poznato. Ako to nije slučaj, pogledajte gornju sliku i lako ćete ih zapamtiti.

Razmotrimo druge načine čitanja datoteka, hajde da pričamo o naredbi cat.

tim cat ili ispisuje sadržaj datoteke na ekran, ili spaja više datoteka. Zavisi od toga koliko je datoteka proslijeđeno ovoj komandi kada se pozove.

[bookmarked] Bash za početnike: 21 korisna naredba
cat command

cat my_one_file.txt: kada je jedna datoteka proslijeđena ovoj naredbi, ona je šalje na izlaz stdout.

Ako mu date dva ili više datoteka, onda se ponaša drugačije.

cat my_file1.txt my_file2.txt: nakon što je primila nekoliko datoteka kao ulaz, ova komanda spaja njihov sadržaj i prikazuje šta se dogodilo stdout.

Ako rezultat spajanja datoteka treba sačuvati kao novu datoteku, možete koristiti operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Sada razgovarajmo o tome kako izbrisati datoteke i zaustaviti procese.

▍Brisanje datoteka, zaustavljanje procesa

rm my_file: izbrisati fajl my_file.

rm -r my_folder: briše folder my_folder i sve datoteke i fascikle koje sadrži. Zastava -r označava da će se naredba izvoditi u rekurzivnom načinu.

Da spriječite sistem da traži potvrdu svaki put kada se datoteka ili mapa izbriše, koristite oznaku -f.

kill 012345: Zaustavlja navedeni pokrenuti proces, dajući mu vremena da se elegantno isključi.

kill -9 012345: Prisilno prekida navedeni pokrenuti proces. Pogledaj zastavu -s SIGKILL znači isto što i zastava -9.

▍Traži

Možete koristiti različite komande za traženje podataka. Posebno - grep, ag и ack. Započnimo naše upoznavanje sa ovim komandama sa grep. Ovo je vremenski testirana, pouzdana naredba, koja je, međutim, sporija od drugih i nije tako zgodna za korištenje kao što jesu.

[bookmarked] Bash za početnike: 21 korisna naredba
grep naredba

grep my_regex my_file: pretrage my_regex в my_file. Ako se pronađe podudaranje, vraća se cijeli niz za svako podudaranje. Default my_regex tretira kao regularni izraz.

grep -i my_regex my_file: Pretraga se vrši na način bez obzira na velika i mala slova.

grep -v my_regex my_file: vraća sve redove koji ne sadrže my_regex. Zastava -v znači inverziju, liči na operator NOT, koji se nalazi u mnogim programskim jezicima.

grep -c my_regex my_file: Vraća informacije o broju podudaranja za traženi uzorak pronađen u datoteci.

grep -R my_regex my_folder: vrši rekurzivno pretraživanje u svim datotekama koje se nalaze u navedenom folderu i u folderima koji su ugniježđeni u njemu.

Hajde sada da pričamo o timu ag. Došla je kasnije grep, brži je, praktičniji je raditi s njim.

[bookmarked] Bash za početnike: 21 korisna naredba
ag command

ag my_regex my_file: vraća informacije o brojevima redova i samim redovima u kojima su pronađena podudaranja my_regex.

ag -i my_regex my_file: Pretraga se vrši na način bez obzira na velika i mala slova.

tim ag automatski obraditi fajl .gitignore i isključuje iz izlaza ono što se nalazi u fasciklama ili datotekama navedenim u toj datoteci. Veoma je udoban.

ag my_regex my_file -- skip-vcs-ignores: sadržaj datoteka za automatsku kontrolu verzija (npr .gitignore) se ne uzima u obzir u pretraživanju.

Osim toga, kako bi rekao timu ag na kojim putanjama fajlova želite da isključite iz pretrage, možete kreirati datoteku .agignore.

Na početku ovog odeljka spomenuli smo komandu ack. Timovi ack и ag vrlo slični, možemo reći da su 99% zamjenjivi. Međutim, tim ag radi brže, zato sam ga i opisao.

Hajde sada da pričamo o radu sa arhivama.

▍Arhiviranje

tar my_source_directory: spaja datoteke iz foldera my_source_directory u jednu tarball datoteku. Takve datoteke su korisne za prijenos velikih skupova datoteka nekome.

[bookmarked] Bash za početnike: 21 korisna naredba
tar komanda

Datoteke tarball-a koje generiše ova naredba su datoteke sa ekstenzijom .tar (Arhiva trake). Činjenica da je riječ "traka" (traka) skrivena u nazivu naredbe i u ekstenzijama imena datoteka koje kreira pokazuje koliko dugo ova komanda postoji.

tar -cf my_file.tar my_source_directory: kreira tarball datoteku pod nazivom my_file.tar sa sadržajem foldera my_source_directory. Zastava -c označava "kreirati" (kreaciju) i zastavu -f kao "fajl" (fajl).

Za izdvajanje datoteka iz .tar-file, koristite naredbu tar sa zastavama -x ("ekstrakt", ekstrakcija) i -f („datoteka“, datoteka).

tar -xf my_file.tar: izdvaja datoteke iz my_file.tar u trenutni radni direktorij.

Sada razgovarajmo o tome kako komprimirati i dekompresirati .tar-fajlovi.

tar -cfz my_file.tar.gz my_source_directory: ovdje koristeći zastavu -z ("zip", algoritam kompresije) označava da se algoritam treba koristiti za komprimiranje datoteka gzip (GNUzip). Kompresija datoteka štedi prostor na disku prilikom pohranjivanja takvih datoteka. Ako se datoteke planiraju, na primjer, prenijeti drugim korisnicima, to doprinosi bržem preuzimanju takvih datoteka.

Raspakujte datoteku .tar.gz možete dodati zastavu -z na komandu izdvajanje sadržaja .tar-fajlovi, o kojima smo govorili gore. izgleda ovako:

tar -xfz my_file.tar.gz
Treba napomenuti da je tim tar Ima još mnogo korisnih zastava.

Bash aliasi

Bash aliasi (koji se nazivaju i pseudonimi ili skraćenice) dizajnirani su da kreiraju skraćena imena naredbi ili njihovih sekvenci, čija upotreba umjesto redovnih naredbi ubrzava rad. Ako imate pseudonim bu, koji skriva komandu python setup.py sdist bdist_wheel, tada je za pozivanje ove naredbe dovoljno koristiti ovaj alias.

Da biste kreirali takav alias, samo dodajte sljedeću naredbu u datoteku ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ako vaš sistem nema datoteku ~/.bash_profile, onda ga možete sami kreirati koristeći naredbu touch. Nakon kreiranja alijasa, ponovo pokrenite terminal, nakon čega možete koristiti ovaj alias. U ovom slučaju, unos dva znaka zamjenjuje unos više od tri desetine znakova naredbe koja je namijenjena sklopovi Python paketi.

В ~/.bash_profile možete dodati pseudonime za sve često korištene komande.

▍Rezultati

U ovom postu smo pokrili 21 popularnu Bash komandu i razgovarali o kreiranju alijasa komandi. Ako ste zainteresovani za ovu temu - Evo serija publikacija posvećenih Bashu. to je Možete pronaći pdf verziju ovih publikacija. Takođe, ako želite da naučite Bash, zapamtite da je, kao i kod svakog drugog programskog sistema, praksa ključna.

Dragi čitaoci! Koje naredbe koje su korisne za početnike biste dodali onima o kojima se raspravljalo u ovom članku?

Također pročitajte na našem blogu seriju publikacija o bash skriptama

[bookmarked] Bash za početnike: 21 korisna naredba

izvor: www.habr.com

Dodajte komentar