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.
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.
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. 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 cdDet visar växlarna till cd samt hur, man använder dem.
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 | moreDä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. i kapitel 8.
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(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 > storfilDetta 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 | moreDetta 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 > ~/minbashProgrammet /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 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 fil1Det 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.
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 (n) 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(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 hejazMan kan även ange en sökväg, nämligen så här:
$ mkdir /usr/local/hejazVä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 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. 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 ~/mp3Flaggan -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(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 /tmpDetta 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 /tmpDetta 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 /tmpDetta kopierar enkatalog till katalogen /tmp.
cp har många fler växlar, vilka skildras mer ingående på manualsidan.
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 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.
Man raderar en enstaka fil genom att ange dess namn efter rm:
$ rm fil1Om 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 fil1Om 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(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 hejazOm 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/hejazDetta 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/hejazDetta 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.
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 /.
Om goda kagor och torra kakor (»cookies«).
Om goda kagor och torra kakor (»cookies«).