[označeno] Bash za početnike: 21 korisna naredba

Materijal, čiji prijevod objavljujemo danas, namijenjen je onima koji žele svladati naredbeni redak Linuxa. Mogućnost učinkovitog korištenja ovog alata može uštedjeti mnogo vremena. Ovdje ćemo posebno govoriti o Bash ljusci i 21 korisnoj naredbi. Također ćemo govoriti o tome kako koristiti zastavice naredbi i Bash pseudonime za ubrzavanje tipkanja dugih instrukcija.

[označeno] Bash za početnike: 21 korisna naredba

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

uvjeti

Dok budete učili raditi s Linux naredbenim redom, naići ćete na mnoge koncepte koji su korisni za navigaciju. Neki od njih, poput "Linux" i "Unix", ili "shell" i "terminal", ponekad se brkaju. Razgovarajmo o ovim i drugim važnim pojmovima.

Unix je popularan operativni sustav koji je 1970-ih razvio Bell Labs. Njezin kod je bio zatvoren.

Linux je najpopularniji operativni sustav nalik Unixu. Sada se koristi na mnogim uređajima, uključujući računala.

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

ljuska (shell) je program koji omogućuje slanje naredbi napisanih na posebnom jeziku u operacijski sustav.

Tresnuti označava Bourne Again Shell. To je najčešći jezik ljuske koji se koristi za interakciju s operativnim sustavom. Također, Bash ljuska je zadana na macOS-u.

Sučelje naredbenog retka (Command Line Interface, CLI) je način interakcije između osobe i računala, pri čemu korisnik unosi naredbe s tipkovnice, a računalo izvršavajući te naredbe korisniku prikazuje poruke u tekstualnom obliku. CLI se uglavnom koristi za dobivanje ažurnih informacija o određenim entitetima, na primjer, o datotekama i za rad s datotekama. Sučelje naredbenog retka treba razlikovati od grafičkog korisničkog sučelja (GUI), koje prvenstveno koristi miš. Sučelje naredbenog retka često se naziva jednostavno naredbeni redak.

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

Sada kada smo pokrili važne pojmove, želim istaknuti da ću ovdje naizmjenično koristiti pojmove "Bash", "shell" i "command line", kao i pojmove "directory" i "folder".

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

Ako u primjeru naredbi koji će biti dani u nastavku, pronać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 naredbi kojima je ovaj materijal posvećen, pogledajmo njihov popis i njihove kratke opise.

21 Bash naredbe

▍Dobijanje informacija

  • man: Prikazuje korisnički vodič (pomoć) za naredbu.
  • pwd: prikazuje informacije o radnom direktoriju.
  • ls: prikazuje sadržaj imenika.
  • ps: Omogućuje pregled informacija o pokrenutim procesima.

▍Manipulacija datotečnim sustavom

  • cd: promijeniti radni direktorij.
  • touch: stvoriti datoteku.
  • mkdir: stvoriti imenik.
  • cp: Kopirajte datoteku.
  • mv: Premjestite ili izbrišite datoteku.
  • ln: stvoriti vezu.

▍I/O preusmjeravanje i cjevovodi

  • <: preusmjeriti stdin.
  • >: preusmjeriti stdout.
  • |: preveo izlaz jedne naredbe na ulaz druge naredbe.

▍Čitanje datoteka

  • head: pročitajte početak datoteke.
  • tail: čitanje kraja datoteke.
  • cat: Pročitajte datoteku i ispišite njezin sadržaj na ekran ili spojite datoteke.

▍Brisanje datoteka, zaustavljanje procesa

  • rm: Brisanje datoteke.
  • kill: zaustaviti proces.

▍Traži

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

▍Arhiviranje

  • tar: stvaranje arhiva i rad s njima.

Razgovarajmo o ovim naredbama detaljnije.

Detalji tima

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

▍Dobijanje informacija

man command_name: prikaz vodiča za naredbe, tj. informacija o pomoći.

pwd: prikaz staze do trenutnog radnog direktorija. U tijeku rada s naredbenim retkom, korisnik često mora saznati gdje se točno nalazi u sustavu.

ls: prikaz sadržaja imenika. Ova se naredba također često koristi.

ls -a: prikaži skrivene datoteke. ovdje primijenjena zastava -a naredbe ls. Korištenje zastavica pomaže u prilagođavanju ponašanja naredbi.

ls -l: Prikaz detaljnih informacija o datotekama.

Imajte na umu da se zastave mogu kombinirati. Na primjer - ovako: ls -al.

ps: Pregledajte pokrenute procese.

ps -e: Prikaz informacija o svim pokrenutim procesima, ne samo o onima koji su povezani s trenutnom korisničkom ljuskom. Ova naredba se često koristi u ovom obliku.

▍Manipulacija datotečnim sustavom

cd my_directory: promijeniti radni imenik u my_directory. Za pomicanje prema gore u stablu imenika koristite my_directory relativni put ../.

[označeno] Bash za početnike: 21 korisna naredba
naredba cd

touch my_file: stvaranje datoteke my_file duž zadane staze.

mkdir my_directory: kreirajte mapu my_directory duž zadane staze.

mv my_file target_directory: premjesti datoteku my_file u mapu target_directory. Kada navodite ciljni direktorij, morate koristiti apsolutni put do njega (a ne konstrukciju poput ../).

tim mvtakođer se može koristiti za preimenovanje datoteka ili mapa. Na primjer, to bi moglo izgledati ovako:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: stvoriti kopiju datoteke my_source_file i stavite ga u mapu target_directory.

ln -s my_source_file my_target_file: stvoriti simboličku vezu my_target_file po datoteci my_source_file. Ako promijenite vezu, promijenit će se i izvorna datoteka.

Ako je datoteka my_source_file tada će se izbrisati my_target_file ostati će. Zastava -s naredbe ln omogućuje stvaranje poveznica za imenike.

Sada razgovarajmo o I/O preusmjeravanju i cjevovodima.

▍I/O preusmjeravanje i cjevovodi

my_command < my_file: zamjenjuje standardni ulazni deskriptor datoteke (stdin) po datoteci my_file. Ovo može biti korisno ako naredba čeka neki unos s tipkovnice, a ti su podaci već spremljeni u datoteci.

my_command > my_file: preusmjerava rezultate naredbe, tj. ono što bi inače ulazilo stdout i izlaz na ekran, u datoteku my_file. Ako je datoteka my_file ne postoji – stvoreno je. Ako datoteka postoji, bit će prebrisana.

Na primjer, nakon izvršenja naredbe ls > my_folder_contents.txt stvorit će se tekstualna datoteka koja će sadržavati popis onoga što se nalazi u trenutnom radnom direktoriju.

Ako umjesto simbola > koristiti konstrukciju >>, tada, pod uvjetom da postoji datoteka na koju je izlaz naredbe preusmjeren, ta datoteka neće biti prebrisana. Podaci će biti dodani na kraj ove datoteke.

Sada pogledajmo obradu podatkovnog cjevovoda.

[označeno] Bash za početnike: 21 korisna naredba
Izlaz jedne naredbe prenosi se na ulaz druge naredbe. To je kao spajanje jedne cijevi na drugu

first_command | second_command: simbol pokretne trake, |, koristi se za slanje izlaza jedne naredbe drugoj naredbi. Što šalje naredba s lijeve strane opisane strukture stdout, Pasti u stdin naredba s desne strane simbola cjevovoda.

U Linuxu se podaci mogu usmjeravati pomoću bilo koje dobro oblikovane naredbe. Često se kaže da je sve u Linuxu cjevovod.

Možete ulančati više naredbi pomoću simbola cjevovoda. Ovako izgleda:

first_command | second_command | third_command

[označeno] Bash za početnike: 21 korisna naredba
Cjevovod od nekoliko naredbi može se usporediti s cjevovodom

Imajte na umu da kada naredba lijevo od simbola |, izlazi nešto na stdout, ono što ona objavi odmah je dostupno kao stdin drugi tim. Odnosno, ispada da, koristeći cjevovod, imamo posla s paralelnim izvršavanjem naredbi. Ponekad to može dovesti do neočekivanih rezultata. Pojedinosti o tome možete pročitati здесь.

Razgovarajmo sada o čitanju podataka iz datoteka i njihovom prikazivanju na zaslonu.

▍Čitanje datoteka

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

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

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

Ako radite s podacima pomoću biblioteke pandas, tada naredbe head и tail trebao bi vam biti poznat. Ako to nije slučaj, pogledajte gornju sliku i lako ćete ih zapamtiti.

Razmotrite druge načine čitanja datoteka, razgovarajmo o naredbi cat.

Momčad cat ili ispisuje sadržaj datoteke na ekran ili povezuje više datoteka. Ovisi o tome koliko je datoteka proslijeđeno ovoj naredbi kada se pozove.

[označeno] Bash za početnike: 21 korisna naredba
mačka naredba

cat my_one_file.txt: kada se jedna datoteka proslijedi ovoj naredbi, ona je šalje u stdout.

Ako mu date dvije datoteke 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 naredba povezuje njihov sadržaj i prikazuje što se dogodilo stdout.

Ako rezultat ulančavanja datoteke treba spremiti 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 dateoteku my_file.

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

Kako biste spriječili sustav da traži potvrdu svaki put kada se datoteka ili mapa izbriše, koristite zastavicu -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

Za traženje podataka možete koristiti različite naredbe. Posebno - grep, ag и ack. Počnimo naše upoznavanje s ovim naredbama s grep. Ovo je vremenski testirana, pouzdana naredba, koja je, međutim, sporija od ostalih i nije tako praktična za korištenje kao one.

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

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

grep -i my_regex my_file: Pretraživanje se izvodi bez obzira na velika i mala slova.

grep -v my_regex my_file: vraća sve retke koji ne sadrže my_regex. Zastava -v znači inverziju, nalikuje operatoru NOT, nalazi se 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: izvodi rekurzivno pretraživanje u svim datotekama koje se nalaze u navedenoj mapi i u mapama ugniježđenim u njoj.

Ajmo sada o timu ag. Došla je kasnije grep, brže je, prikladnije je raditi s njim.

[označeno] Bash za početnike: 21 korisna naredba
ag naredba

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

ag -i my_regex my_file: Pretraživanje se izvodi bez obzira na velika i mala slova.

Momčad ag automatski obraditi datoteku .gitignore i isključuje iz izlaza ono što se nalazi u mapama ili datotekama navedenim u toj datoteci. Vrlo je udoban.

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

Osim toga, kako bi rekao tim ag na kojoj stazi datoteke želite isključiti iz pretraživanja, možete stvoriti datoteku .agignore.

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

Razgovarajmo sada o radu s arhivima.

▍Arhiviranje

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

[označeno] Bash za početnike: 21 korisna naredba
tar naredba

Tarball datoteke generirane ovom naredbom su datoteke s ekstenzijom .tar (ARhiva trake). Činjenica da se riječ "tape" (traka) krije u nazivu naredbe i u ekstenziji imena datoteka koje stvara govori koliko dugo ova naredba postoji.

tar -cf my_file.tar my_source_directory: stvara tarball datoteku pod nazivom my_file.tar sa sadržajem mape my_source_directory. Zastava -c stoji za "create" (stvaranje), a zastava -f kao "datoteka" (file).

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 dekomprimirati .tar-dosjei.

tar -cfz my_file.tar.gz my_source_directory: ovdje se koristi zastava -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, primjerice, prenijeti drugim korisnicima, to pridonosi bržem preuzimanju takvih datoteka.

Raspakirajte datoteku .tar.gz možete dodati zastavu -z do naredbe izdvajanja sadržaja .tar-datoteke, o kojima smo raspravljali gore. Ovako izgleda:

tar -xfz my_file.tar.gz
Valja napomenuti da tim tar Ima još mnogo korisnih zastavica.

Bash aliasi

Bash aliasi (koji se nazivaju i aliasi ili kratice) dizajnirani su za stvaranje skraćenih naziva naredbi ili njihovih nizova, čija upotreba umjesto uobičajenih naredbi ubrzava rad. Ako imate alias bu, koji skriva naredbu python setup.py sdist bdist_wheel, tada je za pozivanje ove naredbe dovoljno koristiti ovaj alias.

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

alias bu="python setup.py sdist bdist_wheel"

Ako vaš sustav nema datoteku ~/.bash_profile, tada ga možete sami izraditi pomoću naredbe touch. Nakon što stvorite alias, ponovno 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 naredbe.

▍Rezultati

U ovom smo postu obradili 21 popularnu Bash naredbu i razgovarali o stvaranju aliasa naredbi. Ako vas zanima ova tema - ovdje niz publikacija posvećenih Bashu. Ovdje Možete pronaći pdf verziju ovih publikacija. Također, ako želite naučiti Bash, zapamtite da je, kao i kod bilo kojeg drugog sustava programiranja, vježba ključna.

Dragi čitatelji! Koje biste naredbe korisne za početnike dodali onima o kojima je bilo riječi u ovom članku?

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

[označeno] Bash za početnike: 21 korisna naredba

Izvor: www.habr.com

Dodajte komentar