next up previous contents
Vidare: Att styra processer. Uppåt: Att använda Slackware Linux. Tillbaka: Filsystemets uppbyggnad.

Att hantera filer och kataloger.

Slackware Linux siktar emot att bli så Unix-likt, det kan bli. Sedan gammalt har Unix-systemen varit inriktade på användning av kommandoraden. Vi har ett grafiskt användargränssnitt i Slackware, men kommandoraden är likväl det viktigaste redskapet för att styra systemet. Därför är det viktigt att ha grepp om några grundläggande filhanteringskommandon.

Följande avsnitt förklarar några vanliga filhanteringskommandon och visar exempel på hur, de kan användas. Det finns många andra kommandon, men de följande räcker, för att man skall komma igång. Närmare upplysningar finns på manualsidan till vart kommando.

ls.

Detta kommando visar en lista över filerna i en katalog. Windows- och DOS-användare lägger märke till likheten med kommandot dir. Utan flaggor (växlar) ger kommandot ls en förteckning över filerna i aktuell katalog. För att få se, vad som finns i rotkatalogen, kan man kommendera:

   $ cd /
   $ ls
   bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
   boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz

Det är ett bekymmer för somliga, att man av denna förteckning inte så lätt kan utläsa, vad som är kataloger och vad som är filer. En del användare föredrar att lägga en typidentifierare till förteckningen genom att lägga en flagga till ls på följande vis:

   $ ls -FC
   bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
   boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz

Katalogerna får här ett snedstreck vid namnets slut, körbara (exekverbara) filer får en asterisk (stjärna) vid namnets slut o.s.v.

Kommandot ls kan även användas till att visa filstatistik. Exempelvis kan man för att få se, när filen skapats, ägarens användarnamn och vilka rättigheter, som är förknippade med filen, välja lång lista:

   $ ls -l
   drwxr-xr-x   2 root     bin          4096 May  7  1994 bin/
   drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
   drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
   drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
   drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
   drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
   drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
   drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
   drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
   drwxr-xr-x   2 root     root         4096 Oct  6  1997 mnt/
   dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
   drwxr-x---x  12 root     root         4096 Feb 26 02:06 root/
   drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
   drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
   drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
   drwxr-xr-x  21 root     root         4096 Aug 24  1999 usr/
   drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/
   -rw-r---r---   1 root     root       461907 Feb 22 20:04 vmlinuz

Antag, att man vill se en förteckning över dolda filer i aktuell katalog. Det kan man åstadkomma med följande kommando:

   $ ls -a
   .              bin   cdrom  home        mnt   sbin   usr
   ..             boot  dev    lib         proc  suncd  var
   .pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz

Filer, vars namn börjar med punkt, är »dolda«, när man kör ls utan växlar (flaggor). Man får se dem, om man använder flaggan -a till ls.

cd.

Kommandot cd användes till att växla katalog. Man skriver cd åtföljt av den sökväg, man vill växla till. Här följer några exempel:

   darkstar:~$ cd /bin
   darkstar:/bin$ cd usr
   bash: cd: usr: No such file or directory
   darkstar:/bin$ cd /usr
   darkstar:/usr$

Lägg märke till, att utan föregående snedstreck (/) försöker det växla till en katalog direkt under befintlig katalog.

Kommandot cd är inte som andra kommandon. Det är ett inbyggt skalkommando. Inbyggda skalkommandon diskuteras i avsnittet om miljövariabler på s. gif i kapitel 8. Detta kanske verkar obegripligt än så länge. Det innebär emellertid, att det inte finns någon manualsida för detta kommando. I stället får man använda hjälpen till skalet. Man skriver så här:

   $ help cd
Det visar växlarna till cd samt hur, man använder dem.

more.

more(1) är vad som kallas en pager (ett program, som visar text en sida i taget). Ofta är utmatning ifrån ett bestämt kommando alltför omfattande för att rymmas på en skärmsida. Enstaka kommandon vet inte, hur de skall dela upp sin utmatning på flera skärmsidor. De överlämnar denna uppgift till en pager.

Kommandot more bryter ner utmatningen i enstaka skärmbilder och väntar på, att man skall trycka ner mellanslagstangenten, innan det går vidare till nästa skärmbild. När man trycker på returtangenten, matas texten fram en rad. Här är ett exempel:

   $ cd /usr/bin
   $ ls -l

Det torde rulla över skärmen en stund. För att dela upp utmatningen i flera skärmsidor, så kan man skicka den igenom en rörledning (pipeline) till more:

   $ ls -l | more
Där ser vi rörledningstecknet »|« (AltGr+<). Rörledningen (pipeline) innebär i detta fall »tag utmatningen ur ls och mata in den i more«. Man kan skicka nästan vad som helst i en rörledning till kommandot more och inte bara utmatning ifrån ls. Sådan piping behandlas även i avsnittet om rörledning och omdirigering på s. gif i kapitel 8.

less.

Kommandot more är behändigt, men ofta upptäcker man, att den skärmsida, man ville läsa, redan är förbibläddrad. Dessvärre kan man inte bläddra bakåt med more. Däremot kan man det med less(1). Det användes på samma sätt som more, så att föregående exempel äger giltighet även här. Således är less mer än more.

cat.

cat(1) är en förkortning av »concatenate« Det har ursprungligen skapats för att slå ihop flera textfiler till en enda, men det kan användas till många andra ändamål.

Om man räknar upp ett antal filer (två eller fler) efter kommandot cat och omdirigerar utmatningen till en ny fil, så slås filerna ihop till denna enda fil. cat arbetar med standard input och standard output, så att man måste använda skalets omdirigeringstecken. Exempel:

   $ cat fil1 fil2 fil3 > storfil
Detta kommando tar innehållet i fil1, fil2 samt fil3 och sätter ihop alltsammans. Den nya utmatningen skickas till standard out.

Man kan även begagna cat till att visa innehållet i filer. Många »cattar« textfiler genom kommandona more eller less på följande vis:

  $ cat fil1 | more
Detta visar innehållet i filen fil1 genom att mata in det i kommandot more, så att endast en skärmsida visas åt gången.

Ytterligare en användning för cat är kopiering av filer. Man kan kopiera vilken som helst fil med cat på följande vis:

  $ cat /bin/bash > ~/minbash
Programmet /bin/bash har därmed kopierats till hemkatalogen under namnet »minbash«

cat har många användningar och de här uppräknade är bara ett fåtal av dem. Eftersom cat begagnar standard input och standard output, så är det mycket användbart i skalskript eller delar av andra, sammansatta kommandon.

touch.

touch användes till att ändra tidsstämpeln på en fil. Man kan ändra tidsstämplar för åtkomst och ändring med detta kommando. Om angiven fil inte är förhanden, så kommer touch att skapa en tom fil med angivet namn. Vill man märka en fil med närvarande systemtid, kan man befalla följande:

  $ touch fil1
Det finns flera växlar för touch inberäknat växlar för att ange vilken tidsstämpel, som skall ändras, vilken tid, som skall stämplas på och ytterligare många fler. Manualsidan redogör för detaljerna.

echo.

Kommandot echo visar angiven text på skärmen. Man anger efter kommandot den textsträng, som skall visas. Såsom förinställning visar echo textsträngen och lägger därefter till tecknet newline (tex2html_wrap_inline7216n) för radbrytning efteråt. Man kan lägga till växeln -n för att undertrycka radbrytningen. Flaggan -e får echo att söka efter escapetecken i strängen och exekvera dem.

mkdir.

mkdir(1) skapar en ny katalog. Man anger vilken katalog, som skall skapas. Följande kommando skapar katalogen hejaz såsom underkatalog till aktuell katalog:

   $ mkdir hejaz
Man kan även ange en sökväg, nämligen så här:

   $ mkdir /usr/local/hejaz
Växeln -p talar om för mkdir, att det vid behov skall skapa moderkataloger. Ovanstående exempel skulle misslyckas, om katalogen /usr/local inte funnes till. Med växeln -p skapas /usr/local och /usr/local/hejaz:

   $ mkdir -p /usr/local/hejaz

ln.

 

ln användes till att skapa länkar emellan filer. Dessa länkar kan vara endera hårda länkar eller mjuka (symboliska) länkar. Skillnaden emellan de två sorternas länkar har behandlats i avsnittet om länkar på s. gif i kapitel 9. Skulle man vilja skapa en symlänk ifrån katalogen /var/media/mp3 till sin egen hemkatalog, så skulle man kommendera:

   $ ln -s /var/media/mp3 ~/mp3
Flaggan -s bestämmer, att ln skall skapa en symbolisk länk. Nästa argument är befintlig fil (eller katalog) och till sist står den skapade länkens namn. I detta fall skapas i hemkatalogen en fil vid namn mp3, vilken pekar på /var/media/mp3. Man kan kalla en länk vadhelst, man vill, genom att ändra sista argumentet.

Det är lika lätt att skapa en hård länk. Man låter då bli att använda växeln -s. Följande kommando skapar således en hård länk i stället:

   $ ln /var/media/mp3 ~/mp3

cp.

 

cp(1) kopierar filer. DOS-användare lägger märke till likheten med kommandot COPY. Det finns många växlar till cp, så man bör läsa manualsidan, innan man använder det.

Det är vanligt att med cp kopiera en fil ifrån ett ställe till ett annat. Till exempel:

   $ cp hejaz /tmp
Detta kopierar filen hejaz från aktuell katalog till katalogen /tmp.

Många användare vill helst bibehålla tidsstämplar, såsom i detta exempel:

   $ cp -a hejaz /tmp
Detta säkerställer, att tidsstämplarna inte förändras vid kopieringen.

Om man vill kopiera innehållet i en katalog rekursivt till en annan katalog, så kommenderar man:

   $ cp -R enkatalog /tmp
Detta kopierar enkatalog till katalogen /tmp.

cp har många fler växlar, vilka skildras mer ingående på manualsidan.

mv.

mv flyttar filer ifrån ett ställe till ett annat. DOS-användare märker likheten med kommandot MOVE. Man anger källan och målet efter mv. Detta exempel visar en vanlig användning av mv:

   # mv myfile /usr/local/share/hejaz

mv har många växlar, vilka dokumenterats ingående på manualsidan.

rm.

rm utplånar filer och katalogträd. DOS-användare märker likheten med såväl DEL som DELTREE. rm kan vara ett mycket farligt kommando, om man inte passar sig. I motsats till vad fallet är i DOS eller Windows, så finns i Linux inget sätt att återställa utplånade filer.gif

Man raderar en enstaka fil genom att ange dess namn efter rm:

   $ rm fil1
Om skrivrättigheterna är borttagna ifrån filen, så får man ett felmeddelande om vägrad åtkomst. Man kan tvinga fram (force) utplånande av filen med flaggan -f på följande vis:

   $ rm -f fil1
Om man vill ta bort en hel katalog, så kan man använda flaggorna -r och -f tillsammans. Här följer ett fint exempel på, hur man kan utplåna allt innehåll från hårddisken. Det vill man vanligen inte göra. Här är kommandot i alla fall:

   # rm -rf /

Man får vara försiktig med rm; eljest kan man lätt komma till att skjuta sig själv i foten. Det finns åtskilliga växlar, som behandlas ingående på manualsidan.

rmdir.

rmdir(1) avlägsnar kataloger ifrån filsystemet. Katalogen måste vara tom för att kunna raderas med rmdir. Syntax är enkel:

   $ rmdir <katalog>
Detta exempel tar bort underkatalogen hejaz ifrån aktuell arbetskatalog:

   $ rmdir hejaz
Om katalogen ifråga inte finns, talar rmdir om detta. Man kan även ange fullständig sökväg till den katalog, som skall utplånas, såsom följande exempel visar:

   $ rmdir /tmp/hejaz
Detta exempel försöker ta bort katalogen hejaz under katalogen /tmp.

Man kan även utplåna en katalog tillsammans med samtliga dess moderkataloger genom att använda flaggan -p:

   $ rmdir -p /tmp/hejaz
Detta försöker först ta bort hejaz under /tmp. Om det lyckas, så fortsätter kommandot med att avlägsna /tmp. rmdir fortsätter ända tills ett fel tillstöter, eller hela det angivna katalogträdet utplånats.

Sammanfattning.

Detta kapitel har behandlat en mängd program, som hanterar filer och kataloger. Man bör nu veta, hur man skall skapa, utplåna och flytta nästan vad som helst i filsystemet. Man bör även veta, hur man skall förteckna och ändra tidsstämplar på filer, när så erfordras. Slutligen bör man ha klart för sig, varför det är mycket illa tänkt att kommendera rm -rf /.


next up previous contents
Vidare: Att styra processer. Uppåt: Att använda Slackware Linux. Tillbaka: Filsystemets uppbyggnad.


Denna översättning ifrån engelskan är utförd av Erik Jonsson <[email protected]> efter Slackware Linux Essentials, officiell handbok för Slackware Linux.

Denna översättning tillhandahålles liksom engelskspråkiga originalet enligt villkoren i GNU General Public License (GPL).
Uppgifterna om författarnas och översättarens namn får ej avlägsnas, utplånas eller eljest göras oläsliga.
Förvaras åtkomligt.
Bäst före: senaste ändringsdatum.
Äldre versioner bör förstöras.
Senast ändrad Tue Oct 24 09:36:13 CEST 2000

Hela boken finns här även beredd för utskrift i PDF-filen slwhbk.pdf.

http://www.slackware.com/http://www.sslug.dk/Ser bra ut i vilken vävläsare som helst.


Generaldepoten — Emil Tusens Kulturpalats.
Om goda kagor och torra kakor (»cookies«).

Innehåll:

Litteraturförteckning

Om goda kagor och torra kakor (»cookies«).