[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov

Gradivo, katerega prevod objavljamo danes, je namenjeno tistim, ki želijo obvladati ukazno vrstico Linux. Zmožnost učinkovite uporabe tega orodja lahko prihrani veliko časa. Predvsem bomo govorili o lupini Bash in 21 uporabnih ukazih. Govorili bomo tudi o tem, kako uporabiti ukazne zastavice in vzdevke Bash za pospešitev tipkanja dolgih navodil.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov

V našem blogu preberite tudi serijo publikacij o bash skriptih

pogoji

Ko se boste učili delati z ukazno vrstico Linuxa, boste naleteli na številne koncepte, ki vam bodo v pomoč pri navigaciji. Nekateri od njih, kot sta "Linux" in "Unix" ali "shell" in "terminal", so včasih zamenjani. Pogovorimo se o teh in drugih pomembnih izrazih.

Unix je priljubljen operacijski sistem, ki ga je razvilo podjetje Bell Labs v sedemdesetih letih prejšnjega stoletja. Njena koda je bila zaprta.

Linux je najbolj priljubljen Unixu podoben operacijski sistem. Zdaj se uporablja v številnih napravah, vključno z računalniki.

Terminal (terminal) ali terminalski emulator je program, ki omogoča dostop do operacijskega sistema. Hkrati imate lahko odprtih več terminalskih oken.

Školjka (shell) je program, ki omogoča pošiljanje ukazov, napisanih v posebnem jeziku, v operacijski sistem.

Bash pomeni Bourne Again Shell. Je najpogostejši lupinski jezik, ki se uporablja za interakcijo z operacijskim sistemom. Tudi lupina Bash je privzeta v sistemu macOS.

Vmesnik ukazne vrstice (Vmesnik ukazne vrstice, CLI) je metoda interakcije med osebo in računalnikom, pri kateri uporabnik vnaša ukaze s tipkovnice, računalnik pa, ki izvaja te ukaze, uporabniku prikaže sporočila v besedilni obliki. CLI se uporablja predvsem za pridobivanje posodobljenih informacij o določenih entitetah, na primer o datotekah, in za delo z datotekami. Vmesnik ukazne vrstice je treba razlikovati od grafičnega uporabniškega vmesnika (GUI), ki uporablja predvsem miško. Vmesnik ukazne vrstice se pogosto imenuje preprosto ukazna vrstica.

Skripta (script) je majhen program, ki vsebuje zaporedje lupinskih ukazov. Skripte so zapisane v datoteke in jih je mogoče večkrat uporabiti. Pri pisanju skriptov lahko uporabljate spremenljivke, pogojnike, zanke, funkcije in druge funkcije.

Zdaj, ko smo obravnavali pomembne izraze, želim poudariti, da bom tukaj izmenično uporabljal izraze "Bash", "lupina" in "ukazna vrstica", pa tudi izraza "imenik" in "mapa".

Standard potokov, ki ga bomo tukaj uporabili, je standardni vnos (standardni vnos, stdin), standardni izhod (standardni izhod, stdout) in izhod standardne napake (standardna napaka, stderr).

Če v primeru ukazov, ki bodo podani spodaj, boste našli nekaj podobnega my_whatever - to pomeni, da je treba ta fragment nadomestiti z nečim vašim. Na primer ime datoteke.

Zdaj, preden nadaljujemo z analizo ukazov, ki jim je posvečeno to gradivo, si oglejmo njihov seznam in njihove kratke opise.

21 Bash ukazi

▍Pridobivanje informacij

  • man: Prikaže uporabniški priročnik (pomoč) za ukaz.
  • pwd: prikaže informacije o delovnem imeniku.
  • ls: prikaže vsebino imenika.
  • ps: omogoča ogled informacij o tekočih procesih.

▍Manipulacija datotečnega sistema

  • cd: spremenite delovni imenik.
  • touch: ustvarite datoteko.
  • mkdir: ustvarite imenik.
  • cp: kopirajte datoteko.
  • mv: premaknite ali izbrišite datoteko.
  • ln: ustvarite povezavo.

▍V/I preusmeritev in cevovodi

  • <: preusmeritev stdin.
  • >: preusmeritev stdout.
  • |: prevedel izhod enega ukaza v vhod drugega ukaza.

▍Branje datotek

  • head: preberite začetek datoteke.
  • tail: preberi konec datoteke.
  • cat: preberite datoteko in natisnite njeno vsebino na zaslon ali združite datoteke.

▍Brisanje datotek, zaustavitev procesov

  • rm: izbrišite datoteko.
  • kill: ustavite postopek.

▍Išči

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

▍Arhiviranje

  • tar: ustvarjanje arhivov in delo z njimi.

Pogovorimo se o teh ukazih podrobneje.

Podrobnosti ekipe

Za začetek se ukvarjajmo z ukazi, katerih rezultati so izdani v obrazcu stdout. Običajno se ti rezultati prikažejo v terminalskem oknu.

▍Pridobivanje informacij

man command_name: prikaže vodnik za ukaze, tj. informacije o pomoči.

pwd: prikaže pot do trenutnega delovnega imenika. Pri delu z ukazno vrstico mora uporabnik pogosto natančno ugotoviti, kje v sistemu se nahaja.

ls: prikaže vsebino imenika. Tudi ta ukaz se uporablja precej pogosto.

ls -a: prikaži skrite datoteke. tukaj uporabljena zastava -a ukazi ls. Uporaba zastavic pomaga prilagoditi vedenje ukazov.

ls -l: prikaz podrobnih informacij o datotekah.

Upoštevajte, da je zastavice mogoče kombinirati. Na primer - takole: ls -al.

ps: Oglejte si tekoče procese.

ps -e: Prikaži informacije o vseh tekočih procesih, ne le o tistih, ki so povezani s trenutno uporabniško lupino. Ta ukaz se pogosto uporablja v tej obliki.

▍Manipulacija datotečnega sistema

cd my_directory: spremeni delovni imenik v my_directory. Če se želite premakniti eno raven navzgor v drevesu imenikov, uporabite my_directory relativna pot ../.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
ukaz cd

touch my_file: ustvarjanje datoteke my_file po dani poti.

mkdir my_directory: ustvarite mapo my_directory po dani poti.

mv my_file target_directory: premakni datoteko my_file v mapo target_directory. Ko podajate ciljni imenik, morate uporabiti absolutno pot do njega (in ne konstrukcije, kot je ../).

ekipa mvlahko uporabite tudi za preimenovanje datotek ali map. Na primer, lahko izgleda takole:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: ustvarite kopijo datoteke my_source_file in ga dajte v mapo target_directory.

ln -s my_source_file my_target_file: ustvarite simbolično povezavo my_target_file na datoteko my_source_file. Če spremenite povezavo, se bo spremenila tudi izvirna datoteka.

Če datoteka my_source_file bo potem izbrisano my_target_file bo ostal. Zastava -s ukazi ln omogoča ustvarjanje povezav za imenike.

Zdaj pa se pogovorimo o V/I preusmeritvi in ​​cevovodih.

▍V/I preusmeritev in cevovodi

my_command < my_file: nadomesti standardni deskriptor vhodne datoteke (stdin) na datoteko my_file. To je lahko koristno, če ukaz čaka na vnos s tipkovnice in so ti podatki že shranjeni v datoteki.

my_command > my_file: preusmeri rezultate ukaza, tj. kaj bi običajno šlo v stdout in izhod na zaslon, v datoteko my_file. Če datoteka my_file ne obstaja – je ustvarjeno. Če datoteka obstaja, je prepisana.

Na primer po izvedbi ukaza ls > my_folder_contents.txt ustvarjena bo besedilna datoteka s seznamom tega, kar je v trenutnem delovnem imeniku.

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

Zdaj pa si poglejmo obdelavo podatkovnega cevovoda.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
Izhod enega ukaza se vnese v vhod drugega ukaza. To je kot povezovanje ene cevi z drugo

first_command | second_command: simbol tekočega traku, |, se uporablja za pošiljanje izhoda enega ukaza drugemu ukazu. Kaj pošilja ukaz na levi strani opisane strukture stdout, Padec v stdin ukaz desno od simbola cevovoda.

V sistemu Linux je mogoče podatke posredovati po cevovodu s skoraj katerim koli dobro oblikovanim ukazom. Pogosto se reče, da je vse v Linuxu cevovod.

S simbolom cevovoda lahko povežete več ukazov. Videti je takole:

first_command | second_command | third_command

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
Cevovod več ukazov lahko primerjamo s cevovodom

Upoštevajte, da ko ukaz levo od simbola |, izpiše nekaj v stdout, kar izdaja, je takoj na voljo kot stdin druga ekipa. Se pravi, izkaže se, da imamo z uporabo cevovoda opravka z vzporednim izvajanjem ukazov. Včasih lahko to privede do nepričakovanih rezultatov. Podrobnosti o tem lahko preberete tukaj.

Zdaj pa se pogovorimo o branju podatkov iz datotek in njihovem prikazu na zaslonu.

▍Branje datotek

head my_file: prebere vrstice od začetka datoteke in jih natisne na zaslon. Preberete lahko ne samo vsebino datotek, ampak tudi, kaj izpišejo ukazi stdinz uporabo tega ukaza kot dela cevovoda.

tail my_file: bere vrstice s konca datoteke. Ta ukaz je mogoče uporabiti tudi v cevovodu.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
Glava (glava) je spredaj, rep (rep) pa zadaj

Če delate s podatki s knjižnico pandas, potem ukazi head и tail bi vam moralo biti znano. Če temu ni tako, si oglejte zgornjo sliko in zlahka si jih boste zapomnili.

Razmislite o drugih načinih branja datotek, pogovorimo se o ukazu cat.

Ekipa cat natisne vsebino datoteke na zaslon ali združi več datotek. Odvisno je od tega, koliko datotek je posredovanih temu ukazu ob klicu.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
mačji ukaz

cat my_one_file.txt: ko je ena datoteka posredovana temu ukazu, jo izpiše v stdout.

Če mu daste dve datoteki ali več datotek, se obnaša drugače.

cat my_file1.txt my_file2.txt: ko kot vhod prejme več datotek, ta ukaz združi njihovo vsebino in prikaže, kaj se je zgodilo v stdout.

Če je treba rezultat združevanja datotek shraniti kot novo datoteko, lahko uporabite operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Zdaj pa se pogovorimo o tem, kako izbrisati datoteke in ustaviti procese.

▍Brisanje datotek, zaustavitev procesov

rm my_file: izbriši datoteko my_file.

rm -r my_folder: izbriše mapo my_folder ter vse datoteke in mape, ki jih vsebuje. Zastava -r označuje, da se bo ukaz izvajal v rekurzivnem načinu.

Če želite preprečiti, da bi sistem zahteval potrditev vsakič, ko je datoteka ali mapa izbrisana, uporabite zastavico -f.

kill 012345: Ustavi navedeni tekoči proces in mu da čas, da se elegantno zaustavi.

kill -9 012345: Prisilno prekine podani tekoči proces. Ogled zastave -s SIGKILL pomeni isto kot zastava -9.

▍Išči

Za iskanje podatkov lahko uporabite različne ukaze. Še posebej - grep, ag и ack. Začnimo spoznavanje teh ukazov z grep. To je časovno preizkušen, zanesljiv ukaz, ki pa je počasnejši od drugih in ni tako priročen za uporabo kot oni.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
ukaz grep

grep my_regex my_file: iskanja my_regex в my_file. Če se najde ujemanje, se vrne celoten niz za vsako ujemanje. Privzeto my_regex obravnavati kot regularni izraz.

grep -i my_regex my_file: Iskanje se izvaja na način, ki ne razlikuje med velikimi in malimi črkami.

grep -v my_regex my_file: vrne vse vrstice, ki ne vsebujejo my_regex. Zastava -v pomeni inverzijo, spominja na operator NOT, ki ga najdemo v številnih programskih jezikih.

grep -c my_regex my_file: vrne informacije o številu ujemanj, najdenih v datoteki za iskalni vzorec.

grep -R my_regex my_folder: izvaja rekurzivno iskanje v vseh datotekah, ki se nahajajo v navedeni mapi in v mapah, ki so v njej ugnezdene.

Zdaj pa se pogovoriva o ekipi ag. Prišla je kasneje grep, je hitrejši, z njim je bolj priročno delati.

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
ag ukaz

ag my_regex my_file: vrne informacije o številkah vrstic in samih vrsticah, v katerih so bila najdena ujemanja my_regex.

ag -i my_regex my_file: Iskanje se izvaja na način, ki ne razlikuje med velikimi in malimi črkami.

Ekipa ag samodejno obdela datoteko .gitignore in iz izhoda izključi, kar je najdeno v mapah ali datotekah, navedenih v tej datoteki. Je zelo udobno.

ag my_regex my_file -- skip-vcs-ignores: vsebina datotek za samodejni nadzor različic (npr .gitignore) se pri iskanju ne upošteva.

Poleg tega, da bi povedali ekipi ag na katerih poteh datotek želite izključiti iz iskanja, lahko ustvarite datoteko .agignore.

Na začetku tega razdelka smo omenili ukaz ack. Ekipe ack и ag zelo podobni, lahko rečemo, da so 99% zamenljivi. Vendar ekipa ag deluje hitreje, zato sem ga opisal.

Zdaj pa se pogovorimo o delu z arhivi.

▍Arhiviranje

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

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov
ukaz tar

Datoteke tarball, ki jih ustvari ta ukaz, so datoteke s pripono .tar (ARhiv kasete). Dejstvo, da se beseda "trak" (trak) skriva v imenu ukaza in v končnicah imen datotek, ki jih ustvari, pove, kako dolgo ta ukaz obstaja.

tar -cf my_file.tar my_source_directory: ustvari datoteko tarball z imenom my_file.tar z vsebino mape my_source_directory. Zastava -c pomeni "create" (ustvarjanje) in zastavo -f kot "datoteka" (datoteka).

Za ekstrahiranje datotek iz .tar-file, uporabite ukaz tar z zastavami -x ("izvleček", ekstrakcija) in -f ("datoteka", datoteka).

tar -xf my_file.tar: ekstrahira datoteke iz my_file.tar v trenutni delovni imenik.

Zdaj pa se pogovorimo o tem, kako stisniti in raztegniti .tar-datoteke.

tar -cfz my_file.tar.gz my_source_directory: tukaj z uporabo zastave -z ("zip", algoritem stiskanja) označuje, da je treba algoritem uporabiti za stiskanje datotek gzip (GNUzip). Stiskanje datotek prihrani prostor na disku pri shranjevanju takih datotek. Če so datoteke načrtovane, na primer, za prenos drugim uporabnikom, to prispeva k hitrejšemu prenosu takih datotek.

Razpakirajte datoteko .tar.gz lahko dodate zastavico -z na ukaz ekstrahiranja vsebine .tar-datoteke, o katerih smo razpravljali zgoraj. Videti je takole:

tar -xfz my_file.tar.gz
Treba je opozoriti, da ekipa tar Uporabnih zastavic je veliko več.

Bash vzdevki

Bash vzdevki (imenovani tudi aliasi ali okrajšave) so namenjeni ustvarjanju skrajšanih imen ukazov ali njihovih zaporedij, katerih uporaba namesto običajnih ukazov pospeši delo. Če imate vzdevek bu, ki skrije ukaz python setup.py sdist bdist_wheel, potem je za klic tega ukaza dovolj, da uporabite ta vzdevek.

Če želite ustvariti tak vzdevek, samo dodajte naslednji ukaz v datoteko ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Če vaš sistem nima datoteke ~/.bash_profile, potem ga lahko ustvarite sami z ukazom touch. Ko ustvarite vzdevek, znova zaženite terminal, nato pa lahko uporabite ta vzdevek. V tem primeru vnos dveh znakov nadomesti vnos več kot treh ducatov znakov ukaza, ki je namenjen sklopov Paketi Python.

В ~/.bash_profile lahko dodate vzdevke za vse pogosto uporabljene ukaze.

▍Rezultati

V tej objavi smo obravnavali 21 priljubljenih ukazov Bash in govorili o ustvarjanju vzdevkov ukazov. Če vas ta tema zanima - glej serija publikacij, posvečenih Bashu. Tukaj Najdete lahko pdf različico teh publikacij. Poleg tega, če se želite naučiti Bash, ne pozabite, da je praksa ključnega pomena, kot pri vsakem drugem programskem sistemu.

Drage bralke in bralci! Katere ukaze, ki so uporabni za začetnike, bi dodali tistim, ki so bili obravnavani v tem članku?

V našem blogu preberite tudi serijo publikacij o bash skriptih

[dodano med zaznamke] Bash za začetnike: 21 uporabnih ukazov

Vir: www.habr.com

Dodaj komentar