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.
→
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.
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 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
<
: ridrejtimstdin
.>
: ridrejtimstdout
.|
: 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 ../
.
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 mv
mund 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
: krijoni një kopje të një skedari
cp my_source_file target_directorymy_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.
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
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
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 stdin
duke 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.
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.
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.
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ë.
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.
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
В ~/.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ë -
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?
→
Burimi: www.habr.com