[e shënuar] Bash për fillestarët: 21 komanda të dobishme

Materiali, përkthimi i të cilit botojmë sot, është i destinuar për ata që duan të zotërojnë linjën e komandës Linux. Aftësia për të përdorur këtë mjet në mënyrë efektive mund të kursejë shumë kohë. Në veçanti, këtu do të flasim për guaskën Bash dhe 21 komanda të dobishme. Do të flasim gjithashtu se si të përdorim flamujt e komandave dhe pseudonimet Bash për të shpejtuar shtypjen e udhëzimeve të gjata.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme

Lexoni gjithashtu në blogun tonë një seri botimesh rreth skripteve bash

Kushtet

Ndërsa mësoni të punoni me linjën e komandës Linux, do të hasni shumë koncepte që janë të dobishme për të lundruar. Disa prej tyre, si "Linux" dhe "Unix", ose "shell" dhe "terminal", ndonjëherë ngatërrohen. Le të flasim për këto dhe terma të tjerë të rëndësishëm.

Unix është një sistem operativ popullor që u zhvillua nga Bell Labs në vitet 1970. Kodi i saj ishte i mbyllur.

Linux është sistemi operativ më i popullarizuar i ngjashëm me Unix-in. Tani përdoret në shumë pajisje, përfshirë kompjuterët.

Terminal (terminal), ose emulator i terminalit është një program që i jep akses në sistemin operativ. Ju mund të hapni disa dritare terminale në të njëjtën kohë.

predhë (Shell) është një program që ju lejon të dërgoni komanda të shkruara në një gjuhë të veçantë në sistemin operativ.

Përplas qëndron për Bourne Again Shell. Është gjuha më e zakonshme e guaskës që përdoret për të bashkëvepruar me sistemin operativ. Gjithashtu, guaska Bash është e paracaktuar në macOS.

Ndërfaqja e linjës së komandës (Ndërfaqja e linjës së komandës, CLI) është një metodë e ndërveprimit midis një personi dhe një kompjuteri, duke përdorur të cilën përdoruesi fut komanda nga tastiera, dhe kompjuteri, duke ekzekutuar këto komanda, shfaq mesazhe në formë teksti për përdoruesit. Përdorimi kryesor i CLI është të marrë informacione të përditësuara për disa entitete, si skedarë, dhe të punojë me skedarë. Ndërfaqja e linjës së komandës duhet të dallohet nga ndërfaqja grafike e përdoruesit (GUI), e cila përdor kryesisht miun. Ndërfaqja e linjës së komandës shpesh referohet thjesht si linja e komandës.

Script (script) është një program i vogël që përmban një sekuencë komandash shell. Skriptet shkruhen në skedarë, ato mund të përdoren në mënyrë të përsëritur. Kur shkruani skriptet, mund të përdorni variabla, kushte, sythe, funksione dhe veçori të tjera.

Tani që kemi mbuluar termat e rëndësishëm, dua të theksoj se këtu do t'i përdor termat "Bash", "guaskë" dhe "vijë komandimi" në mënyrë të ndërsjellë, si dhe termat "directory" dhe "folder".

standard rrjedhat, që do të përdorim këtu është hyrja standarde (hyrja standarde, stdin), prodhimi standard (dalja standarde, stdout) dhe daljen e gabimit standard (gabim standard, stderr).

Nëse në shembullin e komandave që do të jepen më poshtë, do të gjeni diçka të tillë my_whatever - kjo do të thotë që ky fragment duhet të zëvendësohet me diçka tuajën. Për shembull, emri i një skedari.

Tani, përpara se të vazhdojmë me analizën e komandave të cilave u kushtohet ky material, le t'i hedhim një sy listës së tyre dhe përshkrimeve të shkurtra të tyre.

21 Komandat Bash

▍Marrja e informacionit

  • man: Shfaq udhëzuesin e përdoruesit (ndihmës) për komandën.
  • pwd: shfaq informacione rreth drejtorisë së punës.
  • ls: shfaq përmbajtjen e një drejtorie.
  • ps: Ju lejon të shikoni informacione rreth proceseve të ekzekutimit.

▍ Manipulimi i sistemit të skedarëve

  • cd: ndryshoni direktorinë e punës.
  • touch: krijoni një skedar.
  • mkdir: krijoni një direktori.
  • cp: Kopjo një skedar.
  • mv: Zhvendos ose fshi një skedar.
  • ln: krijoni një lidhje.

▍Ridrejtimi I/O dhe tubacionet

  • <: ridrejtim stdin.
  • >: ridrejtim stdout.
  • |: dërgoi daljen e një komande në hyrjen e një komande tjetër.

▍Leximi i skedarëve

  • head: lexoni fillimin e skedarit.
  • tail: lexoni fundin e skedarit.
  • cat: Lexoni një skedar dhe printoni përmbajtjen e tij në ekran, ose lidhni skedarët.

▍Fshirja e skedarëve, ndalimi i proceseve

  • rm: Fshi një skedar.
  • kill: ndaloni procesin.

▍Kërko

  • grep: kërkoni informacion.
  • ag: komanda e avancuar për kërkim.

▍Arkivimi

  • tar: krijimi i arkivave dhe puna me to.

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

Detajet e ekipit

Për të filluar, le të merremi me komandat, rezultatet e të cilave lëshohen në formë stdout. Zakonisht këto rezultate shfaqen në një dritare terminali.

▍Marrja e informacionit

man command_name: shfaq udhëzuesin e komandës, d.m.th. informacionin e ndihmës.

pwd: shfaq shtegun drejt drejtorisë aktuale të punës. Gjatë punës me vijën e komandës, përdoruesi shpesh duhet të zbulojë saktësisht se ku ndodhet në sistem.

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

ls -a: shfaq skedarët e fshehur. flamuri i aplikuar këtu -a komandat ls. Përdorimi i flamujve ndihmon për të personalizuar sjelljen e komandave.

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

Vini re se flamujt mund të kombinohen. Për shembull - si kjo: ls -al.

ps: Shikoni proceset e ekzekutimit.

ps -e: Shfaq informacione për të gjitha proceset e ekzekutuara, jo vetëm ato që lidhen me guaskën aktuale të përdoruesit. Kjo komandë përdoret shpesh në këtë formë.

▍ Manipulimi i sistemit të skedarëve

cd my_directory: ndryshoni drejtorinë e punës në my_directory. Për të lëvizur një nivel lart në pemën e drejtorive, përdorni my_directory rrugë relative ../.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
komanda cd

touch my_file: krijimi i skedarit my_file përgjatë rrugës së dhënë.

mkdir my_directory: krijoni një dosje my_directory përgjatë rrugës së dhënë.

mv my_file target_directory: zhvendos skedarin my_file në dosje target_directory. Kur specifikoni drejtorinë e synuar, duhet të përdorni shtegun absolut drejt tij (dhe jo një ndërtim si ../).

ekipi mvmund të përdoret gjithashtu për të riemërtuar skedarët ose dosjet. 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
: krijoni një kopje të një skedari my_source_file dhe vendoseni në një dosje target_directory.

ln -s my_source_file my_target_file: krijoni një lidhje simbolike my_target_file për dosje my_source_file. Nëse ndryshoni lidhjen, do të ndryshojë edhe skedari origjinal.

Nëse skedari my_source_file atëherë do të fshihet my_target_file do të ngelet. Flamuri -s komandat ln ju lejon të krijoni lidhje për drejtoritë.

Tani le të flasim për ridrejtimin I/O dhe tubacionet.

▍Ridrejtimi I/O dhe tubacionet

my_command < my_file: zëvendëson përshkruesin standard të skedarit hyrës (stdin) për skedar my_file. Kjo mund të jetë e dobishme nëse komanda është duke pritur për disa të dhëna nga tastiera dhe këto të dhëna janë ruajtur tashmë në një skedar.

my_command > my_file: ridrejton rezultatet e komandës, d.m.th. çfarë do të hynte normalisht stdout dhe dalje në ekran, në një skedar my_file. Nëse skedari my_file nuk ekziston - është krijuar. Nëse skedari ekziston, ai mbishkruhet.

Për shembull, pas ekzekutimit të komandës ls > my_folder_contents.txt do të krijohet një skedar teksti që përmban një listë të asaj që është në drejtorinë aktuale të punës.

Nëse në vend të simbolit > përdorni konstruksionin >>, atëherë, me kusht që skedari në të cilin ridrejtohet dalja e komandës ekziston, ky skedar nuk do të mbishkruhet. Të dhënat do të shtohen në fund të këtij skedari.

Tani le të hedhim një vështrim në përpunimin e tubacionit të të dhënave.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
Dalja e një komande futet në hyrjen e një komande tjetër. Është si të lidhësh një tub me tjetrin

first_command | second_command: simboli i transportuesit, |, përdoret për të dërguar daljen e një komande në një komandë tjetër. Çfarë dërgon komanda në anën e majtë të strukturës së përshkruar stdout, Bie ne stdin komanda në të djathtë të simbolit të tubacionit.

Në Linux, të dhënat mund të dërgohen duke përdorur pothuajse çdo komandë të mirëformuar. Shpesh thuhet se gjithçka në Linux është një tubacion.

Ju mund të lidhni komanda të shumta duke përdorur simbolin e tubacionit. Duket kështu:

first_command | second_command | third_command

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
Një tubacion i disa komandave mund të krahasohet me një tubacion

Vini re se kur komanda në të majtë të simbolit |, nxjerr diçka për të stdout, ajo që ajo nxjerr është menjëherë e disponueshme si stdin ekipi i dytë. Kjo do të thotë, rezulton se, duke përdorur tubacionin, kemi të bëjmë me ekzekutim paralel të komandave. Ndonjëherë kjo mund të çojë në rezultate të papritura. Detaje për këtë mund të lexohen këtu.

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

▍Leximi i skedarëve

head my_file: lexon rreshta nga fillimi i një skedari dhe i printon ato në ekran. Ju mund të lexoni jo vetëm përmbajtjen e skedarëve, por edhe atë që nxjerrin komandat stdinduke përdorur këtë komandë si pjesë e tubacionit.

tail my_file: lexon rreshta nga fundi i skedarit. Kjo komandë mund të përdoret gjithashtu në një tubacion.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
Koka (koka) është përpara, dhe bishti (bishti) është prapa

Nëse jeni duke punuar me të dhëna duke përdorur bibliotekën e pandave, atëherë komandat head и tail duhet të jetë e njohur për ju. Nëse nuk është kështu, hidhini një sy figurës së mësipërme dhe do t'i mbani mend lehtësisht.

Konsideroni mënyra të tjera për të lexuar skedarë, le të flasim për komandën cat.

Ekip cat ose printon përmbajtjen e një skedari në ekran, ose bashkon skedarë të shumtë. Varet nga sa skedarë i kalohen kësaj komande kur thirret.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
komandë mace

cat my_one_file.txt: kur një skedar i vetëm i kalohet kësaj komande, ai e nxjerr atë në stdout.

Nëse i jepni dy ose më shumë skedarë, atëherë ai sillet ndryshe.

cat my_file1.txt my_file2.txt: pasi ka marrë disa skedarë si hyrje, kjo komandë bashkon përmbajtjen e tyre dhe shfaq atë që ndodhi në të stdout.

Nëse rezultati i lidhjes së skedarëve duhet të ruhet si skedar i ri, mund të përdorni operatorin >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Tani le të flasim se si të fshijmë skedarët dhe të ndalojmë proceset.

▍Fshirja e skedarëve, ndalimi i proceseve

rm my_file: fshi skedarin my_file.

rm -r my_folder: fshin një dosje my_folder dhe të gjithë skedarët dhe dosjet që përmban. Flamuri -r tregon se komanda do të ekzekutohet në modalitetin rekurziv.

Për të parandaluar që sistemi të kërkojë konfirmim sa herë që fshihet një skedar ose dosje, përdorni flamurin -f.

kill 012345: Ndalon procesin e specifikuar të ekzekutimit, duke i dhënë kohë për t'u mbyllur me hijeshi.

kill -9 012345: Përfundon me forcë procesin e specifikuar të ekzekutimit. Shiko flamurin -s SIGKILL do të thotë njësoj si flamuri -9.

▍Kërko

Ju mund të përdorni komanda të ndryshme për të kërkuar të dhëna. Veçanërisht - grep, ag и ack. Le të fillojmë njohjen tonë me këto komanda me grep. Kjo është një komandë e besueshme e testuar me kohë, e cila, megjithatë, është më e ngadaltë se të tjerat dhe jo aq e përshtatshme për t'u përdorur sa ata.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
komanda grep

grep my_regex my_file: kërkimet my_regex в my_file. Nëse gjendet një ndeshje, i gjithë vargu kthehet, për çdo ndeshje. E paracaktuar my_regex trajtohet si shprehje e rregullt.

grep -i my_regex my_file: Kontrolli kryhet në mënyrë të pandjeshme ndaj rasteve.

grep -v my_regex my_file: kthen të gjitha rreshtat që nuk përmbajnë my_regex. Flamuri -v do të thotë përmbysje, i ngjan operatorit NOT, gjendet në shumë gjuhë programimi.

grep -c my_regex my_file: Kthen informacion në lidhje me numrin e përputhjeve për modelin e kërkuar të gjetur në skedar.

grep -R my_regex my_folder: kryen një kërkim rekurziv në të gjithë skedarët e vendosur në dosjen e specifikuar dhe në dosjet e vendosura në të.

Tani le të flasim për ekipin ag. Ajo erdhi më vonë grep, është më i shpejtë, është më i përshtatshëm për të punuar me të.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
komanda ag

ag my_regex my_file: kthen informacione rreth numrave të rreshtave dhe vetë rreshtave, me të cilat u gjetën përputhje my_regex.

ag -i my_regex my_file: Kontrolli kryhet në mënyrë të pandjeshme ndaj rasteve.

Ekip ag përpunoni automatikisht skedarin .gitignore dhe përjashton nga dalja atë që gjendet në dosjet ose skedarët e listuar në atë skedar. Është shumë komode.

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

Përveç kësaj, për t'i treguar ekipit ag në cilat shtigje skedari dëshironi të përjashtoni nga kërkimi, mund të krijoni një skedar .agignore.

Në fillim të këtij seksioni, ne përmendëm komandën ack. Ekipet ack и ag shumë të ngjashme, mund të themi se ato janë 99% të këmbyeshme. Megjithatë, ekipi ag funksionon më shpejt, prandaj e përshkrova.

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

▍Arkivimi

tar my_source_directory: bashkon skedarët nga një dosje my_source_directory në një skedar të vetëm tarball. Skedarë të tillë janë të dobishëm për transferimin e grupeve të mëdha të skedarëve te dikush.

[e shënuar] Bash për fillestarët: 21 komanda të dobishme
komanda tar

Skedarët tarball të gjeneruar nga kjo komandë janë skedarë me shtesë .tar (Arkivi i shiritit). Fakti që fjala "tape" (tape) është e fshehur në emrin e komandës dhe në zgjerimin e emrave të skedarëve që krijon 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. Flamuri -c qëndron për "krijoj" (krijim), dhe flamuri -f si "skedar" (skedar).

Për të nxjerrë skedarë nga .tar-file, përdorni komandën tar me flamuj -x ("ekstrakt", nxjerrje) dhe -f ("skedar", skedar).

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

Tani le të flasim se si të kompresojmë dhe dekompresojmë .tar-skedarët.

tar -cfz my_file.tar.gz my_source_directory: këtu duke përdorur flamurin -z ("zip", algoritmi i kompresimit) tregon se algoritmi duhet të përdoret për të kompresuar skedarët gzip (GNUzip). Kompresimi i skedarit kursen hapësirën në disk kur ruani skedarë të tillë. Nëse skedarët planifikohen, për shembull, të transferohen te përdorues të tjerë, kjo kontribuon në shkarkimin më të shpejtë të skedarëve të tillë.

Zhzip skedarin .tar.gz mund të shtoni një flamur -z te komanda e ekstraktit të përmbajtjes .tar-skedarët, të cilat i diskutuam më sipër. Duket kështu:

tar -xfz my_file.tar.gz
Duhet theksuar se ekipi tar Ka shumë flamuj më të dobishëm.

pseudonimet Bash

Pseudonimet Bash (të quajtura edhe pseudonime ose shkurtesa) janë krijuar për të krijuar emra të shkurtuar të komandave ose sekuencave të tyre, përdorimi i të cilave në vend të komandave të rregullta përshpejton punën. Nëse keni një pseudonim bu, e cila fsheh komandën 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ë, thjesht shtoni komandën e mëposhtme në skedar ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Nëse sistemi juaj nuk e ka skedarin ~/.bash_profile, atëherë mund ta krijoni vetë duke përdorur komandën touch. Pas krijimit të pseudonimit, rinisni terminalin, pas së cilës mund ta përdorni këtë pseudonim. Në këtë rast, hyrja e dy karaktereve zëvendëson hyrjen e më shumë se tre duzina karaktere të komandës, e cila është menduar për kuvendet Paketat Python.

В ~/.bash_profile ju mund të shtoni pseudonime për çdo komandë të përdorur shpesh.

▍Rezultatet

Në këtë postim, ne kemi mbuluar 21 komanda të njohura Bash dhe kemi folur për krijimin e pseudonimeve të komandave. Nëse jeni të interesuar për këtë temë - këtu një seri botimesh kushtuar Bashit. Këtu Ju mund të gjeni një version pdf të këtyre botimeve. Gjithashtu, nëse doni të mësoni Bash, mbani mend se, si me çdo sistem tjetër programimi, praktika është thelbësore.

Të nderuar lexues! Cilat komanda që janë të dobishme për fillestarët do t'i shtonit atyre që u diskutuan në këtë artikull?

Lexoni gjithashtu në blogun tonë një seri botimesh rreth skripteve bash

[e shënuar] Bash për fillestarët: 21 komanda të dobishme

Burimi: www.habr.com

Shto një koment