[bokmärkt] Bash för nybörjare: 21 användbara kommandon

Materialet, vars översättning vi publicerar idag, är avsett för dem som vill behärska kommandoraden i Linux. Möjligheten att använda detta verktyg effektivt kan spara mycket tid. I synnerhet kommer vi att prata om Bash-skalet och 21 användbara kommandon här. Vi kommer också att prata om hur man använder kommandoflaggor och Bash-alias för att påskynda skrivningen av långa instruktioner.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon

Läs även i vår blogg en serie publikationer om bash-manus

Villkor

När du lär dig att arbeta med Linux-kommandoraden kommer du att stöta på många koncept som är användbara att navigera. Vissa av dem, som "Linux" och "Unix", eller "shell" och "terminal", är ibland förvirrade. Låt oss prata om dessa och andra viktiga termer.

Unix är ett populärt operativsystem som utvecklades av Bell Labs på 1970-talet. Hennes kod stängdes.

Linux är det mest populära Unix-liknande operativsystemet. Det används nu på många enheter, inklusive datorer.

Terminal (terminal), eller terminalemulator är ett program som ger åtkomst till operativsystemet. Du kan ha flera terminalfönster öppna samtidigt.

skal (shell) är ett program som låter dig skicka kommandon skrivna på ett speciellt språk till operativsystemet.

Bash står för Bourne Again Shell. Det är det vanligaste skalspråket som används för att interagera med operativsystemet. Bash-skalet är också standard på macOS.

Kommandoradsgränssnitt (Command Line Interface, CLI) är en metod för interaktion mellan en person och en dator, med vilken användaren matar in kommandon från tangentbordet, och datorn, som utför dessa kommandon, visar meddelanden i textform för användaren. Den huvudsakliga användningen av CLI är att få uppdaterad information om vissa enheter, såsom filer, och att arbeta med filer. Kommandoradsgränssnittet bör särskiljas från det grafiska användargränssnittet (GUI), som i första hand använder musen. Kommandoradsgränssnittet kallas ofta helt enkelt för kommandoraden.

Manus (script) är ett litet program som innehåller en sekvens av skalkommandon. Skript skrivs till filer, de kan användas upprepade gånger. När du skriver skript kan du använda variabler, villkor, loopar, funktioner och andra funktioner.

Nu när vi har täckt de viktiga termerna vill jag påpeka att jag kommer att använda termerna "Bash", "shell" och "kommandorad" omväxlande här, liksom termerna "katalog" och "mapp".

standard strömmar, som vi kommer att använda här är standardingången (standardingång, stdin), standardutgång (standardutgång, stdout) och standardfelutgång (standardfel, stderr).

Om i exemplet kommandon som kommer att ges nedan hittar du något liknande my_whatever - detta betyder att det här fragmentet måste ersättas med något av ditt. Till exempel namnet på en fil.

Nu, innan vi fortsätter med analysen av kommandona som detta material är tillägnat, låt oss ta en titt på deras lista och deras korta beskrivningar.

21 Bash-kommandon

▍Hämta information

  • man: Visar användarhandboken (hjälp) för kommandot.
  • pwd: visar information om arbetskatalogen.
  • ls: visar innehållet i en katalog.
  • ps: Låter dig se information om pågående processer.

▍Manipering av filsystem

  • cd: ändra arbetskatalog.
  • touch: skapa en fil.
  • mkdir: skapa en katalog.
  • cp: Kopiera en fil.
  • mv: Flytta eller ta bort en fil.
  • ln: skapa en länk.

▍I/O-omdirigering och pipelines

  • <: omdirigera stdin.
  • >: omdirigera stdout.
  • |: skickade utdata från ett kommando till indata från ett annat kommando.

▍ Läser filer

  • head: läs början av filen.
  • tail: läs slutet av filen.
  • cat: Läs en fil och skriv ut dess innehåll på skärmen, eller sammanfoga filer.

▍Ta bort filer, stoppa processer

  • rm: Ta bort en fil.
  • kill: stoppa processen.

▍Sök

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

▍Arkivering

  • tar: skapa arkiv och arbeta med dem.

Låt oss prata mer om dessa kommandon.

Lagdetaljer

Till att börja med, låt oss ta itu med kommandona, vars resultat utfärdas i formuläret stdout. Vanligtvis visas dessa resultat i ett terminalfönster.

▍Hämta information

man command_name: visa kommandoguiden, d.v.s. hjälpinformation.

pwd: visa sökvägen till den aktuella arbetskatalogen. Under arbetet med kommandoraden behöver användaren ofta ta reda på exakt var i systemet han befinner sig.

ls: visa innehållet i en katalog. Detta kommando används också ganska ofta.

ls -a: visa gömda filer. flaggan tillämpas här -a kommandon ls. Användningen av flaggor hjälper till att anpassa kommandonas beteende.

ls -l: Visa detaljerad information om filer.

Observera att flaggor kan kombineras. Till exempel - så här: ls -al.

ps: Visa pågående processer.

ps -e: Visa information om alla pågående processer, inte bara de som är associerade med det aktuella användarskalet. Detta kommando används ofta i denna form.

▍Manipering av filsystem

cd my_directory: ändra arbetskatalog till my_directory. För att flytta upp en nivå i katalogträdet, använd my_directory relativ väg ../.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
cd kommando

touch my_file: skapande av filer my_file längs den givna vägen.

mkdir my_directory: skapa en mapp my_directory längs den givna vägen.

mv my_file target_directory: flytta fil my_file till en mapp target_directory. När du anger målkatalogen måste du använda den absoluta sökvägen till den (och inte en konstruktion som ../).

team mvkan också användas för att byta namn på filer eller mappar. Det kan till exempel 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 en fil my_source_file och lägg den i en mapp target_directory.

ln -s my_source_file my_target_file: skapa en symbolisk länk my_target_file per fil my_source_file. Om du ändrar länken ändras även originalfilen.

Om filen my_source_file kommer då att raderas my_target_file kommer att förbli. Flagga -s kommandon ln låter dig skapa länkar för kataloger.

Låt oss nu prata om I/O-omdirigering och pipelines.

▍I/O-omdirigering och pipelines

my_command < my_file: ersätter standardinmatningsfilens beskrivning (stdin) per fil my_file. Detta kan vara användbart om kommandot väntar på inmatning från tangentbordet, och dessa data redan är sparade i en fil.

my_command > my_file: omdirigerar resultatet av kommandot, det vill säga vad som normalt skulle gå in i stdout och utdata till skärmen, till en fil my_file. Om filen my_file finns inte - det skapas. Om filen finns skrivs den över.

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

Om istället för symbolen > använda konstruktionen >>, sedan, förutsatt att filen till vilken utmatningen av kommandot omdirigeras finns, kommer denna fil inte att skrivas över. Data kommer att läggas till i slutet av denna fil.

Låt oss nu ta en titt på bearbetning av datapipeline.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
Utdata från ett kommando matas till ingången för ett annat kommando. Det är som att koppla ett rör till ett annat

first_command | second_command: transportörsymbol, |, används för att skicka utdata från ett kommando till ett annat kommando. Vad kommandot på vänster sida av den beskrivna strukturen skickar till stdout, Falla in i stdin kommandot till höger om pipeline-symbolen.

På Linux kan data pipelineras med nästan vilket välformat kommando som helst. Det sägs ofta att allt i Linux är en pipeline.

Du kan koppla flera kommandon med hjälp av pipeline-symbolen. Det ser ut så här:

first_command | second_command | third_command

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
En pipeline med flera kommandon kan jämföras med en pipeline

Observera att när kommandot till vänster om symbolen |, utmatar något till stdout, vad hon matar ut är omedelbart tillgängligt som stdin andra laget. Det vill säga, det visar sig att vi med hjälp av pipeline har att göra med parallell exekvering av kommandon. Ibland kan detta leda till oväntade resultat. Detaljer om detta kan läsas här.

Låt oss nu prata om att läsa data från filer och visa dem på skärmen.

▍ Läser filer

head my_file: läser rader från början av en fil och skriver ut dem på skärmen. Du kan inte bara läsa innehållet i filerna utan också vad kommandona matas ut i stdinanvänder detta kommando som en del av pipeline.

tail my_file: läser rader från slutet av filen. Detta kommando kan också användas i en pipeline.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
Huvudet (huvudet) är framför och svansen (svansen) är bakom

Om du arbetar med data med hjälp av pandas-biblioteket, då kommandona head и tail borde vara bekant för dig. Om så inte är fallet, ta en titt på bilden ovan, så kommer du lätt ihåg dem.

Överväg andra sätt att läsa filer, låt oss prata om kommandot cat.

Team cat skriver antingen ut innehållet i en fil på skärmen eller sammanfogar flera filer. Det beror på hur många filer som skickas till detta kommando när det anropas.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
katt kommando

cat my_one_file.txt: när en enskild fil skickas till det här kommandot matas den ut till stdout.

Om du ger den två filer eller fler filer, så beter den sig annorlunda.

cat my_file1.txt my_file2.txt: efter att ha tagit emot flera filer som indata, sammanfogar detta kommando deras innehåll och visar vad som hände i stdout.

Om resultatet av filsammansättningen behöver sparas som en ny fil kan du använda operatorn >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Låt oss nu prata om hur man tar bort filer och stoppar processer.

▍Ta bort filer, stoppa processer

rm my_file: radera fil my_file.

rm -r my_folder: tar bort en mapp my_folder och alla filer och mappar som den innehåller. Flagga -r indikerar att kommandot kommer att köras i rekursivt läge.

För att förhindra att systemet ber om bekräftelse varje gång en fil eller mapp raderas, använd flaggan -f.

kill 012345: Stoppar den angivna körprocessen, vilket ger den tid att graciöst stänga av.

kill -9 012345: Tvångsavbryter den angivna körprocessen. Visa flagga -s SIGKILL betyder detsamma som flaggan -9.

▍Sök

Du kan använda olika kommandon för att söka efter data. Särskilt - grep, ag и 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 lika bekvämt att använda som de är.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
grep kommando

grep my_regex my_file: sökningar my_regex в my_file. Om en matchning hittas returneras hela strängen för varje matchning. Standard my_regex behandlas som ett reguljärt uttryck.

grep -i my_regex my_file: Sökningen utförs på ett skiftlägesokänsligt sätt.

grep -v my_regex my_file: returnerar alla rader som inte innehåller my_regex. Flagga -v betyder inversion, den liknar operatören NOT, som finns i många programmeringsspråk.

grep -c my_regex my_file: Returnerar information om antalet matchningar som finns i filen för sökmönstret.

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

Nu ska vi prata om laget ag. Hon kom senare grep, det är snabbare, det är bekvämare att arbeta med det.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
ag kommando

ag my_regex my_file: returnerar information om radnummer, och själva raderna, där matchningar hittades med my_regex.

ag -i my_regex my_file: Sökningen utförs på ett skiftlägesokänsligt sätt.

Team ag bearbeta filen automatiskt .gitignore och exkluderar från utdata det som finns i mappar eller filer som listas i den filen. Det är väldigt bekvämt.

ag my_regex my_file -- skip-vcs-ignores: innehållet i automatiska versionskontrollfiler (som .gitignore) beaktas inte i sökningen.

Dessutom, för att berätta för laget ag på vilka filsökvägar du vill utesluta från sökningen kan du skapa en fil .agignore.

I början av det här avsnittet nämnde vi kommandot ack. Lag ack и ag mycket lika, vi kan säga att de är utbytbara till 99 %. Däremot laget ag fungerar snabbare, det var därför jag beskrev det.

Låt oss nu prata om att arbeta med arkiv.

▍Arkivering

tar my_source_directory: sammanfogar filer från en mapp my_source_directory till en enda tarball-fil. Sådana filer är användbara för att överföra stora uppsättningar filer till någon.

[bokmärkt] Bash för nybörjare: 21 användbara kommandon
tar kommando

Tarball-filerna som genereras av detta kommando är filer med tillägget .tar (Tape ARchive). Det faktum att ordet "tape" (tape) är dolt i namnet på kommandot och i förlängningen av namnen på de filer som det skapar indikerar 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 mappinnehåll my_source_directory. Flagga -c står för "skapa" (skapande), och flaggan -f som "fil" (fil).

Att extrahera filer från .tar-fil, använd kommandot tar med flaggor -x ("extrakt", extraktion) och -f ("fil", fil).

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

Låt oss nu prata om hur man komprimerar och dekomprimerar .tar-filer.

tar -cfz my_file.tar.gz my_source_directory: här med flaggan -z ("zip", komprimeringsalgoritm) anger att algoritmen ska användas för att komprimera filer gzip (GNUzip). Filkomprimering sparar diskutrymme när sådana filer lagras. Om filerna till exempel är planerade att överföras till andra användare bidrar detta till snabbare nedladdning av sådana filer.

Packa upp filen .tar.gz du kan lägga till en flagga -z till kommandot extrahera innehåll .tar-filer, som vi diskuterade ovan. Det ser ut så här:

tar -xfz my_file.tar.gz
Det bör noteras att laget tar Det finns många fler användbara flaggor.

Bash alias

Bash-alias (även kallade alias eller förkortningar) är utformade för att skapa förkortade namn på kommandon eller deras sekvenser, vars användning istället för vanliga kommandon påskyndar arbetet. Om du har ett alias bu, som döljer kommandot python setup.py sdist bdist_wheel, för att sedan anropa det här kommandot räcker det med att använda detta alias.

För att skapa ett sådant alias, lägg bara till följande kommando till filen ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Om ditt system inte har filen ~/.bash_profile, då kan du skapa den själv med kommandot touch. Efter att ha skapat aliaset, starta om terminalen, varefter du kan använda detta alias. I det här fallet ersätter inmatningen av två tecken inmatningen av mer än tre dussin tecken i kommandot, som är avsett för församlingar Python-paket.

В ~/.bash_profile du kan lägga till alias för alla ofta använda kommandon.

▍Resultat

I det här inlägget har vi täckt 21 populära Bash-kommandon och pratat om att skapa kommandoalias. Om du är intresserad av detta ämne - här en serie publikationer tillägnad Bash. Här Du kan hitta en pdf-version av dessa publikationer. Dessutom, om du vill lära dig Bash, kom ihåg att, som med alla andra programmeringssystem, är övning nyckeln.

Kära läsare! Vilka kommandon som är användbara för nybörjare skulle du lägga till de som diskuterades i den här artikeln?

Läs även i vår blogg en serie publikationer om bash-manus

[bokmärkt] Bash för nybörjare: 21 användbara kommandon

Källa: will.com

Lägg en kommentar