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.
→
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.
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 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
<
: herleistdin
.>
: herleistdout
.|
: 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 ../
.
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 mv
kan 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
: skep 'n kopie van 'n lêer
cp my_source_file target_directorymy_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.
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
'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
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 stdin
gebruik 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.
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.
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.
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.
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.
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
В ~/.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 -
Beste lesers! Watter opdragte wat nuttig is vir beginners sal jy byvoeg by dié wat in hierdie artikel bespreek is?
→
Bron: will.com