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.
→
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.
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 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
<
: preusmjeritistdin
.>
: preusmjeritistdout
.|
: 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 ../
.
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 mv
takođ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
: stvoriti kopiju datoteke
cp my_source_file target_directorymy_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.
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
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 stdin
koristeći ovu naredbu kao dio cjevovoda.
tail my_file
: čita retke s kraja datoteke. Ova se naredba također može koristiti u cjevovodu.
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.
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.
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.
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.
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
В ~/.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 -
Dragi čitatelji! Koje biste naredbe korisne za početnike dodali onima o kojima je bilo riječi u ovom članku?
→
Izvor: www.habr.com