[marcat] Bash pentru începători: 21 de comenzi utile

Materialul, a cărui traducere o publicăm astăzi, este destinat celor care doresc să stăpânească linia de comandă Linux. Capacitatea de a utiliza acest instrument eficient poate economisi mult timp. În special, vom vorbi aici despre shell-ul Bash și despre 21 de comenzi utile. Vom vorbi, de asemenea, despre cum să folosiți steaguri de comandă și aliasuri Bash pentru a accelera tastarea instrucțiunilor lungi.

[marcat] Bash pentru începători: 21 de comenzi utile

De asemenea, citiți în blogul nostru o serie de publicații despre scripturile bash

Termeni

Pe măsură ce învățați să lucrați cu linia de comandă Linux, veți întâlni multe concepte care sunt utile pentru a naviga. Unele dintre ele, cum ar fi „Linux” și „Unix”, sau „shell” și „terminal”, sunt uneori confuze. Să vorbim despre acești termeni și despre alți termeni importanți.

Unix este un sistem de operare popular care a fost dezvoltat de Bell Labs în anii 1970. Codul ei a fost închis.

Linux este cel mai popular sistem de operare asemănător Unix. Acum este folosit pe multe dispozitive, inclusiv pe computere.

Terminal (terminal) sau emulator de terminal este un program care oferă acces la sistemul de operare. Puteți avea mai multe ferestre de terminal deschise în același timp.

coajă (shell) este un program care vă permite să trimiteți comenzi scrise într-un limbaj special către sistemul de operare.

Bash reprezintă Bourne Again Shell. Este cel mai comun limbaj shell folosit pentru a interacționa cu sistemul de operare. De asemenea, shell-ul Bash este implicit pe macOS.

Linia de comandă (Command Line Interface, CLI) este o metodă de interacțiune între o persoană și un computer, prin care utilizatorul introduce comenzi de la tastatură, iar computerul, executând aceste comenzi, afișează mesaje sub formă de text pentru utilizator. Utilizarea principală a CLI este de a obține informații actualizate despre anumite entități, cum ar fi fișierele, și de a lucra cu fișiere. Interfața de linie de comandă ar trebui să fie distinsă de interfața grafică cu utilizatorul (GUI), care utilizează în principal mouse-ul. Interfața liniei de comandă este adesea denumită pur și simplu linia de comandă.

Scenariul (script) este un program mic care conține o secvență de comenzi shell. Scripturile sunt scrise în fișiere, pot fi folosite în mod repetat. Când scrieți scripturi, puteți utiliza variabile, condiționale, bucle, funcții și alte caracteristici.

Acum că am acoperit termenii importanți, vreau să subliniez că aici voi folosi termenii „Bash”, „shell” și „linie de comandă” interschimbabil, precum și termenii „director” și „folder”.

standard fluxuri, pe care o vom folosi aici este intrarea standard (intrare standard, stdin), ieșire standard (ieșire standard, stdout) și ieșire de eroare standard (eroare standard, stderr).

Dacă în exemplele de comenzi care vor fi date mai jos, veți găsi ceva de genul my_whatever - asta înseamnă că acest fragment trebuie înlocuit cu ceva de-al tău. De exemplu, numele unui fișier.

Acum, înainte de a continua cu analiza comenzilor cărora le este dedicat acest material, să aruncăm o privire la lista lor și la scurtele lor descrieri.

21 de comenzi Bash

▍Obținerea de informații

  • man: Afișează ghidul utilizatorului (ajutor) pentru comandă.
  • pwd: afișează informații despre directorul de lucru.
  • ls: afișează conținutul unui director.
  • ps: Vă permite să vizualizați informații despre procesele care rulează.

▍Manipularea sistemului de fișiere

  • cd: schimba directorul de lucru.
  • touch: creați un fișier.
  • mkdir: creați un director.
  • cp: Copiați un fișier.
  • mv: Mutați sau ștergeți un fișier.
  • ln: creați un link.

▍Redirecționare I/O și conducte

  • <: redirecționare stdin.
  • >: redirecționare stdout.
  • |: a transmis ieșirea unei comenzi la intrarea altei comenzi.

▍Citirea fișierelor

  • head: citiți începutul fișierului.
  • tail: citește sfârșitul fișierului.
  • cat: Citiți un fișier și imprimați conținutul acestuia pe ecran sau concatenați fișiere.

▍Ștergerea fișierelor, oprirea proceselor

  • rm: Ștergeți un fișier.
  • kill: opriți procesul.

▍Căutare

  • grep: caută informații.
  • ag: comandă avansată pentru căutare.

▍Arhivarea

  • tar: crearea de arhive și lucrul cu acestea.

Să vorbim mai detaliat despre aceste comenzi.

Detaliile echipei

Pentru început, să ne ocupăm de comenzile ale căror rezultate sunt emise sub formă stdout. De obicei, aceste rezultate apar într-o fereastră de terminal.

▍Obținerea de informații

man command_name: afișați ghidul de comandă, adică informații de ajutor.

pwd: afișează calea către directorul de lucru curent. În timpul lucrului cu linia de comandă, utilizatorul trebuie adesea să afle unde se află exact în sistem.

ls: afișează conținutul unui director. Această comandă este, de asemenea, folosită destul de des.

ls -a: arată fișierele ascunse. steag aplicat aici -a comenzi ls. Utilizarea steagurilor ajută la personalizarea comportamentului comenzilor.

ls -l: Afișează informații detaliate despre fișiere.

Rețineți că steaguri pot fi combinate. De exemplu, așa: ls -al.

ps: Vizualizați procesele care rulează.

ps -e: Afișează informații despre toate procesele care rulează, nu doar despre cele asociate cu shell-ul utilizatorului curent. Această comandă este adesea folosită în această formă.

▍Manipularea sistemului de fișiere

cd my_directory: schimbați directorul de lucru în my_directory. Pentru a urca cu un nivel în arborele de directoare, utilizați my_directory cale relativă ../.

[marcat] Bash pentru începători: 21 de comenzi utile
comanda cd

touch my_file: crearea fișierului my_file de-a lungul drumului dat.

mkdir my_directory: creați un folder my_directory de-a lungul drumului dat.

mv my_file target_directory: mutați fișierul my_file în dosar target_directory. Când specificați directorul țintă, trebuie să utilizați calea absolută către acesta (și nu o construcție ca ../).

echipă mvpoate fi folosit și pentru a redenumi fișiere sau foldere. De exemplu, ar putea arăta astfel:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: creați o copie a unui fișier my_source_file și puneți-l într-un folder target_directory.

ln -s my_source_file my_target_file: creați o legătură simbolică my_target_file pe fișier my_source_file. Dacă modificați linkul, se va schimba și fișierul original.

Dacă dosarul my_source_file atunci va fi ștearsă my_target_file va rămâne. Steag -s comenzi ln vă permite să creați legături pentru directoare.

Acum să vorbim despre redirecționarea I/O și conducte.

▍Redirecționare I/O și conducte

my_command < my_file: înlocuiește descriptorul standard al fișierului de intrare (stdin) pe fișier my_file. Acest lucru poate fi util dacă comanda așteaptă o intrare de la tastatură și aceste date sunt deja salvate într-un fișier.

my_command > my_file: redirecționează rezultatele comenzii, adică ceea ce ar intra în mod normal stdout și scoate pe ecran, într-un fișier my_file. Dacă dosarul my_file nu există - este creat. Dacă fișierul există, acesta este suprascris.

De exemplu, după executarea comenzii ls > my_folder_contents.txt va fi creat un fișier text care conține o listă cu ceea ce se află în directorul de lucru curent.

Dacă în loc de simbol > utilizați construcția >>, atunci, cu condiția ca fișierul către care este redirecționată ieșirea comenzii să existe, acest fișier nu va fi suprascris. Datele vor fi adăugate la sfârșitul acestui fișier.

Acum să aruncăm o privire asupra procesării conductei de date.

[marcat] Bash pentru începători: 21 de comenzi utile
Ieșirea unei comenzi este introdusă în intrarea altei comenzi. Este ca și cum ai conecta o țeavă la alta

first_command | second_command: simbolul transportorului, |, este folosit pentru a trimite rezultatul unei comenzi către o altă comandă. La ce trimite comanda din partea stângă a structurii descrise stdout, A cădea în stdin comanda din dreapta simbolului conductei.

Pe Linux, datele pot fi canalizate folosind aproape orice comandă bine formată. Se spune adesea că totul în Linux este o conductă.

Puteți înlănțui mai multe comenzi folosind simbolul conductei. Arata cam asa:

first_command | second_command | third_command

[marcat] Bash pentru începători: 21 de comenzi utile
O conductă de mai multe comenzi poate fi comparată cu o conductă

Rețineți că atunci când comanda din stânga simbolului |, scoate ceva la stdout, ceea ce scoate ea este disponibil imediat ca stdin echipa a doua. Adică, se dovedește că, folosind pipeline, avem de-a face cu execuția paralelă a comenzilor. Uneori, acest lucru poate duce la rezultate neașteptate. Detalii despre aceasta pot fi citite aici.

Acum să vorbim despre citirea datelor din fișiere și afișarea lor pe ecran.

▍Citirea fișierelor

head my_file: citește linii de la începutul unui fișier și le imprimă pe ecran. Puteți citi nu numai conținutul fișierelor, ci și ceea ce scot comenzile stdinfolosind această comandă ca parte a conductei.

tail my_file: citește linii de la sfârșitul fișierului. Această comandă poate fi folosită și într-o conductă.

[marcat] Bash pentru începători: 21 de comenzi utile
Capul (capul) este în față, iar coada (coada) este în spate

Dacă lucrați cu date folosind biblioteca Pandas, atunci comenzile head и tail ar trebui să vă fie familiar. Dacă nu este cazul, aruncați o privire la figura de mai sus și vă veți aminti cu ușurință de ele.

Luați în considerare alte modalități de a citi fișiere, să vorbim despre comandă cat.

Echipă cat fie tipărește conținutul unui fișier pe ecran, fie concatenează mai multe fișiere. Depinde de câte fișiere sunt transmise acestei comenzi atunci când este apelată.

[marcat] Bash pentru începători: 21 de comenzi utile
comanda pisicii

cat my_one_file.txt: când un singur fișier este transmis la această comandă, îl trimite la stdout.

Dacă îi dați două fișiere sau mai multe fișiere, atunci se comportă diferit.

cat my_file1.txt my_file2.txt: după ce a primit mai multe fișiere ca intrare, această comandă le concatenează conținutul și afișează ceea ce s-a întâmplat în stdout.

Dacă rezultatul concatenării fișierelor trebuie să fie salvat ca fișier nou, puteți utiliza operatorul >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Acum haideți să vorbim despre cum să ștergeți fișiere și să opriți procesele.

▍Ștergerea fișierelor, oprirea proceselor

rm my_file: sterge fisierul my_file.

rm -r my_folder: șterge un folder my_folder și toate fișierele și folderele pe care le conține. Steag -r indică faptul că comanda va rula în mod recursiv.

Pentru a împiedica sistemul să solicite confirmarea de fiecare dată când un fișier sau un folder este șters, utilizați marcajul -f.

kill 012345: Oprește procesul de rulare specificat, dându-i timp să se închidă grațios.

kill -9 012345: termină forțat procesul de rulare specificat. Vedeți steagul -s SIGKILL înseamnă la fel ca steagul -9.

▍Căutare

Puteți folosi diferite comenzi pentru a căuta date. În special - grep, ag и ack. Să începem cunoașterea acestor comenzi cu grep. Aceasta este o comandă de încredere, testată în timp, care, totuși, este mai lentă decât altele și nu este la fel de convenabilă de utilizat ca acestea.

[marcat] Bash pentru începători: 21 de comenzi utile
comanda grep

grep my_regex my_file: căutări my_regex в my_file. Dacă se găsește o potrivire, se returnează întregul șir, pentru fiecare potrivire. Mod implicit my_regex tratată ca o expresie regulată.

grep -i my_regex my_file: Căutarea se efectuează fără a ține seama de majuscule și minuscule.

grep -v my_regex my_file: returnează toate rândurile care nu conțin my_regex. Steag -v înseamnă inversare, seamănă cu operatorul NOT, găsit în multe limbaje de programare.

grep -c my_regex my_file: returnează informații despre numărul de potriviri găsite în fișier pentru modelul de căutare.

grep -R my_regex my_folder: efectuează o căutare recursivă în toate fișierele aflate în folderul specificat și în folderele imbricate în acesta.

Acum să vorbim despre echipă ag. Ea a venit mai târziu grep, este mai rapid, este mai convenabil să lucrezi cu el.

[marcat] Bash pentru începători: 21 de comenzi utile
comanda ag

ag my_regex my_file: returnează informații despre numerele de linii și liniile în sine, în care au fost găsite potriviri my_regex.

ag -i my_regex my_file: Căutarea se efectuează fără a ține seama de majuscule și minuscule.

Echipă ag procesează automat fișierul .gitignore și exclude din ieșire ceea ce se găsește în folderele sau fișierele enumerate în acel fișier. Este foarte confortabil.

ag my_regex my_file -- skip-vcs-ignores: conținutul fișierelor de control automat al versiunilor (cum ar fi .gitignore) nu este luată în considerare la căutare.

În plus, pentru a spune echipei ag pe ce căi de fișiere doriți să excludeți din căutare, puteți crea un fișier .agignore.

La începutul acestei secțiuni, am menționat comanda ack. Echipe ack и ag foarte asemanatoare, putem spune ca sunt 99% interschimbabile. Cu toate acestea, echipa ag funcționează mai repede, de aceea am descris-o.

Acum să vorbim despre lucrul cu arhivele.

▍Arhivarea

tar my_source_directory: concatenează fișierele dintr-un folder my_source_directory într-un singur fișier tarball. Astfel de fișiere sunt utile pentru a transfera cuiva seturi mari de fișiere.

[marcat] Bash pentru începători: 21 de comenzi utile
comanda tar

Fișierele tarball generate de această comandă sunt fișiere cu extensia .tar (Arhiva bandă). Faptul că cuvântul „tape” (bandă) este ascuns în numele comenzii și în extensia numelor fișierelor pe care le creează indică de cât timp există această comandă.

tar -cf my_file.tar my_source_directory: creează un fișier tarball numit my_file.tar cu conținutul folderului my_source_directory. Steag -c reprezintă „creare” (creare) și steagul -f ca „fișier” (fișier).

Pentru a extrage fișiere din .tar-file, utilizați comanda tar cu steaguri -x („extras”, extracție) și -f („dosar”, dosar).

tar -xf my_file.tar: extrage fișiere din my_file.tar în directorul de lucru curent.

Acum să vorbim despre cum să comprimați și să decomprimați .tar-fisare.

tar -cfz my_file.tar.gz my_source_directory: aici folosind steagul -z ("zip", algoritm de compresie) indică faptul că algoritmul ar trebui utilizat pentru a comprima fișierele gzip (GNUzip). Comprimarea fișierelor economisește spațiu pe disc atunci când stochează astfel de fișiere. Dacă fișierele sunt planificate, de exemplu, să fie transferate către alți utilizatori, acest lucru contribuie la descărcarea mai rapidă a acestor fișiere.

Dezarhivați fișierul .tar.gz puteți adăuga un steag -z la comanda extragere conținut .tar-fișiere, despre care am discutat mai sus. Arata cam asa:

tar -xfz my_file.tar.gz
Trebuie remarcat faptul că echipa tar Există mai multe steaguri utile.

Aliasuri Bash

Aliasurile Bash (numite și aliasuri sau abrevieri) sunt concepute pentru a crea nume abreviate ale comenzilor sau secvențele acestora, a căror utilizare în loc de comenzi obișnuite accelerează munca. Dacă aveți un alias bu, care ascunde comanda python setup.py sdist bdist_wheel, apoi pentru a apela această comandă, este suficient să folosiți acest alias.

Pentru a crea un astfel de alias, trebuie doar să adăugați următoarea comandă în fișier ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Dacă sistemul dumneavoastră nu are fișierul ~/.bash_profile, apoi îl puteți crea singur folosind comanda touch. După crearea aliasului, reporniți terminalul, după care puteți utiliza acest alias. În acest caz, introducerea a două caractere înlocuiește introducerea a mai mult de trei duzini de caractere ale comenzii, care este destinată adunări Pachete Python.

В ~/.bash_profile puteți adăuga alias-uri pentru orice comenzi utilizate frecvent.

▍Rezultate

În această postare, am acoperit 21 de comenzi Bash populare și am vorbit despre crearea alias-urilor de comandă. Dacă ești interesat de acest subiect - aici o serie de publicații dedicate lui Bash. Aici Puteți găsi o versiune pdf a acestor publicații. De asemenea, dacă doriți să învățați Bash, amintiți-vă că, la fel ca în orice alt sistem de programare, practica este esențială.

Dragi cititori! Ce comenzi care sunt utile pentru începători ați adăuga la cele despre care au fost discutate în acest articol?

De asemenea, citiți în blogul nostru o serie de publicații despre scripturile bash

[marcat] Bash pentru începători: 21 de comenzi utile

Sursa: www.habr.com

Adauga un comentariu