[boekmerk] Bash vir beginners: 21 nuttige opdragte

Die materiaal, waarvan die vertaling ons vandag publiseer, is bedoel vir diegene wat die Linux-opdragreël wil bemeester. Die vermoë om hierdie instrument effektief te gebruik, kan baie tyd bespaar. Ons sal veral praat oor die Bash-dop en 21 nuttige opdragte hier. Ons sal ook praat oor hoe om opdragvlae en Bash-aliasse te gebruik om die tik van lang instruksies te bespoedig.

[boekmerk] Bash vir beginners: 21 nuttige opdragte

Lees ook in ons blog 'n reeks publikasies oor bash-skrifte

Voorwaardes

Soos jy leer om met die Linux-opdragreël te werk, sal jy baie konsepte teëkom wat nuttig is om te navigeer. Sommige van hulle, soos "Linux" en "Unix", of "shell" en "terminaal", word soms verwar. Kom ons praat oor hierdie en ander belangrike terme.

Unix is 'n gewilde bedryfstelsel wat in die 1970's deur Bell Labs ontwikkel is. Haar kode was gesluit.

Linux is die gewildste Unix-agtige bedryfstelsel. Dit word nou op baie toestelle gebruik, insluitend rekenaars.

Terminal (terminaal), of terminale emulator is 'n program wat toegang tot die bedryfstelsel gee. Jy kan verskeie terminale vensters op dieselfde tyd oop hê.

dop (shell) is 'n program waarmee u opdragte wat in 'n spesiale taal geskryf is, na die bedryfstelsel kan stuur.

Bash staan ​​vir Bourne Again Shell. Dit is die mees algemene doptaal wat gebruik word om met die bedryfstelsel te kommunikeer. Die Bash-dop is ook die verstek op macOS.

Command line koppelvlak (Command Line Interface, CLI) is 'n metode van interaksie tussen 'n persoon en 'n rekenaar, wanneer dit gebruik word, voer die gebruiker opdragte vanaf die sleutelbord in, en die rekenaar, wat hierdie opdragte uitvoer, vertoon boodskappe in teksvorm vir die gebruiker. Die CLI word hoofsaaklik gebruik om bygewerkte inligting oor sekere entiteite te kry, byvoorbeeld oor lêers, en om met lêers te werk. Die opdragreëlkoppelvlak moet onderskei word van die grafiese gebruikerskoppelvlak (GUI), wat hoofsaaklik die muis gebruik. Die opdragreël-koppelvlak word dikwels bloot na verwys as die opdragreël.

Skripsie (script) is 'n klein program wat 'n reeks dopopdragte bevat. Skripte word na lêers geskryf, dit kan herhaaldelik gebruik word. Wanneer jy skrifte skryf, kan jy veranderlikes, voorwaardes, lusse, funksies en ander kenmerke gebruik.

Noudat ons die belangrike terme gedek het, wil ek daarop wys dat ek die terme "Bash", "shell" en "opdragreël" uitruilbaar hier sal gebruik, sowel as die terme "gids" en "gids".

standaard strome, wat ons hier sal gebruik, is die standaard invoer (standaard invoer, stdin), standaard uitset (standaard uitset, stdout) en standaardfoutuitvoer (standaardfout, stderr).

As in die voorbeeld opdragte wat hieronder gegee sal word, sal jy iets soos my_whatever - dit beteken dat hierdie fragment vervang moet word met iets van joune. Byvoorbeeld, die naam van 'n lêer.

Nou, voordat ons voortgaan met die ontleding van die opdragte waaraan hierdie materiaal gewy is, kom ons kyk na hul lys en hul kort beskrywings.

21 Bash-opdragte

▍Kry inligting

  • man: Vertoon die gebruikersgids (hulp) vir die opdrag.
  • pwd: vertoon inligting oor die werkgids.
  • ls: vertoon die inhoud van 'n gids.
  • ps: Laat jou toe om inligting oor lopende prosesse te sien.

▍ Lêerstelselmanipulasie

  • cd: verander werksgids.
  • touch: skep 'n lêer.
  • mkdir: skep 'n gids.
  • cp: Kopieer 'n lêer.
  • mv: Skuif of skrap 'n lêer.
  • ln: skep 'n skakel.

▍I/O herleiding en pyplyne

  • <: herlei stdin.
  • >: herlei stdout.
  • |: het die uitvoer van een opdrag na die invoer van 'n ander opdrag gestuur.

▍ Lees lêers

  • head: lees die begin van die lêer.
  • tail: lees einde van lêer.
  • cat: Lees 'n lêer en druk die inhoud daarvan na die skerm, of voeg lêers saam.

▍ Vee lêers uit, stop prosesse

  • rm: Vee 'n lêer uit.
  • kill: stop die proses.

▍Soek

  • grep: soek inligting.
  • ag: gevorderde opdrag om te soek.

▍Argiveer

  • tar: skep argiewe en werk daarmee.

Kom ons praat in meer detail oor hierdie opdragte.

Spanbesonderhede

Om mee te begin, kom ons gaan met die opdragte, waarvan die resultate in die vorm uitgereik word stdout. Gewoonlik verskyn hierdie resultate in 'n terminale venster.

▍Kry inligting

man command_name: vertoon die opdraggids, dws hulpinligting.

pwd: vertoon die pad na die huidige werkgids. In die loop van die werk met die opdragreël moet die gebruiker dikwels uitvind presies waar in die stelsel hy is.

ls: vertoon die inhoud van 'n gids. Hierdie opdrag word ook redelik gereeld gebruik.

ls -a: wys verborge lêers. vlag hier aangebring -a opdragte ls. Die gebruik van vlae help om die gedrag van die opdragte aan te pas.

ls -l: Vertoon gedetailleerde inligting oor lêers.

Let daarop dat vlae gekombineer kan word. Byvoorbeeld - soos volg: ls -al.

ps: Bekyk lopende prosesse.

ps -e: Vertoon inligting oor alle lopende prosesse, nie net dié wat met die huidige gebruikersdop geassosieer word nie. Hierdie opdrag word dikwels in hierdie vorm gebruik.

▍ Lêerstelselmanipulasie

cd my_directory: verander werksgids na my_directory. Om een ​​vlak in die gidsboom op te beweeg, gebruik my_directory relatiewe pad ../.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
cd opdrag

touch my_file: lêer skepping my_file langs die gegewe pad.

mkdir my_directory: skep 'n gids my_directory langs die gegewe pad.

mv my_file target_directory: skuif lêer my_file na die gids target_directory. Wanneer jy die teikengids spesifiseer, moet jy die absolute pad daarheen gebruik (en nie 'n konstruksie soos ../).

span mvkan ook gebruik word om lêers of dopgehou te hernoem. Dit kan byvoorbeeld so lyk:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: skep 'n kopie van 'n lêer my_source_file en plaas dit in 'n gids target_directory.

ln -s my_source_file my_target_file: skep 'n simboliese skakel my_target_file per lêer my_source_file. As jy die skakel verander, sal die oorspronklike lêer ook verander.

As die lêer my_source_file sal dan uitgevee word my_target_file sal bly. Vlag -s opdragte ln laat jou toe om skakels vir gidse te skep.

Kom ons praat nou oor I/O-herleiding en pyplyne.

▍I/O herleiding en pyplyne

my_command < my_file: vervang die standaard invoerlêerbeskrywing (stdin) per lêer my_file. Dit kan nuttig wees as die opdrag wag vir 'n mate van invoer vanaf die sleutelbord, en hierdie data is reeds in 'n lêer gestoor.

my_command > my_file: herlei die resultate van die opdrag, dit wil sê wat normaalweg sou ingaan stdout en uitvoer na die skerm, na 'n lêer my_file. As die lêer my_file bestaan ​​nie – dit word geskep. As die lêer bestaan, word dit oorgeskryf.

Byvoorbeeld, na die uitvoering van die opdrag ls > my_folder_contents.txt 'n tekslêer sal geskep word wat 'n lys bevat van wat in die huidige werkgids is.

Indien in plaas van die simbool > die konstruksie gebruik >>, dan, mits die lêer waarna die uitvoer van die opdrag herlei word bestaan, sal hierdie lêer nie oorskryf word nie. Die data sal aan die einde van hierdie lêer bygevoeg word.

Kom ons kyk nou na die verwerking van datapyplyn.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
Die uitvoer van een opdrag word in die invoer van 'n ander opdrag ingevoer. Dit is soos om een ​​pyp aan 'n ander te koppel

first_command | second_command: vervoerband simbool, |, word gebruik om die uitvoer van een opdrag na 'n ander opdrag te stuur. Waarheen die opdrag aan die linkerkant van die beskryfde struktuur stuur stdout, Val in stdin opdrag regs van die pyplyn simbool.

Op Linux kan data deur byna enige goed gevormde opdrag gebruik word. Daar word dikwels gesê dat alles in Linux 'n pyplyn is.

Jy kan verskeie opdragte ketting met die pyplyn-simbool. Dit lyk so:

first_command | second_command | third_command

[boekmerk] Bash vir beginners: 21 nuttige opdragte
'n Pyplyn van verskeie opdragte kan met 'n pyplyn vergelyk word

Let daarop dat wanneer die opdrag aan die linkerkant van die simbool |, uitsette iets aan stdout, wat sy uitsette is onmiddellik beskikbaar as stdin tweede span. Dit wil sê, dit blyk dat, met behulp van die pyplyn, ons te doen het met parallelle uitvoering van opdragte. Soms kan dit tot onverwagte resultate lei. Besonderhede hieroor kan gelees word hier.

Kom ons praat nou oor die lees van data van lêers en die vertoon daarvan op die skerm.

▍ Lees lêers

head my_file: lees lyne vanaf die begin van 'n lêer en druk dit na die skerm. U kan nie net die inhoud van die lêers lees nie, maar ook waarin die opdragte uitgevoer word stdingebruik hierdie opdrag as deel van die pyplyn.

tail my_file: lees reëls vanaf die einde van die lêer. Hierdie opdrag kan ook in 'n pyplyn gebruik word.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
Kop (kop) is voor, en stert (stert) is agter

As jy met data werk deur die pandas-biblioteek te gebruik, dan is die opdragte head и tail behoort aan jou bekend te wees. As dit nie die geval is nie, kyk na die bostaande figuur, en jy sal hulle maklik onthou.

Oorweeg ander maniere om lêers te lees, kom ons praat oor die opdrag cat.

Span cat druk óf die inhoud van 'n lêer na die skerm, óf voeg verskeie lêers saam. Dit hang af van hoeveel lêers na hierdie opdrag oorgedra word wanneer dit geroep word.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
kat opdrag

cat my_one_file.txt: wanneer 'n enkele lêer na hierdie opdrag oorgedra word, voer dit dit uit na stdout.

As jy dit twee lêers of meer lêers gee, tree dit anders op.

cat my_file1.txt my_file2.txt: nadat verskeie lêers as invoer ontvang is, voeg hierdie opdrag hul inhoud saam en wys wat in gebeur het stdout.

As die resultaat van lêersamevoeging as 'n nuwe lêer gestoor moet word, kan jy die operateur gebruik >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Kom ons praat nou oor hoe om lêers uit te vee en prosesse te stop.

▍ Vee lêers uit, stop prosesse

rm my_file: verwyder lêer my_file.

rm -r my_folder: vee 'n gids uit my_folder en al die lêers en vouers wat dit bevat. Vlag -r dui aan dat die opdrag in rekursiewe modus sal loop.

Gebruik die vlag om te verhoed dat die stelsel vir bevestiging vra elke keer as 'n lêer of gids uitgevee word -f.

kill 012345: Stop die gespesifiseerde loopproses, wat dit tyd gee om grasieus af te sluit.

kill -9 012345: Beëindig die gespesifiseerde loopproses met geweld. Kyk vlag -s SIGKILL beteken dieselfde as die vlag -9.

▍Soek

Jy kan verskillende opdragte gebruik om data te soek. In die besonder - grep, ag и ack. Kom ons begin ons kennismaking met hierdie opdragte met grep. Dit is 'n beproefde, betroubare opdrag, wat egter stadiger is as ander en nie so gerieflik om te gebruik soos hulle is nie.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
grep opdrag

grep my_regex my_file: soektogte my_regex в my_file. As 'n passing gevind word, word die hele string vir elke passing teruggestuur. Verstek my_regex as 'n gereelde uitdrukking behandel word.

grep -i my_regex my_file: Die soektog word op 'n kas-onsensitiewe wyse uitgevoer.

grep -v my_regex my_file: gee alle rye terug wat nie bevat nie my_regex. Vlag -v beteken inversie, dit lyk soos die operateur NOT, gevind in baie programmeertale.

grep -c my_regex my_file: Wys inligting oor die aantal passings vir die gesoekte patroon wat in die lêer gevind word.

grep -R my_regex my_folder: voer 'n rekursiewe soektog uit in alle lêers wat in die gespesifiseerde vouer geleë is en in die vouers wat daarin geneste is.

Kom ons praat nou oor die span ag. Sy het later gekom grep, dit is vinniger, dit is geriefliker om daarmee te werk.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
ag opdrag

ag my_regex my_file: gee inligting terug oor lynnommers, en die lyne self, waarin passings gevind is met my_regex.

ag -i my_regex my_file: Die soektog word op 'n kas-onsensitiewe wyse uitgevoer.

Span ag verwerk die lêer outomaties .gitignore en sluit van die uitvoer uit wat gevind word in die dopgehou of lêers wat in daardie lêer gelys word. Dit is baie gemaklik.

ag my_regex my_file -- skip-vcs-ignores: inhoud van outomatiese weergawebeheerlêers (soos .gitignore) word nie in die soektog in ag geneem nie.

Daarbenewens, om die span te vertel ag op watter lêerpaaie jy van die soektog wil uitsluit, kan jy 'n lêer skep .agignore.

Aan die begin van hierdie afdeling het ons die opdrag genoem ack. Spanne ack и ag baie soortgelyk, ons kan sê dat hulle 99% uitruilbaar is. Die span egter ag werk vinniger, daarom het ek dit beskryf.

Kom ons praat nou oor die werk met argiewe.

▍Argiveer

tar my_source_directory: koppel lêers van 'n gids aan my_source_directory in 'n enkele tarball-lêer. Sulke lêers is nuttig om groot stelle lêers na iemand oor te dra.

[boekmerk] Bash vir beginners: 21 nuttige opdragte
teer opdrag

Die tarball-lêers wat deur hierdie opdrag gegenereer word, is lêers met die uitbreiding .tar (Band Argief). Die feit dat die woord "tape" (tape) versteek is in die naam van die opdrag en in die uitbreiding van die name van die lêers wat dit skep, dui aan hoe lank hierdie opdrag bestaan.

tar -cf my_file.tar my_source_directory: skep 'n tarball-lêer met die naam my_file.tar met gidsinhoud my_source_directory. Vlag -c staan ​​vir "skep" (skepping), en die vlag -f as "lêer" (lêer).

Om lêers uit te haal .tar-lêer, gebruik die opdrag tar met vlae -x ("uittreksel", onttrekking) en -f ("lêer", lêer).

tar -xf my_file.tar: onttrek lêers uit my_file.tar na die huidige werkgids.

Kom ons praat nou oor hoe om saam te druk en te dekomprimeer .tar-lêers.

tar -cfz my_file.tar.gz my_source_directory: hier met behulp van die vlag -z ("zip", kompressie-algoritme) dui aan dat die algoritme gebruik moet word om lêers saam te pers gzip (GNUzip). Lêerkompressie spaar skyfspasie wanneer sulke lêers gestoor word. As die lêers byvoorbeeld beplan word om na ander gebruikers oorgedra te word, dra dit by tot vinniger aflaai van sulke lêers.

Unzip lêer .tar.gz jy kan 'n vlag byvoeg -z na die onttrek inhoud opdrag .tar-lêers, wat ons hierbo bespreek het. Dit lyk so:

tar -xfz my_file.tar.gz
Daar moet kennis geneem word dat die span tar Daar is baie meer nuttige vlae.

Bash aliasse

Bash-aliasse (ook genoem aliasse of afkortings) is ontwerp om verkorte name van opdragte of hul rye te skep, waarvan die gebruik in plaas van gereelde opdragte werk versnel. As jy 'n alias het bu, wat die opdrag versteek python setup.py sdist bdist_wheel, dan om hierdie opdrag te noem, is dit genoeg om hierdie alias te gebruik.

Om so 'n alias te skep, voeg net die volgende opdrag by die lêer ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

As jou stelsel nie die lêer het nie ~/.bash_profile, dan kan jy dit self skep deur die opdrag te gebruik touch. Nadat u die alias geskep het, herbegin die terminale, waarna u hierdie alias kan gebruik. In hierdie geval vervang die invoer van twee karakters die invoer van meer as drie dosyn karakters van die opdrag, wat bedoel is vir vergaderings Python-pakkette.

В ~/.bash_profile jy kan aliasse byvoeg vir enige gereelde opdragte.

▍ Resultate

In hierdie pos het ons 21 gewilde Bash-opdragte gedek en gepraat oor die skep van opdragaliasse. As jy belangstel in hierdie onderwerp - hier 'n reeks publikasies opgedra aan Bash. Hier Jy kan 'n pdf-weergawe van hierdie publikasies vind. Ook, as jy Bash wil leer, onthou dat, soos met enige ander programmeringstelsel, oefening die sleutel is.

Beste lesers! Watter opdragte wat nuttig is vir beginners sal jy byvoeg by dié wat in hierdie artikel bespreek is?

Lees ook in ons blog 'n reeks publikasies oor bash-skrifte

[boekmerk] Bash vir beginners: 21 nuttige opdragte

Bron: will.com

Voeg 'n opmerking