[në shënime] Bash për fillestarët: 21 komandat e dobishme

Materiali që po publikojmë sot është për ata që dëshirojnë të mësojnë komandën e linjës në Linux. Aftësia për të përdorur këtë mjet në mënyrë efektive kursen një kohë të madhe. Në veçanti, do të flasim për shell-in Bash dhe 21 komanda të dobishme. Gjithashtu do të diskutojmë se si të përdorim flamujt e komandave dhe aliaset e Bash-it, që lejojnë të shpejtohet shtypja e instruksioneve të gjata.

[në shënime] Bash për fillestarët: 21 komandat e dobishme

→ Lexoni gjithashtu nĂ« blogun tonĂ« ciklin e publikimeve mbi bash-scriptet

Terma

Gjatë mësimit të punës në komandën e linjës Linux, mund të takoni shumë koncepte të cilat do të jetë e dobishme të kuptoni. Disa prej tyre, si "Linux" dhe "Unix", ose "shell" dhe "terminal", ndonjëherë ngatërrohen. Le të flasim për këto dhe për terma të tjerë të rëndësishëm.

Unix — Ă«shtĂ« njĂ« sistem operativ popullor, i zhvilluar nga Bell Labs nĂ« vitet 1970. Kodi i tij ishte i mbyllur.

Linux — Ă«shtĂ« sistemi mĂ« i njohur operativ Unix-podobshĂ«m. Sot pĂ«rdoret nĂ« shumĂ« pajisje, pĂ«rfshirĂ« kompiuterĂ«t.

Terminali (terminal), ose emulatori i terminalit — Ă«shtĂ« njĂ« program qĂ« ofron qasje nĂ« sistemin operativ. Mund tĂ« hapen disa dritare terminali njĂ«kohĂ«sisht.

Shell (shell) — Ă«shtĂ« njĂ« program qĂ« lejon dĂ«rgimin e komandave nĂ« sistemin operativ, tĂ« shkruara nĂ« njĂ« gjuhĂ« tĂ« veçantĂ«.

Bash ose Bourne Again SHell. Ky është gjuha më e zakonshme e shell-it, e përdorur për të komunikuar me sistemin operativ. Për më tepër, shell-i Bash përdoret si standard në macOS.

Interfejsi i komandĂ«s sĂ« linjĂ«s (Command Line Interface, CLI) — Ă«shtĂ« njĂ« mĂ«nyrĂ« e interaksionit mes njeriut dhe kompjuterit, ku pĂ«rdoruesi fut komandat nga tastiera dhe kompjuteri, duke kryer kĂ«to komanda, jep mesazhe pĂ«r pĂ«rdoruesin nĂ« formĂ« tekstuale. Kryesisht CLI pĂ«rdoret pĂ«r tĂ« marrĂ« informacione tĂ« reja pĂ«r disa entitete, pĂ«r shembull, pĂ«r skedarĂ«t, dhe pĂ«r tĂ« punuar me skedarĂ«t. Interfejsi i komandĂ«s sĂ« linjĂ«s duhet tĂ« ndahen nga interfejsi grafik i pĂ«rdoruesit (Graphical User Interface, GUI), ku pĂ«rdorimi kryesor Ă«shtĂ« me maus. Interfejsi i komandĂ«s sĂ« linjĂ«s shpesh quhet thjesht komandĂ«n e linjĂ«s.

Skripti (script) — Ă«shtĂ« njĂ« program i vogĂ«l qĂ« pĂ«rmban njĂ« rend tĂ« komandave tĂ« shell-it. Skriptet shĂ«nohen nĂ« skedarĂ«, dhe mund tĂ« pĂ«rdoren shumĂ« herĂ«. Kur shkruani skripte mund tĂ« pĂ«rdorni variabla, struktura kushtore, cikle, funksione dhe mundĂ«si tĂ« tjera.

Tani që kemi shqyrtuar terma të rëndësishëm, do të theksoj që këtu do të përdor terma si "Bash", "shell" dhe "komanda e linjës" si të ndërlidhura, ashtu si dhe konceptet "drejtoria" (directory) dhe "folderi" (folder).

Struktura rrjedhash, tĂ« cilĂ«t do tĂ« pĂ«rdorim kĂ«tu — janĂ« hyrja standarde (standard input, stdin), dalja standarde (standard output, stdout) dhe dalja e gabimeve standarde (standard error, stderr).

NĂ«se nĂ« shembujt e komandave qĂ« do tĂ« jepen mĂ« poshtĂ«, shihni diçka si my_whatever — kjo do tĂ« thotĂ« se ky fragment duhet tĂ« zĂ«vendĂ«sohet me diçka tuaj. PĂ«r shembull — emri i skedarit.

Tani, para se të fillojmë me analizimin e komandave, që i përkasin këtij materiali, le të hedhim një sy në listën e tyre dhe përshkrimet e tyre të shkurtra.

21 komanda Bash

▍Marrja e informacionit

  • man: jep udhĂ«zimin e pĂ«rdoruesit (ndihmĂ«n) pĂ«r komandĂ«n.
  • pwd: shfaq informacionin rreth direktorive tĂ« punĂ«s.
  • ls: shfaq pĂ«rmbajtjen e direktorive.
  • ps: lejon tĂ« shihni informacionin mbi proceset qĂ« janĂ« duke u ekzekutuar.

▍Manipulimi me sistemin e skedarĂ«ve

  • cd: ndryshimi i direktorive sĂ« punĂ«s.
  • touch: krijimi i njĂ« skedari.
  • mkdir: krijimi i njĂ« direktorjeje.
  • cp: kopjimi i njĂ« skedari.
  • mv: lĂ«vizja ose fshirja e njĂ« skedari.
  • ln: krijimi i njĂ« lidhjeje.

▍Ridrejtimi i hyrjes-daljes dhe tubat

  • <: ridrejtimi stdin.
  • >: ridrejtimi stdout.
  • |: ridrejtimi me anĂ« tĂ« njĂ« tubi tĂ« daljes sĂ« njĂ« komande nĂ« hyrjen e njĂ« komande tjetĂ«r.

▍Leximi i skedarĂ«ve

  • head: leximi i fillimit tĂ« skedarit.
  • tail: leximi i fundi tĂ« skedarit.
  • cat: leximi i skedarit dhe shfaqja e pĂ«rmbajtjes sĂ« tij nĂ« ekran ose bashkimin e skedarĂ«ve.

▍Fshirja e skedarĂ«ve, ndalimi i proceseve

  • rm: fshirja e njĂ« skedari.
  • kill: ndalimi i njĂ« procesi.

▍KĂ«rkimi

  • grep: kĂ«rkimi i informacionit.
  • ag: komandĂ« e avancuar pĂ«r kĂ«rkimin.

▍Arkivimi

  • tar: krijimi i arkivave dhe puna me to.

Të flasim për këto komanda në detaje.

Detajet mbi komandat

Për të filluar, le të shqyrtojmë komandat, rezultatet e punës së të cilave shfaqen në formën stdout. Zakonisht këto rezultate shfaqen në dritaren e terminalit.

▍Marrja e informacionit

man command_name: shfaq udhĂ«zimin pĂ«r komandĂ«n, pra — informacionin ndihmĂ«s.

pwd: shfaq në ekran rrugën për direktorin aktual të punës. Gjatë punës me komandën e linjës, përdoruesi shpesh ka nevojë të mësojë se ku ndodhet saktësisht në sistem.

ls: shfaqja e përmbajtjes së drejtorisë. Ky komandë përdoret gjithashtu shpesh.

ls -a: shfaqja e skedarëve të fshehur. Këtu është përdorur flakë. -a komandat ls. Përdorimi i flakëve ndihmon në rregullimin e sjelljes së komandoëve.

ls -l: shfaqja e informacionit të detajuar për skedarët.

Kujdesuni qĂ« flakĂ«t mund tĂ« kombinohen. PĂ«r shembull — kĂ«shtu: ls -al.

ps: shikimi i proceseve në ekzekutim.

ps -e: shfaqja e informacionit për të gjitha proceset që janë duke u ekzekutuar, dhe jo vetëm ato që janë të lidhura me shell-in aktual të përdoruesit. Ky komandë zakonisht përdoret në këtë formë.

▍Manipulimi me sistemin e skedarĂ«ve

cd my_directory: ndryshimi i drejtorisë punuese në my_directory. Për të kaluar një nivel më lart në pemën e drejtorive përdorni si my_directory rrugë relative. ../.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Komanda cd

touch my_file: krijimi i skedarit my_file në rrugën e caktuar.

mkdir my_directory: krijimi i një dosjeje. my_directory në rrugën e caktuar.

mv my_file target_directory: lëvizja e skedarit my_file në dosjen target_directory.Kur jepni drejtorinë e synuar duhet të përdorni rrugën absolute për të (e jo një ndërtim si) ../).

Komanda mv, gjithashtu, mund të përdoret për të rinomuar skedarë ose dosje. Për shembull, mund të duket kështu:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: krijimi i një kopjeje të skedarit my_source_file dhe vendosja e tij në dosjen target_directory..

ln -s my_source_file my_target_file: krijimi i një lidhje simbolike my_target_file në skedarin my_source_file. Nëse ndryshoni lidhjen, ndryshon edhe skedari origjinal.

Nëse skedari my_source_file zhduket, atëherë my_target_file do të mbetet. Flaka -s komandat ln lejon krijimin e lidhjeve edhe për drejtoritë.

Tani, le të flasim për drejtkëputimin e hyrjes dhe daljes dhe për tubat.

▍Ridrejtimi i hyrjes-daljes dhe tubat

my_command < my_file: zëvendëson descriptorin e skedarit të hyrjes standarde (stdin) me skedarin my_file. Kjo mund të jetë e dobishme në rast se komanda pret që të hyjnë të dhëna nga tastiera, ndërsa këto të dhëna janë ruajtur më parë në skedar.

my_command > my_file: drejton rezultatet e punĂ«s sĂ« komandĂ«s, pra atĂ« qĂ« zakonisht shkon nĂ« stdout dhe shfaqet nĂ« ekran, nĂ« skedar my_file. NĂ«se skedari my_file nuk ekziston — krijohet. NĂ«se skedari ekziston — pĂ«rshkruhet pĂ«rsĂ«ri.

Për shembull, pas ekzekutimit të komandës ls > my_folder_contents.txt do të krijohet një skedari tekstual, që përmban një listë të asaj që ndodhet në drejtorinë aktuale punuese.

Nëse në vend të simbolit > përdorni ndërtimin >>, atëherë, nëse ekziston skedari në të cilin drejtohet dalja e komandës, ky skedar nuk do të përshkruhet sërish. Të dhënat do të shtohen në fund të atij skedari.

Tani le të shikojmë përpunimin e të dhënave nëpërmjet tubave.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Ajo që nxjerr një komandë, i jepet si hyrje një komandë tjetër. Kjo është si të lidhni një tub me një tjetër.

first_command | second_command: simboli i tubit, |, përdoret për të dërguar rezultatet e punës së një komande në një komandë tjetër. Ajo që komanda që është në anën e majtë të strukturës së përshkruar dërgon në stdout, shkon në stdin komandën, që ndodhet në anën e djathtë të simbolit të tubit.

Në Linux, përpunimi i të dhënave nëpërmjet tubave mund të organizohet duke përdorur pothuajse çdo komandë të formuluar saktë. Shpesh thuhet se gjithçka në Linux është një tub.

Me simbolin e tubit mund të bashkohen në një zinxhir disa komanda. Dukesh kështu:

first_command | second_command | third_command

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Një tub me disa komanda mund të krahasohet me një tubac.

Kujdesuni që kur komanda, që ndodhet majtas nga simboli |, nxjerr diçka në stdout, ajo që ajo nxjerr menjëherë bëhet e arritshme si stdin për komandën e dytë. Pra, përdorimi i tubit, ne merremi me ekzekutimin paralel të komandave. Ndonjëherë kjo mund të çojë në rezultate të papritura. Detaje mbi këtë mund të lexoni. këtu.

Tani le të flasim për leximin e të dhënave nga skedarët dhe për t'i shfaqur ato në ekran.

▍Leximi i skedarĂ«ve

head my_file: lexon rreshtat nga fillimi i skedarit dhe i shfaq në ekran. Mund të lexoni jo vetëm përmbajtjen e skedarëve, por edhe atë që komandat nxjerrin në stdin, duke përdorur këtë komandë si një element të tubit.

tail my_file: lexon rreshtat nga fundi i skedarit. Kështu komandë mund të përdoret gjithashtu në tub.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Head (koka) ndodhet përpara, ndërsa tail (bishti) ndodhet pas.

Nëse po punoni me të dhëna duke përdorur bibliotekën pandas, atëherë komandat head dhe tail duhet të jenë të njohura për ju. Nëse nuk janë, hidhni një sy në figurën e mësipërme, dhe do t'i mbani mend me lehtësi ato.

Le të shqyrtojmë mënyra të tjera për të lexuar skedarët, flasim për komandën cat.

Ekipa cat ose nxjerr përmbajtjen e skedarit në ekran, ose bashkon disa skedarë. Kjo varet nga sa skedarë i janë dërguar kësaj komandë gjatë thirrjes.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Komanda cat

cat my_one_file.txt: kur kĂ«saj komande i jepet njĂ« skedar — ajo e shfaq atĂ« nĂ« stdout.

Nëse e jepni dy skedarë ose më shumë, atëherë ajo sillet ndryshe.

cat my_file1.txt my_file2.txt: pasi merr në input disa skedarë, kjo komandë bashkon përmbajtjen e tyre dhe do të shfaqë atë që rezulton në. stdout.

Nëse rezultati i konkatenimit të skedave duhen ruajtur si një skedar i ri, mund të përdorni operatorin >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Tani le të flasim për mënyrën se si të fshijmë skedarët dhe të ndalim proceset.

▍Fshirja e skedarĂ«ve, ndalimi i proceseve

rm my_file: fshin skedarin my_file.

rm -r my_folder: fshin dosjen my_folder dhe të gjitha skedarët dhe dosjet që përmban. Flagi -r tregon se komandë do të punojë në modalitetin rekurziv.

Për të siguruar që sistemi mos kërkojë konfirmim gjatë çdo operacioni fshirje të skedarit ose dosjes, përdorni flagun -f.

kill 012345: ndalon procesin e ekzekutuar që është specifikuar, duke i dhënë atij kohë për të përfunduar në mënyrë të saktë.

kill -9 012345: përfundon me forcë procesin e ekzekutuar që është specifikuar. Flagi i tipit -s SIGKILL ka të njëjtin kuptim si flagu -9.

▍KĂ«rkimi

PĂ«r tĂ« kĂ«rkuar tĂ« dhĂ«na mund tĂ« pĂ«rdoren komanda tĂ« ndryshme. NĂ« veçanti — grep, ag dhe ack. Le tĂ« fillojmĂ« njohjen tonĂ« me kĂ«to komanda nga grep. Kjo Ă«shtĂ« njĂ« komandĂ« e provuar me kalimin e kohĂ«s, e besueshme, qĂ« megjithĂ«se Ă«shtĂ« mĂ« e ngadaltĂ« se tĂ« tjerat, nuk Ă«shtĂ« kaq e pĂ«rshtatshme pĂ«r t'u pĂ«rdorur.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Komanda grep

grep my_regex my_file: bën kërkim my_regex në my_file. Kur gjenden përputhje, kthehet, për secilën prej tyre, e gjithë rreshti. Në mënyrë të paravendosur my_regex merret si një shprehje rregullore.

grep -i my_regex my_file: kërkimi kryhet pa marrë parasysh regjistrin e simboleve.

grep -v my_regex my_file: kthen të gjitha rreshtat që nuk përmbajnë my_regex. Flag -v tregon inversion, ai i ngjan operatorit JO, i cili gjendet në shumë gjuhë programimi.

grep -c my_regex my_file: kthen informacionin mbi numrin e përputhjeve me modelin e kërkuar, të gjetura në skedar.

grep -R my_regex my_folder: bën kërkim rekurziv në të gjitha skedaret që ndodhen në dosjen e dhënë dhe në dosjet e vendosura brenda saj.

Tani le tĂ« flasim pĂ«r komandĂ«n ag. Ajo u shfaq mĂ« vonĂ« grep, Ă«shtĂ« mĂ« e shpejtĂ«, Ă«shtĂ« mĂ« e lehtĂ« pĂ«r t’u punuar me tĂ«.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Komanda ag

ag my_regex my_file: kthen informacion mbi numrat e rreshtave, dhe vetë rreshtat, ku janë gjetur përputhje me my_regex.

ag -i my_regex my_file: kërkimi kryhet pa marrë parasysh regjistrin e simboleve.

Ekipa ag automatizon përpunimin e skedarit .gitignore dhe përjashton nga rezultati atë që është gjetur në dosjet ose skedaret e përmendura në këtë skedar. Kjo është shumë e dobishme.

ag my_regex my_file -- skip-vcs-ignores: përmbajtja e dosjeve të sistemeve të kontrollit automatik të versioneve (siç është .gitignore) nuk merret parasysh gjatë kërkimit.

Për më tepër, për të treguar komandës ag se cilat rrugë skedari duhet përjashtuar nga kërkimi, mund të krijoni një skedar .agignore.

Në fillim të këtij kapitulli përmendëm komandën ack. Komandat ack dhe ag janë shumë të ngjashme, mund të thuhet se janë zëvendësuese në 99%. Megjithatë, komanda ag punon më shpejt, prandaj e përshkruaj atë.

Tani le të flasim për punën me arkiva.

▍Arkivimi

tar my_source_directory: bashkon skedarët nga dosja my_source_directory në një skedar tarball. Skedarët e tillë janë të përshtatshëm për të dërguar të tjerëve grupe të mëdha skedarësh.

[në shënime] Bash për fillestarët: 21 komandat e dobishme
Komanda tar

Skedarët tarball, të krijuar nga kjo komandë, janë skedarë me zgjerimin .tar (Tape ARchive). Fakti që në emrin e komandës dhe në zgjerimin e emrave të skedarëve të krijuar nga ajo, fshihet fjala 'tape' (kasetë), tregon se sa kohë ekziston kjo komandë.

tar -cf my_file.tar my_source_directory: krijon një skedar tarball me emrin my_file.tar me përmbajtjen e dosjes my_source_directory. Flag -c shkurt simbolet "create" (krijimi), dhe flagu -f si "file" (skedar).

Për të nxjerrë skedarët që ndodhen në .tar-skedar, përdoret komanda tar c me flagjet -x ("extract", nxjerrje) dhe -f ("file", skedar).

tar -xf my_file.tar: nxjerr skedarët nga my_file.tar në direktorinë tuaj të punës.

Tani le të flasim për mënyrën e comprimimit dhe nxjerrjes së .tar-skedareve.

tar -cfz my_file.tar.gz my_source_directory: këtu, me përdorimin e flagut -z ("zip", algoritmi i kompresimit) është ende e specifikuar që për comprimimin e skedarëve duhet të përdoret algoritmi gzip (GNU zip). Kompresimi i skedarëve lejon kursimin e hapësirës së diskut gjatë ruajtjes së këtyre skedarëve. Nëse skedarët planifikohen, për shembull, t'u dërgohen përdoruesve të tjerë, kjo ndihmon në ngarkimin më të shpejtë të skedarëve të tillë.

Për të nxjerrë skedarin .tar.gz mund të bëhet duke shtuar flagun -z në komandën për nxjerrjen e përmbajtjes .tar-skedareve, që ne e shqyrtuam më parë. Duket kështu:

tar -xfz my_file.tar.gz
Duhet të theksohet se komanda tar ka gjithashtu shumë flagje të dobishme.

Pseudonimet Bash

Pseudonimet Bash (të cilat gjithashtu quhen alias ose shkurtime) janë të destinuara për të krijuar emra të shkurtë të komandave ose sekuencave të tyre, përdorimi i të cilave në vend të komandave normale përshpejton punën. Nëse keni, për shembull, një pseudonim bu, pas së cilës fshihet komanda python setup.py sdist bdist_wheel, atëherë për të thirrur këtë komandë mjafton të përdorni këtë pseudonim.

Për të krijuar një pseudonim të tillë, mjafton të shtoni komandën e mëposhtme në skedarin ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Nëse në sistemin tuaj nuk ka skedarit ~/.bash_profile, atëherë mund ta krijoni atë vetë duke përdorur komandën touch. Pas krijimit të një pseudonimi, rinisni terminalin, pas së cilës do të mund të përdorni këtë pseudonim. Në këtë rast, futja e dy simboleve zëvendëson futjen e më shumë se tridhjetë simboleve të komandës, e cila është e destinuar për ndërtimet paketave Python.

Në ~/.bash_profile mund të shtoni pseudonime për çdo komandë që përdorni shpesh.

▍PĂ«rmbledhje

NĂ« kĂ«tĂ« material shqyrtuam 21 komanda tĂ« njohura Bash dhe folĂ«m pĂ«r krijimin e pseudonimeve pĂ«r komandat. NĂ«se kjo temĂ« ju intereson — kĂ«tu cikli i publikimeve tĂ« dedikuara pĂ«r Bash. KĂ«tu mund tĂ« gjeni njĂ« version pdf tĂ« kĂ«tyre publikimeve. PĂ«rveç kĂ«saj, nĂ«se dĂ«shironi tĂ« mĂ«soni Bash, mbani mend se, si nĂ« studimin e çdo sistemi tjetĂ«r tĂ« programimit, praktika Ă«shtĂ« e rĂ«ndĂ«sishme.

Të nderuar lexues! Cilat komanda, të cilat janë të dobishme për fillestarët, do të shtonit në ato që u shqyrtuan në këtë artikull?

→ Lexoni gjithashtu nĂ« blogun tonĂ« ciklin e publikimeve mbi bash-scriptet

[në shënime] Bash për fillestarët: 21 komandat e dobishme

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster