[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm

Materiali që po përkthejmë sot është për ata që duan të mësojnë komandën e linjës në Linux. Aftësia për të përdorur efektivisht këtë mjet kursen shumë kohë. Ky artikull do të flasë për shell-in Bash dhe 21 komandat e dobishme. Gjithashtu, do të flasim se si të përdorin flamujt e komandës dhe pseudonimet e Bash-it, të cilat lejojnë të përshpejtojnë hyrjen e udhëzimeve të gjata.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm

→ Lexoni gjithashtu nĂ« blogun tonĂ« njĂ« cikĂ«l publikimesh mbi skriptet bash.

Terminologji

Gjatë mësimit të punës në komandën e linjës së Linux-it, ju mund të hasni shumë nocione, të cilat është e rëndësishme të njihni. Disa nga ato, si "Linux" dhe "Unix", ose "shell" dhe "terminal", ndonjëherë ngatërrohen. Do të flasim për këto dhe për terminologji të tjera të rëndësishme.

Unix është një sistem operacional popullor, i dizajnuar nga Bell Labs në vitet 1970. Kodi i tij ishte i mbyllur.

Linux është sistemi operacional më i njohur që ngjason me Unix. Sot, ai përdoret në shumë pajisje, përfshirë edhe kompjuterët.

Terminali (terminal), ose emulatori i terminalit - është një program që ofron qasje në sistemin operacional. Mund të hapni disa dritare terminali në të njëjtën kohë.

Shell (shell) është një program që lejon dërgimin e komandave në sistemin operacional, të shkruara në një gjuhë të veçantë.

Bash nënkupton Bourne Again SHell. Ky është gjuha më e përhapur për shell, e përdorur për ndërveprimin me sistemin operacional. Për më tepër, shell-i Bash përdoret si standard në macOS.

Interface e komandës së linjës (Command Line Interface, CLI) është një mënyrë ndërveprimi midis njeriut dhe kompjuterit, gjatë së cilës përdoruesi hyn komanda me tastierë, dhe kompjuteri, duke ekzekutuar këto komanda, nxjerr mesazhe për përdoruesin në formë tekstuale. Kryesisht CLI përdoret për të marrë informacion të freskët mbi disa entitete, si për shembull, mbi skedarët, dhe për të punuar me skedarët. Interface e komandës së linjës duhet të dallosh nga interface grafike e përdoruesit (Graphical User Interface, GUI), me të cilën, kryesisht, përdoret mouse-i. Interface e komandës së linjës shpesh quhet thjesht komandë e linjës.

Script (script) — njĂ« program i vogĂ«l qĂ« pĂ«rmban njĂ« varg komandash tĂ« shell-it. Skriptet shkruhen nĂ« skedarĂ« dhe mund tĂ« pĂ«rdoren shumĂ« herĂ«. GjatĂ« shkruajtjes sĂ« skripteve, mund tĂ« pĂ«rdoren variabla, struktura kushtore, cikle, funksione dhe mundĂ«si tĂ« tjera.

Tani, pasi shqyrtuam terminologjinë e rëndësishme, dëshiroj të theksoj se këtu do të përdor terma si "Bash", "shell" dhe "komanda" si të ndërlidhura, ashtu si dhe konceptet "direktori" (directory) dhe "dosje" (folder).

Standardet rrjedha, tĂ« cilat do tĂ« pĂ«rdorim kĂ«tu — janĂ« standardi i hyrjes (standard input, stdin), standardi i daljes (standard output, stdout) dhe standardi i daljes sĂ« gabimeve (standard error, stderr).

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

Tani, para se të fillojmë me analizimin e komandave që ky material i kushtohet, le të shikojmë 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: jep informacion mbi direktorinĂ« e punĂ«s.
  • ls: jep pĂ«rmbajtjen e direktorisĂ«.
  • ps: lejon tĂ« shikoni informacionin mbi proceset qĂ« po punojnĂ«.

▍Manipulimet me sistemin e skedarĂ«ve

  • cd: ndryshon direktorinĂ« e punĂ«s.
  • touch: krijon skedarin.
  • mkdir: krijon direktorinĂ«.
  • cp: kopjon skedarin.
  • mv: shndĂ«rron ose fshin skedarin.
  • ln: krijon njĂ« lidhje.

▍RrĂ«fimi i hyrjeve-daljeve dhe kalimet

  • <: rrĂ«fe stdin.
  • >: rrĂ«fe stdout.
  • |: rrĂ«fe me kalimin e daljes sĂ« njĂ« komande nĂ« hyrjen e njĂ« komande tjetĂ«r.

▍Leximi i skedarĂ«ve

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

▍Fshirja e skedarĂ«ve, ndalimi i proceseve

  • rm: fshirja e skedarit.
  • kill: ndalimi i procesit.

▍KĂ«rkimi

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

▍Arkivimi

  • tar: krijimi i arkivave dhe puna me ta.

Le të flasim për këto komanda në detaje.

Detajet mbi komandat

Për të nisur, le të kuptojmë komandat, rezultatet e të cilave jepen në formën e stdout. Zakonisht, këto rezultate shfaqen në dritaren e terminalit.

▍Marrja e informacionit

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

pwd: shfaq rrugën e drejtorisë aktuale të punës. Gjatë punës me terminalin, përdoruesit shpesh kanë nevojë të dinë se ku ndodhen saktësisht në sistem.

ls: shfaq përmbajtjen e drejtorisë. Kjo komandë gjithashtu përdoret mjaft shpesh.

ls -a: shfaq skedarët e fshehur. Këtu aplikohet flagu -a komandave ls. Përdorimi i flagëve ndihmon në përshtatjen e sjelljes së komandave.

ls -l: shfaq informacion të detajuar rreth skedarëve.

Vini re se flagët mund të kombinohen. Për shembull, kështu: ls -al.

ps: shfaq proceset në ekzekutim.

ps -e: shfaq informacion rreth të gjitha proceseve në ekzekutim, jo vetëm atyre që janë të lidhura me skedarin e tanishëm të përdoruesit. Kjo komandë shpesh përdoret në këtë formë.

▍Manipulimet me sistemin e skedarĂ«ve

cd my_directory: ndryshon direktorinë e punës në my_directory. Për të kaluar një nivel lart në strukturën e drejtorive, përdorni si my_directory rrugë relative ../.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
Komanda cd

touch my_file: krijon skedarin my_file në rrugën e caktuar.

mkdir my_directory: krijon një folder my_directory në rrugën e caktuar.

mv my_file target_directory: zhvendos skedarin my_file në folderin target_directory. Kur jepni drejtorinë e synuar, duhet të përdorni rrugën absolute për të (dhe jo një konstrukcion si ../).

Komanda mv, gjithashtu, mund të përdoret për të ndryshuar emrat e skedarëve apo folderëve. Për shembull, mund të duket kështu:

mv my_old_file_name.jpg my_new_file_name.jpg
shkruaj skedarin tim_source në drejtorinë e synuar
: krijon një kopje të skedarit my_source_file dhe e vendos atë në folderin target_directory.

ln -s my_source_file my_target_file: krijon një lidhje simbolike my_target_file me skedarin my_source_file. Nëse ndryshoni lidhjen, atëherë do të ndryshojë edhe skedari origjinal.

Nëse skedari my_source_file ndërpritet, atëherë my_target_file do të mbetet. Flagu -s komandave ln lejon krijimin e lidhjeve edhe për drejtoritë.

Tani do të flasim për redirektimin e hyrjes dhe daljes dhe për tubat.

▍RrĂ«fimi i hyrjeve-daljeve dhe kalimet

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ë rastin kur komanda pret një hyrje të dhënash nga tastiera, ndërsa ato të dhëna janë ruajtur më parë në skedar.

my_command > my_file: redirekton rezultatet e punës së komandës, domethënë atë që zakonisht shfaqet në stdout dhe shfaqet në ekran, në skedarin my_file. Nëse skedari my_file nuk ekziston - ai krijohet. Nëse skedari ekziston - ai përshkruhet përsëri.

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

Nëse në vend të simbolit > përdorni konstrukcionin >>, nëse ekziston një skedar në të cilin redirektohet dalja e komandës, ky skedar nuk do të rishkruhet. Të dhënat do të shtohen në fund të këtij skedari.

Tani le të shohim përpunimin e të dhënave në pajisje.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
Ajo që del nga një komandë, dërgohet si hyrje në një komandë tjetër. Kjo është si lidhja e një pipe 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 në anën e majtë të strukturës përshkruese dërgon në stdout, shkon në stdin komandën që ndodhet në të djathtën e simbolit të tubit.

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

Me simbolin e tubit mund të lidhni disa komanda në një zinxhir. Kjo duket kështu:

first_command | second_command | third_command

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
Një tub i disa komandave mund të krahasohet me një tubacion.

Vini re se kur komanda që ndodhet në të majtë të simbolit |, nxjerr diçka në stdout, ajo që nxjerr bëhet menjëherë e aksesueshme si stdin për komandën e dytë. Pra, rezulton se, duke përdorur tubin, kemi të bëjmë me ekzekutimin paralel të komandave. Ndonjëherë kjo mund të çojë në rezultate të papritura. Detaje rreth kësaj mund të lexoni këtu.

Tani le të flasim për leximin e të dhënave nga skedarët dhe për nxjerrjen e tyre në ekran.

▍Leximi i skedarĂ«ve

head my_file: lexon rreshtat nga fillimi i skedarit dhe i nxjerr 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. Kjo komandë gjithashtu mund të përdoret në tub.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
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ë komanda head dhe tail duhet të ju jetë e njohur. Nëse jo, shikoni ilustrimin e mësipërm dhe do t'i mbani mend lehtësisht.

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

Ekipa cat që ose nxjerr përmbajtjen e skedarit në ekran, ose bashkon disa skedarë. Kjo varet nga numri i skedarëve të dërguar kësaj komande gjatë thirrjes.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
Komanda cat

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

Por të kaluar dy skedare ose më shumë, ajo vepron ndryshe.

cat my_file1.txt my_file2.txt: duke marrë disa skedare si hyrje, kjo komandë i bashkon përmbajtjet e tyre dhe do të japë atë që rezulton në stdout.

Nëse rezultati i bashkimit të skedarëve duhet të ruhet 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 si të fshijmë skedarë dhe të ndalojmë procese.

▍Fshirja e skedarĂ«ve, ndalimi i proceseve

rm my_file: fshin skedarin my_file.

rm -r my_folder: fshin folderin my_folder dhe të gjitha skedarët dhe folderat që përmban. Flag -r tregon se komanda do të punojë në modalitetin rekurziv.

Për të siguruar që sistemi nuk kërkon konfirmim kur të kryejë çdo operacion fshirjeje skedari ose folderi, përdorni flagun --follow.

kill 012345: ndalon procesin e caktuar duke i dhënë atij kohë për të përfunduar punën në mënyrë korrekte.

kill -9 012345: përfundon me forcë procesin e caktuar që është duke u ekzekutuar. Flag i tipit -s SIGKILL ndërlidhet me flagun -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 kohĂ«, e besueshme, e cila, megjithatĂ«, Ă«shtĂ« mĂ« e ngadalshme se tĂ« tjerat dhe nuk Ă«shtĂ« aq e lehtĂ« pĂ«r t'u pĂ«rdorur si ato.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
Komanda grep

grep my_regex my_file: kryen kërkimin për my_regex në my_file. Kur bëhen përputhje, kthehet, për secilën prej tyre, e gjithë rreshti. Nga e drejta my_regex pranohet si një shprehje e rregullt.

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

grep -v my_regex my_file: kthen të gjitha rreshtat që nuk përmbajnë my_regex. Flag -v tregon inverzion, ai i ngjan operatorit NOT, i pranishëm në shumë gjuhë programimi.

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

grep -R my_regex my_folder: kryen kërkim rekurziv në të gjitha skedarët që ndodhen në folderin e caktuar dhe në folderat e brendshëm të tij.

Tani le të flasim për komandën ag. Ajo u shfaq më vonë grep, është më e shpejtë, dhe është më e lehtë për t'u përdorur.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
Komanda ag

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

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

Ekipa ag automatizimisht përpunon skedarin .gitignore dhe përjashton nga dalja atë që është gjetur në folderat ose skedarët e listuar në këtë skedari. Kjo është shumë e dobishme.

ag my_regex my_file --skip-vcs-ignores: përmbajtja e skedarëve të sistemeve të kontrollit të versioneve (siç janë .gitignore) nuk merret parasysh në kërkim.

Përveç kësaj, për të treguar ekipit ag se cilat rrugë skedarësh duhet të excluzhen nga kërkimi, mund të krijoni skedarin .agignore.

Në fillim të këtij seksioni ne përmendëm komandën ack. Komandat ack dhe ag janë shumë të ngjashme, mund të themi se ato janë të ndërlidhura në 99%. Megjithatë, komanda ag punon më shpejt, prandaj e përshkruajta pikërisht këtë.

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

▍Arkivimi

tar my_source_directory: bashkon skedarët nga dosja my_source_directory në një skedar tarball. Këta skedarë janë të përshtatshëm për t'i kaluar dikujt grupe të mëdha skedarësh.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm
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 prej saj, fshihet fjala "tape" (llogaritë), tregon se sa kohë ka ekzistuar 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 përkthehet si "create" (krijim), dhe flag --follow si "file" (skedar).

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

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

Tani le të flasim për si të kompresoni dhe të deshifroni .tar-skedarët.

tar -cfz my_file.tar.gz my_source_directory: këtu, duke përdorur flag -z ("zip", algoritmi i kompresimit), tregon se për kompresimin 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 do të transferoheshin, për shembull, te përdorues të tjerë, kjo ndihmon për ngarkimin më të shpejtë të këtyre skedarëve.

Të nxjerrësh skedarin .tar.gz mund të bëhet duke shtuar flag -z në komandën e nxjerrjes së përmbajtjes .tar-skedarëve, që ne e shqyrtuam më sipër. Duket kështu:

tar -xfz my_file.tar.gz
Duhet theksuar se komanda tar ka edhe shumë flagëmbështetje të dobishme.

Bash-pseudonimet

Bash-pseudonimet (të quajtura gjithashtu aleksandër apo shkurtore) janë të destinuara për krijimin e emrave të shkurtuar për komandat ose sekuencat e tyre, përdorimi i të cilave në vend të komandave të zakonshme e përshpejton punën. Nëse keni, të supozojmë, një pseudonim bu, pas të cilit fshihet komanda python setup.py sdist bdist_wheel, 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 skedarin ~/.bash_profile, atëherë mund ta krijoni vetë duke përdorur komandën touch. Pas krijimit të pseudonimit, rifilloni terminalin, pas së cilës do të mund ta përdorni këtë pseudonim. Në këtë rast, futja e dy simboleve zëvendëson futjen e më shumë se tre dhjetë 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ërdoret shpesh.

▍PĂ«rfundime

NĂ« kĂ«tĂ« material ne shqyrtuam 21 komanda popullore Bash dhe folĂ«m pĂ«r krijimin e pseudonimeve pĂ«r komandat. NĂ«se kjo temĂ« ju intereson — ja seria e publikimeve qĂ« i kushtohet Bash. KĂ«tu mund tĂ« gjeni njĂ« version pdf tĂ« kĂ«tyre publikimeve. PĂ«r mĂ« tepĂ«r, nĂ«se dĂ«shironi tĂ« mĂ«soni Bash, mbani mend se, siç ndodh me çdo sistem tjetĂ«r programimi, praktika Ă«shtĂ« e rĂ«ndĂ«sishme.

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

→ Lexoni gjithashtu nĂ« blogun tonĂ« njĂ« cikĂ«l publikimesh mbi skriptet bash.

[në shenjë ruajtjeje] Bash për fillestarët: 21 urdhra të dobishëm

Burimi: habr.com

Bleni hostin e besueshĂ«m pĂ«r faqet me mbrojtje nga DDoS, VPS VDS servera đŸ”„ Bli hostin e besueshĂ«m pĂ«r faqet me mbrojtje nga DDoS, VPS VDS servera | ProHoster