Linux-användare förlitar sig ofta på terminalbaserade verktyg som nano eller vim för att modifiera konfigurationsfiler. Men om du föredrar att arbeta grafiskt, även med systemfiler, erbjuder textredigeraren gedit en smidig och enkel lösning.
”Allt är en fil” i Linux
En välkänd fras inom Linux och andra Unix-baserade operativsystem, som macOS, är att ”allt är en fil”.
Även om detta inte är bokstavligen sant, är det vanligt att textfiler används för systemloggar och konfiguration. Genom att läsa dessa filer kan du få insikt i hur operativsystemet fungerar, och du kan ändra deras beteende genom att redigera dem.
Gedit är den standardtextredigeraren för GNOME-skrivbordsmiljön och finns därför på de flesta system som använder GNOME, inklusive Ubuntu, Fedora, Debian, CentOS och Red Hat. Det är ett praktiskt verktyg för filredigering när du bara behöver en grundläggande editor för att utföra uppgiften, utan att behöva lära dig de mer avancerade funktionerna som finns i kraftfulla redigerare som vim.
Starta gedit
För att öppna gedit från kommandoraden, ange helt enkelt gedit
och tryck på Enter.
Textredigeraren gedit kommer då att öppnas.
Programfönstret är stilrent och avskalat, vilket gör att du kan fokusera på ditt arbete utan onödiga distraktioner.
Du kan också starta gedit från applikationsmenyn i ditt Linux-skrivbord, där den ofta kallas ”Textredigerare”. Sök bara efter ”gedit” i programmenyn.
Kör gedit i bakgrunden
Normalt väntar terminalfönstret på att gedit ska stängas innan det återgår till kommandotolken. Om du vill använda terminalen samtidigt som gedit är öppet kan du starta gedit som en bakgrundsprocess. Detta gör att terminalen blir tillgänglig direkt medan gedit körs i bakgrunden. Använd följande kommando:
gedit &
Öppna en befintlig fil
För att öppna en befintlig textfil klickar du på ”Öppna”-knappen i verktygsfältet i gedit eller trycker på Ctrl+O.
En lista över nyligen öppnade filer visas. Klicka på filnamnet för att öppna en av dem igen. För att öppna en annan fil, klicka på ”Andra dokument…” längst ner i menyn.
En standarddialogruta för filöppning visas. Använd den för att navigera till filen du vill redigera.
Markera filen och klicka på den gröna ”Öppna”-knappen.
Öppna fil från kommandoraden
Du kan få gedit att öppna en specifik fil direkt vid start genom att ange filnamnet på kommandoraden. Detta gör att filen laddas och är redo för redigering direkt när gedit startar.
gedit ana.c
Gedits syntaxmarkering gör det särskilt smidigt att redigera källkodsfiler och skript.
Syntaxmarkeringen färgkodar olika delar av koden, som variabler, reserverade ord, kommentarer och parametrar, vilket gör dem lättare att identifiera.
Filnamnet på den fil du redigerar visas i verktygsfältet. Om du har gjort ändringar i filen visas en asterisk (*) bredvid filnamnet.
Detta informerar dig om att ändringar har gjorts i filen och påminner dig om att spara filen om du vill behålla ändringarna.
Spara ändringar
För att spara ändringar, klicka på knappen ”Spara” i verktygsfältet eller tryck på Ctrl+S.
För att spara filen med ett annat namn eller på en annan plats, klicka på menyknappen i verktygsfältet och välj ”Spara som…” i menyn.
En standarddialogruta för filsparande visas. Navigera till önskad mapp, ange ett filnamn och klicka på den gröna ”Spara”-knappen.
Redigera systemfiler
För att redigera en systemfil behöver du vanligtvis använda sudo
eftersom filen troligen ägs av root
. Du kan öppna en systemfil även utan sudo
, men du kommer inte att kunna spara ändringarna utan den.
sudo gedit /etc/samba/smb.conf
Varning: Redigera inte systemfiler om du inte är säker på vilka konsekvenser dina ändringar kommer att ha. Felaktiga ändringar i systemfiler kan göra att ditt system inte längre fungerar efter en omstart.
Kommandot ovan öppnar gedit och laddar samba-konfigurationsfilen för redigering.
Säker redigering av systemfiler
Ett försiktigt och rekommenderat sätt att redigera systemfiler är att först kopiera filen och redigera kopian. När du är klar med redigeringen kan du kopiera tillbaka den nya filen över originalet. Om du gör fel i kopian är det bara att ta bort den och börja om.
När du kopierar en fil kan filens ägare och rättigheter ändras. Du måste se till att de är exakt samma för den nya filen som för originalfilen innan du kopierar tillbaka den. Så här gör du:
Låt oss säga att vi vill redigera fstab-filen.
För att säkerställa att vi behåller filens ägare och rättigheter skapar vi en ny fil och kopierar den befintliga filen över den. Detta är enbart i demonstrationssyfte för att visa hur rättigheter och ägarskap ändras. Du behöver inte göra detta när du redigerar dina egna filer.
touch new_fstab
Vi använder ls
för att kontrollera filattributen och se filens lägesbehörigheter och ägare.
ls -l new_fstab
Filägaren är dave
, och fillägesbehörigheterna ger läs- och skrivrättigheter till ägaren och läsrättigheter för gruppen och andra.
Nu kopierar vi filen /etc/fstab
över den nya filen vi just skapade och kontrollerar om filattributen har ändrats.
sudo cp /etc/fstab new_fstab
ls -l new_fstab
fstab
-filen har kopierats över new_fstab
-filen, men filattributen för new_fstab
har inte ändrats. Vi kontrollerar nu filattributen för originalfilen fstab
.
ls -l /etc/fstab
Som vi ser är ägaren root
och filens lägesbehörigheter är annorlunda. Gruppbehörigheterna är läs- och skrivrättigheter, medan gruppbehörigheterna för new_fstab
är skrivskyddade. Vi måste korrigera dessa attribut innan vi kopierar tillbaka filen.
Först startar vi gedit och redigerar new_fstab
för att göra de nödvändiga ändringarna.
gedit new_fstab
Efter att vi har redigerat filen och sparat ändringarna, måste vi återställa filens ägarskap och lägesbehörigheter till vad de ska vara.
Vi kan göra det genom att använda alternativet --reference
för kommandona chmod
och chown
.
Alternativet --reference
tar ett filnamn som parameter. Det tvingar chmod
och chown
att hämta filens lägesbehörigheter och filägandevärden från den filen och tillämpa dem på målfilen. Vi kan sedan använda ls
för att kontrollera att attributen för den redigerade filen är korrekt inställda innan vi kopierar tillbaka den över originalfilen.
sudo chmod --reference=/etc/fstab new_fstab
sudo chown --reference=/etc/fstab new_fstab
ls -l new_fstab
Filbehörigheterna och ägarskapet är nu korrekta. Vi kan kopiera new_fstab
över den befintliga fstab
, och våra ändringar har utförts.
Eftersom detta är ändringar i fstab-filen, kommer de att gälla när datorn startas om, eller omedelbart om mount
-kommandot används som följer:
sudo mount -a
Var försiktig
Min grundprincip är försiktighet, och jag upprepar gärna varningar. Om du är osäker på hur dina ändringar i en systemfil kommer att påverka din dator, ska du inte göra ändringarna.
När du behöver redigera en textfil, oavsett om det är en systemfil eller inte, kommer du att upptäcka att gedit är en snabb och enkel redigerare som inte belastar dig med för många alternativ, men ändå har tillräckligt med kapacitet för att utföra dina uppgifter.