[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon

Materialet som vi publicerar idag Àr avsett för dem som vill lÀra sig kommandoraden i Linux. Att effektivt anvÀnda detta verktyg sparar mycket tid. I synnerhet handlar det om kommandotolken Bash och 21 anvÀndbara kommandon. Vi kommer ocksÄ att prata om hur man anvÀnder kommandoflaggor och Bash-aliasar, som gör det möjligt att snabba upp inmatningen av lÄnga instruktioner.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon

→ LĂ€s Ă€ven i vĂ„r blogg en serie av publikationer om bash-skript

Termer

NÀr du lÀr dig att arbeta med kommandoraden i Linux kan du stöta pÄ mÄnga begrepp dÀr det Àr bra att veta vad de betyder. Vissa av dem, som "Linux" och "Unix", eller "kommandotolk" och "terminal", kan ibland förvÀxlas. Vi ska diskutera dessa och andra viktiga termer.

Unix Àr ett populÀrt operativsystem som utvecklades av Bell Labs under 1970-talet. Dess kod var stÀngd.

Linux Àr det mest populÀra Unix-liknande operativsystemet. Det anvÀnds idag pÄ mÄnga enheter, inklusive datorer.

Terminal (terminal), eller terminalemulator — Ă€r ett program som ger tillgĂ„ng till operativsystemet. Flera terminalfönster kan öppnas samtidigt.

Tolk (shell) — Ă€r ett program som gör det möjligt att skicka kommandon till operativsystemet, skrivna pĂ„ ett specifikt sprĂ„k.

Bash stÄr för Bourne Again SHell. Detta Àr det mest spridda kommandotolksprÄket som anvÀnds för att interagera med operativsystemet. Dessutom anvÀnds Bash-tolken som standard i macOS.

KommandoradsgrĂ€nssnitt (Command Line Interface, CLI) — Ă€r ett sĂ€tt för mĂ€nniskor att interagera med datorer, dĂ€r anvĂ€ndaren skriver in kommandon med tangentbordet, och datorn utför dessa kommandon och visar meddelanden i textformat till anvĂ€ndaren. CLI anvĂ€nds frĂ€mst för att hĂ€mta ny information om vissa entiteter, till exempel filer, och för att arbeta med filer. KommandoradsgrĂ€nssnittet bör sĂ€rskiljas frĂ„n det grafiska anvĂ€ndargrĂ€nssnittet (Graphical User Interface, GUI), dĂ€r musen frĂ€mst anvĂ€nds. KommandoradsgrĂ€nssnittet kallas ofta bara för kommandoraden.

Skript (script) — ett litet program som innehĂ„ller en sekvens av kommandon för kommandotolken. Skript sparas i filer och kan anvĂ€ndas flera gĂ„nger. Vid skrivande av skript kan man anvĂ€nda variabler, villkorssatser, loopar, funktioner och andra möjligheter.

Nu nÀr vi har gÄtt igenom viktiga termer vill jag pÄpeka att jag hÀr kommer att anvÀnda termerna "Bash", "skalk" och "kommandorad" som utbytbara, liksom begreppen "katalog" (directory) och "mapp" (folder).

Standard flöden, som vi kommer att anvĂ€nda hĂ€r — Ă€r standardinmatning (standard input, stdin), standardutmatning (standard output, stdout) och standardfelutmatning (standard error, stderr).

Om i kommandoreferenserna nedan du möter nĂ„got som my_whatever — betyder det att detta fragment ska ersĂ€ttas med nĂ„got eget. Till exempel — filnamnet.

Nu, innan vi gÄr in pÄ kommandona som detta material handlar om, lÄt oss ta en titt pÄ deras lista och korta beskrivningar.

21 Bash-kommandon

▍InhĂ€mtning av information

  • man: visar anvĂ€ndarmanualen (hjĂ€lpinformation) för kommandot.
  • pwd: visar information om den aktuella katalogen.
  • ls: visar innehĂ„llet i katalogen.
  • ps: tillhandahĂ„ller information om aktiva processer.

▍Filhantering

  • cd: Ă€ndra aktuell katalog.
  • touch: skapa en fil.
  • mkdir: skapa en katalog.
  • cp: kopiera en fil.
  • mv: flytta eller ta bort en fil.
  • ln: skapa en lĂ€nk.

▍Omstyrning av in- och utdata och rörledningar

  • <: omstyrning stdin.
  • >: omstyrning stdout.
  • |: omstyrning med hjĂ€lp av en rörledning frĂ„n en kommandos utdata till en annan kommandoingĂ„ng.

▍LĂ€sa filer

  • head: lĂ€sa början av en fil.
  • tail: lĂ€sa slutet av en fil.
  • cat: lĂ€sa en fil och skriva ut dess innehĂ„ll pĂ„ skĂ€rmen eller konkatenation av filer.

▍Ta bort filer, stoppa processer

  • rm: ta bort en fil.
  • kill: stoppa en process.

▍Sökning

  • grep: söka information.
  • ag: avancerat kommando för sökning.

▍Arkivering

  • tar: skapa arkiv och arbeta med dem.

LÄt oss prata mer om dessa kommandon.

Detaljer om kommandon

Först lÄt oss kika pÄ kommandon vars resultat presenteras i form av stdout. Vanligtvis dyker dessa resultat upp i terminalfönstret.

▍InhĂ€mtning av information

man command_name: visar manualen för kommandot, det vill sĂ€ga — hjĂ€lpinformation.

pwd: skriv ut sökvÀgen till den aktuella arbetskatalogen. NÀr man arbetar med kommandoraden behöver anvÀndaren ofta veta var i systemet han eller hon befinner sig.

ls: skriv ut innehÄllet i katalogen. Detta kommando anvÀnds ocksÄ ganska ofta.

ls -a: skriv ut dolda filer. HÀr anvÀnds flaggan -a kommandon ls. Att anvÀnda flaggor hjÀlper till att stÀlla in kommandonas beteende.

ls -l: skriv ut detaljerad information om filer.

Observera att flaggor kan kombineras. Till exempel — sĂ„ hĂ€r: ls -al.

ps: visa körande processer.

ps -e: skriv ut information om alla körande processer, inte bara de som Àr kopplade till den aktuella anvÀndarens skal. Detta kommando anvÀnds ofta just i denna form.

▍Filhantering

cd my_directory: Àndra arbetskatalog till my_directory. För att gÄ upp ett nivÄ i katalogtrÀdet, anvÀnd som my_directory relativ sökvÀg ../.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Kommandot cd

touch my_file: skapa en fil my_file pÄ den angivna sökvÀgen.

mkdir my_directory: skapa en mapp my_directory pÄ den angivna sökvÀgen.

mv my_file target_directory: flytta filen my_file till mappen target_directory. NÀr du anger mÄlkatalogen mÄste du anvÀnda den absoluta sökvÀgen till den (och inte nÄgot som liknar ../).

Kommandot mv, kan ocksÄ anvÀndas för att döpa om filer eller mappar. Till exempel kan det se ut sÄ hÀr:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: skapa en kopia av filen my_source_file och placera den i mappen target_directory.

ln -s my_source_file my_target_file: skapa en symbolisk lÀnk my_target_file till filen my_source_file. Om du Àndrar lÀnken kommer den ursprungliga filen ocksÄ att Àndras.

Om filen my_source_file tas bort, förblir my_target_file . Flaggan -s kommandon ln tillÄter ocksÄ att skapa lÀnkar till kataloger.

Nu ska vi prata om omdirigering av in- och utdata och rörledningar.

▍Omstyrning av in- och utdata och rörledningar

my_command < my_file: ersÀtter filbeskrivaren för standardingÄngen (stdin) med filen my_file. Detta kan vara anvÀndbart om kommandot förvÀntar sig inmatning av vissa data frÄn tangentbordet och dessa data Àr sparade i en fil.

my_command > my_file: omdirigerar resultaten frĂ„n kommandot, det vill sĂ€ga det som normalt gĂ„r till stdout och skrivs ut pĂ„ skĂ€rmen, till filen my_file. Om filen my_file inte finns — skapas den. Om filen finns — skrivs den över.

Till exempel, efter att ha kört kommandot ls > my_folder_contents.txt skapas en textfil som innehÄller en lista över vad som finns i den aktuella arbetskatalogen.

Om du istÀllet för symbolen > anvÀnder konstruktionen >>, sÄ om det finns en fil till vilken kommandots utdata dirigeras, kommer den filen inte att skrivas över. Data kommer att lÀggas till i slutet av den filen.

LÄt oss nu titta pÄ rörlig databehandling.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Det som en kommando ger ut matas in som nÀsta kommando. Det liknar att koppla ihop en rörledning med en annan.

first_command | second_command: rörsymbolen, |, anvÀnds för att skicka resultaten frÄn ett kommando till ett annat. Det som kommandot till vÀnster i den beskrivna konstruktionen skickar i stdout, gÄr in i stdin kommandot som finns till höger om rörsymbolen.

I Linux kan rörlig databehandling organiseras med nÀstan vilket korrekt format kommando som helst. Man sÀger ofta att allt i Linux Àr ett rör.

Med rörsymbolen kan man kedja flera kommandon. Det ser ut sÄ hÀr:

first_command | second_command | third_command

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Ett rör av flera kommandon kan jÀmföras med en pipeline.

Observera att nÀr kommandot som ligger till vÀnster om symbolen |, skriver ut nÄgot till stdout, sÄ blir det som det skrev ut omedelbart tillgÀngligt som stdin det andra kommandot. Det visar sig att vi genom att anvÀnda rör har att göra med parallell exekvering av kommandon. Ibland kan detta leda till ovÀntade resultat. Mer information om detta kan lÀsas. hÀr.

LÄt oss nu prata om att lÀsa data frÄn filer och att skriva ut dem pÄ skÀrmen.

▍LĂ€sa filer

head my_file: lÀser rader frÄn början av filen och skriver ut dem pÄ skÀrmen. Man kan lÀsa inte bara innehÄllet i filer, utan ocksÄ det som kommandon skriver ut i stdin, vilket anvÀnder detta kommando som en del av röret.

tail my_file: lÀser rader frÄn slutet av filen. Detta kommando kan ocksÄ anvÀndas i röret.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Head (huvud) Àr framme, och tail (svans) Àr bakÄt.

Om du arbetar med data och anvÀnder pandas-biblioteket, dÄ bör kommandona head och tail vara bekanta för dig. Om inte, titta pÄ bilden ovan, och du kommer att komma ihÄg dem utan problem.

LÄt oss övervÀga andra sÀtt att lÀsa filer, vi pratar om kommandot cat.

Team cat antingen skriver ut innehÄllet i filen pÄ skÀrmen eller sammanfogar flera filer. Det beror pÄ hur mÄnga filer som getts till detta kommando vid anropet.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Kommandot cat

cat my_one_file.txt: nĂ€r detta kommando fĂ„r en fil — skriver det ut den. stdout.

Om du skickar tvÄ filer eller fler, sÄ beter den sig annorlunda.

cat my_file1.txt my_file2.txt: nÀr du fÄr flera filer som indata kommer detta kommando att konkatenera deras innehÄll och visa resultatet i stdout.

Om resultatet av konkateneringen av filer behöver sparas som en ny fil, kan du anvÀnda operatorn >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Nu ska vi tala om hur man tar bort filer och stoppar processer.

▍Ta bort filer, stoppa processer

rm my_file: tar bort filen my_file.

rm -r my_folder: tar bort mappen my_folder och alla filer och mappar som finns i den. Flaggan -r anger att kommandot kommer att fungera i rekursivt lÀge.

För att systemet inte ska be om bekrÀftelse varje gÄng du tar bort en fil eller mapp, anvÀnd flaggan -f.

kill 012345: stoppar den angivna aktiva processen, vilket ger den tid att avsluta korrekt.

kill -9 012345: tvingar den angivna igÄngsatta processen att avslutas. Flaggan av typen -s SIGKILL betyder samma sak som flaggan -9.

▍Sökning

För att söka efter data kan du anvĂ€nda olika kommandon. I synnerhet — grep, ag och ack. LĂ„t oss börja vĂ„r bekantskap med dessa kommandon med grep. Detta Ă€r ett beprövat, pĂ„litligt kommando, som dock Ă€r lĂ„ngsammare Ă€n andra och inte sĂ„ anvĂ€ndarvĂ€nligt.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Kommandot grep

grep my_regex my_file: utför en sökning efter my_regex. pÄ my_fileVid upptÀckta trÀffar returneras hela raden för varje trÀff. Som standard my_regex. tolkas som ett reguljÀrt uttryck.

grep -i my_regex my_file: sökningen utförs utan att ta hÀnsyn till versaler.

grep -v my_regex my_file: returnerar alla rader som inte innehÄller my_regex.. Flaggan -v betyder invertering; den pÄminner om operatorn NOT, som finns i mÄnga programmeringssprÄk.

grep -c my_regex my_file: returnerar information om antalet trÀffar med den sökta mönstret hittades i filen.

grep -R my_regex my_folder: utför en rekursiv sökning i alla filer som finns i den angivna mappen och i de mappar som ligger under den.

Nu ska vi tala om kommandot ag. Det kom senare, grepoch Àr snabbare och enklare att arbeta med.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Kommandot ag

ag my_regex my_file: returnerar information om radnummer och sjÀlva raderna dÀr trÀffar med my_regex..

ag -i my_regex my_file: sökningen utförs utan att ta hÀnsyn till versaler.

Team ag hanterar automatiskt filen .gitignore och utesluter frÄn utskriften sÄdant som hittats i mappar eller filer som rÀknas upp i denna fil. Detta Àr mycket praktiskt.

ag my_regex my_file --skip-vcs-ignores: innehÄllet i filerna för automatiska versionskontrollsystem (som .gitignore) beaktas inte vid sökning.

Dessutom, för att ange för teamet ag vilka filvÀgar som ska uteslutas frÄn sökningen kan du skapa en fil .agignore.

I början av detta avsnitt nÀmnde vi kommandot ack. Kommandon ack och ag Àr mycket lika, man kan sÀga att de Àr ömsesidigt utbytbara till 99%. Men kommandot ag Àr snabbare, dÀrför har jag beskrivit just det.

Nu pratar vi om att arbeta med arkiv.

▍Arkivering

tar my_source_directory: slÄr samman filer frÄn mappen my_source_directory till en tarball-fil. SÄdana filer anvÀnds ofta för att överföra stora uppsÀttningar av filer till nÄgon.

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon
Kommandot tar

Tarball-filer som skapas av detta kommando har filÀndelsen .tar (Tape ARchive). Det faktum att ordet "tape" (band) Àr dolt i kommandots namn och filnamn som det skapar, visar hur lÀnge detta kommando har funnits.

tar -cf my_file.tar my_source_directory: skapar en tarball-fil med namnet my_file.tar med innehÄllet i mappen my_source_directory. Flaggan -c översÀtts som "create" (skapa), och flaggan -f som "file" (fil).

För att extrahera filer som finns i .tar-filen anvÀnds kommandot tar c flaggorna -x ("extract", extrahera) och -f ("file", fil).

tar -xf my_file.tar: extraherar filer frÄn my_file.tar till den aktuella arbetskatalogen.

Nu pratar vi om hur man komprimerar och dekomprimerar .tar-filer.

tar -cfz my_file.tar.gz my_source_directory: hÀr, med hjÀlp av flaggan -z ("zip", komprimeringsalgoritm) anges att en komprimeringsalgoritm ska anvÀndas för att komprimera filerna gzip (GNU zip). Att komprimera filerna sparar diskutrymme vid lagring av sÄdana filer. Om filerna dessutom ska överföras till andra anvÀndare underlÀttar det snabbare nedladdningar av sÄdana filer.

Att packa upp en fil .tar.gz kan göras genom att lÀgga till flaggan -z till kommandot för att extrahera innehÄllet .tar-filer, som vi diskuterade ovan. Det ser ut sÄ hÀr:

tar -xfz my_file.tar.gz
Det bör noteras att kommandot tar har mÄnga fler anvÀndbara flaggor.

Bash-aliaser

Bash-aliaser (de kallas ocksÄ för alias eller förkortningar) Àr avsedda för att skapa förkortade namn för kommandon eller kommandokedjor, vars anvÀndning istÀllet för vanliga kommandon snabbar upp arbetet. Om du till exempel har ett alias bu, som döljer kommandot python setup.py sdist bdist_wheel, sÄ rÀcker det att anvÀnda detta alias för att köra kommandot.

För att skapa en sĂ„dan alias rĂ€cker det att lĂ€gga till följande kommando i filen ˜/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Om din maskin inte har filen ˜/.bash_profile, kan du skapa den sjĂ€lv med kommandot touch. Efter att aliaset har skapats, starta om terminalen, sĂ„ kan du anvĂ€nda detta alias. I det hĂ€r fallet ersĂ€tter inmatningen av tvĂ„ tecken mer Ă€n tre dussin tecken av kommandot, som Ă€r avsett för kompilering av Python-paket.

I ˜/.bash_profile Du kan lĂ€gga till alias för alla ofta anvĂ€nda kommandon.

▍Sammanfattning

I detta material har vi granskats 21 populĂ€ra Bash-kommandon och pratat om att skapa alias för kommandon. Om du Ă€r intresserad av detta Ă€mne — hĂ€r en serie artiklar dedikerade till Bash. HĂ€r Du kan hitta en pdf-version av dessa publikationer. Dessutom, om du vill lĂ€ra dig Bash, kom ihĂ„g att praktisk övning Ă€r viktigt, precis som vid inlĂ€rning av vilket annat programsystem som helst.

KÀra lÀsare! Vilka kommandon som Àr anvÀndbara för nybörjare skulle du lÀgga till dem som granskades i denna artikel?

→ LĂ€s Ă€ven i vĂ„r blogg en serie av publikationer om bash-skript

[Spara i bokmÀrken] Bash för nybörjare: 21 anvÀndbara kommandon

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster