Linux shell og terminal hjelp og eksempler

Kommandolinjeskallet er et tekstbasert brukergrensesnitt for operativsystemet. I motsetning til et GUI-skall, som bruker en grafisk representasjon av systemets tjenester og ressurser, bruker kommandolinjeskallen kun tekst. Det er det grunnleggende grensesnittet mellom deg og operativsystemet, og i mange tilfeller gir du mer direkte kontroll over systemprosessene.

Hva brukes Shell til?

Når det kommer til å kommunisere med operativsystemet, kan alt du gjør med en GUI gjøres på kommandolinjen. For eksempel, la oss ta noe du trenger å gjøre hele tiden: flytt filer rundt i filsystemet ditt. Ved hjelp av en GUI kan du velge ikonene som representerer filene dine, dra dem til en annen mappe og slipp dem der for å flytte dem.

Men ved hjelp av kommandolinjen kan denne operasjonen utføres med en enkelt kommando:

Kommandolinjen, når du blir vant til det, lar deg kontrollere systemet med større effektivitet og presisjon enn med en GUI.

Hvorfor kalles det et "Shell"?

Brukergrensesnittet kalles et "skall" fordi det er det ytre laget som skiller deg fra de indre delene av operativsystemet, kalt kjernen. Teknisk sett er operativsystemets GUI også et "skall", men kommandolinjen refereres ofte til tilfeldigvis som "skallet".

Hvordan kommer jeg inn i Command-Line Shell?

Den vanligste måten å få tilgang til kommandolinjeskallen, er å bruke en terminalemulator.

Hvis du bruker en Linux-distribusjon, kan det starte opp i X Window System (eller "X"), som lar deg kjøre programmer i egne vinduer og samhandle med dem ved hjelp av musen. I X er det forskjellige måter å starte en terminalemulator, men her er de vanligste:

  • Mange Linux-distribusjoner bruker et skrivebordsmiljø som ligner på Microsoft Windows, som har en "Startmeny". Fra denne menyen er terminalprogrammet ditt vanligvis plassert under "Tilbehør." For eksempel kommer Lubuntu med LXTerminal terminal emulatoren allerede installert, og snarveien ligger i Tilbehør-menyen.

    Velger terminalmenyelementet lanserer terminalemulatoren og plasserer deg på en kommandolinje.

  • Ulike versjoner av Linux bruker ulike typer vinduschefer, hver med et litt annet grensesnitt. Med mange vinduesbehandlere viser høyreklikk på skrivebordet en meny som inneholder et terminalalternativ. For eksempel har høyreklikkmenyen i Crunchbang Linux et "Terminal" -alternativ. Nedenfor er hva denne menyen ser ut, etter å ha høyreklikk hvor som helst på skrivebordet.

    Her vil tilleggsmenyen også ha mulighet for å kjøre terminalen.

  • På mange versjoner av Linux, trykker du Supernøkkelen og " T " på samme tid som standard hurtigtast for å starte en terminal. (Supernøkkelen er vanligvis den første nøkkelen til venstre for mellomromstasten, også kjent som Windows-nøkkelen).

Hvis du ikke kan finne ut hvordan du starter din terminalemulator, se dokumentasjonen for ditt operativsystem, og søk etter "terminal".

Kommandoprompt

Når du starter terminalemulatoren, presenteres du med en ledetekst.

Merk: Disse eksemplene er alle utført ved hjelp av Bourne-Again Shell ( bash ), som er standard kommandolinjeskall på Linux.

La oss se nærmere på denne ledeteksten. Spørringen kan konfigureres til å være alt du liker, men som standard ser det ut som det vi ser her, og gir oss nyttig informasjon før vi skriver inn en kommando.

Spesielt forteller det oss hvem vi er (brukernavn) og hvor vi er (hvilket system vi bruker og vår arbeidskatalog). Her er hva de enkelte delene av prompten betyr:

navnet dittDitt brukernavn.
@Et symbol symbol skiller brukernavn og vertsnavn.
yourhostSystemets vertsnavn.
:Tykktarmen er tegnet som skiller vertsnavnet og arbeidskatalogen.
~Vår nåværende ("arbeider") katalog. Tilde (" ~ ") er et spesielt tegn som representerer vår hjemmekatalog. Når du starter en shell-sesjon, er dette katalogen der du vanligvis begynner å jobbe som standard.
$Et spesialtegn som indikerer at vi ikke har superbrukerrettigheter. Hvis innlogget som root (superbrukeren), endres denne karakteren til en # .

Angi kommandoer

La oss skrive inn vår første kommando. Vi bør starte med å oppgi filene i vår hjemmekatalog. Den mest grunnleggende måten å se alle disse filene på er å bruke kommandoen ls ; skriv inn ls ved ledeteksten og trykk enter.

Som vist ovenfor ls kommandoen ls innholdet i katalogen og plasserer oss ved en annen kommandoprompt.

Merk: Alle kommandoer og filnavn i Unix og Linux er store og små bokstaver. Kommandoen ls, for eksempel, skrives i små bokstaver, akkurat som det er over.

For en mer detaljert liste over kataloginnholdet, kan vi spesifisere kommandolinjevalg, også kjent som brytere . Dette er flere argumenter for kommandoen som endrer måten den opererer på. Her vil vi bruke alternativet -l (bruk lang listeformat) for å få mer informasjon fra vår oppføring.

Som vist ovenfor gir kommandoen ls -l oss mye mer informasjon om innholdet i vår hjemmekatalog. For øyeblikket er den viktigste informasjonen vi bør legge merke til at første bokstav i oppføringene er en d, noe som betyr at hvert av disse kataloginnholdene selv er en katalog.

Før vi gjør noe annet, la oss fjerne skjermen, for å fjerne roten produsert av utgangen fra våre tidligere kommandoer. Bruk kommandoen Clear ved å skrive inn en ny kommandoprompt og trykk Enter .

Når du har trykket på Enter, rydder skjermen og plasserer deg ved en ny kommandoprompt øverst på terminalskjermbildet.

Endre katalog

La oss flytte inn i dokumentmappen vår ved hjelp av kommandoen cd ("Change Directory"). For å endre gjeldende katalog, skriv " cd " og deretter et mellomrom, deretter navnet på katalogen du vil endre til og trykk deretter enter.

CD- kommandoen antar at navnet på hvilken som helst katalog du angir, er i forhold til din nåværende katalog. Derfor, for å bytte til dokumentmappen, som finnes i vår nåværende katalog, skriv " cd-dokumenter ".

Kommandoprompten gjenspeiler nå den nye arbeidsboken: ~ / dokumenter, som tilsvarer hele stedsnavnet: / hjem / navn / dokumenter . Uansett hvilken bruker du er logget inn som, " ~ " representerer alltid din hjemmekatalog. I eksemplet vises også den nye arbeidsboken i tittellinjen i terminalvinduet.

Merk: I motsetning til MS-DOS og Microsoft Windows, er hierarkiske katalognavn i Linux skilt av en fremoverstrekk (" / ") i stedet for en tilbakeslag (" \ "). Denne symbolskifte er en grunnleggende forskjell mellom disse forskjellige operativsystemene.

Du kan når som helst bekrefte din nåværende katalog ved å bruke kommandoen pwd ("print work directory").

Kommandoen skriver navnet på gjeldende katalog til terminalen, i dette tilfellet " / home / yourname / documents ". Igjen, med " ~ / dokumenter " representerer " ~ " vår hjemmekatalog, som er / hjem / navn . Så hvis vi er i vår hjemmekatalog, skriver du " cd-dokumenter ", " cd / home / yourname / documents " eller " cd ~ / documents " alle plasserer oss i samme katalog.

La oss nå flytte opp en katalog, tilbake til vår hjemmekatalog. Det spesielle katalognavnet " .. " (dobbeltpunktet) betyr "en katalog opp".

Vi er nå tilbake i vår hjemmekatalog.

Merk: Hvis du er mer kjent med MS-DOS, husk at det må være mellomrom mellom CD og de to periodene.

Flytte filer

La oss nå bli kjent med hvordan du beveger filer rundt.

La oss si at vi nettopp lastet ned to bilder med en nettleser, og de lagret i nedlastingsmappen vår. La oss gå inn der og ta en titt. Først endrer vi katalogen i nedlastingsmappen .

Legg deretter opp filene i katalogen med kommandoen ls .

Her ser vi to JPEG-filer. La oss få dem ut av nedlastingsmappen, og sett dem på et annet sted, som bildemappen. For å flytte disse filene, bruker vi kommandoen mv ("move").

Kommandoen mv tar følgende generelle form.

 mv [ OPTIONS ...] SOURCE DESTINATION 

OPTIONS er vedlagt i parentes fordi du ikke trenger å angi noen alternativer for å fullføre kommandoen. Kilden og DESTINASJON- argumentene er begge nødvendige.

KILDE er navnet på filen eller filene du vil flytte. DESTINATION er der du vil flytte dem. Hvis DESTINATION er et katalognavn, flyttes filen eller filene til den katalogen.

Vi er for øyeblikket i katalogen / hjem / navn / nedlastinger, og vi vil flytte filene til / hjem / navn / bilder . Vi kunne spesifisere vår DESTINATION ved å bruke hele stedsnavnet (" / hjem / navn / bilder ") eller som stinavn i forhold til vår nåværende katalog (" ../images "), eller bruk en tilde som forkortelse for hjemmekatalogen vår " ~ / bilder "). Alle disse er likeverdige og gir det samme resultatet. La oss bruke det relative banenavnet for DESTINASJONEN : ../images .

Så, hvordan skal vi spesifisere vår KILDE ?

Vi ønsker å flytte begge filene, og de er de eneste filene i katalogen. Så, den enkleste måten å spesifisere dem ville være å fortelle mv "flytte alle filene i denne katalogen til .. / bilder ." Vi kan gjøre dette ved hjelp av et jokertegn.

Et jokertegn er et spesialtegn som kan representere mer enn ett filnavn (eller mer enn en del av filnavnet). Her skal vi bruke stjernekortet (" * "). Hvis vi bruker * som hele vårt filnavn, gjelder skallet vår kommando til hver fil i vår arbeidsregister.

Så, vår kommando vil lese som følger: " mv * ../images ". La oss skrive inn det nå.

Det ser ut som ingenting har skjedd, men det er shellens måte å fortelle oss at det ikke oppstod feil. Hvis det oppstod et problem, ville det vise en feilmelding eller advarsel av noe slag.

La oss bekrefte at filene har flyttet. Vi kan liste inn innholdet i en annen katalog ved å kjøre ls og angi et banenavn. I dette tilfellet er vår banenavn " ../images ."

Bildene er begge der, sammen med en annen katalog som allerede eksisterte (" bakgrunnsbilder "). Vi bør lage en egen egen mappe, for å bedre organisere bildene våre og holde hovedbildekatalogen fra å bli rotete. La oss gjøre det nå.

Å lage kataloger

La oss bytte til bildekatalogen der våre to pingvinbilder nå bor.

La oss nå lage en ny katalog for våre pingvinbilder. Opprett nye kataloger er oppnådd med kommandoen mkdir .

Den enkleste formen for mkdir- kommandoen er å gi det ett argument: navnet på den nye katalogen. Vi vil gjerne lage en ny katalog i vår nåværende katalog, slik at vi ikke trenger å gi mkdir et fullt stedsnavn, bare navnet på katalogen selv. La oss ringe til vår nye katalog pingvin-pix .

Så kommandoen vi kommer til å skrive inn er " mkdir penguin-pix " for å lage en ny katalog.

La oss nå bekrefte at det er der, ved å oppgi kataloginnholdet.

Merk: Du kan se at når vi lister kataloginnholdet, er filnavn og katalognavn forskjellige farger for å identifisere de forskjellige filene og katalogene. Selv om fargeutheving er vanlig med de fleste skjell, gjør ikke alle skall dette som standard.

Hvis vi ikke kunne fortelle av fargen på navnene, kan vi alltid sjekke hvilke av disse filene som er kataloger ved å påkalle ls med -l (lang liste) alternativet.

Ytterligere informasjon inkluderer følgende.

  • Tillatelser - hvem har tilgang til filen og hvilken type tilgang.
  • Eierskap - hvem er filens eier.
  • Autoreprofil - hvem opprettet filen.
  • Filstørrelse - Størrelsen på filen i byte.
  • mtime - dato og klokkeslett filen ble sist endret.

Den første bokstaven på linjene for penguin-pix og bakgrunnsbilder er en " d ", som indikerer at de er kataloger. For mer informasjon om filoppføringer, se dokumentasjonen for chmod- kommandoen.

Vi kan nå flytte bildene våre til den nye katalogen. For å fortelle mv hvilke filer som skal flyttes, kan vi bruke et wildcard igjen, men denne gangen la vi være sikker på at det bare er å flytte bare bildefilene, ikke katalogene. Siden begge bildefiler slutter med JPEG-utvidelsen .jpg, kan vi spesifisere filnavnet " * .jpg ": dette forteller skallet "filene jeg vil flytte er noen filer i gjeldende katalog som slutter med .jpg ". Så vår kommando vil se slik ut: " mv * .jpg penguin-pix ."

Ingen feilmelding ble gitt, noe som betyr at kommandoen er fullført. La oss bekrefte at filene ble flyttet ved å oppgi innholdet i penguin-pix .

Fjerne filer

Vi har to pingvinbilder, men kanskje vi bestemte oss for at vi bare trenger real penguin.jpg, og vi trenger ikke tux-the-penguin.jpg lenger. Vi kan slette denne filen ved å bruke kommandoen rm ("remove").

Vi må gi rm med filnavnet for å slette. Vi er for øyeblikket i bildekatalogen, men bildet vårt er nå i pingvin-pix- underkatalogen. Vi kan endre vår arbeidsdokumentasjon til penguin-pix og deretter kjøre kommandoen, men det er bare ekstra arbeid, vi kan hoppe over det trinnet ved å bruke katalogen som en del av banen.

Vår kommando vil se slik ut: " rm penguin-pix / tux-the-penguin.jpg ."

Nok en gang utfører skallet vår kommando uten å gi tilbakemelding. Kommandoen utført med hell, så skallet returnerer oss til kommandoprompten, og lar oss vite at den er klar for en annen kommando.

Advarsel: I motsetning til å dra en fil til papirkurven eller Microsoft Windows-papirkurven, kan du ikke angre en filsletting med rm . Fjern filene dine med forsiktighet! En gang borte er det (nesten) umulig å få dem tilbake.

La oss bare bekrefte at filen er virkelig borte.

Fjerne kataloger

Det er bra for filer, men hva med kataloger? Som standard fjerner rm bare filer og ikke kataloger.

Kommandoen rmdir ("fjerne katalogen") fjerner en katalog, forutsatt at den er tom. La oss teste det ved å opprette en ny, tom katalog, ved hjelp av kommandoen " mkdir test-katalog ".

La oss bekrefte at det er der med " ls -l " -kommandoen.

Vi kan nå fjerne vår helt nye katalog ved hjelp av kommandoen " rmdir test-katalog ", og kontroller at den er borte ved å kjøre kommandoen " ls -l " igjen.

Yup, det er borte.

Men hva ville skje hvis vi prøvde å " rmdir penguin-pix "?

Vi kan ikke rmdir den katalogen fordi den ikke er tom.

Hvis du er sikker på at du vil fjerne penguin-pix og alt inni den (inkludert alle filer og eventuelle kataloger det kan inneholde), kan du bruke kommandoen rm med -r- alternativet.

Normalt vil rm ikke fungere på en katalog. Imidlertid, hvis påkrevd med alternativet -r, fjerner rm en katalog rekursivt, noe som betyr at den reiser inn i katalogen og en hvilken som helst underkatalog, ved å slette alt inkludert katalogen. Så, hvis vi kjører kommandoen " rm -r penguin-pix, " fjerner den katalogen og filen som var inne. Hvis det var noen kataloger inni, ville de også blitt slettet.

Advarsel! Igjen er det ingen angrep for denne kommandoen. Når du rm -r en katalog, er den katalogen og alt inni den fjernet for alltid! Som de fleste Linux-kommandoer er rm meget kraftig og bør brukes med forsiktighet.

For å kopiere en fil, bruk kommandoen cp .

 cp SOURCE DESTINATION 

KILDE er navnet på filen du vil kopiere, og DESTINATION er stinavnet som angir mål for den nye filen. Destinasjonen kan være et nytt filnavn eller navnet på katalogen hvor du vil ha en kopi som skal finnes.

La oss si at vi har en tekstfil i dokumentmappen vår, kalt orig.txt, og vi vil lage en kopi av den kalt copy.txt . Kommandoen vi skal bruke er " cp orig.txt copy.txt ."

Hvis vi derimot spesifiserer en katalog som destinasjonen til cp- kommandoen, blir den kopi med samme navn som originalen i målkatalogen. I det neste eksemplet gjør vi seks ting.

  1. Oppgi innholdet i arbeidskatalogen.
  2. Lag en ny katalog, kalt kopier .
  3. Oppgi innholdet i arbeidskatalogen, som nå inneholder kopikatalogen .
  4. Oppgi innholdet i kopikatalogen (det finnes ingen. Det er tomt).
  5. Kopier copy.txt til kopikatalogen .
  6. Oppgi innholdet i kopikatalogen, som nå inneholder en kopi av copy.txt .

Endre navn på en fil

Kommandoen mv kan også brukes til å endre navnet på en fil. For eksempel vil kommandoen " mv orig.txt original.txt " omdøpe filen orig.txt til original.txt .

Endre navn på en katalog

Omdøping av kataloger fungerer akkurat som omdøpe filer, med kommandoen mv . Her oppretter vi en katalog som heter " kopi ", men omdøper den til " kopier " ved hjelp av kommandoen " mv kopi kopier ".

Hvis kopikatalogen inneholder filer eller kataloger, vil de være uendret. Det eneste som ville forandre, er navnet på katalogen som inneholdt dem.

Automatisk fullføring

De fleste Linux-kommandolinjeskallene fullfører automatisk ordet du har begynt å skrive hvis du trykker på Tab-tasten. Automatisk fullføring kan hjelpe deg med å spare tid, spesielt med lange filnavn. For eksempel, la oss si at du har tre filer i dokumentmappen din: penguin-diving.jpg, penguin.jpg og penguins.jpg .

Hvis du skriver en kommando og skriver inn " p " og trykker på Tab- tasten, fyller skallet ordet "penguin" for deg.

Det stopper der fordi alle filene starter med ordet penguin, men etter det er det ikke sikkert hvilken fil du vil spesifisere.

Hvis du er i en situasjon der det er mer enn én autofullførings-kamp for det du allerede har skrevet, trykker du på Tab to ganger på skjellset for å liste alle mulige kamper. Så i situasjonen over hvor du skrev p og Tab og skallet utfyller pingvin for deg. Trykk på Tab to ganger vil gi deg alle mulige alternativer, og plassere deg tilbake ved ledeteksten, med kommandoen fylt inn der du sluttet.

Autocompletion fungerer også for å fullføre banenavn og kommandoenavn.

Avslutter skallet

Når du skriver inn exit- kommandoen, utføres kommandoskallet, og enten lukkes terminalvinduet eller klargjøres terminalvinduet manuelt.