Programmering

10 Unix-kommandoer som alle Mac- og Linux-brukere bør vite

GUI-er er gode - vi vil ikke leve uten dem. Men hvis du er en Mac- eller Linux-bruker, og du vil få mest mulig ut av operativsystemet ditt (og tastetrykkene), skylder du deg selv å bli kjent med Unix-kommandolinjen. Pek-og-klikk er fantastisk når du trenger å gjøre noe en eller to ganger. Men hvis du trenger å gjenta denne oppgaven mange ganger, er kommandolinjen din frelser.

Kommandolinjen er et vindu inn i datamaskinens fulle, fantastiske kraft. Hvis du lengter etter å bli fri for begrensningene i GUI eller tror at programmering eller administrering av eksterne maskiner er i fremtiden din, er det absolutt noe for deg å lære Unix-kommandolinjen.

Ikke bekymre deg hvis Unix-kommandoer virker som magiske besvergelser eller de mystiske indre delene av systemet virker utenfor din rekkevidde. De er ikke så vanskelige å lære, og denne artikkelen gir deg de 10 viktige kommandoene du trenger for å komme i gang. Om kort tid vil disse kryptiske strengene være andre natur.

Grunnleggende om skall

Unix kommandolinjeskall tilsvarer omtrent kommandovinduet i Microsoft Windows (cmd eller PowerShell). Kommandoene vi går gjennom nedenfor vil fungere på ethvert Unix-lignende system, inkludert Linux, Darwin (grunnlaget for MacOS), FreeBSD og til og med Windows med noe som Git Bash eller det nye Bash-skallet i Windows 10. Alternativene og utgangen varierer litt, men du bør ikke ha noen problemer med å forstå dem.

Først må du åpne et skall, noen ganger kalt et terminalvindu. Ofte legger Unix-distribusjoner dette under administrasjons- eller systemmenyene. I MacOS finner du terminalen i Programmer> Verktøy> Terminal. Når du starter den, ser du noe som dette:

Denne skjermen, fra MacOS 10.11, er typisk for de fleste skjell i en GUI. Øverst i vinduet ser vi typen skall, i dette tilfellet Bash (Bourne Again Shell, som er standardskallet i MacOS og de fleste Linux-distribusjoner), og størrelsen på vinduet. Inne i vinduet er ledeteksten, i dette tilfellet konfigurert til å vise navnet på maskinen (Kvikksølv), navnet på gjeldende arbeidskatalog (her tilde, ~, som er stenografi for brukerens hjemmekatalog), navnet på brukeren og til slutt meldingssymbolet ( $). Merk at ledeteksten endres når du beveger deg rundt i filsystemet, eller hvis du blir en annen bruker på maskinen din (for eksempel roten eller superbrukeren for å kjøre administrative kommandoer). Prompten viser denne informasjonen, slik at du enkelt kan fortelle hvor og hvem du er på hvilken som helst maskin.

Det er verdt å vite at det er to hovedsmaker av Unix-skallet: Bourne og C-skall. Bourne og selskapet stammer fra den originale AT&T Unix, mens C-skallet kommer fra University of California i Berkeley og BSD Unix. Generelt er Bourne- og C-skallderivatene gode for interaktivt arbeid på terminalen. POSIX-standardskallet, Korn-skallet, er det du vil bruke til å skrive dine egne programmer i skallet, kalt skript. Vi bruker Bash-skallet for eksemplene i denne opplæringen.

Skjellmiljøet

En av de første fakta å forstå om å jobbe med Unix-kommandolinjen er at skallet fungerer i sitt eget miljø. Å forstå hvordan du skal kontrollere skallmiljøet er en viktig del av å bli effektiv på kommandolinjen. La oss ta en titt på miljøet ved hjelp av env kommando:

Ikke bekymre deg for å forstå alle miljøvariablene nå, men vet at de er der. Du bør gjenkjenne noen få variabler allerede. For eksempel, SKJELL = / bin / bash forteller oss at vi bruker Bash-skallet. HJEM = / Brukere / nunez angir plasseringen til brukerens hjemmekatalog. Du kan endre eller opprette miljøvariabler, og du vil ofte gjøre det. Her er et eksempel på å sette en miljøvariabel kalt FOO og viser verdien:

Som du ser, etter konvensjon setter vi variabler i store bokstaver. Legg spesielt merke til hvordan vi refererer til miljøvariabler når vi bruker dem i kommandoer, med det foregående $. De $ forteller kommandotolken å bruke verdien til variabelen. Uten $, den ekko kommandoen ovenfor vil ganske enkelt skrive ut navnet på variabelen, FOO.

Unix-kommandoer

Uansett hvilket skall du bruker, vil du føre til at et Unix-program kjøres når du skriver inn en kommando i skallet. Unix designfilosofi er å lage programmer som gjør en ting godt og å kjede (eller "pipe") dem sammen for å gjøre nyttig arbeid. La oss se på et enkelt eksempel for å telle antall filer i / etc-katalogen (vi får se hvordan vi kan flytte til / etc-katalogen senere):

Denne kommandosekvensen illustrerer to viktige konsepter: rør og alternativer. De ls kommando (tilsvarer dir kommandoen i Windows) viser innholdet i en katalog, og toalett (ordtelling) antall ord. Legg merke til den vertikale linjen mellom dem? Det er rørkarakteren. Røret tar utgangen fra den første kommandoen og leder den som inngang til den andre kommandoen. Du kan kjede et hvilket som helst antall kommandoer sammen i Unix ved å koble hverandre med rør.

Den andre tingen å legge merke til er alternativene gitt til hver kommando. I Unix er alternativene tradisjonelt prefikset med et enkelt bindestrek, -. Disse kommandolinjealternativene endrer oppførselen til kommandoen. I dette eksemplet er -l alternativ til ls betyr å sende kataloginnholdet i “langt” format, mens –L alternativ til toalett betyr å telle "linjene" i stedet for ordene. På engelsk kan denne kommandoen leses:

Oppgi antall linjer i gjeldende katalog, og send dem deretter til ordtellingsprogrammet for å telle antall linjer.

Ofte overstyrer disse kommandolinjealternativene standardinnstillingene som er angitt i miljøet. Hvis du vil endre måten kommandoen oppfører seg på permanent basis, kan du angi miljøvariabelen automatisk når du logger på. Mange kommandoer lar deg kombinere alternativer i en enkelt streng - for eksempel ls -la—Men andre ikke. Du kan lære om alle alternativene for en kommando ved å sjekke manualen eller "mansider" (som vi diskuterer nedenfor).

Læring og bruk av kommandolinjealternativer er en stor del av å være effektiv på Unix-kommandolinjen. Noen kommandoer har så mange alternativer at dokumentasjonen går til dusinvis av sider. Ikke la det bekymre deg nå. Du trenger ofte bare noen få alternativer for å utføre en gitt oppgave, og mange alternativer brukes bare når du skriver programmer på skallspråket.

Manualen

Når du forstår det grunnleggende om kommandolinjen og miljøet, kan vi begynne å dykke dypere inn i systemet. Det første stedet å starte er med manualen.

En av de fine aspektene ved Unix er den høye kvaliteten på dokumentasjonen. Det er dokumentasjon for brukere, systemadministratorer og programvareutviklere. Du får tilgang til dokumentasjonen med Mann kommando. La oss starte med å lese manualen for manualen (skriv inn mann mann på kommandolinjen):

Manualene er delt inn i åtte seksjoner, som varierer litt avhengig av om du bruker en BSD / Linux / Mac eller System V-type Unix. Det er nyttig å starte med å lese introduksjonen til hver seksjon, og du kan gjøre dette med en besvergelse som mann-s 1 intro, som betyr å se i avsnitt 1 for å finne en manuell side kalt “intro”:

Hvis du ikke er sikker på hvilken kommando du leter etter, kan du prøve -f og -k alternativer. mann –f kommando vil fortelle deg en kommandofunksjon hvis du vet navnet, mens mann –k hint vil liste opp navnene på relevante kommandoer basert på ett eller flere nøkkelord. Begge alternativene søker i en innebygd database (hvis den er konfigurert; den har vanligvis) og returnerer alle treff. For eksempel, mann –k bzer vil vise manuelle sider som starter med strengen bz:

Filsystemet

Det er mange kommandoer relatert til Unix-filsystemet, siden det er kjernen i operativsystemet. Vi så en av dem tidligere: ls, som viser filer i en katalog:

De ls kommandoen kan være den mest brukte kommandoen av alle, og den har mange alternativer for å justere utdataene. Et alternativ du vil vite om med en gang er ls -a (liste opp alle). Dette vil avsløre "prikkfiler" (filer eller kataloger hvis navn begynner med en prikk eller punktum), som er skjult som standard. Disse filene eller katalogene inneholder vanligvis konfigurasjonsinformasjon eller loggfiler for Unix-systemet. .Bash_history-filen logger for eksempel alle kommandoene du skriver inn på kommandolinjen.

Den andre kommandoen du trenger med en gang er cd kommando, som du bruker til å endre kataloger. Dette ligner på den samme kommandoen i Windows, men med en viktig forskjell. I Unix vises alle stasjoner (enheter) som en enkelt stasjon. Mens du i Windows kan ha bildene dine på en ekstern harddisk som ser ut som E :, i Unix kan den stasjonen være / hjemme / bruker / bilder. Alle filer på et Unix-system er tilgjengelig via en bane som starter med / (rotkatalogen), og du kan montere forskjellige harddisker på forskjellige punkter i filsystemet i henhold til dine behov.

Før du begynner å vandre rundt i filsystemet, la meg introdusere en ny kommando du trenger: pwd (utskriftskatalog). Fordi det potensielt er mange steder å gå seg vill i et voksende filsystem, lar denne kommandoen deg raskt finne ut hvor du er. La oss bytte kataloger til stedet der systemkonfigurasjonsfilene oppbevares, og verifisere beliggenheten vår:

Merk at du kan bruke cd kommando uten argumenter for raskt å gå tilbake til hjemmekatalogen. Et annet tips: The ~ kan brukes som en snarvei for å referere til hjemmekatalogen din i både Bash og C shell.

På dette tidspunktet vet du hvordan du beveger deg rundt i filsystemet og viser innholdet i katalogene. Nå trenger vi en måte å lese filene som er lagret i dem. I disse dager kommer de fleste systemer med mindre kommando for dette. mindre viser en fil side for side og lar deg navigere ved hjelp av Vi-kommandoer (trykk på j å flytte ned, k å rykke opp, h for å få hjelp, og q for å avslutte filen).

La oss se hva som er i filen / etc / passwd ved å skrive inn mindre / etc / passwd:

Passwd-filen viser brukerkontoer på et Unix-system, sammen med bruker- og gruppe-ID-numrene, hjemmekatalogen og banen til den tilsvarende kommandoen eller skallet. På MacOS finner du imidlertid bare systemtjenestekontoer i passwd. Det er fordi menneskelige brukere er konfigurert under Brukere og grupper i MacOSs Systemvalg.

Diskplass

Å gå tom for diskplass er en gradvis prosess som kan ta flere år, men som fremdeles kan ta deg av vakt. Det er to kommandoer du kan bruke til å sjekke ledig plass og bestemme hvilke filer som hogger på disken din: du (diskbruk) og df (diskfri). De tar begge en -h alternativ (lesbar for mennesker). For å få en følelse av hvor full disken din er, bruk df kommando:

For nå, fokuser på %jeg brukte og montert på kolonner. Dette viser at hjemmekatalogen min er 92 prosent full, så jeg burde nok rydde den opp. Men hvordan vet jeg hvor all plassen blir brukt? Det er hva du er for:

For dette eksemplet gikk jeg med en besvergelse som begrenser produksjonen til de første 10 linjene. Ellers du vil liste opp alle katalogene på maskinen, som lett kan være for mye å forstå. Fra denne oppføringen kan du se hvor mye plass som brukes av hver katalog. Du kan også se hvordan vi ved å koble noen få kommandoer enkelt kunne sette sammen et skript som vil liste de 10 beste katalogene etter plassbruk. Kommandoen vi trenger for å sortere utdataene er selvfølgelig sortere kommando.

Fordi MacOS ’versjon av sortere orker ikke du'S menneskelig lesbare utdata, brukte jeg -m alternativ for du for å vise diskbruk i megabyte (bruk -g eller -k alternativet å vise i gigabyte eller kilobyte). De -n og -r alternativer for sortere sorter utgangen numerisk og i omvendt rekkefølge, slik at de største katalogene vises øverst på listen.

Superbrukere, su og sudo

En rekke kommandoer er knyttet til systemadministrasjon. Prøv å skrive mann -s 8 intro for en introduksjon til dem. Jeg skal gi deg den viktigste kommandoen for systemadministrasjon her: su. Dette står for "superbruker" og refererer til den administrative brukeren eller rotkontoen. Alle filer som tilhører systemet eies av denne brukeren, og du må bli denne brukeren for å utføre administrasjon.

En beslektet kommando, sudo, lar deg bli superbruker for en enkelt kommando. Hvorfor bruke sudo i stedet for su? Fordi beste praksis tilsier at du ikke løper rundt som rotbruker, med makt til å gjøre uopprettelig skade ved et uhell. Du vil alltid ønske å gjøre alt du kan som en normal bruker og bare bli en superbruker når du trenger det. Nøyaktig hvordan du får superbrukerrettigheter, vil avhenge av Unix-distribusjonen din. La oss se hvordan su fungerer på MacOS:

Hu h? Jeg er sikker på at jeg skrev passordet riktig. Det som har skjedd her er at min nåværende bruker, nunez, har ikke tillatelse til su. På noen Unixer betyr dette at brukeren må være i hjul gruppen, og på andre systemer (inkludert MacOS) brukeren må være i sudoers fil.

La oss avslutte med å legge til nunez til sudoers, som vil gi deg en smak av redigering av filer på kommandolinjen. Kraftbrukere hyller Emacs og Vi-redaktørene, og jeg oppfordrer deg til å prøve dem, men vi bruker Nano her. Nano er lett å lære og bruke, og MacOS og mange Linux-distroer kommer med den allerede installert.

$config[zx-auto] not found$config[zx-overlay] not found