Linux-skal och terminalhjälp och exempel

Kommandoradsskalet är ett textbaserat användargränssnitt för ditt operativsystem. Till skillnad från ett GUI-skal, som använder en grafisk representation av systemets tjänster och resurser, använder kommandoradsskalet endast text. Det är det grundläggande gränssnittet mellan dig och operativsystemet, och i många fall ger du mer direkt kontroll över systemprocesserna.

Vad används Shell för?

När det gäller att kommunicera med operativsystemet kan allt du gör med en GUI på kommandoraden. Till exempel, låt oss ta något du behöver göra hela tiden: flytta filer runt i ditt filsystem. Med hjälp av en GUI kan du välja ikonerna som representerar dina filer, dra dem till en annan mapp och släpp dem där för att flytta dem.

Men med kommandoraden kan denna operation utföras med ett enda kommando:

Kommandoraden, när du väl är van vid det, låter dig styra ditt system med större effektivitet och precision än med en GUI.

Varför heter det ett "Shell"?

Användargränssnittet kallas ett "skal" eftersom det är det yttre skiktet som skiljer dig från de innersta delarna av operativsystemet, kallat kärnan. Tekniskt sett är ditt operativsystems GUI också ett "skal", men kommandoraden refereras ofta till casual som "skalet".

Hur kommer jag in i Command-Line Shell?

Det vanligaste sättet att komma åt kommandoradsskalet använder en terminalemulator.

Om du använder en Linux-distribution kan den startas i X Window System (eller "X"), som låter dig köra program i egna fönster och interagera med dem med musen. I X finns det olika sätt att starta en terminalemulator, men här är de vanligaste:

  • Många Linux-distributioner använder en skrivbordsmiljö som liknar Microsoft Windows, som har en "Startmeny". Från den här menyn finns din terminala applikation vanligtvis under "Tillbehör". Till exempel kommer Lubuntu med LXTerminal terminal emulatorn redan installerad, och genvägen finns i Tillbehör-menyn.

    Om du väljer terminalmenyalternativet startas terminalsemulatorn och placeras på en kommandorad.

  • Olika versioner av Linux använder olika typer av fönsterhanterare, var och en med något annorlunda gränssnitt. Med många fönsterhanterare visar högerklickning på skrivbordet en meny som innehåller ett terminalalternativ. Till exempel har högerklick-menyn i Crunchbang Linux en "Terminal" -alternativ. Nedan är vad den här menyn ser ut, efter högerklickning var som helst på skrivbordet.

    Här skulle Tillbehör menyn också ha möjlighet att köra terminalen.

  • På många versioner av Linux trycker du på Super Key och " T " samtidigt som standard snabbtangent för att starta en terminal. (Supernyckeln är vanligtvis den första tangenten till vänster om mellanslagstangenten, även känd som Windows-tangenten).

Om du inte kan ta reda på hur du startar din terminalemulator, se dokumentationen för ditt operativsystem och sök efter "terminal".

Kommandotolken

När du startar terminalemulatorn presenteras du med en kommandotolk.

Obs! Dessa exempel utförs alla med hjälp av Bourne-Again Shell ( bash ), vilket är standardkommandonskalan på Linux.

Låt oss titta nära den här kommandotolken. Prompten kan konfigureras för att vara något du vill, men som standard ser det ut som det vi ser här, och ger oss användbar information innan vi skriver in ett kommando.

Specifikt berättar vi för vem vi är (användarnamn) och var vi är (vilket system vi använder och vår arbetsregister). Här är vad de enskilda delarna av prompten betyder:

ditt namnDitt användarnamn.
@En vid symbol skiljer användarnamnet och värdnamnet.
Din värdSystemets värdnamn.
:Kolon är karaktären som skiljer värdnamnet och arbetskatalogen.
~Vår nuvarande ("arbetande") katalog. Tilde (" ~ ") är ett specialtecken som representerar vår hemkatalog. När du startar en shell-session, är det den katalog där du vanligtvis börjar jobba som standard.
$Ett specialtecken som indikerar att vi inte har superuser privilegier. Om inloggad som root (superanvändaren) ändras denna tecken till en # .

Ange kommandon

Låt oss skriva in vårt första kommando. Vi bör börja med att lista filerna finns i vår hemkatalog. Det mest grundläggande sättet att se alla dessa filer är att använda kommandot ls ; skriv ls på kommandotolken och tryck på enter.

Som visas ovan listar kommandot ls innehållet i katalogen och placerar oss vid en annan kommandotolk.

Obs! Alla kommandon och filnamn i Unix och Linux är skiftlägeskänsliga. Kommandot ls, till exempel, måste skrivas i små bokstäver, precis som det är ovan.

För en mer detaljerad lista över kataloginnehållet kan vi ange kommandoradsalternativ, även kända som omkopplare . Det här är ytterligare argument för kommandot som ändrar hur det fungerar. Här använder vi -l (använd långlista format) för att få mer information från vår notering.

Som visas ovan ger kommandot ls -l oss mycket mer information om innehållet i vår hemkatalog. För närvarande är den viktigaste informationen vi bör notera att första bokstaven i listorna är en d, vilket innebär att varje kataloginnehåll är en katalog.

Innan vi gör någonting annat, låt oss rensa skärmen, för att ta bort den rot som produceras av utgången från våra tidigare kommandon. Använd kommandot klart genom att skriva in en ny kommandotol och tryck på Enter .

Efter att du tryckt på Enter, rensar skärmen och placerar dig vid en ny kommandotolk högst upp på terminalskärmen.

Ändra katalog

Låt oss flytta in i vår dokumentmapp med kommandot cd ("Change Directory"). För att ändra den aktuella katalogen, skriv " cd " och sedan ett mellanslag, sedan namnet på katalogen du vill byta till och tryck sedan på enter.

CD- kommandot förutsätter att namnet på en katalog du anger är relaterad till din nuvarande katalog. För att ändra till dokumentkatalogen, som finns i vår nuvarande katalog, skriv " cd-dokument ".

Kommandotolken speglar nu den nya arbetsgruppen: ~ / dokument, vilket motsvarar hela sökvägen: / hem / namn / dokument . Oavsett vilken användare du är inloggad som " ~ " representerar alltid din hemkatalog. I exemplet ses också den nya arbetskatalogen i titelfältet i vårt terminalfönster.

Obs! I motsats till MS-DOS och Microsoft Windows separeras hierarkiska katalognamn i Linux med ett framåtstreck (" / ") snarare än en backslash (" \ "). Denna förändring av symboler är en grundläggande skillnad mellan dessa olika operativsystem.

När som helst kan du verifiera din nuvarande katalog genom att använda kommandot pwd ("print work directory").

Kommandot skriver ut namnet på den aktuella katalogen till terminalen, i det här fallet " / home / yourname / documents ". Återigen, med " ~ / dokument " representerar " ~ " vår hemkatalog, som är / home / yourname . Så om vi befinner oss i vår hemkatalog, skriver vi " cd-dokument ", " cd / home / yourname / documents " eller " cd ~ / documents " alla i samma katalog.

Låt oss nu flytta upp en katalog, tillbaka till vår hemkatalog. Det särskilda katalognamnet " .. " (dubbelpunkten) betyder "en katalog upp".

Vi är nu tillbaka i vår hemkatalog.

Obs! Om du är mer bekant med MS-DOS, kom ihåg att det måste finnas ett mellanslag mellan cd och de två perioderna.

Flytta filer

Låt oss nu bli bekanta med hur man flyttar filer runt.

Låt oss säga att vi bara laddat ner två bilder med en webbläsare, och de sparades i vår nedladdningsmapp . Låt oss gå in och ta en titt. Först ändrar vi katalogen i hämtningsbiblioteket .

Lista sedan filerna i katalogen med kommandot ls .

Här ser vi två JPEG-filer. Låt oss hämta dem ur nedladdningsmappen och placera dem någonstans mer lämpligt, som bilderna. För att flytta dessa filer använder vi kommandot mv ("move").

Kommandot mv tar följande allmänna form.

 mv [ OPTIONS ...] SOURCE DESTINATION 

OPTIONS är omsluten i parentes eftersom du inte behöver ange några alternativ för att slutföra kommandot. Källorna Källa och DESTINATION krävs båda.

SOURCE är namnet på filen eller filerna som du vill flytta. DESTINATION är där du vill flytta dem. Om DESTINATION är ett katalognamn, flyttas filen eller filerna till den katalogen.

Vi är för närvarande i katalogen / hem / namn / nedladdningar och vi vill flytta filerna till / hem / namn / bilder . Vi kunde ange vår DESTINATION med hela sökvägen (" / home / yourname / images ") eller som ett söknamn i förhållande till vår nuvarande katalog (" ../images ") eller använda en tilde som en förkortning för vår hemkatalog ( " ~ / bilder "). Alla dessa är likvärdiga och ger samma resultat. Låt oss använda det relativa söknamnet för vår DESTINATION : ../images .

Så, hur ska vi ange vår Källa ?

Vi vill flytta båda filerna, och de är de enda filerna i katalogen. Så det enklaste sättet att ange dem skulle vara att berätta mv "flytta alla filer i den här katalogen till ../images ." Vi kan göra detta med ett jokertecken.

Ett jokertecken är ett specialtecken som kan representera mer än ett filnamn (eller mer än en del av filnamnet). Här ska vi använda asterisk wildcard (" * "). Om vi ​​använder * som vårt hela filnamn, tillämpar skalet vårt kommando på alla filer i vår arbetsregister.

Så, vårt kommando kommer att läsa enligt följande: " mv * ../images ". Låt oss ange det nu.

Det ser ut att inget har hänt, men det är skalets sätt att berätta för oss att inga fel uppstod. Om det uppstod ett problem skulle det visa ett felmeddelande eller varning av något slag.

Låt oss verifiera att filerna har flyttats. Vi kan lista innehållet i en annan katalog genom att köra ls och ange ett söknamn. I detta fall är vårt söknamn " ../images ."

Bilderna finns båda tillsammans med en annan katalog som redan existerade (" bakgrundsbilder "). Vi borde skapa en egen egen katalog för att bättre organisera våra bilder och hålla huvudbildkatalogen från att bli rörig. Låt oss göra det nu.

Skapa kataloger

Låt oss byta till bildkatalogen där våra två pingvinbilder nu bor.

Låt oss nu skapa en ny katalog för våra pingvinbilder. Skapa nya kataloger görs med kommandot mkdir .

Den enklaste formen av mkdir- kommandot är att ge ett argument: namnet på den nya katalogen. Vi skulle vilja göra en ny katalog i vår nuvarande katalog, så vi behöver inte ge mkdir ett fullständigt söknamn, bara namnet på katalogen själv. Låt oss ringa vår nya katalog pingvin-pix .

Så kommandot vi kommer att skriva in är " mkdir penguin-pix " för att skapa en ny katalog.

Låt oss nu verifiera att det finns där, genom att lista kataloginnehållet.

Obs! Du kan se att när vi listar kataloginnehållet är filnamn och katalognamn olika färger för att identifiera de olika filerna och katalogerna. Även om färgmarkering är vanlig med de flesta skalen, gör inte alla skal normalt.

Om vi ​​inte kunde berätta om namnenes färg kunde vi alltid kolla vilka av dessa filer som är kataloger genom att anropa ls med alternativet -l (långlista).

Tilläggsinformationen inkluderar följande.

  • Tillstånd - Vem har tillgång till filen och vilken typ av åtkomst.
  • Ägarskap - vem är filens ägare.
  • Authorship - som skapade filen.
  • Filstorlek - Storlek på filen i byte.
  • mtime - datum och tid filen ändrades senast.

Den första bokstaven på linjerna för pingvin-pix och bakgrundsbilder är en " d ", vilket indikerar att de är kataloger. Mer information om filförteckningar finns i dokumentationen för chmod- kommandot.

Vi kan nu flytta våra bilder till den nya katalogen. För att berätta för mv vilka filer som ska flyttas kan vi använda ett jokertecken igen, men den här gången får vi se till att det vet att man bara flyttar bildfilerna, inte katalogerna. Eftersom båda bildfilerna slutar med JPEG-förlängningen .jpg kan vi ange filnamnet " * .jpg ": detta berättar på skalet "de filer jag vill flytta är några filer i den nuvarande katalogen som slutar med .jpg ". Så vårt kommando kommer att se ut så här: " mv * .jpg penguin-pix ."

Inget felmeddelande gavs, vilket betyder att kommandot slutfördes framgångsrikt. Låt oss verifiera att filerna flyttades genom att notera innehållet i penguin-pix .

Ta bort filer

Vi har två pingvinbilder, men kanske bestämde vi oss för att vi bara behöver realpinguin.jpg, och vi behöver inte tux-the-penguin.jpg längre. Vi kan ta bort den här filen med kommandot rm ("remove").

Vi måste ange rm med filnamnet som ska raderas. Vi är för närvarande i bilderna katalog, men vår bild finns nu i underkatalogen pingvin-pix . Vi kunde ändra vår arbetsmapp till penguin-pix och kör sedan kommandot, men det är bara extra arbete, vi kan hoppa över det här steget genom att använda katalogen som en del av sökvägen.

Vårt kommando kommer att se ut så här: " rm pingvin-pix / tux-the-penguin.jpg ."

Återigen utförs skalet vårt kommando utan att ge någon feedback. Kommandot kördes framgångsrikt, så skalet returnerar oss till kommandotolken och låter oss veta att det är klart för ett annat kommando.

Varning: Till skillnad från att dra en fil till papperskorgen eller Microsoft Windows-papperskorgen finns det inget sätt att ångra en filavsättning med rm . Ta bort dina filer med försiktighet! En gång bort är det (nästan) omöjligt att få tillbaka dem.

Låt oss bara verifiera att filen verkligen är borta.

Ta bort kataloger

Det är bra för filer, men hur är det med kataloger? Som standard tar rm bara filer bort och inte kataloger.

Kommandot rmdir ("remove directory") tar bort en katalog, förutsatt att den är tom. Låt oss testa det genom att skapa en ny, tom katalog med kommandot " mkdir test-katalog ".

Låt oss verifiera att det finns med kommandot " ls -l ".

Vi kan nu ta bort vår helt nya katalog med kommandot " rmdir test-katalog " och kontrollera att det är borta genom att köra kommandot " ls -l " igen.

Ja, det är borta.

Men vad skulle hända om vi försökte " rmdir penguin-pix "?

Vi kan inte rmdir den katalogen eftersom den inte är tom.

Om du är säker på att du vill ta bort penguin-pix och allt inne i det (inklusive alla filer och eventuella kataloger som det kan innehålla), kan du använda kommandot rm med alternativet -r .

Normalt kommer rm inte att fungera i en katalog. Om emellertid anropas med alternativet -r tar rm bort en katalog rekursivt, vilket innebär att den reser in i katalogen och någon underkatalog, raderar allt inklusive katalogen. Så, om vi kör kommandot " rm -r penguin-pix ", tar det bort katalogen och filen som var inne. Om det fanns några kataloger inuti skulle de också ha tagits bort.

Varning! Återigen finns det ingen ångra för det här kommandot. När du rm -r en katalog, är den katalogen och allt inne i den borttagen för alltid! Som de flesta Linux-kommandon är rm mycket kraftfull och bör användas med försiktighet.

För att kopiera en fil, använd kommandot cp .

 cp SOURCE DESTINATION 

SOURCE är namnet på filen du vill kopiera, och DESTINATION är sökvägen som anger destinationen för den nya filen. Destinationen kan vara ett nytt filnamn eller namnet på den katalog där du vill att en kopia ska vara lokaliserad.

Låt oss säga att vi har en textfil i vår dokumentmapp som heter orig.txt, och vi vill göra en kopia av den som heter copy.txt . Kommandot vi ska använda är " cp orig.txt copy.txt ."

Om vi ​​däremot specificerar en katalog som destination för cp- kommandot, gör den en kopia med samma namn som originalet i målkatalogen. I nästa exempel gör vi sex saker.

  1. Ange innehållet i arbetsboken.
  2. Skapa en ny katalog, kallad kopior .
  3. Ange innehållet i arbetskatalogen, som nu innehåller kopikatalogen .
  4. Ange innehållet i kopian katalogen (det finns ingen. Den är tom).
  5. Kopiera copy.txt till kopikatalogen .
  6. Ange innehållet i kopikatalogen, som nu innehåller en kopia av copy.txt .

Byta namn på en fil

Kommandot mv kan också användas för att ändra namnet på en fil. Kommandot " mv orig.txt original.txt " kommer till exempel att byta namn på filen orig.txt till original.txt .

Byta namn på en katalog

Byta namn på kataloger fungerar precis som att byta namn på filer, med kommandot mv . Här skapar vi en katalog med namnet " copy ", men byt namn på den till " kopior " med kommandot " mv copy copies ."

Om kopikatalogen innehåller filer eller kataloger skulle de vara oförändrade. Det enda som skulle förändras är namnet på den katalog som innehöll dem.

Automatisk slutförande

De flesta Linux-kommandoradsskal kompletterar automatiskt det ord du har börjat skriva om du trycker på Tab-tangenten. Automatisk slutförande kan hjälpa dig spara tid, särskilt med långa filnamn. Låt oss till exempel säga att du har tre filer i din dokumentmapp: pingvin-diving.jpg, penguin.jpg och penguins.jpg .

Om du skriver ett kommando och skriver sedan " p " och trycker på Tab- knappen fyller skalet ordet "pingvin" för dig.

Det slutar där eftersom alla filerna börjar med ordet pingvin, men efter det är det inte säkert vilken fil du vill ange.

Om du befinner dig i en situation där det finns mer än en autofullständig match för det du redan har skrivit, trycker du på Fliken två gånger om att skalet ska lista alla möjliga matchningar. Så i situationen ovan där du skrev p och Tab och skalet fyller pingvinet för dig. Tryck på fliken två gånger skulle ge dig alla möjliga alternativ och placera dig tillbaka vid snabbmeddelandet, med ditt kommando fyllt i där du slutade.

Autocompletion fungerar också för att fylla söknamn och kommandonamn.

Avsluta skalet

Skrivning av exit- kommandot lämnar kommandot skalet, och antingen stänger terminalfönstret eller förbereder terminalfönstret att stängas manuellt.