[v zaklade] Bash za začetnike: 21 uporabnih ukazov

Material, ki ga danes objavljamo, je namenjen tistim, ki želijo obvladati ukazno vrstico Linux. Učenje učinkovite uporabe tega orodja lahko prihrani precej časa. V tem prispevku se bomo osredotočili na ukazno lupino Bash in 21 koristnih ukazov. Prav tako bomo govorili o tem, kako uporabljati zastavice ukazov in psevdonime Bash, ki pospešujejo vnos dolgih ukazov.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov

→ Prav tako preberite v našem blogu cikel objav o bash skriptih

Terminologija

Med učenjem dela z ukazno vrstico Linux se lahko srečate z mnogimi pojmi, v katerih je dobro poznati. Nekateri od njih, kot so "Linux" in "Unix", ali "ukazna lupina" in "terminal", se včasih zamenjujejo. Pogovorili se bomo o teh in drugih pomembnih izrazih.

Unix — je priljubljen operacijski sistem, ki so ga razvili Bell Labs v 70-ih letih prejšnjega stoletja. Njegova koda je bila zaprta.

Linux — je najbolj priljubljen Unix-podobni operacijski sistem. Danes se uporablja na številnih napravah, vključno z računalniki.

Terminal (terminal), ali emulator terminala — je program, ki omogoča dostop do operacijskega sistema. Hkrati lahko odprete več terminalskih oken.

Okruženje (shell) — je program, ki omogoča pošiljanje ukazov operacijskemu sistemu, napisanih v posebnem jeziku.

Bash se razširja kot Bourne Again SHell. To je najpogosteje uporabljeni jezik ukazne lupine za interakcijo z operacijskim sistemom. Poleg tega se lupina Bash privzeto uporablja v macOS.

Ukazna vrstica (Command Line Interface, CLI) — je način interakcije med človekom in računalnikom, pri čemer uporabnik vnaša ukaze s tipkovnico, računalnik pa, ko izvaja te ukaze, izpisuje sporočila za uporabnika v besedilni obliki. CLI se večinoma uporablja za pridobivanje svežih informacij o določenih entitetah, kot so datoteke, in za delo z datotekami. Ukazno vrstico je potrebno ločiti od grafičnega uporabniškega vmesnika (Graphical User Interface, GUI), kjer se večinoma uporablja miška. Ukazno vrstico pogosto imenujemo preprosto ukazna vrstica.

Skript (script) — je majhen program, ki vsebuje zaporedje ukazov lupine. Skripti se shranijo v datoteke in jih je mogoče večkrat uporabiti. Pri pisanju skriptov lahko uporabljate spremenljivke, pogojne strukture, zanke, funkcije in druge možnosti.

Zdaj, ko smo obravnavali pomembne pojme, želim omeniti, da bom tukaj uporabljal izraze "Bash", "lupina" in "ukazna vrsta" kot zamenljive, prav tako kot tudi pojme "direktorij" (directory) in "mapa" (folder).

Standardni tokovi, ki jih bomo tukaj uporabljali — so standardni vhod (standard input, stdin), standardni izhod (standard output, stdout) in standardni izhod napak (standard error, stderr).

Če v primerih ukazov, ki jih bomo predstavili spodaj, naletite na nekaj takega kot my_whatever — to pomeni, da je ta del treba zamenjati z nečim vašim. Na primer — imenom datoteke.

Zdaj, preden se lotimo ukazov, ki so predmet tega materiala, poglejmo njihov seznam in kratke opise.

21 Bash-ukaz

▍Pridobivanje informacij

  • man: izpiše priročnik za uporabnike (pomoč) glede ukaza.
  • pwd: izpiše informacije o delovnem direktoriju.
  • ls: izpiše vsebino direktorija.
  • ps: omogoča ogled informacij o delujočih procesih.

▍Manipulacije s datotečnim sistemom

  • cd: sprememba delovnega direktorija.
  • touch: ustvarjanje datoteke.
  • mkdir: ustvarjanje direktorija.
  • cp: kopiranje datoteke.
  • mv: premikanje ali brisanje datoteke.
  • ln: ustvarjanje povezave.

▍Preusmeritev vhod-izhod in cevovodi

  • <: preusmeritev stdin.
  • >: preusmeritev stdout.
  • |: preusmeritev z uporabo cevovoda, ki izhod enega ukaza pošlje v vhod drugega ukaza.

▍Branje datotek

  • head: branje začetka datoteke.
  • tail: branje konca datoteke.
  • cat: branje datoteke in prikaz njene vsebine na zaslonu ali concatenacija datotek.

▍Brisanje datotek, ustavitev procesov

  • rm: brisanje datoteke.
  • kill: ustavitev procesa.

▍Iskanje

  • grep: iskanje informacij.
  • ag: napreden ukaz za iskanje.

▍Arhiviranje

  • tar: ustvarjanje arhivov in delo z njimi.

Pogovorimo se o teh ukazih podrobneje.

Podrobnosti o ukazih

Najprej se lotimo ukazov, katerih rezultati so prikazani v obliki stdout. Običajno se ti rezultati pojavijo v oknu terminala.

▍Pridobivanje informacij

man command_name: izpiše priročnik o ukazu, torej — referenčne informacije.

pwd: izpis poti do trenutnega delovnega imenika. Med delom s ukazno vrstico uporabniku pogosto pomaga, da ugotovi, kje točno se nahaja v sistemu.

ls: izpis vsebine imenika. Ta ukaz se uporablja tudi zelo pogosto.

ls -a: izpis skritih datotek. Tukaj je uporabljen preklicni znak -a ukazov ls. Uporaba preklicnih znakov pomaga prilagoditi obnašanje ukazov.

ls -l: izpis podrobnih informacij o datotekah.

Upoštevajte, da je mogoče preklicne znake kombinirati. Na primer — tako: ls -al.

ps: ogled trenutno delujočih procesov.

ps -e: izpis podatkov o vseh delujočih procesih in ne samo o tistih, ki so povezani s trenutno uporabniško lupino. Ta ukaz se pogosto uporablja prav v tej obliki.

▍Manipulacije s datotečnim sistemom

cd my_directory: sprememba delovnega imenika na my_directory. Če želite preiti eno raven višje v drevesu imenikov, uporabite kot my_directory relativno pot ../.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Ukaz cd

touch my_file: ustvarjanje datoteke my_file na določeni poti.

mkdir my_directory: ustvarjanje mape my_directory na določeni poti.

mv my_file target_directory: premikanje datoteke my_file v mapo target_directory. Pri navedbi ciljne mape morate uporabiti absolutno pot do nje (in ne konstrukcijo, kot je ../).

Ukaz mv, prav tako lahko uporabimo za preimenovanje datotek ali map. Na primer, to bi lahko izgledalo takole:

mv my_old_file_name.jpg my_new_file_name.jpg
cp moja_izvorna_datoteka ciljna_map
: ustvarjanje kopije datoteke my_source_file in njeno premikanje v mapo target_directory.

ln -s my_source_file my_target_file: ustvarjanje simbolične povezave my_target_file na datoteko. my_source_file. Če spremenite povezavo, se spremeni tudi izvorna datoteka.

Če je datoteka my_source_file izbrisana, bo my_target_file ostala. Preklicni znak -s ukazov ln omogoča ustvarjanje povezav tudi za mape.

Zdaj se pogovorimo o preusmeritvi vhodno-izhodnih podatkov in ceveh.

▍Preusmeritev vhod-izhod in cevovodi

my_command < my_file: zamenja datotečni descriptor standardnega vhod (stdin) z datoteko my_file. To je lahko koristno, če ukaz pričakuje vhod podatkov iz tipkovnice, ki so že shranjeni v datoteki.

my_command > my_file: preusmeri rezultate dela ukaza, kar običajno pride v stdout in se izpiše na zaslon, v datoteko my_file. Če datoteka my_file ne obstaja — se ustvari. Če datoteka obstaja — se prepiše.

Na primer, po izvedbi ukaza ls > my_folder_contents.txt bodo ustvarjena besedilna datoteka, ki vsebuje seznam tistega, kar se nahaja v trenutnem delovnem imeniku.

Če namesto simbola > uporabite konstrukcijo >>, to je le, pod pogojem, da obstaja datoteka, v katero se usmerja izhod ukaza, ta datoteka ne bo prepisana. Podatki bodo dodani na konec te datoteke.

Zdaj poglejmo obdelavo podatkov preko cevi.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Kar izpiše en ukaz, se poda v vhod drugega ukaza. To je podobno povezovanju ene cevi z drugo.

first_command | second_command: simbol cevi, |, se uporablja za pošiljanje rezultatov delovanja enega ukaza drugemu ukazu. Tisto, kar ukaz na levi strani opisane konstrukcije pošlje v stdout, gre v stdin ukaz, ki se nahaja desno od simbola cevi.

V Linuxu je mogoče obdelavo podatkov preko cevi organizirati z uporabo praktično katerega koli pravilno sestavljenega ukaza. Pogosto pravijo, da je vse v Linuxu — cev.

S pomočjo simbola cevi lahko povežete v verigo več ukazov. Izgleda tole:

first_command | second_command | third_command

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Cev iz več ukazov lahko primerjamo s cevovodom.

Opazite, da ko ukaz, ki je levo od simbola |, izpiše nekaj v stdout, to, kar je izpisal, takoj postane dostopno kot stdin drugi ukaz. To pomeni, da pri uporabi cevi obravnavamo hkratno izvajanje ukazov. Včasih to lahko privede do nepričakovanih rezultater. Podrobnosti o tem si lahko preberete ovde.

Zdaj se pogovorimo o branju podatkov iz datotek in njihovem izpisu na zaslon.

▍Branje datotek

head my_file: prebere vrstice z začetka datoteke in jih izpiše na zaslon. Brati lahko ne le vsebino datotek, temveč tudi to, kar ukazi izpišejo v stdin, s tem, da uporabite ta ukaz kot element cevi.

tail my_file: prebere vrstice z konca datoteke. Tega ukaza je prav tako mogoče uporabiti v cevi.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Head (glava) je spredaj, tail (rep) — zadaj.

Če delate s podatki, ki uporabljajo knjižnico pandas, potem bi vas morali ukazi head in tail poznati. Če ne, si oglejte zgornji prikaz in jih brez težav zapomnite.

Oglejmo si še druge načine branja datotek, pogovorimo se o ukazu cat.

Komanda cat , ki bodisi izpiše vsebino datoteke na zaslon bodisi povezuje več datotek. To je odvisno od tega, koliko datotek je bilo predanih temu ukazu ob klicu.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Ukaz cat

cat my_one_file.txt: ko je temu ukazu predana ena datoteka — jo izpiše. stdout.

Če pa ji posredujete dve datoteki ali več, se obnaša drugače.

cat my_file1.txt my_file2.txt: ko dobi več datotek, ta ukaz združi njihovo vsebino in izpiše rezultat v stdout.

Če želite shraniti rezultat združevanja datotek v novo datoteko, lahko uporabite operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Zdaj se posvetimo temu, kako brisati datoteke in ustaviti procese.

▍Brisanje datotek, ustavitev procesov

rm my_file: izbriše datoteko my_file.

rm -r my_folder: izbriše mapo my_folder in vse datoteke ter mape, ki jih vsebuje. Zastavica -r pove, da bo ukaz deloval v rekurzivnem načinu.

Da sistem ne bi zahteval potrditve pri vsakem brisanju datoteke ali mape, uporabite zastavico -f.

kill 012345: ustavi določen aktivni proces, kar mu omogoči, da se ustrezno zaključi.

kill -9 012345: prisili, da se določen zagnani proces takoj ustavi. Zastavica -s SIGKILL ima enak pomen kot zastavica -9.

▍Iskanje

Za iskanje podatkov lahko uporabite različne ukaze. Zlasti — grep, ag in ack. Naše spoznavanje teh ukazov začnemo z grep. To je zanesljiv ukaz, ki je preverjen skozi čas, a je počasnejši od drugih in ni tako enostaven za uporabo kot oni.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Ukaz grep

grep my_regex my_file: išče my_regex u my_file. Ob najdbi ujemanj vrne celotno vrstico za vsako od njih. Privzeto my_regex se obravnava kot regularni izraz.

grep -i my_regex my_file: iskanje poteka brez upoštevanja velikosti črk.

grep -v my_regex my_file: vrne vse vrstice, ki ne vsebujejo my_regex. Zastavica -v pomeni inverzijo, podobna je operatorju NOT, ki je prisoten v mnogih programskih jezikih.

grep -c my_regex my_file: vrača informacije o številu ujemanj s iskanim vzorcem, najdenim v datoteki.

grep -R my_regex my_folder: izvaja rekurzivno iskanje v vseh datotekah, ki se nahajajo v določeni mapi in v podmapah.

Zdaj se posvetimo ukazu ag. Ta se je pojavil kasneje grep, je hitrejši in lažje ga je uporabljati.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Ukaz ag

ag my_regex my_file: vrača informacije o številkah vrstic in same vrstice, v katerih so bila najdena ujemanja z my_regex.

ag -i my_regex my_file: iskanje poteka brez upoštevanja velikosti črk.

Komanda ag samodejno obdeluje datoteko .gitignore in iz izhoda izključi tisto, kar je najdeno v mapah ali datotekah, navedenih v tej datoteki. To je zelo priročno.

ag my_regex my_file -- skip-vcs-ignores: vsebina datotek sistemov za avtomatsko različično kontrolo (kot je .gitignore) pri iskanju ni upoštevana.

Poleg tega, da navedete skupini ag katere poti do datotek je treba izključiti iz iskanja, lahko ustvarite datoteko .agignore.

Na začetku tega razdelka smo omenili ukaz ack. Ukazi ack in ag so zelo podobni, lahko rečemo, da so zamenljivi v 99%. Vendar pa ukaz ag deluje hitreje, zato sem ga opisal prav.

Zdaj se pogovorimo o delu z arhivi.

▍Arhiviranje

tar my_source_directory: združi datoteke iz mape my_source_directory v eno tarball datoteko. Takšne datoteke so primerni za prenos velikih naborov datotek nekomu.

[v zaklade] Bash za začetnike: 21 uporabnih ukazov
Ukaz tar

Tarball datoteke, ki jih ustvari ta ukaz, so datoteke z razširitvijo , lahko replikira klaster povsod, kjer lahko deluje Kubernetes. (Tape ARchive). To, da se v imenu ukaza in v razširitvi datotek, ki jih ustvari, skriva beseda 'tape' (trak), kaže, kako dolgo ta ukaz že obstaja.

tar -cf my_file.tar my_source_directory: ustvari tarball datoteko z imenom my_file.tar s vsebino mape, my_source_directory. Zastavica -c kar pomeni 'create' (ustvarjanje), medtem ko zastavica -f pomeni 'file' (datoteka).

Za extrakcijo datotek, ki se nahajajo v , lahko replikira klaster povsod, kjer lahko deluje Kubernetes.-datoteki, se uporablja ukaz tar s zastavicami -x ('extract', ekstrakcija) in -f ('file', datoteka).

tar -xf my_file.tar: ekstraktira datoteke iz my_file.tar v trenutno delovno mapo.

Zdaj se pogovorimo o tem, kako stisniti in razpakirati , lahko replikira klaster povsod, kjer lahko deluje Kubernetes.-datoteke.

tar -cfz my_file.tar.gz my_source_directory: tukaj, z uporabo zastavice -z ('zip', algoritem stiskanja) je navedeno, da naj se za stiskanje datotek uporablja algoritem gzip (GNU zip). Stiskanje datotek omogoča varčevanje s prostorom na disku pri shranjevanju teh datotek. Če pa je namen datoteke, na primer, prenos drugim uporabnikom, to pripomore k hitrejši nalaganju teh datotek.

Datoteko .tar.gz lahko razpakirate tako, da dodate zastavico -z ukazu za ekstrakcijo vsebine , lahko replikira klaster povsod, kjer lahko deluje Kubernetes.-datotek, ki smo jih obravnavali zgoraj. To izgleda tako:

tar -xfz my_file.tar.gz
Treba je omeniti, da ukaz tar ima še številne uporabne zastavice.

Bash-pseudonimi

Bash-pseudonimi (imenujejo se tudi aliasi ali okrajšave) so namenjeni ustvarjanju krajših imen ukazov ali njihovih zaporedij, katerih uporaba namesto običajnih ukazov pospeši delo. Če imate, recimo, pseudonim bu, ki skriva ukaz python setup.py sdist bdist_wheel, je za klicanje tega ukaza dovolj, da uporabite ta pseudonim.

Za ustvarjanje takšnega vzdevka je dovolj, da dodate naslednji ukaz v datoteko ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Če v vašem sistemu ni datoteke ~/.bash_profile, jo lahko ustvarite sami z uporabo ukaza touch. Po ustvarjanju vzdevka znova zaženite terminal, nato boste lahko uporabljali ta vzdevek. V tem primeru vhod dveh znakov nadomesti vhod več kot tridesetih znakov ukaza, ki je namenjen buildovi Python paketom.

V ~/.bash_profile lahko dodajate vzdevke za vse pogosto uporabljene ukaze.

▍Zaključki

V tem članku smo obravnavali 21 priljubljenih Bash ukazov in govorili o ustvarjanju vzdevkov za ukaze. Če vas ta tema zanima — tukaj je cikel objav, posvečenih Bash-u. Tukaj lahko najdete pdf različico teh objav. Poleg tega, če želite obvladati Bash, se spomnite, da je tukaj, kot pri učenju katerega koli drugega programskega sistema, ključna praksa.

Spoštovani bralci! Katerih ukazov, ki so koristni za začetnike, bi dodali k tistim, ki so bili obravnavani v tem članku?

→ Prav tako preberite v našem blogu cikel objav o bash skriptih

[v zaklade] Bash za začetnike: 21 uporabnih ukazov

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster