[blêdwizer] Bash foar begjinners: 21 nuttige kommando's

It materiaal, de oersetting wêrfan wy hjoed publisearje, is bedoeld foar dyjingen dy't de Linux kommandorigel behearskje wolle. De mooglikheid om dit ark effektyf te brûken kin in protte tiid besparje. Yn it bysûnder sille wy hjir prate oer de Bash-shell en 21 nuttige kommando's. Wy sille ek prate oer hoe't jo kommandoflaggen en Bash-aliassen brûke om it typen fan lange ynstruksjes te rapperjen.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's

Lês ek yn ús blog in searje publikaasjes oer bash-skripts

Terms

As jo ​​leare om te wurkjen mei de Linux kommandorigel, sille jo in protte begripen tsjinkomme dy't nuttich binne om te navigearjen. Guon fan harren, lykas "Linux" en "Unix", of "shell" en "terminal", wurde soms yn 'e war. Litte wy prate oer dizze en oare wichtige termen.

Unix is in populêr bestjoeringssysteem dat waard ûntwikkele troch Bell Labs yn 'e jierren '1970. Har koade wie sletten.

linux is it meast populêre Unix-like bestjoeringssysteem. It wurdt no brûkt op in protte apparaten, ynklusyf kompjûters.

terminal (terminal), of terminal emulator is in programma dat jout tagong ta it bestjoeringssysteem. Jo kinne tagelyk meardere terminalfinsters iepenje.

Shell (shell) is in programma wêrmei jo kommando's skreaun yn in spesjale taal nei it bestjoeringssysteem kinne stjoere.

Bash stiet foar Bourne Again Shell. It is de meast foarkommende shell-taal dy't brûkt wurdt om te ynteraksje mei it bestjoeringssysteem. Ek de Bash-shell is de standert op macOS.

Kommandorigelynterface (Command Line Interface, CLI) is in metoade fan ynteraksje tusken in persoan en in kompjûter, wêrby't de brûker kommando's ynfiert fanút it toetseboerd, en de kompjûter, dy't dizze kommando's útfiert, berjochten werjaan yn tekstfoarm foar de brûker. It haadgebrûk fan 'e CLI is om aktuele ynformaasje te krijen oer bepaalde entiteiten, lykas bestannen, en om mei bestannen te wurkjen. De kommandorigelynterface moat wurde ûnderskieden fan 'e grafyske brûkersynterface (GUI), dy't primêr de mûs brûkt. De kommandorigelynterface wurdt faak oantsjutten as de kommandorigel.

Skrift (skript) is in lyts programma dat befettet in folchoarder fan shell kommando's. Skripten wurde skreaun nei bestannen, se kinne meardere kearen brûkt wurde. By it skriuwen fan skripts kinne jo fariabelen, betingsten, loops, funksjes en oare funksjes brûke.

No't wy de wichtige termen behannele hawwe, wol ik derop wize dat ik hjir de termen "Bash", "shell" en "kommandoline" wikseljend sil brûke, lykas ek de termen "directory" en "map".

Standert streamen, dy't wy hjir sille brûke is de standert ynfier (standert ynfier, stdin), standert útfier (standert útfier, stdout) en standert flaterútfier (standert flater, stderr).

As yn it foarbyld kommando's dy't hjirûnder sille wurde jûn, sille jo wat fine lykas my_whatever - dit betsjut dat dit fragmint ferfongen wurde moat troch wat fan jo. Bygelyks de namme fan in triem.

No, foardat jo trochgean mei de analyze fan 'e kommando's dêr't dit materiaal oan wijd is, litte wy har list en har koarte beskriuwingen besjen.

21 Bash kommando's

▍ Ynformaasje krije

  • man: Toant de brûkersgids (help) foar it kommando.
  • pwd: toant ynformaasje oer de wurkmap.
  • ls: toant de ynhâld fan in map.
  • ps: Hjirmei kinne jo ynformaasje besjen oer rinnende prosessen.

▍ Bestânsysteemmanipulaasje

  • cd: Feroarje de wurkmap.
  • touch: meitsje in triem.
  • mkdir: meitsje in map.
  • cp: Kopiearje in triem.
  • mv: Ferpleats of wiskje in triem.
  • ln: meitsje in keppeling.

▍I/O-omlieding en pipelines

  • <: trochferwizing stdin.
  • >: trochferwizing stdout.
  • |: pipe de útfier fan ien kommando nei de ynfier fan in oar kommando.

▍ Bestannen lêze

  • head: lês it begjin fan de triem.
  • tail: lês ein fan triem.
  • cat: Lês in bestân en print de ynhâld nei it skerm, of keppelje bestannen oan.

▍ Bestannen wiskje, prosessen stopje

  • rm: In triem wiskje.
  • kill: stopje it proses.

▍Sykje

  • grep: sykje foar ynformaasje.
  • ag: avansearre kommando foar sykjen.

▍Argivearjen

  • tar: argiven oanmeitsje en dêrmei wurkje.

Litte wy yn mear detail oer dizze kommando's prate.

Team Details

Om te begjinnen, litte wy omgean mei de kommando's, wêrfan de resultaten wurde útjûn yn 'e foarm stdout. Gewoanlik ferskine dizze resultaten yn in terminalfinster.

▍ Ynformaasje krije

man command_name: werjaan de kommando gids, dus help ynformaasje.

pwd: werjaan it paad nei de aktuele wurkmap. Yn 'e rin fan it wurkjen mei de kommandorigel moat de brûker faaks útfine wêr't hy yn it systeem is.

ls: werjaan de ynhâld fan in map. Dit kommando wurdt ek frij faak brûkt.

ls -a: ferburgen bestannen sjen litte. flagge tapast hjir -a kommando's ls. It brûken fan flaggen helpt om it gedrach fan 'e kommando's oan te passen.

ls -l: Toan detaillearre ynformaasje oer triemmen.

Tink derom dat flaggen kinne wurde kombinearre. Bygelyks - lykas dit: ls -al.

ps: Besjoch rinnende prosessen.

ps -e: Toan ynformaasje oer alle rinnende prosessen, net allinich dejingen dy't ferbûn binne mei de hjoeddeistige brûkersshell. Dit kommando wurdt faak brûkt yn dizze foarm.

▍ Bestânsysteemmanipulaasje

cd my_directory: wizigje wurkmap nei my_directory. Om ien nivo omheech te gean yn 'e mapbeam, brûk my_directory relative paad ../.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
cd opdracht

touch my_file: triem oanmeitsjen my_file lâns it opjûne paad.

mkdir my_directory: meitsje in map my_directory lâns it opjûne paad.

mv my_file target_directory: ferpleatse triem my_file oan map target_directory. As jo ​​de doelmap oantsjutte, moatte jo it absolute paad dernei brûke (en net in konstruksje lykas ../).

ploech mvkin ek brûkt wurde om triemmen of mappen omneame. It kin bygelyks sa útsjen:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: meitsje in kopy fan in triem my_source_file en set it yn in map target_directory.

ln -s my_source_file my_target_file: meitsje in symboalyske keppeling my_target_file per triem my_source_file. As jo ​​de keppeling feroarje, sil it orizjinele bestân ek feroarje.

As de triem my_source_file sil dan wiske wurde my_target_file sil bliuwe. Flagge -s kommando's ln kinne jo keppelings meitsje foar mappen.

Litte wy no prate oer I/O-omlieding en pipelines.

▍I/O-omlieding en pipelines

my_command < my_file: ferfangt de standert ynfierbestânbeskriuwing (stdin) per triem my_file. Dit kin nuttich wêze as it kommando wachtet op wat ynfier fan it toetseboerd, en dizze gegevens binne al bewarre yn in bestân.

my_command > my_file: ferwiist de resultaten fan it kommando troch, dus wat normaal yngean soe stdout en útfier nei it skerm, nei in triem my_file. As de triem my_file bestiet net - it is makke. As de triem bestiet, wurdt it oerskreaun.

Bygelyks, nei it útfieren fan it kommando ls > my_folder_contents.txt in teksttriem sil oanmakke wurde mei in list mei wat der yn de aktive wurkmap stiet.

As ynstee fan it symboal > brûke de konstruksje >>, dan, op betingst dat it bestân dêr't de útfier fan it kommando nei trochferwiisd wurdt bestiet, sil dit bestân net oerskreaun wurde. De gegevens wurde tafoege oan it ein fan dit bestân.

Litte wy no ris sjen nei it ferwurkjen fan gegevenspipeline.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
De útfier fan ien kommando wurdt fied yn 'e ynfier fan in oar kommando. It is as it ferbinen fan de iene piip mei de oare

first_command | second_command: conveyor symboal, |, wurdt brûkt om de útfier fan ien kommando nei in oar kommando te stjoeren. Wat it kommando oan 'e linkerkant fan' e beskreaune struktuer stjoert stdout, Falle yn stdin kommando rjochts fan it pipeline symboal.

Op Linux kinne gegevens wurde pipelined mei sawat elk goed foarme kommando. It wurdt faak sein dat alles yn Linux in pipeline is.

Jo kinne meardere kommando's keatling mei it pipeline-symboal. It sjocht der sa út:

first_command | second_command | third_command

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
In pipeline fan ferskate kommando's kin fergelike wurde mei in pipeline

Tink derom dat doe't it kommando oan de linkerkant fan it symboal |, útfiert wat oan stdout, wat se útfiert is fuortendaliks beskikber as stdin twadde team. Dat is, it docht bliken dat, mei help fan de pipeline, wy te krijen hawwe mei parallelle útfiering fan kommando's. Soms kin dit liede ta ûnferwachte resultaten. Details oer dit kinne wurde lêzen hjir.

Litte wy no prate oer it lêzen fan gegevens fan bestannen en werjaan se op it skerm.

▍ Bestannen lêze

head my_file: lêst rigels fan it begjin fan in triem en printsje se nei it skerm. Jo kinne net allinich de ynhâld fan 'e bestannen lêze, mar ek wat de kommando's útfiere stdinmei dit kommando as ûnderdiel fan 'e pipeline.

tail my_file: lêst rigels fan 'e ein fan' e triem. Dit kommando kin ek brûkt wurde yn in pipeline.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
Kop (kop) is foar, en sturt (sturt) is efter

As jo ​​wurkje mei gegevens mei help fan de pandas bibleteek, dan de kommando's head и tail moat dy bekend wêze. As dit net it gefal is, sjoch dan ris op 'e boppesteande figuer, en jo sille se maklik ûnthâlde.

Beskôgje oare manieren om bestannen te lêzen, litte wy prate oer it kommando cat.

team cat of drukt de ynhâld fan in bestân op it skerm ôf, of ferbynt meardere bestannen. It hinget ôf fan hoefolle triemmen wurde trochjûn oan dit kommando as oproppen.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
kat kommando

cat my_one_file.txt: as in inkele triem wurdt trochjûn oan dit kommando, it útfiert it nei stdout.

As jo ​​it twa triemmen of mear triemmen jouwe, dan gedraacht it oars.

cat my_file1.txt my_file2.txt: nei't jo ferskate bestannen as ynfier krigen hawwe, ferfetsje dit kommando har ynhâld en toant wat der bard is stdout.

As it resultaat fan gearfoeging fan bestân as in nij bestân bewarre wurde moat, kinne jo de operator brûke >:

cat my_file1.txt my_file2.txt > my_new_file.txt

No litte wy prate oer hoe't jo triemmen wiskje en prosessen stopje.

▍ Bestannen wiskje, prosessen stopje

rm my_file: triem wiskje my_file.

rm -r my_folder: wisket in map my_folder en alle bestannen en mappen dy't it befettet. Flagge -r jout oan dat it kommando sil rinne yn rekursive modus.

Brûk de flagge om foar te kommen dat it systeem elke kear om befêstiging freget as in triem of map wiske wurdt -f.

kill 012345: Stopt it oantsjutte rinnende proses, en jout it tiid om sierlik ôf te sluten.

kill -9 012345: Beëinigt it oantsjutte rinnende proses mei geweld. Sjoch flagge -s SIGKILL betsjut itselde as de flagge -9.

▍Sykje

Jo kinne ferskate kommando's brûke om gegevens te sykjen. Yn't bysonder - grep, ag и ack. Litte wy begjinne ús kunde mei dizze kommando's mei grep. Dit is in tiid-testen, betrouber kommando, dat lykwols stadiger is as oaren en net sa handich om te brûken as se binne.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
grep kommando

grep my_regex my_file: syktocht my_regex в my_file. As in wedstriid wurdt fûn, wurdt de hiele tekenrige weromjûn, foar elke wedstriid. Standert my_regex behannele as in reguliere útdrukking.

grep -i my_regex my_file: It sykjen wurdt útfierd op in case-ûngefoelige manier.

grep -v my_regex my_file: jout alle rigen werom dy't net befetsje my_regex. Flagge -v betsjut inversion, it liket op de operator NOT, fûn yn in protte programmeartalen.

grep -c my_regex my_file: Jout ynformaasje werom oer it oantal wedstriden fûn yn it bestân foar it sykpatroan.

grep -R my_regex my_folder: fiert in rekursive sykopdracht út yn alle bestannen dy't yn 'e opjûne map lizze en yn' e mappen dy't deryn nestele.

No litte wy it oer it team prate ag. Se kaam letter grep, it is flugger, it is handiger om mei te wurkjen.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
ag kommando

ag my_regex my_file: jout ynformaasje oer line nûmers, en de rigels sels, dêr't wedstriden waarden fûn mei my_regex.

ag -i my_regex my_file: It sykjen wurdt útfierd op in case-ûngefoelige manier.

team ag automatysk ferwurkje de triem .gitignore en slút út fan 'e útfier wat fûn wurdt yn' e mappen of bestannen yn dat bestân. It is hiel noflik.

ag my_regex my_file -- skip-vcs-ignores: ynhâld fan automatyske ferzjekontrôlebestannen (lykas .gitignore) wurdt net yn rekken brocht by it sykjen.

Boppedat, om te fertellen it team ag op hokker triempaden jo wolle útslute fan it sykjen, kinne jo in bestân oanmeitsje .agignore.

Oan it begjin fan dizze seksje hawwe wy it kommando neamd ack. Teams ack и ag hiel ferlykber, kinne wy ​​sizze dat se binne 99% útwikselber. Lykwols, it team ag wurket flugger, dêrom haw ik it beskreaun.

Litte wy no prate oer wurkjen mei argiven.

▍Argivearjen

tar my_source_directory: ferbynt bestannen út in map my_source_directory yn ien tarball-bestân. Sokke triemmen binne nuttich foar it oerdragen fan grutte sets fan triemmen oan immen.

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's
tar kommando

De tarball-bestannen generearre troch dit kommando binne bestannen mei de tafoeging .tar (Tape ARchive). It feit dat it wurd "tape" (tape) ferburgen is yn 'e namme fan it kommando en yn' e útwreiding fan 'e nammen fan 'e triemmen dy't it oanmakket, jout oan hoe lang dit kommando bestien hat.

tar -cf my_file.tar my_source_directory: makket in tarball-bestân mei de namme my_file.tar mei map ynhâld my_source_directory. Flagge -c stiet foar "create" (skepping), en de flagge -f as "bestân" (bestân).

Om bestannen út te heljen .tar-bestân, brûk it kommando tar mei flaggen -x ("extract", ekstraksje) en -f ("bestân", bestân).

tar -xf my_file.tar: extract triemmen út my_file.tar nei de aktuele wurkmap.

No litte wy prate oer hoe't jo komprimearje en dekomprimearje .tar-bestannen.

tar -cfz my_file.tar.gz my_source_directory: hjir mei help fan de flagge -z ("zip", kompresjealgoritme) jout oan dat it algoritme brûkt wurde moat om bestannen te komprimearjen gzip (GNUzip). Bestânskompresje besparret skiifromte by it opslaan fan sokke bestannen. As de bestannen pland binne om bygelyks oer te dragen oan oare brûkers, draacht dit by oan it rapper downloaden fan sokke bestannen.

Unzip triem .tar.gz kinne jo tafoegje in flagge -z nei it kommando extract ynhâld .tar-bestannen, dy't wy hjirboppe besprutsen. It sjocht der sa út:

tar -xfz my_file.tar.gz
Dêrby moat opmurken wurde dat it team tar D'r binne folle mear brûkbere flaggen.

Bash alias

Bash-aliassen (ek wol aliassen of ôfkoartings neamd) binne ûntworpen om ôfkoarte nammen fan kommando's of har sekwinsjes te meitsjen, wêrfan it gebrûk ynstee fan reguliere kommando's it wurk fersnelt. As jo ​​​​in alias hawwe bu, dy't it kommando ferberget python setup.py sdist bdist_wheel, dan om dit kommando te neamen, is it genôch om dizze alias te brûken.

Om sa'n alias te meitsjen, foegje gewoan it folgjende kommando ta oan it bestân ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

As jo ​​systeem hat net de triem ~/.bash_profile, dan kinne jo it sels meitsje mei it kommando touch. Nei it meitsjen fan de alias, start de terminal opnij, wêrnei't jo dizze alias kinne brûke. Yn dit gefal ferfangt de ynfier fan twa tekens de ynfier fan mear as trije dozen tekens fan it kommando, dat is bedoeld foar gearkomsten Python pakketten.

В ~/.bash_profile jo kinne aliassen tafoegje foar alle faak brûkte kommando's.

▍ Resultaten

Yn dizze post hawwe wy 21 populêre Bash-kommando's behannele en praat oer it meitsjen fan kommando-aliassen. As jo ​​​​ynteressearre binne yn dit ûnderwerp - sjoch in rige publikaasjes wijd oan Bash. it is Jo kinne in pdf-ferzje fan dizze publikaasjes fine. Ek, as jo Bash wolle leare, tink dan oan dat, lykas by elk oar programmearsysteem, praktyk de kaai is.

Dear readers! Hokker kommando's dy't nuttich binne foar begjinners soene jo tafoegje oan dyjingen dy't waarden besprutsen yn dit artikel?

Lês ek yn ús blog in searje publikaasjes oer bash-skripts

[blêdwizer] Bash foar begjinners: 21 nuttige kommando's

Boarne: www.habr.com

Add a comment