Grundlæggende arbejde med Linux' terminal
Published on 2008-10-04 by Jesper Jarlskov
Selvom Ubuntu er et Linuxbaseret styresystem, kan man, i modsætning til hvad mange tror, sagtens klare sig, uden nogensinde at møde "Den sorte skærm med den lille blinkende pil", i folkemunde kendt som terminalen. Men man har stadig mulighed for at styre systemet fra sin terminal, og jeg mener at der er rigtig mange gode grunde til at lære terminalen at kende, i det mindste overfladisk. Terminalen er et rigtigt kraftigt værktøj, det kan gøre computerbrugerens hverdag meget lettere ved at automatisere en masse af det arbejde man ellers skulle lave manuelt. Som de skriver på linuxcommand.org:
Graphical user interfaces (GUIs) are helpful for many tasks, but they are not good for all tasks. I have long felt that most computers today do not use electricity. They instead seem to be powered by the "pumping" motion of the mouse! Computers were supposed to free us from manual labor, but how many times have you performed some task you felt sure the computer should be able to do? You ended up doing the work by tediously working the mouse. Pointing and clicking, pointing and clicking.
Denne første artikel vil omhandle grundlæggende brug af terminalen, hvad det er for en, hvordan den virker og hvordan den ser ud. Derudover vil den komme ind på nogle grundlæggende ting omkring hvordan man navigerer rundt i filer og mapper.
Linjer i artiklen skrevet som
dette
er kommandoer, og kan indtastes direkte i terminalen som det står.
Vi starter med nogle grundlæggende ting omkring terminalen og hvordan den bruges. [caption id="attachment_59" align="alignnone" width="300" caption="screenshot af konsole vindue"][/caption] Her ses et screenshot af KDE's terminalprogram Konsole, din terminal kan se lidt anderledes ud end dette alt efter hvilket program du bruger, men de grundlæggende ting er præcis det samme. Selve terminaldelen er teksten på den sorte baggrund. Der står nogle oplysninger om hvem og hvad.
jarlen@kk:~$først "jarlen", dette fortæller "hvem". Det er brugernavnet for den bruger der er logget på maskinen. @ udtales "at", og benyttes på samme måde som i e-mailadresser, til at forklare hvilken maskine der er tale om. Det er altså brugeren jarlen på maskinen "kk", på samme måde som jesper@jarlskov.dk er brugeren jesper på adressen jarlskov.dk. Det næste "~" forklarer hvilken mappe på maskinen terminalen pt. er i. ~ er en forkortelse for brugerens private mappe på computeren. Man kan altså altid komme tilbage til sin private mappe med kommandoen
cd ~
cd vil blive gennemgået om lidt.
Hvis man af en eller anden grund har brug for den fulde sti til den mappe man er i, bruges kommandoen:
pwd
I mit tilfælde får jeg ouputtet:
jarlen@kk:~$ pwd /home/jarlen jarlen@kk:~$da /home/jarlen er den fulde sti til min private mappe. Men nu til nogen af de grundlæggende kommandoer.
man
man er en forkortelse for manual, og giver en beskrivelse af de forskellige kommandoer. Det er en kommando der er meget god som opslagsværk hvis man skal finde ud af hvordan en kommando bruges, men det er nok ikke en almindelige mennesker vil bruge så fantastisk meget, da disse manualer er utroligt kedelige. :-) Kommandoen bruges med man, efterfulgt af den kommando man skal bruge manualen for, f.eks. for ls:man ls
For nogle programmer findes der også infofiler, de svarer til man-filerne, men er for det meste lidt kortere og mere overskuelige.
cd
cd står for change directory, og bruges til at navigere terminalen til en anden mappe.cd Desktop
tager mig f.eks. fra min brugermappe til mappen Desktop. Navigering i mapper foregår på samme måde som i den almindelige filbrowser, og jeg kan altså kun bruge cd Desktop når jeg er i min homemappe, da det er her Desktop-mappen er placeret. Man kan også gå direkte til undermapper, f.eks.
cd Desktop/mappe1 skifter til mappe1 i Desktop-mappen. Det skal bemærkes at navigering i Linux er case-sensitivt. Der er altså forskel på store og små bogstaver. "Desktop" og "desktop" er altså to forskellige mapper. En rigtig lækker feature her er at de fleste terminaler understøtter tab-afslutning. Det betyder at hvis du skriver en del af mappenavnet og trykker på tab, vil terminalen selv færdiggøre navnet. Så cd De [tab] bliver altså automatisk til cd Desktop hvis du ikke har andre mappenavne der starter med "De". Hvis der er mere end én mulighed kan man trykke tab to gange, så vil terminalen vise alle muligheder.
Der findes to specialtilfælde her. "." og "..", disse to "mapper" findes i alle mapper på systemet. "." betyder "current directory", altså nuværende mappe. Det er ikke noget man normalt vil få brug for, da cd . bare bringer dig til den mappe du allerede er i, der sker altså ikke nogen mærkbar ændring. ".." derimod betyder "parent directory", altså "forældre mappe". Dette henviser til den mappe der ligger niveauet højere i hierarkiet end hvor terminalen pt. befinder sig.
Så når:
cd Desktop
har taget terminalen fra din homemappe ind i Desktop-mappen, vil:
cd ..
tage dig et niveau op, altså fra Desktop-mappen tilbage til din home-mappe.
ls
ls står for list. Kommandoen giver en liste over indholdet af den mappe terminalen er i. Hvis du bruger en terminal med farver slået til vil filer og mapper blive vist i hver deres farve. Kommandoen som den står vil dog normalt ikke vise alt indholdet. Dette skyldes bl.a. at Linux behandler alle filer og mapper startende med "." som skjulte, og de vil derfor ikke blive vist som standard. Her får du brug for de såkaldte "flag". Det er ekstra indstillinger du kan give programmerne, for at få dem til at fungere anderledes. Disse flag bruges med "-" efterfulgt af en bogstav. Det er her man-siderne bliver gode at have, da du her kan finde en liste over alle flag for en given kommando, samt en beskrivelse af hvordan de bruges. Hvis du kigger iman ls kan du bl.a. se at ls kan benyttes med flaget -a, der vil vise disse skjulte filer og mapper.
ls -a vil altså vise alle filer og mapper der findes i den mappe terminalen er i, inkl. de skjulte. -l (lille L) flaget giver en listevisning, med flere detaljer om hver fil og mappe.
Flag kan kombineres, så:
ls -a -l vil derfor give en listevisning indeholdende bl.a. rettigheder og filstørrelse på alle filer og mapper i mappen, inkl. skjulte.
locate
locate er et søgeprogram der bruges til at finde filer på maskinen. Programmet indeholder en database over filer på computeren og arbejder derfor utroligt hurtigt. Dog er det nødvendigt selv at sørge for at denne database bliver vedligeholdt. Dette er ikke så slemt som det lyder, da det bare kræver at du engang imellem kører kommandoen:updatedb
det synes jeg personligt er en meget lille pris at betale for så hurtig og effektiv søgning :-).
Køres kommandoen som den står vil den dog give fejlen:
updatedb: fatal error: You are not authorized to create a default slocate database! da der kræves administratorrettigheder. Dette klares vha. kommandoen sudo.
sudo
sudo er en forkortelse for Super User DO, og bruges til at give administratorrettigheder til det program du ønsker at køre. Hvis vi tager eksemplet fra før med updatedb giver man administratorrettigheder til updatedb-programmet vha. sudo således:sudo updatedb. Terminalen vil herefter spørge efter din administratorkode. Sudo kan kun bruges af medlemmer af "admin"-gruppen på maskinen, den bruger der oprettes under installationen er automatisk med i denne gruppe, så hvis du kun har en bruger på maskinen bruges samme kode som når du logger på. Dette vil nok være tilfældet de fleste steder.
HUSK! når du skriver dit password i terminalen vil der ikke komme noget output. Du kan altså hverken se hvad eller hvor meget du har skrevet som password indtil videre, dette kan give nogle problemer engang imellem hvis man ikke lige er opmærksom på det.
which
Lidt i samme stil som locate findes programmet which. Det er også et søgeprogram, men i stedet for at finde filer som locate, bruges det til at finde ud af hvor dine programmer bliver installeret. Jeg har f.eks. installeret programmet firefox som internetbrowser, så hvis jeg bruger kommandoen:which firefox
får jeg outputtet:
/usr/bin/firefoxVær opmærksom på at som sædvanlig i linux er inputtet case-sensitivt.
which Firefox vil altså ikke give noget resultat.
mv
Nu da du har lært at finde lidt rundt i dit filsystem og finde de filer og mapper du skal bruge, kunne det også være relevant rent faktisk at kunne gøre noget ved disse, så jeg vil nu gennemgå et par grundlæggende muligheder. Den første er mv. mv er en forkortelse for move, og bruges altså til at flytte filer og mapper rundt.mv fil mappe
tager filen ved navn "fil" og ligger den i mappen "mappe", stille og roligt. :-) Husk at du også her kan bruge tab-completion som nævnt ovenfor ved cd-kommandoen. Både til når du skriver filnavne og mappenavne. Hvis den mappe der står i andet argument ikke eksisterer vil mv behandle det som et filnavn du gerne vil gemme filen som. Det betyder at der ikke findes ingen kommando til at skifte navn på filer i linux, man bruger simpelthen mv kommandoen.
mv gammeltNavn nytNavn
ændrer navnet på filen "gammeltNavn" til "nytNavn" med mindre der findes en mappe ved navn "nytNavn" i den mappe terminalen er i.
cp
cp er en forkortelse for copy, og bruges til at kopiere filer og mapper. Grundlæggende bruges den på samme måde som mv.cp fil mappe
kopierer filen ved navn "fil" ind i mappen ved navn "mappe". Hvis du gerne vil kopiere mapper får du dog brug for flag, som jeg omtalte tidligere. Rigtig mange programmer kan bruge flaget "-r", hvilket vil kalde programmet rekursivt, den samme kommando vil altså blive udført for alle filer og mapper i den mappe du arbejder med.
cp -r mappe1 mappe2
vil kopiere mappe1 over i mappe2, flaget -r sørger så for at alt indholdet af mappe1 bliver taget med, så du ikke ender med en tom mappe2.
rm
rm er en forkortelse for remove, og det er sådan set hvad den gør. Den bruges til at slette filer og mapper. Den fungerer lidt på samme måde som mv og cp.rm fil sletter filen ved navn "fil".
På samme måde som cp arbejder rm som standard kun med den fil eller mappe som du specificerer direkte. Hvis du skal slette en mappe med indhold skal du altså igen bruge -r flaget.
rm -r mappe sletter altså mappen med navnet "mappe" og alt indhold.
mkdir
mkdir er en forkortelse for "make directory". Den bruges til at oprette nye mapper.mkdir nyMappe
opretter en mappe med navnet "nyMappe".