[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer

Materialet, oversettelsen av som vi publiserer i dag, er beregnet på de som ønsker å mestre Linux-kommandolinjen. Evnen til å bruke dette verktøyet effektivt kan spare mye tid. Spesielt vil vi snakke om Bash-skallet og 21 nyttige kommandoer her. Vi vil også snakke om hvordan du bruker kommandoflagg og Bash-aliaser for å fremskynde skrivingen av lange instruksjoner.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer

Les også i bloggen vår en serie publikasjoner om bash-manus

Vilkår

Når du lærer å jobbe med Linux-kommandolinjen, vil du møte mange konsepter som er nyttige å navigere. Noen av dem, som "Linux" og "Unix", eller "shell" og "terminal", er noen ganger forvirrede. La oss snakke om disse og andre viktige begreper.

Unix er et populært operativsystem som ble utviklet av Bell Labs på 1970-tallet. Koden hennes ble lukket.

Linux er det mest populære Unix-lignende operativsystemet. Den brukes nå på mange enheter, inkludert datamaskiner.

Terminal (terminal), eller terminalemulator er et program som gir tilgang til operativsystemet. Du kan ha flere terminalvinduer åpne samtidig.

shell (shell) er et program som lar deg sende kommandoer skrevet på et spesielt språk til operativsystemet.

Bash står for Bourne Again Shell. Det er det vanligste shell-språket som brukes til å samhandle med operativsystemet. Bash-skallet er også standard på macOS.

Kommandolinjegrensesnitt (Command Line Interface, CLI) er en metode for interaksjon mellom en person og en datamaskin, ved bruk som brukeren legger inn kommandoer fra tastaturet, og datamaskinen, som utfører disse kommandoene, viser meldinger i tekstform for brukeren. Hovedbruken av CLI er å få oppdatert informasjon om visse enheter, for eksempel filer, og å arbeide med filer. Kommandolinjegrensesnittet bør skilles fra det grafiske brukergrensesnittet (GUI), som hovedsakelig brukes med musen. Kommandolinjegrensesnittet blir ofte referert til som kommandolinjen.

Manus (script) er et lite program som inneholder en sekvens av skallkommandoer. Skript skrives til filer, de kan brukes gjentatte ganger. Når du skriver skript, kan du bruke variabler, betingelser, løkker, funksjoner og andre funksjoner.

Nå som vi har dekket de viktige begrepene, vil jeg påpeke at jeg vil bruke begrepene "Bash", "shell" og "kommandolinje" om hverandre her, i tillegg til begrepene "katalog" og "mappe".

standard bekker, som vi skal bruke her er standardinngangen (standardinngang, stdin), standard utgang (standard utgang, stdout) og standard feilutgang (standardfeil, stderr).

Hvis i eksempelkommandoene som vil bli gitt nedenfor, vil du finne noe lignende my_whatever - Dette betyr at dette fragmentet må erstattes med noe av ditt. For eksempel navnet på en fil.

Nå, før vi fortsetter med analysen av kommandoene som dette materialet er dedikert til, la oss ta en titt på listen deres og deres korte beskrivelser.

21 Bash-kommandoer

▍ Få informasjon

  • man: Viser brukerveiledningen (hjelpen) for kommandoen.
  • pwd: viser informasjon om arbeidskatalogen.
  • ls: viser innholdet i en katalog.
  • ps: Lar deg se informasjon om kjørende prosesser.

▍Manipering av filsystem

  • cd: endre arbeidskatalog.
  • touch: opprette en fil.
  • mkdir: opprett en katalog.
  • cp: Kopier en fil.
  • mv: Flytt eller slett en fil.
  • ln: opprette en lenke.

▍I/O omdirigering og rørledninger

  • <: omdirigere stdin.
  • >: omdirigere stdout.
  • |: sendte utdataene fra en kommando til inngangen til en annen kommando.

▍ Lese filer

  • head: les begynnelsen av filen.
  • tail: les slutten av filen.
  • cat: Les en fil og skriv ut innholdet på skjermen, eller sett sammen filer.

▍Slette filer, stoppe prosesser

  • rm: Slett en fil.
  • kill: stopp prosessen.

▍Søk

  • grep: søk etter informasjon.
  • ag: avansert kommando for søk.

▍ Arkivering

  • tar: lage arkiver og jobbe med dem.

La oss snakke om disse kommandoene mer detaljert.

Lagdetaljer

Til å begynne med, la oss håndtere kommandoene, hvis resultater utstedes i skjemaet stdout. Vanligvis vises disse resultatene i et terminalvindu.

▍ Få informasjon

man command_name: Vis kommandoveiledningen, dvs. hjelpeinformasjon.

pwd: Vis banen til gjeldende arbeidskatalog. I løpet av arbeidet med kommandolinjen må brukeren ofte finne ut nøyaktig hvor i systemet han er.

ls: viser innholdet i en katalog. Denne kommandoen brukes også ganske ofte.

ls -a: vis skjulte filer. flagg brukt her -a kommandoer ls. Bruken av flagg bidrar til å tilpasse oppførselen til kommandoene.

ls -l: Vis detaljert informasjon om filer.

Merk at flagg kan kombineres. For eksempel - slik: ls -al.

ps: Se kjørende prosesser.

ps -e: Vis informasjon om alle kjørende prosesser, ikke bare de som er knyttet til gjeldende brukerskall. Denne kommandoen brukes ofte i denne formen.

▍Manipering av filsystem

cd my_directory: endre arbeidskatalog til my_directory. For å gå opp ett nivå i katalogtreet, bruk my_directory relativ vei ../.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
cd kommando

touch my_file: filoppretting my_file langs den gitte veien.

mkdir my_directory: opprett en mappe my_directory langs den gitte veien.

mv my_file target_directory: flytt fil my_file til mappe target_directory. Når du spesifiserer målkatalogen, må du bruke den absolutte banen til den (og ikke en konstruksjon som ../).

team mvkan også brukes til å gi nytt navn til filer eller mapper. For eksempel kan det se slik ut:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: Lag en kopi av en fil my_source_file og legg den i en mappe target_directory.

ln -s my_source_file my_target_file: lag en symbolsk lenke my_target_file per fil my_source_file. Hvis du endrer lenken, endres også den opprinnelige filen.

Hvis filen my_source_file vil da bli slettet my_target_file vil forbli. Flagg -s kommandoer ln lar deg lage lenker for kataloger.

La oss nå snakke om I/O-omdirigering og rørledninger.

▍I/O omdirigering og rørledninger

my_command < my_file: erstatter standard inndatafilbeskrivelse (stdin) per fil my_file. Dette kan være nyttig hvis kommandoen venter på inndata fra tastaturet, og disse dataene allerede er lagret i en fil.

my_command > my_file: omdirigerer resultatene av kommandoen, det vil si det som normalt vil gå inn i stdout og sende ut til skjermen, til en fil my_file. Hvis filen my_file eksisterer ikke - den er skapt. Hvis filen eksisterer, overskrives den.

For eksempel etter å ha utført kommandoen ls > my_folder_contents.txt en tekstfil vil bli opprettet som inneholder en liste over hva som er i gjeldende arbeidskatalog.

Hvis i stedet for symbolet > bruke konstruksjonen >>, så, forutsatt at filen som utdataene fra kommandoen er omdirigert til eksisterer, vil denne filen ikke bli overskrevet. Dataene vil bli lagt til på slutten av denne filen.

La oss nå ta en titt på datapipeline-behandling.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
Utdata fra en kommando mates inn i inngangen til en annen kommando. Det er som å koble et rør til et annet

first_command | second_command: transportbånd symbol, |, brukes til å sende utdata fra en kommando til en annen kommando. Hva kommandoen på venstre side av den beskrevne strukturen sender til stdout, Fall inn i stdin kommandoen til høyre for pipeline-symbolet.

På Linux kan data overføres ved å bruke omtrent hvilken som helst velformet kommando. Det sies ofte at alt i Linux er en pipeline.

Du kan lenke flere kommandoer ved å bruke pipeline-symbolet. Det ser slik ut:

first_command | second_command | third_command

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
En pipeline med flere kommandoer kan sammenlignes med en pipeline

Merk at når kommandoen til venstre for symbolet |, utganger noe til stdout, hva hun gir ut er umiddelbart tilgjengelig som stdin andre lag. Det vil si at det viser seg at ved bruk av pipeline har vi å gjøre med parallell utførelse av kommandoer. Noen ganger kan dette føre til uventede resultater. Detaljer om dette kan leses her.

La oss nå snakke om å lese data fra filer og vise dem på skjermen.

▍ Lese filer

head my_file: leser linjer fra begynnelsen av en fil og skriver dem ut på skjermen. Du kan ikke bare lese innholdet i filene, men også hva kommandoene sendes ut i stdinbruker denne kommandoen som en del av rørledningen.

tail my_file: leser linjer fra slutten av filen. Denne kommandoen kan også brukes i en pipeline.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
Hode (hode) er foran, og hale (hale) er bak

Hvis du jobber med data ved hjelp av pandas-biblioteket, så kommandoene head и tail bør være kjent for deg. Hvis dette ikke er tilfelle, ta en titt på figuren ovenfor, og du vil lett huske dem.

Vurder andre måter å lese filer på, la oss snakke om kommandoen cat.

Lag cat skriver enten ut innholdet i en fil til skjermen, eller setter sammen flere filer. Det avhenger av hvor mange filer som sendes til denne kommandoen når den kalles.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
kattekommando

cat my_one_file.txt: når en enkelt fil sendes til denne kommandoen, sendes den ut til stdout.

Hvis du gir den to filer eller flere filer, oppfører den seg annerledes.

cat my_file1.txt my_file2.txt: etter å ha mottatt flere filer som input, setter denne kommandoen sammen innholdet og viser hva som skjedde i stdout.

Hvis resultatet av filsammenkoblingen må lagres som en ny fil, kan du bruke operatoren >:

cat my_file1.txt my_file2.txt > my_new_file.txt

La oss nå snakke om hvordan du sletter filer og stopper prosesser.

▍Slette filer, stoppe prosesser

rm my_file: slett fil my_file.

rm -r my_folder: sletter en mappe my_folder og alle filene og mappene den inneholder. Flagg -r indikerer at kommandoen kjøres i rekursiv modus.

For å forhindre at systemet ber om bekreftelse hver gang en fil eller mappe slettes, bruk flagget -f.

kill 012345: Stopper den spesifiserte kjøreprosessen, og gir den tid til å slå seg elegant av.

kill -9 012345: Tvangsavslutter den angitte kjøreprosessen. Se flagget -s SIGKILL betyr det samme som flagget -9.

▍Søk

Du kan bruke forskjellige kommandoer for å søke etter data. Spesielt - grep, ag и ack. La oss begynne å bli kjent med disse kommandoene med grep. Dette er en tidstestet, pålitelig kommando, som imidlertid er tregere enn andre og ikke så praktisk å bruke som de er.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
grep kommando

grep my_regex my_file: søk my_regex в my_file. Hvis en treff blir funnet, returneres hele strengen for hvert treff. Misligholde my_regex behandles som et regulært uttrykk.

grep -i my_regex my_file: Søket utføres på en måte som ikke skiller mellom store og små bokstaver.

grep -v my_regex my_file: returnerer alle rader som ikke inneholder my_regex. Flagg -v betyr inversjon, det ligner operatøren NOT, finnes i mange programmeringsspråk.

grep -c my_regex my_file: Returnerer informasjon om antall treff funnet i filen for søkemønsteret.

grep -R my_regex my_folder: utfører et rekursivt søk i alle filer som ligger i den angitte mappen og i mappene som er nestet i den.

La oss nå snakke om laget ag. Hun kom senere grep, det er raskere, det er mer praktisk å jobbe med det.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
ag kommando

ag my_regex my_file: returnerer informasjon om linjenummer, og selve linjene, der det ble funnet samsvar med my_regex.

ag -i my_regex my_file: Søket utføres på en måte som ikke skiller mellom store og små bokstaver.

Lag ag behandle filen automatisk .gitignore og ekskluderer fra utdataene det som finnes i mappene eller filene som er oppført i den filen. Det er veldig behagelig.

ag my_regex my_file -- skip-vcs-ignores: innholdet i automatiske versjonskontrollfiler (som .gitignore) er ikke tatt med i søket.

I tillegg, for å fortelle laget ag på hvilke filbaner du vil ekskludere fra søket, kan du opprette en fil .agignore.

I begynnelsen av denne delen nevnte vi kommandoen ack. Lag ack и ag veldig like, vi kan si at de er 99% utskiftbare. Imidlertid laget ag fungerer raskere, det er derfor jeg beskrev det.

La oss nå snakke om å jobbe med arkiver.

▍ Arkivering

tar my_source_directory: kobler sammen filer fra en mappe my_source_directory i en enkelt tarball-fil. Slike filer er nyttige for å overføre store sett med filer til noen.

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer
tar kommando

Tarball-filene som genereres av denne kommandoen er filer med utvidelsen .tar (Båndarkiv). Det faktum at ordet "tape" (tape) er skjult i navnet på kommandoen og i forlengelsen av navnene på filene den oppretter indikerer hvor lenge denne kommandoen har eksistert.

tar -cf my_file.tar my_source_directory: oppretter en tarball-fil med navnet my_file.tar med mappeinnhold my_source_directory. Flagg -c står for "skape" (skapelse), og flagget -f som "fil" (fil).

For å trekke ut filer fra .tar-fil, bruk kommandoen tar med flagg -x ("ekstraksjon", utvinning) og -f ("fil", fil).

tar -xf my_file.tar: trekker ut filer fra my_file.tar til gjeldende arbeidskatalog.

La oss nå snakke om hvordan du komprimerer og dekomprimerer .tar-filer.

tar -cfz my_file.tar.gz my_source_directory: her bruker flagget -z ("zip", komprimeringsalgoritme) indikerer at algoritmen skal brukes til å komprimere filer gzip (GNUzip). Filkomprimering sparer diskplass når du lagrer slike filer. Dersom filene er planlagt for eksempel å overføres til andre brukere, bidrar dette til raskere nedlasting av slike filer.

Pakk ut filen .tar.gz du kan legge til et flagg -z til kommandoen extract content .tar-filer, som vi diskuterte ovenfor. Det ser slik ut:

tar -xfz my_file.tar.gz
Det skal bemerkes at laget tar Det er mange flere nyttige flagg.

Bash-aliaser

Bash-aliaser (også kalt aliaser eller forkortelser) er designet for å lage forkortede navn på kommandoer eller deres sekvenser, hvis bruk i stedet for vanlige kommandoer fremskynder arbeidet. Hvis du har et alias bu, som skjuler kommandoen python setup.py sdist bdist_wheel, så for å kalle denne kommandoen, er det nok å bruke dette aliaset.

For å lage et slikt alias, legg bare til følgende kommando til filen ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Hvis systemet ditt ikke har filen ~/.bash_profile, så kan du lage den selv ved å bruke kommandoen touch. Etter å ha opprettet aliaset, start terminalen på nytt, deretter kan du bruke dette aliaset. I dette tilfellet erstatter inntastingen av to tegn inntastingen av mer enn tre dusin tegn i kommandoen, som er ment for forsamlinger Python-pakker.

В ~/.bash_profile du kan legge til aliaser for alle ofte brukte kommandoer.

▍Resultater

I dette innlegget har vi dekket 21 populære Bash-kommandoer og snakket om å lage kommandoaliaser. Hvis du er interessert i dette emnet - her en serie publikasjoner dedikert til Bash. Her Du finner en pdf-versjon av disse publikasjonene. Også, hvis du ønsker å lære Bash, husk at, som med alle andre programmeringssystem, er øvelse nøkkelen.

Kjære lesere! Hvilke kommandoer som er nyttige for nybegynnere vil du legge til de som ble diskutert i denne artikkelen?

Les også i bloggen vår en serie publikasjoner om bash-manus

[bokmerke] Bash for nybegynnere: 21 nyttige kommandoer

Kilde: www.habr.com

Legg til en kommentar