I första delen (som du hittar här) beskrev jag lite om och hur man navigerade runt i fil-systemet, jag beskrev också om grupper och rättigheter. I Linux så har man två nivåer av rättigheter systemets och användarens. Systemet är själva operativsystemet vilket har åtkomst utan att ta hänsyn till eventuella rättigheter som filen har och användaren som endast får åtkomst om de rättigheter som är definierade för filen tillåter detta. Dock finns en användare som har samma rättigheter som systemet som i Linux kallas root och har användaridentitet (UID 0). Många av kommandona som påverkar funktionen av systemet eller filer som har med systemets inställningar är skyddade så att endast operativsystemet eller användaren root kan komma åt dem. Det finns 3 olika sätt att utföra kommandon som root:

  1. att logga in som användaren root med rätt lösenord
  2. att använda sig att kommandot su (som byter till root användaren om du är inloggad)
  3. att använda sig att kommandot sudo (kör som root) som utför kommandot som du anger men som användaren root

I många Linux ditributioner bl.a Ubuntu så aktiveras aldrig användaren root (så att man kan logga in som den) eftersom många internet atacker försöker använda kända användarnamn (root finns på alla system) för att få åtkomst till systemet. Därför fungerar inte alt. 1 och 2 på dessa installation.

sudo – Utför kommandon som superanvändare

sudo är ett förkortning av superuser do eller på Svenska utför som superanvändare. Det finns massor av inställningsmöjligheter för detta kommando men jag kommer att beskriva enbart hur det är uppsatt på Raspberry PI. När man utför ett priviligerat kommando (som kräver speciella rättigheter  så brukar kommando informera om att du inte kan köra det som en vanlig användare.

needroot

genom att skriva sudo + ett mellaslag före kommandot så utförs kommandot som om användare root skulle ha kört det.

sudo

Man bör komma ihåg att det finns en orsak varför man inte kan utföra kommandot eller ändra en viss fil. Man bör förstå vad man gör eftersom ändringar som root kan innebära att systemet inte fungerar korrekt efter eller att operativsystemet kraschar.

shutdown – Stäng ner eller starta om systemet

shutdown-kommandot används för att starta om eller stänga av systemet vid en given tidpunkt. Kommandot kräver sudo för att fungera. Man startar om systemet genom att ange -r (för reboot) eller stannar systet med -s (för stop) och sedan tidpunkten när man vill att det ska utföras. Tidpunkten kan anges som ett klockslag t.ex 13:00 eller om ett antal minuter t.ex +20, det finns även now som betyder på en gång (nu). Det är viktig att stänga ner systemet innan man bryter strömmen med t.ex

sudo shutdown -s now

detta för att allt oskrivet data verkligen blir nedskrivet på disken(SD-kortet) och att ingen program skriver ny information till disken när man bryter strömmen. Precis som en PC så går det oftast bra att bara bryta strömmen, men vill du vara säker på att inte något blir sönderskrivet så bör man köra shutdown före.

Ett Linuxsystem bygger på driftsäkerhet och kräver sällan omstart bara för att…, men om man ska start om gäller samma sak som när man stänger av den, dra inte ut och stoppa i strömmen för omstart. Använd istället

sudo shutdown -r now

passwd – Byt lösenord

passwd kommandot används för att byta lösenord på en användare, för att byta ut lösenordet så frågar den först efter det gamla lösenordet som säkerhet.

passwd

root-användaren kan byta lösenord på alla användaren i systemet utan att känna till utsprungslösenordet, man skriver namnet på den användare som man vill byta lösenord på sist

passwd-sudo

Om man vill aktivera root användaren så kan man göra det med sudo passwd utan att skriva någon användare (man kan skriva root men de behövs inte eftersom man kör som root med sudo)

passwd-root

 

nano – Editera filer

När man behöver ändra innehåller i olika filer så behöver man en editor för detta. På unixsystem fanns bara från början vi-editorn som för många var liket knepig eftersom det är ursprungligen en radeditor dvs man manipulerar bara en rad i tagen. Och editeringskommandona inte så lätta att komma ihåg. Numera finns en enklare editor att använda som har en hjälpmeny längst ner med kommandohjälp. T.ex att editera filen /etc/hosts startas med

nano_1

Man får upp följade bild på skärmen

nano_2

Systemet varnar att jag inte kommer att få skriva tillbaka ändringarna (Warning: No write permission), det beror på att denna fil inte får ändras av en vanlig användare, starta istället med kommandot

nano_3

så varnar systemet inte längre för detta. På de två nederst raderna har man en kort-hjälp vilka kommandon som är tillgängliga. Taktecknet (^) används oftast på unixsystem för att visa att man ska använda kontrolltangenten (CTRL) tillsammans med bockstaven ^X är samma sak som CTRL+X. Med CTRL+G får man upp en hjälpmeny med alla

nano_help

kommandon, använd CTRL+X för att komman tillbaka i editeringsläge.

rm – ta bort en/flera fil(er)

rm är samma sak som rmdir men för filer och kataloger.

rm_ex

 

Exemplet visar en katalog (test) med 5 filer och 2 bibliotek, ett bibliotek har en fil (dir1) och ett är tomt

rm fil1 tar bort filen fil1 från disken

rm_fil1

rm har en option -R som betyder rekursivt så att man kan ta bort hela träd av filer med ett kommando

rm-r

 

rmdir som raderar kataloger kan inte ta bort kataloger som inte är tomma. rm hanterar inte heller detta utan den rekursiva flaggan -R som tar bort allt som finns under biblioteket dir1

less – lista filer

less kommandot är en utveckling av det gamla kommando more som gjorde att man kunde lista en fil, en sida i tagen, less är mer avancerat och tillåter att man kan lista både framåt och bakåt i en fil. För att avända det skrivare man less <filnam>, t.ex less /etc/fb.modes

less

 

om man tryck h så får man fram en hjälp om de olika kommando som finns i less

less-help

 

Det mest grundläggade är

  • pil upp ↑ och pil ner ↓ navigerar upp och ner i filen
  • g för att gå till början av filen
  • G för att gå till slutet av filen
  • /kalle sök efter texten kalle i filen
  • n hoppa till nästa ställe där söktexten finns dvs nästa kalle i filen eller vad du sökt efter
  • N hoppa till föregående ställe där söktexten finns

pwd – var är jag?

pwd visar var i filträdet som man befinner sig.

pwd

cp – kopiera filer

cp fungerar ungefär som copy i DOS, det används för att kopiera filer. cp har ett anta optioner som man använder vid kopiering

  • -p (preserve) gör att kopian får samma datum, ägare m.m, normalt får kopia datum/tid motsvarande vad kloackna var vid kopieringen
  • -n om filen som anges som destination finns, skriv inte över den
  • -r rekursivt, gäller om det är en katalog = kopiera även innehållet i katalogen
  • -u kopiera bara om källan har ett nyare datum än destinationen (förhindra att man raderar nyare filer)
  • -i fråga för varje fil som skrivs över om det är ok
  • -f skriv över filer utan att fråga

det finns fler som man kan få fram genom att skriva cp –help eller man cp. Man skriver cp följt av vad man vill kopiera (filer eller kataloger) och slutligen vart man vill kopiera den. Ett exempel cp fil1 dir1/ gör en kopia på filen fil1 och lägger den i katalogen dir1. Om destinationen är en katalog så skapas en fil med samma namn som källfilen i katalogen man man höver altså inte skriva cp fil1 dir1/fil1, även om det ger samma resultat.

cp-1

Att kopiera och ge kopian nytt namn men behålla tid för filen (-p) kan man gör med cp -p fil1 dir1/fil2

cp-2

Som man kan se fick den namnet fil2 men behåller samma tid på filen som originalet.

När man kopierar kataloger är det viktig att man får med -r flaggan om filerna som ligger i katalogen ska komma med

cp-dir

 

När man glömde -r så varnade cp att den inte skulle kopiera dir1 (omitting directory ‘dir1’). Genom att man inte använde -p flaggan så fick både filerna ny tid.

mv – flytta filer

mv används för att flytta filer och byta namn (tänk som att filen flyttas från gamla till nya namnet). Som med cp så har mv ett på optioner som är användbara

  • -f byt ut om destinationen redan finns (ta bort den som finns och flytta filen)
  • -i fråga först innan filen flyttas om det redan finns en med samma namn
  • -n flytta inte om det redan finns en med samma namn
  • -u flytta bara om filen är nyare än den som redan finns

Om man anger en fil och destinationen som en katalog flyttas filen dit, om destinationen är ett filnamn byter filen namn. Observerar att man kombinera katalog och fil som destination och då både flyttas filen och byter namn.

Om man anger en katalog flyttas katalogen och allt innehåll. Om destinationen finns flyttas katalogen som en underkatalog till katalogen. Om destinationsnamnet inte finns byter katalogen namn.  Som med filer kan man kombinera flyttning och namnbyte.

Om man ska flytta en katalog till en annan är ett enkelt trick att alltid lägga till /. efter namnet. Om man skulle skriva fel namn på destinationskatalogen och man inte har /. i slutet så tolkar den som att du vill byta namn på katalogen. Detta kan orsaka massor med fel så det kanske inte alltid är så självklart vad som gått fel. Om man har /. i slutet och råkar skriva fel får man ett felmeddelande att destinationskatalogen inte finns. Punkten i slutet anger den “riktiga” vägen till katalogen vilket innebär att katalogen måste finns för att den ska hitta .

Exempel att byta namn på katalogen dir1 till kakburk med kommandot mv dir1 kakburk

mv_ren

 

Sen visas fara med felstavning, tanken är att flytta dir2 till katalogen dir-r men skriver fel namn dir-t och inte använda /. på slutet. Observerar att det spelar ingen roll om man lägger till / (utan punkt) eller ej.

mv-fel

 

Det var inte vad vi tänkt oss, om man gör en massa saker efter varandra kanske man inte upptäcker det direkt utan resulterar i en massa onödig felsökning. Vi gör om samma fel men lägger till /. i slutet på kommandot dvs mv dir2 dir-t/.

mv-error

Här fick vi ett felmeddelande på en gång och katalogen bytte inte namn.

head – visa de först raderna i en fil

head används för att snabbt titta på början av en fil, som standard visas de 10 först raderna. Man kan ändra det genom att lägga till optionen – följt av antalet rader som man vill se, t.ex

head -5 /etc/mime.types

visar de första 5 raderna i filen /etc/mime.types

head

 

tail – visa de sista raderna i en fil

tail används för att snabbt titta på slutet av en fil, som standard visas de sista 10 raderna. Man kan ändra det genom att lägga till optionen – följt av antalet rader som man vill se. t.ex tail -5 /tc/mime.types visar de 5 sista raderna i filen /etc/mime.types

tail

 

file – gissa vad filen innehåller

Ibland kan filnamnet inte ge ledtrådar vad den innehåller, speciellt om filen inte innehåller text utan binärt innehåll. file kommandot har en tabell med nyckelord/teckenkombinationer som den tittar på för att försöka lista ut vad filen innehåller för information. Om det inte kan gissa så visas ofta bara ordet data.

file

 

I nästa artikel (länk till del 3) ska jag beskriva hur man t.ex enkelt kan kombinera fler kommandon för att göra komplicerade operationer