Fish Shell 4.3 är en uppdatering som vid första anblick kan verka försiktig, men som i praktiken förändrar hur skalet upplevs i det dagliga arbetet. Istället för stora, uppseendeväckande nyheter har utvecklarna fokuserat på att göra befintliga funktioner tydligare, smartare och mer konsekventa. Resultatet är ett kommandoskal som känns mer förutsägbart, lättare att konfigurera och bättre anpassat till moderna terminaler. För både vana användare och nyfikna nybörjare markerar version 4.3 ett steg mot en mer genomtänkt och harmonisk terminalupplevelse.
Kommandoraden är för många ett arbetsredskap snarare än ett användargränssnitt. Ändå är det just där som Fish Shell, Friendly Interactive SHell, skiljer sig från mängden. Med version 4.3 tar Fish ännu ett steg mot att göra terminalen både mer begriplig och mer intelligent, utan att tumma på kraften under huven. Den här versionen är inte en dramatisk omvälvning, utan snarare en noggrant avvägd evolution: bättre standardbeteenden, renare konfigurationer och en terminalupplevelse som anpassar sig efter användaren, inte tvärtom.
Mindre magi, mer kontroll: nya konfigurationsprinciper
En av de största förändringarna märks först knappt alls. Tidigare använde Fish så kallade universella variabler för färger, teman och tangentbindningar. De var praktiska men också svåröverskådliga. I Fish 4.3 ändras detta i grunden. Standardvariabler som fish_color_* och fish_key_bindings sätts nu globalt i stället för universellt. Vid första starten efter uppgradering gör Fish en engångsmigrering som fryser ditt nuvarande tema och dina tangentbindningar till filer i ~/.config/fish/conf.d/. Utvecklarna rekommenderar därefter att man tar bort dessa automatiskt skapade filer och istället hanterar allt direkt i config.fish. Resultatet blir en mer förutsägbar, lättläst och versionshanterbar konfiguration. Det går fortfarande att använda universella variabler, men då medvetet och med vetskapen om att de inte lämpar sig lika väl för dynamiska teman.
Ett nytt språk – bokstavligen
Fish 4.3 introducerar ett nytt kommando i skriptspråket: status language. Det kan låta trivialt, men det löser ett gammalt problem. Nu kan man se vilket språk Fish använder för sina meddelanden och ändra språket utan att behöva manipulera globala miljövariabler. Detta är särskilt användbart i skript, testmiljöer och dokumentation där man vill ha konsekventa och reproducerbara utdata.
Smartare kompletteringar – även bakom kulisserna
Fish är känt för sina intelligenta kompletteringar, och här har version 4.3 förfinat detaljerna. commandline –cursor fungerar nu korrekt även i icke-interaktiva sessioner. Kompletteringar hanterar sökvägar som innehåller = eller : betydligt bättre. Skiftlägesokänslig prefixmatchning gör att fler träffar hittas snabbare, och autosuggestioner kan nu radbrytas mjukt i stället för att kapas abrupt. För användare på Cygwin och MSYS har Fish dessutom blivit bättre på att matcha körbara filer mot rätt metadata, vilket ger mer konsekvent beteende över plattformar.
Redigering med filsystemsförståelse
Även tangentbordsarbetet har förbättrats. Ctrl-W tar nu bort escaped spaces när man raderar delar av en sökväg. Nya sökvägsmedvetna redigeringsfunktioner gör det enklare att navigera och justera långa filstigar direkt på kommandoraden. Det är små förbättringar som snabbt blir oumbärliga för den som arbetar mycket i terminalen.
Teman som anpassar sig efter ljus och mörker
En modern terminal växlar ofta mellan ljus och mörk bakgrund. Fish 4.3 möter detta genom att låta teman definiera separata sektioner för ljusa och mörka färgscheman. Flera av Fish standardteman har redan uppdaterats för detta. Resultatet är ett skal som ser rätt ut oavsett om du arbetar mitt i natten eller i fullt dagsljus.
Djupare terminalintegration – utan att vara i vägen
Fish fortsätter att förbättra sin integration med avancerade terminalfunktioner. OSC-signalerna för promptgränser är nu mer konsekventa, den aktuella arbetskatalogen rapporteras korrekt och fokusrapportering är aktiverad som standard. En ny funktionsflagga gör det dessutom möjligt att stänga av terminalsärlösningar när de inte behövs, vilket ger bättre kontroll i specialmiljöer.
Stabilitet och puts: färre krascher, färre överraskningar
Slutligen adresserar Fish 4.3 en rad regressionsproblem från tidigare versioner. Det gäller bland annat krascher kopplade till färgvariabler, problem med Unicode-autosuggestioner, emoji-bredd på macOS, kantfall vid flerradig inmatning och kompletteringsproblem på system utan glibc. Inget av detta är spektakulärt, men allt bidrar till ett skal som helt enkelt känns mer pålitligt.
Sammanfattning
Fish Shell 4.3 är ett tydligt exempel på mogen programutveckling. Fokus ligger inte på uppseendeväckande nyheter utan på tydligare konfiguration, bättre standardbeteenden, modern terminalanpassning och många små förbättringar som gör stor skillnad i vardagen. För den som lever i terminalen är detta en uppdatering som inte ropar, men som stillsamt visar att det bara fungerar.
Version: 4.3 Typ: Interaktivt Unix-skal Mål: Förbättrad användarvänlighet utan att offra kraft
Viktiga nyheter:
– Standardvariabler för teman och tangentbindningar är nu globala istället för universella
– Engångsmigrering fryser befintligt tema till conf.d-filer vid uppgradering
– Nya kommandot status language styr språk för Fish-meddelanden
– Förbättrade och mer träffsäkra kompletteringar, även i icke-interaktiva lägen
– Teman kan reagera dynamiskt på ljusa och mörka terminaler
– Fördjupad terminalintegration med tydligare promptgränser och fokusrapportering
WP-CLI gör det möjligt att administrera WordPress snabbt, effektivt och automatiserat direkt från kommandoraden. Med hjälp av detta verktyg kan du hantera allt från installation och uppdateringar till användare, databaser och felsökning – utan att logga in i webbgränssnittet. Den här lathunden ger en praktisk och tekniskt inriktad genomgång av de vanligaste WP-CLI-kommandona, med tydliga exempel för dig som arbetar med utveckling, drift eller systemadministration av WordPress-sajter.
Får vi presentera en lathund för hur du använder WP-CLI, främst i en klassisk LAMP-miljö (Linux, Apache, MySQL/MariaDB och PHP), men verktyget fungerar även utmärkt på macOS.
Denna lathund ger en heltäckande introduktion till WP-CLI, WordPress officiella kommandoradsverktyg, och riktar sig till tekniska användare såsom utvecklare och systemadministratörer. Här visas hur WordPress kan hanteras effektivt via terminalen istället för webbgränssnittet. Innehållet omfattar installation på Linux och macOS, grundläggande kommandostruktur och globala flaggor. Guiden går igenom hur du uppdaterar WordPress-kärnan, teman och tillägg, hanterar användare och roller, arbetar med databasen (säkerhetskopiering, import, sök-och-ersätt och optimering) samt hur du skapar och uppdaterar inlägg och sidor. Dessutom beskrivs felsökning, cache- och cron-hantering, återställning samt hur WP-CLI kan användas i skript och cronjobb för automatisering. Målet är att ge praktiska exempel och ett effektivt arbetsflöde för drift och underhåll av WordPress-installationer.
Terminaln har länge varit utvecklarens snabbaste verktyg – men också ett av de mest avskalade. Med Fresh utmanas den bilden. Den nya öppna textredigeraren kombinerar terminalns effektivitet med moderna funktioner som annars hör hemma i grafiska IDE:er. Resultatet är ett kraftfullt kodverktyg som körs helt i textläge, men ändå erbjuder en strukturerad, visuell och förvånansvärt bekväm utvecklingsmiljö.
Fresh – när terminaln möter det moderna kodverktyget
I takt med att allt fler utvecklare söker snabbare, lättare och mer fokuserade arbetsflöden har intresset för terminalbaserade verktyg fått en tydlig renässans. Samtidigt vill få ge upp de bekvämligheter som moderna utvecklingsmiljöer erbjuder. Här kliver Fresh in – en ny öppen källkodsbaserad textredigerare som försöker förena två världar som länge setts som motsatser: den klassiska terminaln och den grafiska kodeditorn.
Fresh är en så kallad TUI-editor (Text-based User Interface), skriven i programmeringsspråket Rust. Det innebär att hela programmet körs i ett vanligt terminalfönster, utan att använda grafiska ramverk som GTK eller Qt. Trots detta lyckas Fresh leverera en upplevelse som ligger mycket nära den man förknippar med moderna grafiska program.
Ett grafiskt tänk – helt i textläge
Vid första anblick kan Fresh nästan uppfattas som en traditionell grafisk editor. Den innehåller menyer, paneler, delade vyer, filutforskare och en integrerad terminal, allt uppbyggt med terminalns egna möjligheter. Musstöd finns från start, tillsammans med snabbkommandon, kontextmenyer och en kommandopalett där användaren kan söka efter funktioner på samma sätt som i moderna IDE:er.
I stället för att arbeta direkt med filer använder Fresh buffertar. Flera filer och terminalsessioner kan vara öppna samtidigt och visas sida vid sida i horisontella eller vertikala split-vyer. En permanent statusrad längst ner visar relevant information som filnamn, markörposition och aktuell Git-branch.
Kraftfull redigering utan begränsningar
Trots sitt terminalbaserade format saknar Fresh inte avancerade redigeringsfunktioner. Programmet erbjuder stöd för flera markörer, avancerade textmarkeringar samt obegränsad ångra- och gör om-funktionalitet. All redigering sparas i en fullständig historik, vilket gör att användaren tryggt kan experimentera utan risk att förlora arbete.
Navigeringen förbättras ytterligare genom positionshistorik och inbyggt stöd för Language Server Protocol. Detta gör det möjligt att hoppa till definitioner, navigera mellan symboler och få kodintelligens som annars förknippas med fullskaliga grafiska utvecklingsmiljöer.
Filhantering utan att lämna editorn
Fresh innehåller en inbyggd filutforskare som låter användaren navigera i projektets katalogstruktur direkt i editorn. Den är helt anpassad för tangentbord, men fungerar även med mus. Som standard respekteras .gitignore-filer, vilket hjälper till att hålla fokus på relevanta filer i projektet. Filer kan öppnas, bytas och skapas utan att man behöver lämna editorn eller använda externa verktyg.
Terminaln som en integrerad del av arbetsflödet
En av de mest utmärkande funktionerna i Fresh är den inbyggda terminalemulatorn. Terminaler öppnas som vanliga buffertar och kan delas upp i flera flikar. Användaren kan växla mellan inmatningsläge och scroll-läge, söka i terminalutdata och kopiera text med samma kommandon som används i redigeraren.
En särskilt ovanlig funktion är att terminalsessioner kan bevaras mellan omstarter. Pågående processer och hela scrollback-historiken finns kvar, vilket suddar ut gränsen mellan editor och kommandoskal.
Kodintelligens med resurskontroll
Fresh har inbyggt stöd för Language Server Protocol och erbjuder diagnostik, kodkomplettering och symbolinformation i realtid. Rust, JavaScript, TypeScript och Python fungerar direkt, medan ytterligare språk kan konfigureras manuellt via en JSON-baserad inställningsfil.
En detalj som särskiljer Fresh från många andra editorer är möjligheten att sätta gränser för CPU- och minnesanvändning hos språkservrar. Detta förhindrar att resurskrävande LSP-processer påverkar systemets prestanda negativt.
Ett pluginsystem byggt för framtiden
Fresh är konstruerat med utbyggbarhet i fokus. Redigeraren använder ett pluginsystem baserat på TypeScript, vilket gör det relativt lätt att skapa egna tillägg. Flera plugins följer med som standard, bland annat för att markera TODO-kommentarer och utföra Git-baserade sökningar.
För C- och C++-utveckling finns även ett särskilt Clangd-hjälpplugin. Plattformsspecifika detaljer, till exempel för macOS, är tydligt dokumenterade för att underlätta installation och användning.
Samlad och tydlig konfiguration
All konfiguration i Fresh sker via en enda config.json-fil som lagras på ett standardiserat sätt beroende på operativsystem. I denna fil styrs allt från teman och tangentbindningar till språkservrar, plugins och resursbegränsningar. Tanken är att ge användaren full kontroll utan att sprida inställningar över flera filer.
Stöd för alla större operativsystem
Fresh är officiellt stödd på Linux, macOS och Windows. För den som vill prova finns färdiga binärer, men även installationsalternativ via Homebrew, Arch User Repository, .deb- och .rpm-paket, npm, crates.io eller manuell kompilering från källkod. På Windows fungerar Fresh i moderna terminaler, och det går även att köra via WSL för en mer Linux-lik upplevelse.
Terminalns nästa steg
Fresh visar tydligt att terminalbaserade verktyg inte längre behöver vara spartanska eller svåranvända. Genom att kombinera hög prestanda, moderna gränssnittsidéer och ett tydligt fokus på utvecklarens arbetsflöde pekar Fresh mot en framtid där terminaln inte är ett alternativ till grafiska verktyg – utan ett fullvärdigt hem för dem.
Bild ifrån projektets hemsida
Linux.se:s åsikt
Efter att ha testat Fresh är helhetsintrycket mycket lovande, även om den senaste versionen ännu inte verkar finnas tillgänglig som .deb-paket. Känslan för tankarna tillbaka till DOS-eran, fast i en modern tappning.
För den som i dag snabbt vill redigera filer direkt på en server är alternativen oftast nano eller emacs/vi. Både emacs och vi är kraftfulla verktyg, men de har också en relativt hög inlärningströskel, vilket kan avskräcka många användare.
En funktion som skulle vara mycket uppskattad i framtida versioner av Fresh är stöd för emacs-liknande Ctrl-kommandon. För användare som har dessa tangentkombinationer djupt inpräntade i muskelminnet är det svårt att ”lära gamla hundar att sitta”. Dessutom kan Ctrl-kommandon i vissa situationer vara snabbare och mer effektiva, exempelvis vid sparande och navigering.
Trots detta framstår Fresh som ett tydligt positivt tillskott. Det fyller ett tomrum mellan enkla terminalredigerare och mer komplexa redigeringsmiljöer, och har potential att bli ett naturligt val för modern server- och terminalbaserad utveckling.
Linux-kärnan har i årtionden prioriterat funktion före utseende, men med version 6.19 kommer en förändring som faktiskt syns. Ett nytt inbyggt konsoltypsnitt, Terminus 10×18, förbättrar läsbarheten i textläge och är anpassat för moderna laptopskärmar. Det är en liten justering med märkbar effekt – särskilt när textkonsolen verkligen behövs.
Linux-kärnan 6.19 får nytt konsoltypsnitt – små pixlar som gör stor skillnad
Linux-kärnan förknippas oftast med tekniska förbättringar som drivrutiner, schemaläggning och minneshantering. Men i version 6.19 dyker en nyhet upp som faktiskt är synlig för användaren. Kärnan får nämligen ett nytt inbyggt konsoltypsnitt: Terminus 10×18.
Detta är en till synes liten förändring, men för den som arbetar i textläge – vid uppstart, felsökning eller på inbyggda system – innebär den ett tydligt lyft i läsbarhet och komfort.
Ett visuellt lyft i ett annars tekniskt sammanhang
Textkonsolen är fortfarande en viktig del av Linux, trots grafiska skrivbord och avancerade terminalemulatorer. Under stora delar av Linux-historien har det klassiska 8×16-typsnittet varit standardlösningen i kärnan. Det fungerade utmärkt på äldre CRT-skärmar och tidiga LCD-paneler, men på moderna bärbara datorer kan texten upplevas som tunn och trång.
Terminus 10×18 är framtaget för att bättre passa dagens skärmar och ge texten mer luft, tydligare former och bättre proportioner.
Varför just 10×18
Beteckningen 10×18 beskriver varje teckens storlek i pixlar: tio pixlar i bredd och arton i höjd. Den ökade höjden gör bokstäverna mer lättlästa, särskilt vid längre textpass, samtidigt som bredden hålls på en nivå som inte drastiskt minskar antalet tecken per rad.
Typsnittet är särskilt anpassat för bärbara datorer i storleksklassen 13 till 16 tum, med upplösningar som 1280×800 och 1440×900 – fortfarande vanligt förekommande på äldre och enklare arbetsmaskiner.
Hur konsoltypsnitt fungerar i Linux
Linux-kärnan innehåller ett litet urval bitmap-typsnitt som är inbyggda direkt i källkoden. Dessa används innan användarutrymmet har startat eller i miljöer där inga externa typsnitt kan laddas.
Bland de inbyggda alternativen finns bland annat 8×8, 8×16, 6×11, flera klassiska SUN- och VGA-fonter samt olika Terminus-varianter som har lagts till under senare år.
Om inga inställningar eller verktyg i användarutrymmet laddar ett annat typsnitt, faller kärnan alltid tillbaka till det klassiska 8×16-typsnittet – ett arv från VGA-konsolens tidiga dagar.
Userspace laddar ofta egna typsnitt
På moderna Linux-system ersätts dock ofta standardfonten redan tidigt i uppstarten. Med DRM- och KMS-baserade konsoler används verktyg som setfont för att ladda PSF-typsnitt från användarutrymmet. Vanliga val är olika Terminus-varianter med bättre Unicode-stöd och större teckenstorlek.
Trots detta finns det alltid situationer där endast kärnans egna typsnitt används. Det gäller till exempel räddningslägen, initramfs-miljöer, minimalistiska system, servrar utan full userspace-miljö och många inbyggda system.
Därför spelar Terminus 10×18 roll
Genom att lägga till Terminus 10×18 direkt i Linux-kärnan förbättras läsbarheten i just dessa miljöer. Det gör textkonsolen mer behaglig att arbeta i när användaren som mest behöver tydlig information, ofta i samband med felsökning eller systemåterställning.
Det är ingen dramatisk förändring, men en genomtänkt förbättring som visar omsorg om både funktion och användarupplevelse.
Små detaljer med stor betydelse
Linux-utveckling handlar till stor del om osynliga förbättringar. Ändå visar tillägget av Terminus 10×18 att även små visuella detaljer har betydelse. Det är ett steg mot en mer balanserad och lättläst textkonsol, anpassad för modern hårdvara – utan att kompromissa med den enkelhet som alltid varit Linux kärna.
Nyhet: Nytt inbyggt konsoltypsnitt: Terminus 10×18
Syfte:
Förbättrad läsbarhet i textläge på moderna laptopskärmar, särskilt
13–16-tums paneler med upplösningar som 1280×800 och 1440×900.
Teknisk bakgrund:
Linux-kärnan innehåller ett antal bitmap-typsnitt som används innan
userspace har laddats. Om inget annat anges faller systemet tillbaka
till det klassiska 8×16-typsnittet, ett arv från VGA-eran.
Förbättring:
Terminus 10×18 ger större vertikal struktur, bättre proportioner
och tydligare tecken utan att kraftigt minska antalet synliga rader.
Användningsområden:
Textkonsoler, framebuffer-konsoler, initramfs, räddningslägen,
servrar utan grafiskt gränssnitt samt inbyggda Linux-system.
Status:
Ingår i fbdev-uppdateringarna för Linux Kernel 6.19-rc1
och blir tillgängligt tidigt i uppstartsprocessen.
Rspamd 3.14 markerar ett stort steg framåt för öppna spamfilter. Den nya versionen bjuder på mörkt läge i webbgränssnittet, snabbare fuzzy-hashning och en smartare Postfix-guide som förenklar e-postintegration. Under huven finns även ett nytt HTML-baserat analysverktyg som kan upptäcka strukturella likheter mellan skräppostmeddelanden – ett genombrott som gör det ännu svårare för spammare att smita igenom filtret.
Ett av de mest avancerade öppna källkodsprojekten inom e-postsäkerhet har just fått en rejäl uppdatering. Rspamd 3.14 är här – och med den kommer en kombination av tekniska förbättringar och visuella nyheter som både systemadministratörer och säkerhetsnördar lär uppskatta.
Ny generation av spamigenkänning
Den största nyheten i Rspamd 3.14 är något som kallas HTML fuzzy hashing – ett system som låter programmet känna igen strukturella likheter mellan HTML-meddelanden. Det betyder att Rspamd inte längre bara tittar på textinnehållet, utan även på hur själva e-postens layout och kodstruktur är uppbyggd.
Med denna teknik kan filtret upptäcka spammail som ändrat ord eller bilder, men som ändå följer samma underliggande mall. Resultatet är en finmaskigare och mer träffsäker klassificering av skräppost, vilket är avgörande när spammare försöker lura filtren med små variationer.
Stabilare och snabbare lagring
En annan viktig förbättring rör fuzzy storage-systemet, där Rspamd nu har gått över från ett UDP-baserat protokoll till fullt TCP-stöd. Det innebär att kommunikationen mellan servrar är mer tillförlitlig, särskilt under hög belastning.
Den nya implementationen kan dessutom automatiskt växla mellan protokoll, hantera anslutningar dynamiskt och använda korrekt datainramning. Det här minskar risken för dataförlust och gör systemet robustare i stora e-postmiljöer.
Webbgränssnittet får mörkt läge och ny stil
För de som föredrar att arbeta visuellt finns nu mörkt läge i Rspamd:s WebUI. Gränssnittet kan automatiskt anpassa sig efter systemets tema – eller så kan användaren växla manuellt.
Utvecklarna har dessutom uppdaterat ikonbiblioteket till FontAwesome-ikoner i SVG-format, vilket ger ett renare och modernare utseende jämfört med de äldre Glyphicons.
Automatisk Postfix-konfiguration
Rspamd 3.14 introducerar också en Postfix-guide som automatiserar mycket av den manuella konfigurationen via postconf. För e-postadministratörer betyder det mindre handpåläggning och snabbare integration mellan Rspamd och Postfix – en kombination som används i tusentals e-postservrar världen över.
Samtidigt har Milter-gränssnittet förbättrats med bättre hantering av ESMTP-argument och utökade Lua-API:er för att läsa metadata per mottagare. Det öppnar dörren för mer avancerade filterregler och skript.
Prestandalyft och bredare systemstöd
Under ytan har Rspamd-utvecklarna gjort stora arkitektoniska förändringar. Bland annat har man bytt ut GHashTable mot snabbare khash-strukturer, vilket ger märkbara prestandaförbättringar i interna hash-operationer.
Samtidigt breddas stödet för olika BSD-system. Version 3.14 inkluderar dedikerade GitHub Actions-arbetsflöden för FreeBSD, NetBSD och OpenBSD, med möjlighet att välja olika Lua-versioner för byggprocessen.
Stabilitet och felfixar
Slutligen innehåller versionen en rad stabilitetsförbättringar. Bland de mer tekniska fixarna finns åtgärder mot DNS-trunkering, ID-kollisioner, Redis-poolningsproblem, minnesläckor och fel i allokatorhantering.
Utöver det har man förfinat funktioner som Bayes-autolärning, URL-deduplicering och paketinstallation på NetBSD – små men viktiga förbättringar som bidrar till en mer pålitlig drift.
Sammanfattning
Rspamd 3.14 visar tydligt att utvecklarna inte bara fokuserar på att stoppa skräppost, utan även på prestanda, användarupplevelse och långsiktig stabilitet. Med ny fuzzy-teknik, mörkt läge, automatiserad Postfix-integration och bredare plattformsstöd tar Rspamd ännu ett steg mot att bli den mest avancerade öppna spamfiltret på marknaden.
$ Rspamd 3.14 — Kortfakta
HTML fuzzy hashing: upptäcker strukturell likhet mellan HTML-mail.
Den populära GPU-accelererade terminalemulatorn Kitty har fått en ny version – 0.44 – som bjuder på både prestandaförbättringar och stöd för den senaste textstandarden Unicode 17. Uppdateringen fokuserar tydligt på stabilitet och användarupplevelse, särskilt för macOS- och Wayland-användare.
Unicode 17 och bättre kontroll över miljövariabler
Unicode 17-stödet innebär att Kitty nu kan visa de senaste symbolerna, språk- och emojiuppdateringarna från Unicode-konsortiet. För de som arbetar med globaliserade system eller programmering på olika språk är detta ett viktigt steg framåt.
En annan nyhet är env-direktivet i kitty.conf. Det låter terminalen läsa in specifika miljövariabler direkt från användarens inloggningsskal vid start – något som tidigare krävde manuella inställningar. Det gör Kitty mer flexibel i miljöer där olika projekt eller utvecklingsmiljöer kräver särskilda variabler.
Finslipad grafik och nya visuella val
Kitty 0.44 fortsätter förfiningen av sin grafikmotor. Ett nytt alternativ, draw_window_borders_for_single_window, låter användare tvinga fram fönsterkanter även när bara ett enda fönster är öppet – praktiskt för den som vill ha en tydligare avgränsning i terminalens layout.
Buggar som orsakade svarta blinkningar vid flikstängning, felaktig tabbfältvisning, och onödigt hög CPU-användning när ligaturer var avstängda har rättats. Äldre GPU-drivrutiner utan 16-bitars texturstöd fungerar nu bättre, och hörnrenderingen har blivit mjukare vid låg DPI.
macOS: Stabilare, snabbare och mer energisnål
För macOS-användare märks uppdateringen tydligt. Kitty 0.44 fixar ett krasproblem kopplat till “Tahoe”-komponenten vid helskärmsläge, förbättrar energiförbrukningen med upp till 10 %, och gör hanteringen av filsläpp och fönsterbyte smidigare. En ny menyfunktion i det globala menyn låter användaren enkelt växla mellan öppna OS-fönster.
Även den populära Quick Access-terminalen har fått buggfixar som eliminerar krascher vid fontändringar.
Wayland: Bättre stöd för moderna Linux-miljöer
På Linux-sidan förbättras stödet för Wayland-kompositorer. Kitty korrigerar nu problem med centrerade paneler på Smithay-baserade system och hanterar snabba mushjulshändelser mer korrekt – en välkommen fix för användare med känsliga styrdon.
Smidigare sessionshantering
Version 0.44 introducerar även en rad förbättringar för sessioner. Det nya kommandot focus_tab låter användare definiera vilken flik som ska vara aktiv vid återställning, medan --base-dir-flaggan för save_as_session gör det lättare att organisera sessionsfiler i olika kataloger. Kitty sparar nu flikarnas visuella ordning och aktiv status, vilket gör återställningen mer intuitiv.
Små förbättringar med stor effekt
Utöver de stora nyheterna innehåller uppdateringen en rad finjusteringar: bättre automatisk färgtemahantering, smidigare hantering av animerade bilder och förbättrade hörn vid låg DPI.
Slutligen
Kitty 0.44 är ingen dramatisk omgörning, men den visar ett tydligt fokus på stabilitet, kompatibilitet och prestanda. Genom Unicode 17-stöd, smartare miljöhantering och förbättringar för både macOS och Wayland cementerar Kitty sin roll som en av de mest moderna och kraftfulla terminalemulatorerna på marknaden.
För användare som vill ha en snabb, flexibel och framtidssäker terminal är det här en uppdatering väl värd att installera.
Den som håller på med hemsidor, där är webappen wordpress den populäraste appen. Men även andra webappar som är skrivna i PHP kan behöva testas. Med egen testmiljö för LAMP kan man testa sina projekt. Har man till exempel en dator som inte klarar Windows 11, kan den bli en utmärkt NAS och testmiljö för webbappar skrivna i PHP eller annat språk.
Har du en gammal dator som du vill ge nytt liv? Du kan förvandla den till en webbtjänande server genom att installera en LAMP-stack – en kombination av Linux, Apache, MySQL/MariaDB och PHP[1]. Linux utgör operativsystemet, Apache agerar webbserver som levererar webbsidor, MySQL eller MariaDB sköter databasen där data lagras, och PHP är scriptspråket som binder samman allt för att skapa dynamiska webbsidor. I den här guiden går vi igenom, steg för steg, hur du installerar och konfigurerar en LAMP-stack på en Debian- eller Ubuntu-baserad server i hemmet – exempelvis en äldre dator du har stående.
Målgruppen är nybörjare med viss teknisk erfarenhet. Vi håller därför en lättförståelig, populärvetenskaplig ton samtidigt som vi säkerställer att allting blir tekniskt korrekt. Guiden täcker allt från installation av Apache, MySQL/MariaDB och PHP, till hur du får systemet att fungera i ditt lokala nätverk (LAN), vidare till att installera och konfigurera WordPress (ett populärt innehållshanteringssystem) och hur du kan administrera WordPress via kommandoraden med WP-CLI. Vi avslutar med grundläggande säkerhetsaspekter – såsom brandvägg, lösenordshantering och varför du inte bör exponera din hemserver direkt mot internet.
Översikt av innehåll:
Förberedelser: Vad du behöver och hur du förbereder servern och nätverket innan installation.
Installation av LAMP: Stegvis installation av Apache, MySQL/MariaDB och PHP på Debian/Ubuntu.
Installation av WordPress: Hur du laddar ner och konfigurerar WordPress på din LAMP-server.
WP-CLI: Användning av WordPress Command Line Interface för att administrera din WordPress-sajt via terminalen.
Säkerhet: Grundläggande åtgärder för att säkra din hemmaserver och WordPress-installation.
Avslutande tips: Några sista råd kring underhåll och vidare förbättringar.
Låt oss börja med att säkerställa att allting är på plats för installationen!
Förberedelser
Innan vi ger oss in på installationen, behöver du förbereda följande:
En dator med Linux (Debian eller Ubuntu Server): Installera gärna den senaste LTS-versionen av Ubuntu Server eller en stabil Debian-release på datorn du vill använda som server. Se till att systemet är uppdaterat (sudo apt update && sudo apt upgrade) och att du har administratörsrättigheter (sudo) på ett användarkonto.
Nätverksanslutning: Serverdatorn bör vara ansluten till ditt lokala nätverk, helst via kabel för stabilitet. Notera serverns lokala IP-adress (t.ex. 192.168.x.y) – du kan hitta den genom kommandot hostname -I eller via din routers gränssnitt. För att förenkla åtkomst inom hemnätverket kan du överväga att ge servern en statisk IP-adress på LAN: enklaste sättet är ofta att reservera en IP i routerns DHCP-inställningar baserat på serverns MAC-adress. Då får servern alltid samma adress på hemnätet, vilket underlättar när du ska ansluta till den.
Grundläggande kommandoradskunskaper: Vi kommer att använda terminalen flitigt för installation och konfiguration. Du bör kunna köra enkla Linux-kommandon och redigera konfigurationsfiler med en textredigerare som nano eller vim. Om servern är huvudlös (ingen skärm) kan du ansluta via SSH från en annan dator i nätverket.
Internetuppkoppling: För att ladda ner uppdateringar och programvara (Apache, MySQL, PHP, WordPress etc.) behöver servern internetåtkomst under installationen.
När ovanstående är ordnat är du redo att börja sätta upp din LAMP-stack!
Installation av LAMP
En LAMP-stack består av tre huvudsakliga komponenter att installera (utöver Linux som redan körs på din server): webbservern Apache, databasen MySQL/MariaDB och scriptspråket PHP. Vi går igenom installationen av dessa steg för steg på en Debian/Ubuntu-baserad distribution.
Installera Apache (webbserver)
Uppdatera paketindex: Öppna terminalen på din server och kör först en uppdatering av paketlistan:
sudo apt update
Installera Apache: Därefter installerar du Apache2 med apt:
sudo apt install apache2
På Ubuntu/Debian startar Apache automatiskt efter installationen och ställs in att köra vid uppstart. För säkerhets skull kan du kontrollera Apache-status:
sudo systemctl status apache2
Tjänsten bör visas som aktiv (running). Apache levereras med en standardsida (”It works!”) som du nu kan testa. Öppna en webbläsare på en klientdator i samma nätverk och navigera till http://<serverns-IP-adress> – du bör se Apaches välkomstsida som bekräftar att webbservern körs[3].
Aktivera Apache i brandväggen: Ubuntu har en inbyggd brandvägg (ufw). Tillåt HTTP- och HTTPS-trafik i brandväggen så att webbförfrågningar kan nå Apache:
sudo ufw allow ’Apache Full’ sudo ufw enable
Kommandot ’Apache Full’ öppnar port 80 (HTTP) och 443 (HTTPS) i brandväggen[4]. (OBS: Om ufw inte är installerat på Debian kan du antingen installera det eller använda annan brandväggslösning; på ett hemnätverk bakom en router kan du även välja att initialt lita på NAT:en, men det är bra att ha en lokal brandvägg som extra skydd.)
Installera MySQL/MariaDB (databas)
Installera databasservern: Kör följande kommando för att installera MySQL-server (i Ubuntu 20.04+ installeras i själva verket ofta MariaDB, en community-version av MySQL, men för enkelhet kallar vi den MySQL):
sudo apt install mysql-server
Under installationen kan du bli ombedd att sätta ett root-lösenord för MySQL (detta beror på distributionens version – vissa moderna Ubuntu-versioner sätter ingen root-lösenord och använder sockets-autentisering). Oavsett vilket, kommer vi strax att säkra installationen.
Starta och kontrollera MySQL: Precis som med Apache, kontrollera att databasservern är igång:
sudo systemctl start mysql # startar tjänsten om den ej redan är igång sudo systemctl enable mysql # ser till att den startar vid boot sudo systemctl status mysql # visar status
MySQL/MariaDB bör nu köras.
Säkra databasinstallationen: MySQL kommer med ett praktiskt script för grundläggande säkerhetshärdning. Kör:
sudo mysql_secure_installation
Detta guide-program frågar en serie frågor för att säkra din databasserver. Du kommer bland annat kunna: sätta eller uppdatera root-lösenordet (om det inte redan är satt), ta bort anonyma användarkonton, förhindra root-inloggning via fjärranslutning samt ta bort testdatabasen[5]. Acceptera att ta bort/inaktivera osäkra inställningar genom att svara Yes på frågorna. Efter att skriptet kört färdigt har du en grundsäkert konfigurerad MySQL/MariaDB-instans – kom ihåg det root-lösenord du eventuellt angav.
Installera PHP (scriptspråk)
Installera PHP och nödvändiga moduler: Installera PHP samt tillhörande Apache- och databaskopplingar med:
sudo apt install php libapache2-mod-php php-mysql
Paketet libapache2-mod-php kopplar samman PHP med Apache (så att Apache kan tolka .php-filer), och php-mysql tillåter PHP att prata med MySQL/MariaDB[6]. Utöver dessa grundläggande paket kan det vara klokt att installera några vanliga PHP-tillägg som WordPress och dess plugins kan behöva, t.ex. cURL, GD, mbstring, XML m.fl. Du kan installera flera på en gång:
(Ovanstående inkluderar vanliga tillägg; du kan alltid installera fler senare om något plugin kräver det.) När PHP och tilläggen är installerade, ladda om Apache så att eventuella nya moduler tas i bruk:
sudo systemctl restart apache2
Testa PHP (valfritt): För att verifiera att PHP fungerar med Apache kan du skapa en testfil. Kör t.ex.:
echo ”<?php phpinfo(); ?>” | sudo tee /var/www/html/info.php
Navigera sedan i webbläsaren till http://<serverns-IP>/info.php. Om du ser en sida med PHP-information (PHP-version och konfigurationsdetaljer) så fungerar PHP som det ska. Kom ihåg att ta bort testfilen senare av säkerhetsskäl (sudo rm /var/www/html/info.php), då den avslöjar detaljer om din PHP-konfiguration.
Brandvägg och lokal nätverksåtkomst
Efter att Apache, MySQL och PHP är installerade och körs, har du i princip en fungerande LAMP-server. Några viktiga punkter för att få allt att fungera smidigt på hemnätverket:
Brandvägg och portar: Vi aktiverade UFW-brandväggen och öppnade för ”Apache Full” tidigare, vilket innebär att din server tar emot trafik på port 80 (HTTP) och 443 (HTTPS). I ett hemmanätverk bakom en router är servern som standard inte tillgänglig utifrån internet (såvida du inte särskilt öppnar/forwardar portar på din router). För intern åtkomst inom LAN räcker det att brandväggen tillåter trafiken. Kontrollera att du kan nå Apache från en annan dator i nätverket via serverns IP-adress (som vi testade med välkomstsidan).
Lokal DNS (valfritt): Det kan bli lite omständligt att komma ihåg IP-adressen. Om du vill kan du på dina klientdatorer uppdatera deras hosts-fil så att t.ex. ett smidigt namn (som ”minserver.local”) pekar på serverns IP – eller använd din routers ev. funktion för lokala värdnamn. Detta är dock extra lyx; IP-adressen duger bra för att fortsätta installationen.
Statisk IP: Som nämnt bland förberedelserna, se till att serverns IP inte ändras över tid. Det bästa är att ställa in att den alltid får samma IP. Du kan antingen konfigurera detta i själva serverns nätverksinställningar (statisk IP via Netplan/DHCP override) eller mycket enkelt via routerns webbgränssnitt genom att binda serverns MAC-adress till en fast IP i DHCP (den enklaste lösningen enligt många). Detta förhindrar att servern plötsligt får en ny adress (vilket annars kan hända efter omstarter) och att dina bokmärken/inställningar till servern skulle sluta fungera.
Nu har vi en grundläggande LAMP-stack i drift. Dags att lägga till WordPress för att få en komplett hemsida!
Installation av WordPress
WordPress är ett av världens mest populära verktyg för att bygga webbplatser och bloggar. Vi kommer nu att installera WordPress på vår nya LAMP-server. Processen omfattar att skapa en databas åt WordPress, hämta själva WordPress-programvaran och konfigurera den.
Skapa en MySQL-databas för WordPress
WordPress behöver en egen databas att lagra all sin information i (inlägg, användare, inställningar, etc.). Vi använder MySQL/MariaDB som vi installerade för detta. Följande steg utförs i MySQL:s shell:
Logga in i MySQL: Kör sudo mysql -u root -p på servern för att logga in i MySQL prompten som root (administratör). Ange root-lösenordet du satte tidigare (om inget lösenord sattes, kör bara sudo mysql utan -p).
Skapa databas: När du fått MySQLs prompt (mysql>), skapa en ny databas som WordPress ska använda. Du kan kalla den vad du vill – i exemplet nedan används wordpress:
CREATE DATABASE wordpress;
Detta skapar en databas som heter ”wordpress”[9]. (Om du vill använda ett annat namn går det bra, notera det då för kommande steg.)
Skapa användare: För bättre säkerhet är det rekommenderat att inte låta WordPress använda root-kontot till databasen, utan skapa en dedikerad databas-användare. Skapa t.ex. en användare wordpressuser med ett lösenord:
CREATE USER ’wordpressuser’@’localhost’ IDENTIFIED BY ’ditt_lösenord’;
Byt ut ’ditt_lösenord’ mot ett starkt lösenord du väljer för databasanvändaren (minst 12 tecken, gärna slumpmässigt). Med detta kommando skapas en ny MySQL-användare wordpressuser som endast kan logga in från localhost (det vill säga från servern själv).
Ge användaren rättigheter: Nu ger vi den nya användaren fullständig åtkomst till den nya databasen:
GRANT ALL PRIVILEGES ON wordpress.* TO ’wordpressuser’@’localhost’;
Detta ger wordpressuser fulla rättigheter (ALL PRIVILEGES) på alla tabeller i databasen ”wordpress”. Det innebär att WordPress kan skapa tabeller, läsa, skriva och ändra data i databasen som behövs.
Spara ändringarna och avsluta: Inom MySQL behöver man uppdatera rättighetsinställningarna med:
FLUSH PRIVILEGES; EXIT;
FLUSH PRIVILEGES ser till att MySQL laddar in de nya användarrättigheterna utan omstart, och EXIT lämnar MySQL-prompten. Vi har nu en databas (wordpress) och en användare (wordpressuser) med tillhörande lösenord klara för WordPress att använda
Ladda ner och installera WordPress-filerna
Med databasen på plats är nästa steg att hämta WordPress-programvaran och placera den i webbserverns katalog.
Ladda ner WordPress: Gå till en temporär mapp, t.ex. /tmp, och ladda ner senaste WordPress-release (på svenska eller engelska – vi tar den engelska standardversionen här). Kör på servern:
cd /tmp curl -O https://wordpress.org/latest.tar.gz
Detta hämtar arkivfilen latest.tar.gz från WordPress officiella webbplats[13], som innehåller alla WordPress-filer.
Extrahera filer: Extrahera arkivet:
tar xzvf latest.tar.gz
Det skapar en katalog som heter wordpress/ med WordPress-filerna.
Flytta WordPress till webbplatsens rot: Apache serverar som standard filer från /var/www/html/. Vi flyttar nu över WordPress-filerna dit. Om du inte har andra webbplatser på servern kan vi lägga WordPress direkt i html-mappen:
sudo cp -a /tmp/wordpress/. /var/www/html/
Flaggan -a (archive) ser till att kopiera alla filer och behålla rättigheter. Slutet /. ser till att dolda filer också följer med. Efter denna kopiering ligger nu WordPress PHP-filer i /var/www/html, samma ställe som Apaches ”It works”-indexsida låg. Du kan ta bort den gamla index.html (Apache välkomstsidan) från /var/www/html för att inte den ska visas i stället för WordPress: sudo rm /var/www/html/index.html.
Ägarskap och rättigheter: För att WordPress senare ska kunna ladda upp filer, ändra inställningar och uppdatera själv, behöver webbservern (Apache) ägarskap till filerna. Apache kör som användaren www-data på Ubuntu/Debian. Sätt nu ägare för alla WordPress-filer till www-data:
sudo chown -R www-data:www-data /var/www/html
Detta ger webbservern kontroll över filerna[15]. Som ytterligare säkerhetsåtgärd kan man sätta strikta filrättigheter: t.ex. 750 för kataloger och 640 för filer, vilket hindrar obehöriga användare på systemet från att läsa/köra filerna. Exempel:
sudo find /var/www/html/ -type d -exec chmod 750 {} \; sudo find /var/www/html/ -type f -exec chmod 640 {} \;
(Detta är en rekommenderad utgångspunkt; WordPress bör fungera med dessa rättigheter, men vissa plugin kan kräva justeringar senare. Grundprincipen är att www-data ska ha access, men ingen annan behöver det.)
Konfigurationsfil (wp-config.php): WordPress behöver en konfigurationsfil med databasuppgifterna. Normalt kan detta göras genom installationsguiden i webbläsaren (nästa steg) – WordPress försöker då spara inställningarna åt dig. Tack vare att vi satt rätt ägarskap på filerna kan WordPress skapa filen själv. Om det av någon anledning inte lyckas, kan du manuellt skapa den genom att kopiera wp-config-sample.php till wp-config.php:
…och fylla i databasinformationen (DB_NAME, DB_USER, DB_PASSWORD) för wordpress-databasen och wordpressuser-användaren vi skapade[16]. Samt passa på att lägga till unika salter/nycklar för säkerhet (WordPress hemliga nycklar) enligt instruktion i filen – dessa kan genereras från WordPress.org:s hemliga nyckeltjänst. Om du istället låter webbinstallationsguiden hantera detta kan du hoppa över manuellt skapande; vi beskriver det nedan.
Slutför installationen via webbläsaren
Nu är alla filer på plats och databasen redo. Det är dags att köra WordPress berömda “fem-minuters installation” via webbgränssnittet:
Öppna installationssidan: På en dator i ditt nätverk, öppna webbläsaren och gå till http://<serverns-IP-adress>/ (eller om du satte ett värdnamn, använd det). Eftersom vi lade WordPress i webbrotkatalogen bör adressen visa WordPress installationsguide. Du blir först ombedd att välja språk för installationen. Välj exempelvis Svenska om du vill ha WordPress på svenska, eller fortsätt med engelska – det går alltid att ändra språk senare. Klicka “Fortsätt/Continue”.
Databasuppgifter: WordPress kommer sedan fråga efter databasnamn, användarnamn och lösenord. Ange de uppgifter du skapade tidigare:
Databasnamn:wordpress (om du valde det namnet, annars ditt egna namn)
Användarnamn:wordpressuser
Lösenord: det lösenord du satte för wordpressuser-kontot.
Databasserver:localhost (WordPress kör på samma server som databasen).
Tabellprefix: wp_ är standard och duger bra om du inte har speciella skäl att ändra.
Skicka iväg uppgifterna. WordPress kopplar nu upp mot databasen. Om allt är rätt ifyllt får du en bekräftelse och kan fortsätta.
Skapa administratörskonto: Nästa steg i guiden ber om information för sajtens grundkonfiguration:
Webbplatstitel: Namnet på din webbplats (t.ex. “Min Blogg”).
Administratörsanvändare: Ett administratörslogin för WordPress. Välj inte “admin” som användarnamn – ta något unikt.
Lösenord: Ett starkt lösenord för administratören föreslås automatiskt. Du kan använda det eller skriva ett eget, men se till att det är starkt (WordPress varnar om det är för svagt)[19].
Din e-postadress: Ange en e-post dit WordPress kan skicka återställningslänkar och notiser.
Sökmotorsynlighet: Du kan välja att avmarkera “Tillåt sökmotorer indexera denna sida” ifall du inte vill att din hemsida ska dyka upp på Google ännu (praktiskt för en testsajt på hemnätet). Denna inställning kan ändras senare.
Klicka sedan på “Installera WordPress” (Install WordPress). WordPress kommer nu att konfigurera klart allt i databasen.
Installation klar – logga in: Om inga fel uppstod möts du av en sida som säger att WordPress har installerats, och du kan klicka på “Logga in” för att gå till inloggningssidan (eller gå direkt till http://<server-IP>/wp-admin/). Logga in med det admin-användarnamn och lösenord du valde. Du tas då till WordPress administratörspanel (dashboard), där du kan börja skapa inlägg, sidor, ändra utseende etc.
Grattis! Du har nu en egen WordPress-sajt som körs på din hemmaserver. Men innan vi börjar använda den på allvar, låt oss titta på hur man kan sköta WordPress via terminalen med WP-CLI, samt hur man säkrar upp installationen.
WP-CLI – WordPress via terminalen
Att administrera WordPress via webbläsarens wp-admin-gränssnitt fungerar fint för det mesta. Men det finns ett kraftfullt verktyg för dig som inte räds terminalen: WP-CLI (WordPress Command Line Interface). WP-CLI låter dig hantera WordPress-sajten med kommandon direkt i terminalen, vilket kan vara både snabbare och smidigare för många uppgifter. Du kan till exempel uppdatera WordPress-kärnan, installera eller uppdatera plugins och teman, hantera användare, skapa inlägg med mera – allt utan att behöva klicka runt i webbläsaren. Detta är särskilt användbart om du administrerar flera sajter eller bara föredrar att automatisera och skripta saker.
Installation av WP-CLI
WP-CLI är ett fristående PHP-baserat verktyg. Så här installerar du det på din Ubuntu/Debian-server:
Hämta WP-CLI: Ladda ner WP-CLI som en PHP-arkivfil (.phar) till din server:
Detta laddar ner filen wp-cli.phar till din nuvarande katalog.
Testkör WP-CLI: Du kan nu prova köra verktyget med:
php wp-cli.phar –info
Om WP-CLI är nedladdat korrekt ser du information om miljön (PHP-version m.m.).
Gör WP-CLI körbar globalt: För att slippa skriva php wp-cli.phar varje gång, gör vi filen körbar och flyttar den till en katalog i PATH (så att den kan köras som ett vanligt kommando). Till exempel:
Detta flyttar filen och döper kommandot till wp (du kan välja annat namn om du vill)[23]. Testa nu med wp –info – du bör få liknande utskrift som tidigare, vilket bekräftar att installationen lyckades.
(Notera: På vissa distributioner kan WP-CLI finnas i pakethanteraren, men den metoden är inte alltid uppdaterad. Den officiella och rekommenderade vägen är som ovan att använda Phar-filen.)
Exempel på vad du kan göra med WP-CLI
Nu när WP-CLI är installerat, här är några vanliga administrationsuppgifter du kan utföra med det:
Uppdatera WordPress-kärnan: Istället för att logga in i wp-admin och klicka på uppdatering, kör bara:
wp core update && wp core update-db
Detta laddar ner och installerar senaste WordPress-versionen och uppdaterar databasen vid behov – allt i en handvändning.
Uppdatera plugins: Du kan uppdatera alla dina tillägg med ett enda kommando:
wp plugin update –all
Då hämtas och uppdateras samtliga installerade insticksprogram till senaste version. (Du kan också uppdatera ett enskilt plugin med wp plugin update plugin-namn om du vill.)
Installera och aktivera ett plugin eller tema: För att installera ett nytt plugin, till exempel cache-pluginet WP Super Cache, kör:
wp plugin install wp-super-cache –activate
Detta söker upp pluginet på WordPress plugin-katalog, laddar ner det och aktiverar det direkt. Du kan göra samma sak för teman med wp theme install tema-namn –activate.
Hantera användare och inlägg: WP-CLI låter dig även skapa nya användare, resetta lösenord, generera nya inlägg, exportera databasen, med mera. T.ex. för att skapa en ny användare:
wp user create johndoe [email protected] –role=author –user_pass=”MittLösen123″
skulle skapa en författaranvändare åt ”John Doe” med angivet lösenord.
Övrigt: Det finns kommando för i princip allt i WordPress: wp search-replace för att göra sök-och-ersätt i databasen (nyttigt vid t.ex. domänbyte), wp option update för att ändra inställningar, wp post list för att lista inlägg, osv. Du kan se alla tillgängliga kommandon med:
wp help
eller wp <subcommand> –help för detaljer om ett specifikt kommando.
Som du märker kan WP-CLI kraftigt förenkla underhållet. Det är helt frivilligt att använda – allt detta kan göras via det grafiska gränssnittet också – men för den tekniskt nyfikne är det ett utmärkt verktyg som sparar tid och ger mer kontroll.
(Säkerhetstips: När du använder WP-CLI på en produktionssajt som är åtkomlig från internet, tänk på att kommandon som uppdaterar saker sker direkt. Det är klokt att ta backup innan större uppdateringar, även om WP-CLI i sig inte är farligt.)*
Säkerhet
Nu har vi en fungerande WordPress-server i ditt hemnätverk. Innan vi nöjt lutar oss tillbaka är det viktigt att titta på grundläggande säkerhet. Att köra en server innebär ansvar att skydda den från obehörig åtkomst och attacker. Här är några viktiga säkerhetsaspekter och tips:
Brandvägg och åtkomstbegränsning: Vi har redan aktiverat UFW-brandväggen och öppnat nödvändiga portar för webbservern internt. För en hemmaserver som inte ska nås från internet räcker detta. Exponera inte din server mot internet i onödan. Om du inte absolut behöver fjärråtkomst utifrån, låt bli att öppna portforwarding på din router för port 80/443. En hemserver utan rätt skydd kan snabbt bli utsatt för intrångsförsök. I diskussioner på nätet avråder erfarna användare starkt från att ha en server direkt exponerad mot internet utan brandvägg – om din server inte har en avancerad brandväggskonfiguration, koppla bort den från direkt internet. Håll den bakom din router/NAT där den är skyddad. (Om du måste ge åtkomst utifrån, överväg att sätta upp en VPN, använda en reverse proxy-tjänst som Cloudflare Tunnel, eller åtminstone se till att HTTPS/SSL är använt och att du har extra autentisering.)
Starka lösenord överallt: Använd starka, unika lösenord för alla konton – det inkluderar MySQL-databasens användare, WordPress admin-konto, samt Linux-användare (särskilt om SSH är åtkomligt). Undvik enkla eller vanliga lösenord. WordPress gav en styrkeindikator för admin-lösenordet; följ den rekommendationen. Byt gärna ut standardanvändarnamnet “admin” till något annat för WordPress admin-kontot, ifall du råkat välja det.
Håll systemet uppdaterat: En av de viktigaste säkerhetsåtgärderna är att kontinuerligt uppdatera din programvara. Se till att din Ubuntu/Debian får säkerhetsuppdateringar (du kan köra sudo apt update && sudo apt upgrade manuellt regelbundet, eller aktivera automatiska säkerhetsuppdateringar). Detsamma gäller för WordPress och dess tillägg/teman – föråldrade plugins med kända sårbarheter är en vanlig angreppsvektor. Använd antingen WP-CLI eller WordPress inbyggda uppdateringsfunktion för att hålla allt up-to-date. Ett tips är att i WordPress-inställningarna aktivera automatiska uppdateringar för mindre release-versioner och plugins vid behov.
Säkerhet i WordPress: Överväg att installera ett säkerhetsplugin i WordPress som ytterligare skyddslager. Populära alternativ är t.ex. Wordfence eller Sucuri som kan skanna efter malware och blockera misstänkt trafik. Dessa kan hjälpa att upptäcka och stoppa attacker mot din sajt. Se också till att endast behövliga plugins är installerade och radera de du inte använder (färre plugins minskar potentiella sårbarheter).
Begränsa exponering på nätverket: Eftersom detta är en hemmaserver för internt bruk, se till att den endast är nåbar där det behövs. Du kan till exempel ställa in UFW-regler som begränsar port 80/443 så att de bara kan nås från din lokala subnät (t.ex. sudo ufw allow from 192.168.0.0/24 to any port 80 om ditt LAN är 192.168.0.x). Då blockeras även eventuell åtkomst från utanför nätverket. Om du har SSH igång, överväg att byta SSH-port från 22 till något annat, och använd nyckelbaserad inloggning för att förhindra lösenordsgissning.
SSL/TLS för webb: Även om sajten bara körs på LAN kan det vara bra att sätta upp HTTPS om du någon gång exponerar den. På internet skulle vi absolut rekommendera att skaffa ett Let’s Encrypt-certifikat för din domän (om du har en), eller åtminstone ett självsignerat certifikat för kryptering på LAN. HTTPS krypterar trafiken så att ingen utomstående kan avlyssna lösenord eller data som skickas.
Regelbundna backuper: Ta för vana att säkerhetskopiera din WordPress-databas och eventuella uppladdade filer. Eftersom detta är på en egen server kan du skripta en mysqldump av databasen då och då, eller använda ett WordPress-backupplugin. Spara backuperna på en annan enhet. Detta skyddar dig ifall något går fel (t.ex. en uppgradering som strular till det, hårddiskfel, eller om du råkar radera något av misstag).
Sammanfattningsvis handlar säkerhet om lager-på-lager: brandvägg, begränsad åtkomst, starka lösenord, uppdateringar och säkerhetskopior. Genom att följa dessa råd skyddar du din hemmaserver mot de vanligaste riskerna och kan tryggt experimentera vidare. Tänk på: om du någon gång öppnar servern mot internet, var extra noggrann med alla ovanstående punkter – internet är fullt av bottar som skannar efter sårbara servrar.
Avslutande tips
Du har nu en fullt fungerande LAMP-server med WordPress i ditt hemnätverk! Här är några avslutande tips för att ta ditt projekt vidare och hålla allting snurrande:
Lär känna WordPress och fortsätt anpassa: Logga in på WordPress och utforska dess adminpanel. Byt till ett tema du gillar, skapa några sidor/inlägg och prova installera något nytt plugin. Det finns massor av gratis teman och plugins att utforska för nästan alla behov. Kom dock ihåg att inte installera för många onödiga plugin – håll det till det du verkligen använder, både för prestanda och säkerhet.
Prestanda på hemservern: En äldre dator kan ha begränsad prestanda. Om du märker att sajten är långsam, fundera på att installera ett cache-plugin (t.ex. WP Super Cache vi nämnde) för att snabba upp sidladdningar genom att servera statiska sidor. Se också till att onödiga tjänster inte körs på servern och konsumerar resurser. För enstaka användare i ett LAN är dock prestandakravet oftast lågt.
Utforska fler möjligheter: Nu när din server är igång, kanske du vill köra fler tjänster på den? Du kan exempelvis sätta upp phpMyAdmin för enklare databashantering via webben (om än WP-CLI och MySQL-shell räcker långt), eller installera andra webbapplikationer vid sidan av WordPress (kom ihåg att då konfigurera Apache virtuella värdar för flera sajter). Din LAMP-server kan vara värd för flera projekt samtidigt. Varje sajt kan få sin egen databas och egen katalog under /var/www.
Underhåll är nyckeln: Som med alla system är regelbundet underhåll viktigt. Håll ett öga på uppdateringar både för servern och WordPress. Städa bort sådant du inte behöver. Och framför allt, fortsätt lära dig! Om något problem uppstår, konsultera loggfilerna (Apache loggar finns i /var/log/apache2/ och WordPress fel loggas ofta via PHP). Communityn för både WordPress och Linux är stor – det finns forum och guider för det mesta. Minns att nyckeln till en framgångsrik webbplats inte bara är själva uppsättningen, utan dessfortlöpande underhåll och förbättring[33]. Med andra ord, fortsätt pyssla om din server även efter att den är satt i drift.
Vi hoppas denna guide hjälpt dig komma igång med att installera LAMP-stack och WordPress på din hemmadator. Lycka till med ditt webbprojektexperiment och ha kul på vägen! Skulle något krångla, finns det många resurser online – och glöm inte att backup är din bästa vän när du experimenterar. Happy hosting!
Förklaring av vad de olika delkomponenterna gör
Apache: En populär webbserverprogramvara som körs på servern för att leverera webbsidor till besökarnas webbläsare. Apache tar emot förfrågningar från webbläsare och svarar med innehållet (t.ex. din WordPress-sida). I LAMP-stacken utgör Apache “webbserver”-delen.
Brandvägg: Ett säkerhetssystem som skyddar nätverk och datorer mot intrång genom att kontrollera vilken trafik som tillåts passerar. En brandvägg kan konfigureras att bara släppa igenom viss trafik (t.ex. webbtrafik på port 80/443 till din WordPress-server) och blockera obehöriga anslutningar.
Debian: En Linux-distribution (operativsystem) som främst används för servrar och infrastruktur. Debian är känt för stabilitet och öppen källkod. I det här sammanhanget kan Debian vara serverns operativsystem där du installerar LAMP-komponenterna och WordPress.
IP-adress: En unik sifferkombination som identifierar en enhet (dator, server m.m.) i ett nätverk[4]. Genom att använda serverns IP-adress kan andra datorer i hemmanätverket hitta fram till din WordPress-server och visa webbsidan.
LAMP: Akronym för Linux, Apache, MySQL, PHP[5]. Det är en paketlösning (s.k. tech stack) där Linux är operativsystemet, Apache är webbservern, MySQL är databashanteraren och PHP är programmeringsspråket. En LAMP-stack innehåller alltså allt som behövs för att driva en WordPress-webbplats på en lokal server.
LAN (Local Area Network): Ett lokalt nätverk som består av enheter inom ett begränsat område (t.ex. i hemmet). I ett hemmanätverk (LAN) är din WordPress-server ansluten till samma router som dina andra enheter, vilket gör att de kan kommunicera direkt med servern inom det lokala nätet.
Linux: Ett operativsystem med öppen källkod som är vanligt på servrar. Linux är grunden i LAMP-stacken (L:et står för Linux) och utgör serverns OS. Både Debian och Ubuntu är Linux-varianter; en av dem körs på serverdatorn för att du ska kunna installera Apache, MySQL, PHP och WordPress.
MySQL/MariaDB: Detta är databashanteringssystem som används för att lagra och hämta all information som hör till din webbplats – till exempel inlägg, användarkonton och inställningar. WordPress är byggt för att arbeta med databaser av den här typen. På moderna Linux-servrar installeras ofta MariaDB som ett alternativ till MySQL; de fungerar i princip likadant och är fullt kompatibla med WordPress. I en LAMP-stack utgör MySQL eller MariaDB den komponent som ansvarar för själva datalagringen.
PHP: Ett skriptspråk på serversidan som används för att skapa dynamiska webbsidor[9]. WordPress är skrivet i PHP, vilket innebär att PHP-kod körs på servern för att generera HTML-sidorna. När en användare besöker din WordPress-sida så tolkar PHP koden och bygger ihop sidan som sedan skickas till användarens webbläsare.
Port: Inom datanätverk avser en port ett nummer som fungerar som en kanal eller “adress” för en viss typ av trafik[10]. Till exempel använder webbtrafik vanligtvis port 80 för HTTP och port 443 för HTTPS. För att din WordPress-server ska vara åtkomlig i nätverket behöver rätt port öppnas (t.ex. port 80 så att hemsidan kan nås, och port 22 för SSH-fjärrinloggning), ofta i samarbete med brandväggen.
Root-användare: Det högsta administratörskontot i ett Linux-system (kallas även superuser) som har obegränsade rättigheter[11]. Root-användaren kan installera program, ändra systeminställningar och utföra alla kommandon. Av säkerhetsskäl loggar man vanligtvis inte in direkt som root; istället använder man ett normalt användarkonto och sudo-kommandot för att tillfälligt få root-behörighet vid administration av servern.
SSH (Secure Shell): Ett protokoll som används för att ansluta säkert till en annan dator över nätverket[12]. Via SSH kan du öppna en terminal till din server och köra kommandon på distans som om du satt vid den. I vårt sammanhang används SSH för att fjärrstyra Debian/Ubuntu-servern i hemmanätverket – till exempel för att installera paket eller hantera WordPress via kommandoraden.
Ubuntu: En av de mest populära Linux-distributionerna för datoranvändare, baserad på Debian[13]. Ubuntu finns i versioner för servrar och är känt för att vara användarvänligt. I det här sammanhanget kan Ubuntu (Server-edition) användas som operativsystem på din hemmaserver innan du installerar LAMP-paketet och WordPress.
WordPress: Ett mycket populärt publiceringsverktyg (Content Management System, CMS) för webben[14]. Med WordPress kan man enkelt skapa och hantera en hemsida eller blogg via ett webbgränssnitt. I vår situation installerar du WordPress på LAMP-servern i hemmanätverket, vilket låter dig driva en egen lokal webbplats och administrera innehållet genom WordPress kontrollpanel.
WP-CLI:WordPress Command Line Interface, ett verktyg som låter dig hantera WordPress-webbplatsen via kommandoraden[15]. Med WP-CLI kan du sköta många administrationsuppgifter direkt i terminalen – till exempel installera eller uppdatera WordPress, lägga till användare, hantera teman och insticksprogram – utan att behöva använda WordPress grafiska webbgränssnitt.
Detta projekt använder en klassisk LAMP-stack:
– Linux (Ubuntu/Debian)
– Apache som webbserver
– MySQL eller MariaDB som databas
– PHP som serversidespråk
WordPress installeras direkt i /var/www/html och kopplas till en dedikerad databas.
WP-CLI gör det möjligt att administrera sajten via terminalen.
Servern är endast tillgänglig inom hemnätverket (LAN) via statisk IP-adress.
Portar 80 (HTTP) och 443 (HTTPS) tillåts lokalt via ufw.
Perfekt för testning av egna webbappar, teman och plugins utan att publicera dem online.
Att förstå och hantera processer är en av de mest grundläggande färdigheterna i Linux. När du kör ett program – vare sig det är en webbläsare, ett terminalkommando eller en systemtjänst – skapas en process. Ibland behöver du som användare ta kontroll över dessa processer: kanske för att ett program har hängt sig, för att frigöra resurser eller för att starta om en tjänst. I Linux görs detta genom att skicka signaler till processer via terminalen. I den här guiden går vi igenom vad processer är, hur signaler fungerar och hur du kan använda viktiga kommandon som kill, killall, pkill, fuser, pgrep och skill för att söka upp, pausa eller avsluta processer – med tydliga exempel för nybörjare.
Att kunna döda en process från terminalen kan ibland vara nödvändigt.
Vad är en process i Linux?
En process är ett körande program på datorn. Operativsystemet Linux hanterar många processer samtidigt och ger varje process ett unikt process-ID (PID) för identifiering. Processer kan vara synliga användarprogram (som ett webbrowserfönster) eller systemtjänster som körs i bakgrunden. Linux-kärnan ansvarar för att schemalägga processer, fördela resurser och hålla isär deras minne och rättigheter. Som användare kan man med kommandon i terminalen inspektera och påverka processer, till exempel om ett program har hängt sig eller om man behöver avsluta en process som förbrukar för mycket resurser.
Varför behöver man hantera eller avsluta processer?
Vanliga anledningar till att manuellt hantera (eller döda) processer är att ett program inte svarar, har låst sig eller använder orimligt mycket CPU/minne. Ibland behöver man avsluta ett program som körs i bakgrunden, starta om en tjänst genom att skicka en viss signal, eller frigöra en fil eller nätverksport som en process håller låst. Genom att skicka signaler till processer kan man be dem avsluta på ett kontrollerat sätt eller tvinga fram en avslutning om de inte reagerar. Att känna till de viktigaste kommandona för processhantering – såsom kill, killall, pkill, fuser, pgrep och skill – är därför värdefullt. I denna artikel går vi igenom vad signaler är och hur man använder dessa kommandon med praktiska exempel.
Signaler i Linux och vanliga signaler
En signal är ett meddelande som operativsystemet kan skicka till en process för att uppmärksamma den på en händelse eller begära en viss åtgärd. Signaler identifieras både med namn (ofta med prefixet SIG) och ett nummer. Till exempel är SIGTERM signal nummer 15, SIGKILL nummer 9, SIGHUP nummer 1 och SIGSTOP nummer 19. När en signal skickas till en process avbryts den normalt tillfälligt för att hantera signalen. Vissa signaler kan fångas upp av processen (som då kan välja att ignorera dem eller utföra städning), medan andra inte kan ignoreras.
Några vanliga signaler och deras betydelser är:
SIGTERM (15) – Termineringssignal. Standard-signalen som skickas av kommandot kill. Den ber processen att avsluta sig själv gracefully, dvs. på ett kontrollerat sätt[2]. Processen får en chans att städa upp, spara sitt tillstånd, stänga filer etc., innan den avslutas.
SIGKILL (9)– Kill-signalen. Detta är en tvångsavslutning som inte kan fångas eller ignoreras av processen[1][3]. Operativsystemet terminerar processen omedelbart när det får denna signal, även om processen hängt sig. SIGKILL bör användas som sista utväg när en process inte reagerar på vänligare signaler, eftersom ingen städning sker och t.ex. temporära filer eller resurser kan lämnas i osäkert tillstånd[3].
SIGHUP (1)– Hang up. Ursprungligen indikerar detta att den terminal (TTY) som startade processen kopplades ned. För många bakgrundstjänster (daemons) har det blivit konvention att SIGHUP innebär att processen ska läsa om sin konfiguration eller starta om sig själv[4]. Man kan alltså skicka SIGHUP till en daemon för att få den att göra en mjuk omstart eller ladda om inställningar.
SIGSTOP (19)– Stoppsignal. Pauserar en process (fryser dess exekvering) utan att avsluta den, och kan inte ignoreras av processen[1]. Detta motsvarar att köra ett program i bakgrunden genom att trycka Ctrl+Z i terminalen. En stoppad process kan återupptas igen genom att skicka SIGCONT (continue) eller föras in i förgrunden med shell-kommandon som fg. SIGSTOP/SIGCONT är användbara om man tillfälligt vill pausa en process (t.ex. för felsökning) utan att döda den.
Det finns många fler signaler (för att lista alla standard-signaler kan man köra kill -l eller fuser -l i terminalen). Som nybörjare är det viktigast att förstå att SIGTERM är standardmetoden att avsluta processer på ett snällt sätt, SIGKILL är en tvingande nödlösning, och att signaler som SIGHUP och SIGSTOP har speciella användningsområden. Nästa steg är att använda kommandon som skickar dessa signaler till processer.
Kommandot kill – avsluta processer med PID
Det mest grundläggande sättet att skicka en signal till en process är med kommandot kill. Namnet låter brutalt, men kill skickar egentligen en godtycklig signal (som standard SIGTERM) till en eller flera processer utifrån deras PID. För att använda kill måste du alltså känna till processens ID-nummer. Detta kan man ta reda på med verktyg som ps (processlista), top eller pgrep (mer om pgrep nedan).
Syntax: kill [signal] PID … (om ingen signal anges skickas SIGTERM som standard).
Exempel på användning:
# Skicka standardsignalen SIGTERM (15) till process med PID 1234 kill 1234
Kommandot ovan ber processen 1234 att avsluta sig själv snällt (SIGTERM är default för kill[2]). Om processen inte avslutas kan man behöva skicka en mer drastisk signal:
# Tvinga avslutning av process 1234 med SIGKILL (9) kill -9 1234
Här används flaggan -9 för att skicka signal 9 (SIGKILL), vilket omedelbart dödar processen[3]. Notera att man också kan skriva kill -SIGKILL 1234 – många signaler kan anges antingen med nummer, med fullt namn (t.ex. -SIGKILL) eller förkortat utan ”SIG” (t.ex. -KILL), alla dessa är ekvivalenta.
Ett normalfall är att först försöka med en vanlig kill (SIGTERM) och ge processen åtminstone några sekunder att avsluta sig på rätt sätt. Om den fortsatt vägrar dö eller hänger sig, kan man följa upp med kill -9 för att garantera att den försvinner. SIGKILL kan som sagt inte ignoreras av processen[5].
Kommandot kill kan även skicka andra signaler. Till exempel kan man skicka SIGHUP (1) för att instruera en process att starta om eller läsa om konfiguration:
# Skicka SIGHUP (1) till process 5678, ofta för att få en daemon att läsa om sin config kill -1 5678 # -1 motsvarar SIGHUP kill -HUP 5678 # detta är likvärdigt med -1
På liknande sätt kan kill -STOP användas för att pausa en process och kill -CONT för att fortsätta en pausad process. Om du är osäker på signalnamnet eller numret kan du skriva:
# Lista alla signals namn och nummer kill -l
Detta listar alla signaler som systemet känner till (t.ex. får du reda på att 15 = TERM, 9 = KILL, 1 = HUP, etc.).
Tips: kill är inbyggt i många shell (som Bash). Oftast räcker det att ange PID, men var försiktig så att du inte råkar ange fel PID. Det är alltid en bra idé att dubbelkolla med exempelvis ps eller pgrep att du har rätt process. Som vanlig användare kan du bara skicka signaler till processer du äger (startat själv), medan root-användaren kan signalera alla processer.
Kommandot killall – döda processer utifrån namn
Med killall kan du skicka en signal till samtliga processer som matchar ett givet kommando-namn. Till skillnad från kill behöver du alltså inte känna till PID; istället anger du namnet på processen/programmet. Som standard skickar killall också SIGTERM om ingen annan signal anges[6].
Syntax: killall [flaggor] [signal] namn…
Ett enkelt exempel:
# Försöker stänga alla processer som heter ”firefox” med SIGTERM killall firefox
Ovanstående kommando försöker avsluta alla körande Firefox-processer (t.ex. om flera webbläsarfönster är öppna) genom att skicka SIGTERM till dem. Om de inte stänger sig ordentligt kan man tvinga dem:
# Döda alla ”firefox”-processer med SIGKILL (9) killall -9 firefox
Flaggan -9 fungerar här likadant som för kill. Man kan även specificera signalnamn, till exempel killall -KILL firefox gör samma sak. Under huven skickar killall signalen till alla processer med det angivna namnet[6].
Det är viktigt att ange processen vid exakt namn. killall matchar som default hela kommandonamnet. Till exempel, killall vi dödar processer vars namn är precis ”vi”, men inte ”vim”. Man kan använda flaggan -I för att ignorera skillnad mellan versaler/gemener vid namnmatchning, eller -r för att tolka namnet som ett regular expression (regex) om man vill ha mer flexibel matchning[7]. Exempelvis skulle killall -r -9 ^firefox med regex döda alla processer vars namn börjar med ”firefox”.
Några andra praktiska flaggor för killall är: – -i (interactive) – frågar om bekräftelse före varje enskild process som ska dödas. Bra för säkerhets skull om man är osäker. – -v (verbose) – skriver ut information om huruvida signalen lyckades skickas till var och en. – -u användare – begränsa till processer som ägs av en viss användare. T.ex. killall -u alice firefox skulle bara försöka döda Alice instanser av firefox.
Varning: killall på Linux är harmlöst om du anger ett specifikt processnamn, men se upp så att du inte misstar det för det helt annorlunda kommandot killall på vissa Unix-system (som Solaris) där killall utan argument faktiskt försöker döda alla processer. På Linux är killall en del av psmisc-paketet och fungerar enligt ovan. Ange alltid explicit ett processnamn när du använder detta kommando.
Kommandot pkill – skicka signal utifrån sökmönster
pkill liknar killall genom att det låter dig avsluta processer baserat på namn, men det är mer flexibelt. Namnet pkill står för ”process kill” och är kopplat till kommandot pgrep (process grep). I själva verket är pkill en variant av pgrep som istället för att lista processer skickar en signal till dem som matchar kriteriet[8]. pkill använder sig av mönstermatchning (standardmässigt regular expressions) på processernas namn eller andra attribut.
Syntax: pkill [flaggor] [signal] mönster
Om ingen signal anges så skickar pkill som vanligt SIGTERM (15)[9]. Mönstret kan vara en del av processens namn. Exempel:
# Försök avsluta alla processer vars namn innehåller ”chrome” pkill chrome
Ovan kommando skulle skicka SIGTERM till alla processer som matchar regex-mönstret ”chrome” i sitt namn (så det träffar t.ex. både chrome och chromium om de körs). Vill man vara specifik att namnet ska matcha exakt, kan man använda flaggan -x (exact match). Alternativt kan man skriva regex med ^ och $ för att ange början/slut på namnet:
# Avsluta alla processer som heter exakt ”ssh” (inte bara innehåller ”ssh”) pkill -x ssh
Man kan på liknande sätt som med killall använda -9 eller -KILL för att skicka SIGKILL:
# Tvinga bort alla processer vars namn matchar ”chrome” pkill -9 chrome
Ett praktiskt användningsområde är att skicka andra signaler. Till exempel för att be en tjänst ladda om sin konfiguration (vilket ofta görs med SIGHUP) kan du göra:
# Ladda om Nginx konfiguration genom att skicka SIGHUP (1) till alla ”nginx”-processer pkill -HUP nginx
Detta utnyttjar att många tjänster (inklusive Nginx) tolkar SIGHUP som signal att läsa om config[10][11].
pkill har flera användbara flaggor för att begränsa vilka processer som träffas: – -f – matcha mot hela kommandoraden istället för bara basnamnet. T.ex. pkill -f ”python myscript.py” skulle matcha kommandoraden som innehåller texten python myscript.py (användbart om processen har ett generiskt namn men unika argument). – -u användare – matcha bara processer som körs av en viss användare (eller lista av användare). T.ex. pkill -u bob ssh dödar ssh-processer som körs av användaren bob. – -n / -o – matcha endast den nyaste respektive äldsta processen som uppfyller mönstret. Detta är bra om man t.ex. vill döda den senast startade instansen av något. – -c – (i vissa varianter) visa antal träffade processer istället för att döda (eller används i pgrep specifikt – se man pkill/pgrep).
En viktig sak med pkill är att det är lätt att matcha bredare än avsett om man inte är försiktig med mönstret. Till exempel kan pkill ssh även döda en process som heter ssh-agent eftersom ”ssh” ingår i namnet. Därför är ett gott råd att först testa mönstret med pgrep (som bara listar träffar) innan man kör pkill. Exempel:
pgrep -l chrome # listar PIDs och namn för processer som matchar ”chrome”
Om utdata ser rimlig ut så kan man sedan byta ut pgrep mot pkill med samma mönster för att faktiskt skicka signalen.
Kommandot pgrep – hitta processer utifrån namn eller villkor
Som nämnt är pgrep syskonverktyget till pkill. Istället för att skicka signaler listar pgrep helt enkelt ut process-ID för processer vars namn eller andra attribut matchar ett mönster. Formatet liknar pkill:
Syntax: pgrep [flaggor] mönster
Standardbeteendet är att matcha processnamn (kommandots namn) mot ett angivet mönster (som tolkas som regex). pgrep skriver ut matchande PIDs, ett per rad. Några exempel:
# Hitta PID för alla processer vars namn innehåller ”ssh” pgrep ssh
# Hitta PID för processen som heter exakt ”gnome-shell” pgrep -x gnome-shell Hantera processer i Linux från terminalen – En nybörjarguide
Vad är en process i Linux?
En process är ett körande program på datorn. Operativsystemet Linux hanterar många processer samtidigt och ger varje process ett unikt process-ID (PID) för identifiering. Processer kan vara synliga användarprogram (som ett webbrowserfönster) eller systemtjänster som körs i bakgrunden. Linux-kärnan ansvarar för att schemalägga processer, fördela resurser och hålla isär deras minne och rättigheter. Som användare kan man med kommandon i terminalen inspektera och påverka processer, till exempel om ett program har hängt sig eller om man behöver avsluta en process som förbrukar för mycket resurser.
Varför behöver man hantera eller avsluta processer?
Vanliga anledningar till att manuellt hantera (eller döda) processer är att ett program inte svarar, har låst sig eller använder orimligt mycket CPU/minne. Ibland behöver man avsluta ett program som körs i bakgrunden, starta om en tjänst genom att skicka en viss signal, eller frigöra en fil eller nätverksport som en process håller låst. Genom att skicka signaler till processer kan man be dem avsluta på ett kontrollerat sätt eller tvinga fram en avslutning om de inte reagerar. Att känna till de viktigaste kommandona för processhantering – såsom kill, killall, pkill, fuser, pgrep och skill – är därför värdefullt. I denna artikel går vi igenom vad signaler är och hur man använder dessa kommandon med praktiska exempel.
Signaler i Linux och vanliga signaler
En signal är ett meddelande som operativsystemet kan skicka till en process för att uppmärksamma den på en händelse eller begära en viss åtgärd. Signaler identifieras både med namn (ofta med prefixet SIG) och ett nummer. Till exempel är SIGTERM signal nummer 15, SIGKILL nummer 9, SIGHUP nummer 1 och SIGSTOP nummer 19[1]. När en signal skickas till en process avbryts den normalt tillfälligt för att hantera signalen. Vissa signaler kan fångas upp av processen (som då kan välja att ignorera dem eller utföra städning), medan andra inte kan ignoreras.
Några vanliga signaler och deras betydelser är:
SIGTERM (15) – Termineringssignal. Standard-signalen som skickas av kommandot kill. Den ber processen att avsluta sig själv gracefully, dvs. på ett kontrollerat sätt[2]. Processen får en chans att städa upp, spara sitt tillstånd, stänga filer etc., innan den avslutas.
SIGKILL (9) – Kill-signalen. Detta är en tvångsavslutning som inte kan fångas eller ignoreras av processen[1][3]. Operativsystemet terminerar processen omedelbart när det får denna signal, även om processen hängt sig. SIGKILL bör användas som sista utväg när en process inte reagerar på vänligare signaler, eftersom ingen städning sker och t.ex. temporära filer eller resurser kan lämnas i osäkert tillstånd[3].
SIGHUP (1) – Hang up. Ursprungligen indikerar detta att den terminal (TTY) som startade processen kopplades ned. För många bakgrundstjänster (daemons) har det blivit konvention att SIGHUP innebär att processen ska läsa om sin konfiguration eller starta om sig själv[4]. Man kan alltså skicka SIGHUP till en daemon för att få den att göra en mjuk omstart eller ladda om inställningar.
SIGSTOP (19) – Stoppsignal. Pauserar en process (fryser dess exekvering) utan att avsluta den, och kan inte ignoreras av processen[1]. Detta motsvarar att köra ett program i bakgrunden genom att trycka Ctrl+Z i terminalen. En stoppad process kan återupptas igen genom att skicka SIGCONT (continue) eller föras in i förgrunden med shell-kommandon som fg. SIGSTOP/SIGCONT är användbara om man tillfälligt vill pausa en process (t.ex. för felsökning) utan att döda den.
Det finns många fler signaler (för att lista alla standard-signaler kan man köra kill -l eller fuser -l i terminalen). Som nybörjare är det viktigast att förstå att SIGTERM är standardmetoden att avsluta processer på ett snällt sätt, SIGKILL är en tvingande nödlösning, och att signaler som SIGHUP och SIGSTOP har speciella användningsområden. Nästa steg är att använda kommandon som skickar dessa signaler till processer.
Kommandot kill – avsluta processer med PID
Det mest grundläggande sättet att skicka en signal till en process är med kommandot kill. Namnet låter brutalt, men kill skickar egentligen en godtycklig signal (som standard SIGTERM) till en eller flera processer utifrån deras PID. För att använda kill måste du alltså känna till processens ID-nummer. Detta kan man ta reda på med verktyg som ps (processlista), top eller pgrep (mer om pgrep nedan).
Syntax: kill [signal] PID … (om ingen signal anges skickas SIGTERM som standard).
Exempel på användning:
# Skicka standardsignalen SIGTERM (15) till process med PID 1234 kill 1234
Kommandot ovan ber processen 1234 att avsluta sig själv snällt (SIGTERM är default för kill[2]). Om processen inte avslutas kan man behöva skicka en mer drastisk signal:
# Tvinga avslutning av process 1234 med SIGKILL (9) kill -9 1234
Här används flaggan -9 för att skicka signal 9 (SIGKILL), vilket omedelbart dödar processen[3]. Notera att man också kan skriva kill -SIGKILL 1234 – många signaler kan anges antingen med nummer, med fullt namn (t.ex. -SIGKILL) eller förkortat utan ”SIG” (t.ex. -KILL), alla dessa är ekvivalenta.
Ett normalfall är att först försöka med en vanlig kill (SIGTERM) och ge processen åtminstone några sekunder att avsluta sig på rätt sätt. Om den fortsatt vägrar dö eller hänger sig, kan man följa upp med kill -9 för att garantera att den försvinner. SIGKILL kan som sagt inte ignoreras av processen[5].
Kommandot kill kan även skicka andra signaler. Till exempel kan man skicka SIGHUP (1) för att instruera en process att starta om eller läsa om konfiguration:
# Skicka SIGHUP (1) till process 5678, ofta för att få en daemon att läsa om sin config kill -1 5678 # -1 motsvarar SIGHUP kill -HUP 5678 # detta är likvärdigt med -1
På liknande sätt kan kill -STOP användas för att pausa en process och kill -CONT för att fortsätta en pausad process. Om du är osäker på signalnamnet eller numret kan du skriva:
# Lista alla signals namn och nummer kill -l
Detta listar alla signaler som systemet känner till (t.ex. får du reda på att 15 = TERM, 9 = KILL, 1 = HUP, etc.).
Tips: kill är inbyggt i många shell (som Bash). Oftast räcker det att ange PID, men var försiktig så att du inte råkar ange fel PID. Det är alltid en bra idé att dubbelkolla med exempelvis ps eller pgrep att du har rätt process. Som vanlig användare kan du bara skicka signaler till processer du äger (startat själv), medan root-användaren kan signalera alla processer.
Kommandot killall – döda processer utifrån namn
Med killall kan du skicka en signal till samtliga processer som matchar ett givet kommando-namn. Till skillnad från kill behöver du alltså inte känna till PID; istället anger du namnet på processen/programmet. Som standard skickar killall också SIGTERM om ingen annan signal anges[6].
Syntax: killall [flaggor] [signal] namn…
Ett enkelt exempel:
# Försöker stänga alla processer som heter ”firefox” med SIGTERM killall firefox
Ovanstående kommando försöker avsluta alla körande Firefox-processer (t.ex. om flera webbläsarfönster är öppna) genom att skicka SIGTERM till dem. Om de inte stänger sig ordentligt kan man tvinga dem:
# Döda alla ”firefox”-processer med SIGKILL (9) killall -9 firefox
Flaggan -9 fungerar här likadant som för kill. Man kan även specificera signalnamn, till exempel killall -KILL firefox gör samma sak. Under huven skickar killall signalen till alla processer med det angivna namnet[6].
Det är viktigt att ange processen vid exakt namn. killall matchar som default hela kommandonamnet. Till exempel, killall vi dödar processer vars namn är precis ”vi”, men inte ”vim”. Man kan använda flaggan -I för att ignorera skillnad mellan versaler/gemener vid namnmatchning, eller -r för att tolka namnet som ett regular expression (regex) om man vill ha mer flexibel matchning[7]. Exempelvis skulle killall -r -9 ^firefox med regex döda alla processer vars namn börjar med ”firefox”.
Några andra praktiska flaggor för killall är: – -i (interactive) – frågar om bekräftelse före varje enskild process som ska dödas. Bra för säkerhets skull om man är osäker. – -v (verbose) – skriver ut information om huruvida signalen lyckades skickas till var och en. – -u användare – begränsa till processer som ägs av en viss användare. T.ex. killall -u alice firefox skulle bara försöka döda Alice instanser av firefox.
Varning: killall på Linux är harmlöst om du anger ett specifikt processnamn, men se upp så att du inte misstar det för det helt annorlunda kommandot killall på vissa Unix-system (som Solaris) där killall utan argument faktiskt försöker döda alla processer. På Linux är killall en del av psmisc-paketet och fungerar enligt ovan. Ange alltid explicit ett processnamn när du använder detta kommando.
Kommandot pkill – skicka signal utifrån sökmönster
pkill liknar killall genom att det låter dig avsluta processer baserat på namn, men det är mer flexibelt. Namnet pkill står för ”process kill” och är kopplat till kommandot pgrep (process grep). I själva verket är pkill en variant av pgrep som istället för att lista processer skickar en signal till dem som matchar kriteriet[8]. pkill använder sig av mönstermatchning (standardmässigt regular expressions) på processernas namn eller andra attribut.
Syntax: pkill [flaggor] [signal] mönster
Om ingen signal anges så skickar pkill som vanligt SIGTERM (15)[9]. Mönstret kan vara en del av processens namn. Exempel:
# Försök avsluta alla processer vars namn innehåller ”chrome” pkill chrome
Ovan kommando skulle skicka SIGTERM till alla processer som matchar regex-mönstret ”chrome” i sitt namn (så det träffar t.ex. både chrome och chromium om de körs). Vill man vara specifik att namnet ska matcha exakt, kan man använda flaggan -x (exact match). Alternativt kan man skriva regex med ^ och $ för att ange början/slut på namnet:
# Avsluta alla processer som heter exakt ”ssh” (inte bara innehåller ”ssh”) pkill -x ssh
Man kan på liknande sätt som med killall använda -9 eller -KILL för att skicka SIGKILL:
# Tvinga bort alla processer vars namn matchar ”chrome” pkill -9 chrome
Ett praktiskt användningsområde är att skicka andra signaler. Till exempel för att be en tjänst ladda om sin konfiguration (vilket ofta görs med SIGHUP) kan du göra:
# Ladda om Nginx konfiguration genom att skicka SIGHUP (1) till alla ”nginx”-processer pkill -HUP nginx
Detta utnyttjar att många tjänster (inklusive Nginx) tolkar SIGHUP som signal att läsa om config[10][11].
pkill har flera användbara flaggor för att begränsa vilka processer som träffas: – -f – matcha mot hela kommandoraden istället för bara basnamnet. T.ex. pkill -f ”python myscript.py” skulle matcha kommandoraden som innehåller texten python myscript.py (användbart om processen har ett generiskt namn men unika argument). – -u användare – matcha bara processer som körs av en viss användare (eller lista av användare). T.ex. pkill -u bob ssh dödar ssh-processer som körs av användaren bob. – -n / -o – matcha endast den nyaste respektive äldsta processen som uppfyller mönstret. Detta är bra om man t.ex. vill döda den senast startade instansen av något. – -c – (i vissa varianter) visa antal träffade processer istället för att döda (eller används i pgrep specifikt – se man pkill/pgrep).
En viktig sak med pkill är att det är lätt att matcha bredare än avsett om man inte är försiktig med mönstret. Till exempel kan pkill ssh även döda en process som heter ssh-agent eftersom ”ssh” ingår i namnet. Därför är ett gott råd att först testa mönstret med pgrep (som bara listar träffar) innan man kör pkill. Exempel:
pgrep -l chrome # listar PIDs och namn för processer som matchar ”chrome”
Om utdata ser rimlig ut så kan man sedan byta ut pgrep mot pkill med samma mönster för att faktiskt skicka signalen.
Kommandot pgrep – hitta processer utifrån namn eller villkor
Som nämnt är pgrep syskonverktyget till pkill. Istället för att skicka signaler listar pgrep helt enkelt ut process-ID för processer vars namn eller andra attribut matchar ett mönster. Formatet liknar pkill:
Syntax: pgrep [flaggor] mönster
Standardbeteendet är att matcha processnamn (kommandots namn) mot ett angivet mönster (som tolkas som regex). pgrep skriver ut matchande PIDs, ett per rad. Några exempel:
# Hitta PID för alla processer vars namn innehåller ”ssh” pgrep ssh
# Hitta PID för processen som heter exakt ”gnome-shell” pgrep -x gnome-shell
# Hitta alla processer som körs av användaren alice och innehåller ”python” i namnet pgrep -u alice python
I det sista exemplet kombineras -u alice för att filtrera på ägare och mönstret ”python” för att filtrera på namn. pgrep har i stort sett samma filterflaggor som pkill (som -f, -x, -n, -o, -u etc.), så man kan göra avancerade sökningar. En användbar flagga är -l (lågt L) som gör att pgrep listar inte bara PID utan även processens namn:
pgrep -l ssh
Det kan ge utdata som:
1039 sshd 2257 ssh-agent 6850 ssh 31279 ssh-agent
Då ser man både PID och vilket program det är. Om man vill ha hela kommandoraden kan man använda -a i stället för -l.
pgrep är således mycket smidigare än att köra t.ex. ps aux | grep namn och manuellt leta PIDs. När man väl fått en PID via pgrep kan man sedan använda kill på den, eller direkt använda pkill som vi gjorde ovan för att slippa steget att manuellt läsa av PID.
Kommandot fuser – hitta (och döda) processer som använder en resurs
fuser är ett verktyg som skiljer sig lite från de övriga: det är inte en renodlad ”kill”-kommandon utan används för att identifiera vilka processer som använder en viss resurs. En resurs i detta sammanhang kan vara en fil, en mapp, eller en nätverksport/socket. Namnet fuser kommer av ”file user”, dvs vilka processer som använder en fil.
Ett klassiskt problem är ”varför kan jag inte montera/avmontera den här disken?” eller ”vilken process kör på port 8080?”. fuser hjälper dig att svara på det, och kan även ta steget att döda de processer som blockerar en resurs.
Syntax: fuser [flaggor] [resurs]
Några vanliga användningsfall:
# Ta reda på vilken process som använder filen /var/log/syslog fuser /var/log/syslog
# Lista vilken process som lyssnar på TCP-port 80 (HTTP) fuser 80/tcp
# Visa mer detaljer (ägare, access-typ etc.) för processer som kör på port 80 fuser -v 80/tcp
När man kör fuser på en fil eller port returnerar den normalt vilka PID:er som använder resursen. Flaggan -v (verbose) ger en tabell som visar PID, användare, och hur de använder resursen (t.ex. F för öppnad fil, e för exe-körning, tcp för nätverkstjänst etc.)[12][13].
En mycket praktisk funktion är att kunna döda alla processer som använder en viss resurs. Detta görs med flaggan -k (kill). Exempel:
# Döda processen som använder TCP-port 8443 sudo fuser -k 8443/tcp
Här letar fuser upp vilken process som lyssnar på port 8443 och skickar SIGKILL till den[14]. Som standard skickar fuser -k nämligen SIGKILL till processerna[15]. Om man istället vill försöka avsluta dem mjukare kan man specificera signal, t.ex. fuser -k -TERM 8443/tcp för att skicka SIGTERM (15)[16][17]. Generellt kan man lägga till -[SIGNAL] efter -k för valfri signal.
VARNING: Använd fuser -k med omsorg. Om du anger en vanlig fil som resurs kommer bara processen som har just den filen öppen att dödas, men om du anger en hel mapp eller en monteringspunkt (t.ex. ett helt filsystem) så kommer alla processer som använder något i den mappen att dödas[18]. Till exempel fuser -k /home kan i värsta fall döda en mängd processer (eftersom många program sannolikt har något öppet under /home). Var därför specifik med resursen och använd gärna -i (interactive) flaggan tillsammans med -k för att be om bekräftelse för varje träff innan den dödas[18]. Exempel:
# Interaktivt (-i) döda alla processer som använder aktuell mapp (.) fuser -ki .
Ovan skulle lista alla processer som kör något i nuvarande katalog, och fråga y/n innan varje dödas.
Slutligen, fuser -l visar en lista över alla signalnamn som kommandot känner till, liknande kill -l. fuser är ett kraftfullt verktyg när man till exempel felsöker ”resource busy” felmeddelanden – man kan snabbt hitta vilken process som blockerar en fil eller port och avsluta den för att komma vidare.
Kommandot skill – (föråldrat) skicka signaler baserat på användare/terminal
Kommandot skill har snarlikt namn som kill, men är ett separat verktyg som låter dig skicka signaler till processer baserat på kriterier som användarnamn, terminal eller kommandonamn. Det kan ses som en föregångare till moderna verktyg som pkill och killall. I dagens Linux-system betraktas skill som föråldrat (obsolete) och ostandardiserat – dokumentationen själv rekommenderar att man använder killall, pkill och pgrep istället[19]. Vi tar ändå upp det här för fullständighetens skull.
Syntax: skill [signal] [val för urval]
Till skillnad från killall/pkill som använder argument och flaggor för att matcha processer, så använder skill en mer fri form där man exempelvis kan ange en användare eller en terminal direkt. För att eliminera tvetydighet finns dock flaggor: – -u användare för att matcha alla processer körda av en given användare. – -t tty för att matcha en viss terminal (TTY/PTY) där processerna körs. – -p pid för att matcha ett specifikt process-ID. – -c namn för att matcha ett kommandonamn.
Standard-signalen för skill är SIGTERM (precis som kill)[20]. Du kan lista tillgängliga signalnamn med skill -l (eller -L för en tabell). Signal anges antingen med t.ex. -SIGKILL eller kortare -KILL eller med nummer -9.
Några exempel på vad man kan göra med skill:
# Döda (SIGKILL) alla processer som körs av användaren ”bob” sudo skill -KILL -u bob
Detta liknar att köra killall -u bob eller pkill -9 -u bob – alla Bobs processer avslutas[21]. Ett annat exempel:
# Stoppa (pausa med SIGSTOP) alla processer som körs på terminal /dev/pts/3 skill -STOP -t pts/3
Om en användare har en viss terminal öppen (t.ex. pts/3 över SSH) skulle ovan kommando frysa alla den användarens processer i just den terminalen. Man kan även ange flera kriterier:
# Exempel från man-sidan: stoppa alla processer för tre olika användare skill -STOP -u alice -u bob -u charlie
Och på motsvarande sätt kan man döda alla processer på alla pseudoterminaler (PTY):
# Exempel: logga ut alla användare på pts-terminaler med tvång sudo skill -KILL -v /dev/pts/*
Här används -v för verbose så att varje träff rapporteras. Detta kommando skulle skicka SIGKILL till samtliga processer som är kopplade till någon pts-terminal (praktiskt taget logga ut alla interaktiva sessions) – använd med extrem försiktighet!
Sammanfattningsvis är skill kraftfull men inte så vanligt förekommande längre. Samma sak kan oftast göras med pkill/killall som är mer portabla mellan system. Om du stöter på skill i dokumentation eller scripts vet du nu att det är ett verktyg för att signalera processer med liknande funktion som killall/pkill, men i moderna Linux-distributioner kan du själv välja att använda de senare för klarhetens skull[19].
ps visar en ögonblicksbild av aktiva processer. Det används för att hitta PID:er och förstå vad som körs.
Exempel: ps – Terminalens egna processer ps aux – Alla processer i BSD-format ps -ef – Alla processer i System V-format ps -eo pid,ppid,user,%cpu,%mem,stat,etime,cmd | head ps -C sshd -o pid,ppid,cmd ps -ef –forest | less
Några viktiga kolumner:
PID – process-ID
PPID – föräldraprocessens ID
STAT – status (R=running, S=sleeping, T=stopped, Z=zombie)
Interaktiva verktyg för att se processer i realtid.
Exempel: top htop
Tips i top:
M → sortera på minne
P → sortera på CPU
k → döda en process (ange PID och signal)
Avslutande tips
Att hantera processer i Linux-terminalen innebär i stort sett att man skickar rätt signal till rätt process(er). Börja alltid ”snällt” med SIGTERM eller SIGHUP om syftet är att låta processen städa upp och avsluta sig självmant. Om inte det hjälper, eskalera till SIGKILL för att tvinga fram en avslutning. Lär dig känna igen de vanligaste signalnamnen och deras nummer. Använd verktyg som pgrep för att dubbelkolla vilka processer som kommer att påverkas innan du använder pkill eller killall. Och slutligen – var försiktig med kommandon som mass-terminerar processer (killall, fuser -k, eller skill -KILL) särskilt som administratör, så att du inte råkar stänga ner mer än avsett.
Med dessa verktyg och koncept i bagaget har du en god grund för att felsöka och kontrollera processer i Linux via terminalen. Lycka till med din processhantering!
Exempel
Här är 10 praktiska exempel på hur du kan använda ps, pidof, pstree, lsof, top/htop, samt de tidigare genomgångna verktygen (kill, killall, pkill, pgrep, fuser, skill) på olika sätt:
Hitta en process som drar mest CPU
ps -eo pid,%cpu,%mem,cmd --sort=-%cpu | head
Visar de mest CPU-intensiva processerna.
Avsluta ett specifikt program via PID
kill -9 4321
Tvingar bort processen med PID 4321 (t.ex. en låst applikation).
Hitta och avsluta alla Firefox-processer
killall firefox
Avslutar alla processer som heter ”firefox”.
Avsluta processer baserat på mönster i kommandoraden
pkill -f "python myscript.py"
Stänger processen som kör ett Python-skript med namnet myscript.py.
Lista alla PIDs för processer som heter ssh
pgrep -l ssh
Visar både PID och namn på alla ssh-relaterade processer.
Hitta vilken process som lyssnar på port 8080
sudo lsof -i :8080
Visar vilket program som kör på port 8080 (ofta webbserver eller testserver).
Avsluta processen som håller port 8080
sudo fuser -k 8080/tcp
Dödar processen som blockerar porten.
Visa processhierarkin som träd
pstree -p
Visar processer och deras PID i ett trädformat – bra för att förstå föräldra-/barnrelationer.
Se vad som händer i realtid
top
Startar realtidsövervakning av processer. Du kan trycka k för att döda en process direkt från top.
När vi startar datorn och skriver ls för att lista filer, eller cp för att kopiera något, tänker de flesta inte på det. Men bakom dessa små kommandon ligger en mjukvaruskatt med rötter tillbaka till 1970-talets Unix. Den heter GNU coreutils, och nu har den fått en ny stor uppdatering – version 9.8.
En osynlig ryggrad i datorvärlden
Coreutils är ett paket med de mest grundläggande verktygen i Linux och andra Unixliknande system. Det är program som hjälper oss att läsa textfiler, räkna ord, jämföra innehåll, sortera, hålla reda på datum eller visa hur många processorer datorn har. I princip varje gång du öppnar terminalen är det coreutils som gör jobbet i bakgrunden.
Och nu – över 40 år efter att de första varianterna såg dagens ljus – fortsätter utvecklingen.
Nya språk för säkerhet och enkelhet
I den nya versionen är det särskilt två förbättringar som sticker ut. För det första kan verktyget cksum nu använda den moderna SHA3-algoritmen för att skapa säkra kontrollsummor. Kontrollsummor används för att försäkra sig om att en fil är intakt och inte manipulerad, och SHA3 är det senaste inom kryptografisk standardisering.
För det andra får kodningsverktyget basenc stöd för Base58 – en metod att representera data utan de tecken som ofta misstas för varandra, som nollan och bokstaven O. Perfekt i en tid då vi allt oftare scannar QR-koder och hanterar kryptovalutaadresser.
Smartare hantering av dagens datorer
Dagens datorer ser annorlunda ut än på 80-talet, och coreutils hänger med. Kommandot nproc, som visar hur många processorer som finns att tillgå, tar nu hänsyn till cgroup v2 – en teknik som används i moderna Linuxsystem för att begränsa resurser i containrar. Det betyder att program i en container får en mer realistisk bild av vad de faktiskt får använda.
Även stty, som styr inställningar för terminalen, kan nu sätta godtyckliga överföringshastigheter på vissa system. Och textverktyget fold har blivit medvetet om att världen består av fler tecken än bara ASCII – till exempel emojis och asiatiska tecken – och radbryter dem på rätt sätt.
Fixar under huven
Det kanske inte märks direkt för vanliga användare, men version 9.8 rättar också till en lång rad buggar. Till exempel fungerar nu cp --sparse=always bättre när det gäller att spara diskutrymme, tail riskerar inte längre att skriva ut extra rader i vissa situationer, och od (ett program för att visa filer i olika nummerformat) har blivit stabilare.
För den som arbetar med stora tal har verktyget factor fått en rejäl hastighetsökning, och seq, som används för att generera talföljder, hanterar nu mycket stora startvärden med högre precision.
Ett internationellt samarbete
Bakom kulisserna är coreutils ett samarbete mellan utvecklare världen över. Den senaste versionen bygger på 348 kodändringar från åtta olika personer, varav veteranerna Paul Eggert och Padraig Brady står för merparten. Det visar att även de mest grundläggande programmen i datorvärlden behöver ständig omvårdnad – och att arbetet ofta sker i det tysta.
Fortsatt relevant
Att ett verktygspaket som skapades i Unix miljö på 1970-talet fortfarande utvecklas aktivt år 2025 är i sig en historia. Det påminner oss om att digital infrastruktur inte alltid handlar om de mest uppmärksammade apparna eller sociala nätverken. Ofta är det små, diskreta verktyg – kommandon på några få bokstäver – som får hela det moderna IT-samhället att fungera.
Google Chrome är världens mest använda webbläsare – snabb, kraftfull och med ett stort ekosystem av tillägg. För Debian 13-användare kan installationen verka lite krånglig vid första anblick, men lugn – det är enklare än du tror.
Google Chrome är i dag världens mest använda webbläsare. Trots att Linuxvärlden är full av alternativ som Firefox, Vivaldi och Brave, väljer många användare att hålla fast vid Chrome – av vana, kompatibilitet eller helt enkelt för att det är bekvämt.
För dig som kör Debian 13 “Trixie” finns det två enkla vägar till en fungerande Chrome-installation. Antingen laddar du ner paketet direkt från Google, eller så kopplar du in Googles eget programförråd och låter systemet sköta uppdateringarna automatiskt.
Metod 1: Den snabba vägen med DEB-filen
Det här är den klassiska ”ladda ner och klicka-installera”-lösningen som passar bra för nya Linuxanvändare.
Nu finns Chrome i programmenyn. Du kan även starta det direkt från terminalen:
google-chrome
Metod 2: Den långsiktiga lösningen med Googles förråd
För den som vill ha det lite mer robust – och slippa tänka på manuella uppdateringar – är Googles officiella förråd rätt väg att gå. När det väl är på plats får Chrome nya versioner tillsammans med systemets vanliga säkerhetsuppdateringar.
Updo är ett lättviktigt kommandoradsverktyg som övervakar upptid och prestanda på dina webbplatser i realtid – utan dyra abonnemang eller tunga dashboards. Installera på några minuter, mät svarstider och SSL, testa från flera regioner och få larm direkt i Slack eller via webhooks. Perfekt för allt från personliga bloggar till produktions-API:er.
Att hålla koll på om ens sajter är uppe är lite som att spana efter ubåtar – plötsligt kan ryssen dyka upp på överraskningsbesök, antingen som U137 eller som ett intrång på din hemsida.
Håll koll på upptid och prestanda utan krångel
En webbplats som är långsam eller otillgänglig kan snabbt leda till tappat förtroende, färre besökare och till och med förlorade intäkter. Därför är det viktigt att hålla ett öga på både upptid och prestanda.
Updo är ett öppen källkod-verktyg som låter dig övervaka upptid och prestanda direkt från kommandoraden. Det är enkelt, snabbt och helt gratis. Till skillnad från många andra lösningar behöver du inte betala för ett konto eller logga in i krångliga dashboards – allt sköts lokalt på din dator.
Vad är Updo?
Updo är ett lättviktigt CLI-verktyg som ger dig en tydlig bild av hur din webbplats mår. Med det kan du:
Mäta upptid och svarstider
Se eventuella felkoder
Få varning innan SSL-certifikat löper ut
Testa prestanda från olika platser i världen
Få notifieringar via Slack, Discord eller egna webhooks
För mer avancerad analys kan Updo dessutom integreras med Prometheus och Grafana, så att du kan följa trender och sätta upp snygga dashboards.
Updo är byggt i Go och fungerar på Linux, macOS och Windows.
Varför använda Updo?
Det finns gott om verktyg och tjänster för upptidsövervakning, men många är antingen dyra, krångliga eller beroende av tredjepartsservrar. Updo är annorlunda:
Gratis och öppen källkod – inga abonnemang eller låsningar
Körs lokalt – full kontroll utan beroenden
Utvecklarvänligt – byggt för att fungera i skript, CI/CD-pipelines eller automatiska övervakningssystem
Kort sagt: det är ett flexibelt alternativ för dig som vill ha enkel övervakning utan onödigt krångel.
Viktiga funktioner
Realtid: Du ser direkt om sidan går ner, blir långsam eller har problem med SSL-certifikatet.
Flera mål: Övervaka många webbplatser samtidigt, med stöd för konfigurationsfiler.
Global täckning: Testa prestanda från 13 olika AWS-regioner.
Aviseringar: Få notiser via Slack, Discord, egna system eller direkt på skrivbordet.
Flexibla inställningar: Hantera headers, POST/PUT-förfrågningar, SSL och redirects utan problem.
Updo kan enkelt kopplas till Slack, Discord eller egna webhooks för att ge aviseringar i realtid. Notiserna innehåller detaljer om felet, svarstiden och vilken webbplats det gäller.
För långsiktig övervakning går det att exportera data till Prometheus och Grafana. Då kan du följa upptid över månader, jämföra globala svarstider och sätta upp egna larm.
En färdig Docker-exempelmiljö finns på projektets GitHub.
Slutsats
Updo är ett snabbt, smidigt och kraftfullt verktyg för dig som vill ha koll på dina webbplatser – utan dyra abonnemang eller komplexa plattformar.
Enkelt att installera
Lätt att använda
Tillräckligt flexibelt för avancerade behov
Vill du ha kontroll, transparens och trygghet – direkt i terminalen – är Updo ett verktyg som definitivt är värt att testa.
Den populära systemadministratörsdistributionen Grml är nu ute i en ny version, 2025.08, och släpps lagom till att Debian fyller 32 år.
Bygger på Debian 13 och Linux 6.12 LTS Den nya versionen bygger på Debian 13 ”Trixie” och körs med den långtidssupportade Linux 6.12 LTS-kärnan, vilket innebär både modernare hårdvarustöd och nyare programvara än tidigare. Dessutom har man rättat till flera kända buggar från föregående utgåvor.
Förbättrad språkhantering och enklare utveckling Bland nyheterna märks en ny signeringsnyckel för Grml:s egna programförråd, förbättrad språkhantering både vid uppstart och i verktyget grml-lang, samt att flera tidigare fristående paket nu slagits ihop för att förenkla utvecklingen.
Nytt i byggsystemet grml-live Även grml-live, systemet som används för att bygga Grml-avbilder, har fått en rejäl uppdatering. Det stöder nu bland annat byggande av testversioner baserade på ”Debian Forky”, tangentbordsstöd för fler språk, nya funktioner för att hoppa över paket, samt stöd för så kallade reproducerbara ISO-filer – något som ökar transparensen och säkerheten.
Tux och en svensk tiger raderar hårddiskar, så att inte lede fi kan se innehållet.
Tidigare denna månad presenterade vi ett inlägg om hur man återbrukar en uttjänt dator och förvandlar den till en dedikerad diskförstörare med webbgränssnitt. Artikeln beskrev en lösning där en gammal maskin utrustas med ett skriptbaserat webbgränssnitt för att hantera radering av hårddiskar lokalt och fjärrstyrt. För mer information om hur systemet byggs upp – se den ursprungliga artikeln.
Bakgrund och syfte
Under många år har jag samlat på mig ett stort antal hårddiskar, främst mekaniska (HDD), både egna och från andra. Av integritetsskäl har jag aldrig vågat lämna dem till återvinning utan att först säkerställa att datainnehållet är oåterkalleligt raderat. Många av diskarna innehåller potentiellt känslig information, och eftersom jag åtagit mig ansvaret att hantera även andras lagringsmedia professionellt, är datadestruktion med hög säkerhet ett absolut krav.
Erfarenheter från drift
Under de senaste veckorna har jag använt det webbaserade diskförstörare-systemet i praktiken. Det har fungerat stabilt och är användarvänligt, med tydlig återkoppling via gränssnittet. En stor fördel är att raderingsförloppet kan övervakas i realtid via webbläsaren, vilket gör det enklare att logga förlopp, bekräfta färdigställd radering och felsöka vid behov.
Identifierade begränsningar
Den nuvarande implementationen i webbappen har dock en begränsning: den hanterar endast en hårddisk åt gången. I situationer där man vill sanera flera diskar parallellt – t.ex. i en batchprocess – är detta en flaskhals. Om man istället kör raderingen via terminal (SSH) och använder shred direkt mot flera enheter i bakgrunden (t.ex. via screen eller tmux), kan man utnyttja maskinens resurser bättre och köra flera shred-processer samtidigt.
Här raderas tre diskar parallellt med 3 överskrivningar och nollfyllning på slutet.
Slutsats och nästa steg
Trots begränsningen med sekventiell radering fungerar webbappen som ett robust och lättanvänt gränssnitt för manuell diskhantering. I nästa iteration planeras stöd för köhantering av flera diskar och eventuell integration med udev-regler för automatisk identifiering av nya enheter. Även loggning och export av raderingsrapporter i text- eller JSON-format övervägs.
MX Linux är en lättviktig och användarvänlig Linux-distribution baserad på Debian. Den har snabbt blivit populär på grund av sin stabilitet, enkelhet och kraftfulla funktioner. Distributionen riktar sig både till nybörjare och erfarna användare som söker en pålitlig plattform för dagligt bruk. Med en välbalanserad blandning av moderna funktioner och stabila programvarupaket är MX Linux ett av de mest omtyckta Linux-alternativen.
Ny version av MX Linux – 23.4 ”Libretto”
Den fjärde uppdateringen av MX Linux 23 ”Libretto” har nu släppts, och denna version är baserad på Debian GNU/Linux 12.7 ”Bookworm”. MX Linux 23.4 fortsätter att bygga vidare på sin stabila grund och introducerar ett antal viktiga förbättringar, både under huven och i användarupplevelsen. För användare som redan har MX Linux installerat, erbjuder den nya versionen ett enklare sätt att uppdatera systemet utan att behöva ladda ner hela ISO-filen.
Baserad på Debian 12.7 och Linux-kärna 6.10
Den nya MX Linux-versionen använder nu Debian GNU/Linux 12.7 som bas, vilket innebär att de flesta programvarupaket har uppdaterats till nyare versioner. Den långsiktiga stödkärnan (LTS) Linux 6.1 finns fortfarande kvar för de flesta användare, men för dem som har moderna eller problematiska hårdvarukonfigurationer erbjuder MX Linux 23.4 en Advanced Hardware Support (AHS)-version med den nyare Linux 6.10.10-kärnan. Denna kärna, tillgänglig i Liquorix-variant, är designad för att förbättra systemets responsivitet och ge bättre prestanda.
Viktiga uppdateringar och förbättringar
Förutom den nya kärnan, introducerar MX Linux 23.4 ett antal förbättringar. Xfce 4.18-paketen har uppdaterats för en bättre skrivbordsmiljö, och Fluxbox-utgåvan inkluderar nu ett schemaläggningsverktyg för cron installerat som standard. En ny funktion för att visa en ikon i systemfältet när en USB-enhet sätts i har också lagts till i verktyget MX-USB-Unmounter. Dessutom har LUKS2-kryptering blivit standard för MX-Live-USB-Maker, vilket ger ett säkrare sätt att skapa live USB-enheter.
Förbättrat paketverktyg och KDE-stöd
MX Packageinstaller har uppdaterats för att ge användarna en bättre översikt över installerade paket, och nu finns stöd för att visa program i flikarna Aktiverade, Test och Backports. En användbar funktion har lagts till för att filtrera Flatpak-appar från Flathub, vilket gör det lättare att hitta verifierade applikationer.
För användare av KDE-utgåvan introduceras ett uppdaterat pipewire-setup-mx-verktyg, som gör PipeWire och WirePlumber-start mer tillförlitlig. Dessutom har MX Tweak-verktyget en ny funktion för att aktivera eller inaktivera Plasma Discover’s autostart av systemfältets uppdateringsnotifierare, vilket ger användarna mer kontroll över systemets beteende.
Raspberry Pi-stöd
För dem som använder MX Linux på Raspberry Pi har även denna utgåva fått förbättringar. De senaste paketen från både MX Linux och Raspberry Pi OS-förråden har inkluderats, vilket gör Raspberry Pi-versionen ännu mer robust och funktionell.
Uppgradering för befintliga användare
Användare som redan kör MX Linux 23 ”Libretto” behöver inte ladda ner hela den nya ISO-versionen. Istället kan de enkelt uppdatera sina system genom att köra kommandot sudo apt update && sudo apt full-upgrade i terminalen, eller genom att använda ett grafiskt verktyg som Synaptic Package Manager.
Med dessa nya förbättringar fortsätter MX Linux att vara en stabil och kraftfull Linux-distribution för både nybörjare och avancerade användare.
Amiga 600 lanserades våren 1992 som Commodores försök att ge Amiga-serien nytt liv – i ett mindre, modernare och mer “1990-talsanpassat” format. Med PCMCIA-plats och möjlighet till intern hårddisk […]
I början av 1990-talet kämpade den brittiska datortillverkaren Amstrad för sin överlevnad. PC-marknaden hade blivit brutal, marginalerna krympte och teknikutvecklingen gick snabbare än företaget mäktade med. Svaret blev en […]
HP 9000 var under flera decennier en självklar arbetskamrat i datarum, laboratorier och teknikföretag världen över. När persondatorer fortfarande kämpade med begränsat minne och instabil programvara levererade Hewlett-Packard kraftfulla […]
Grundy NewBrain var en brittisk mikrodator som lanserades 1982 och som på flera sätt låg före sin tid. Med avancerad grafik, ovanligt kraftfulla beräkningar och ett portabelt arbetssätt var […]
Sharp Font Writer FW-560 är ett exempel på en tid då ordbehandling var en egen teknikgren, skild från den allmänna persondatorn. Med avancerad typografi, inbyggd skrivare och stöd för […]
I mitten av 1990-talet stod den mobila datorvärlden på tröskeln till något nytt. Mobiltelefoner blev allt vanligare, bärbara datorer krympte i storlek och idén om att kunna arbeta digitalt […]
I början av 1980-talet, när datorer fortfarande var stationära och strömkrävande, lanserade Sharp en maskin som utmanade hela bilden av vad en dator kunde vara. Sharp PC-1500 var en […]
I en tid då datorer fyllde skrivbord och vägde flera kilo lyckades Sharp stoppa en fullt programmerbar dator i fickformat. Sharp Pocket Computer PC-1246, lanserad 1984, är ett fascinerande […]
I början av 1980-talet, när hemdatorer började flytta in i vardagsrummen, lanserade japanska Sord en liten men ambitiös dator som ville förena spel och programmering. Sord M5 var tekniskt […]
I mitten av 1980-talet bestämde sig Sverige för att bygga sin egen framtid i kisel. Resultatet blev Compis – en statligt framtagen skoldator som på pappret var avancerad, men […]
Vi kommer hem till dig i Stockholm området och hjälper dig med dator, skrivare, kablar, TV, nätverk och annat tekniskt.
Vi arbetar med Linux, Windows och Mac.
Discover the enhanced Raspberry Pi Imager 2.0.2, featuring improved write speeds and UI stability for a seamless imaging experience. Upgrade your projects today! The post Raspberry Pi Imager 2.0.2 Improves Write Speeds And UI Stability appeared first on Linux Today.
Discover the latest Cinnamon 6.6 Desktop Environment, featuring a redesigned application menu for enhanced usability and a modern user experience. The post Cinnamon 6.6 Desktop Environment Released with Redesigned Application Menu appeared first on Linux Today.
Discover Monado 25.1.0, the latest in OpenXR technology, empowering developers to create immersive experiences for tomorrow's virtual reality landscape. The post Monado 25.1.0: Enabling Tomorrow’s OpenXR Experiences appeared first on Linux Today.
Discover OpenTofu 1.11's new ephemerality feature, enhancing security with safer temporary credentials for your applications. Explore the update now! The post OpenTofu 1.11 Introduces Ephemerality for Safer Temporary Credentials appeared first on Linux Today.
Discover VLC 3.0.22 with its sleek Dark Mode, enhanced game music features, and smoother playback for an unparalleled media experience. The post VLC 3.0.22: Dark Mode, Game Music, and Smoother Playback appeared first on Linux Today.
Discover the latest updates in RPM 6.0.1, which addresses key regressions and enhances signature handling for improved performance and reliability. The post RPM 6.0.1 Fixes Key Regressions And Improves Signature Handling appeared first on Linux Today.
Discover the best Ubuntu Touch apps with Sturm Reader. Enhance your device's functionality and enjoy a seamless user experience with our curated list. The post Useful Ubuntu Touch Apps – Sturm Reader appeared first on Linux Today.
Discover the step-by-step guide to install Odoo 19 on Ubuntu 24.04 effortlessly. Enhance your business management with this powerful software today! The post How to Install Odoo 19 on Ubuntu 24.04 appeared first on Linux Today.
Discover the 2024 Free Software Award winners announced by FSF, celebrating outstanding contributions to the free software community. The post FSF Announces 2024 Free Software Award Winners appeared first on Linux Today.
Discover how the Model Context Protocol (MCP) is transforming AI by joining the Linux Foundation. Explore the implications for innovation and collaboration. The post Model Context Protocol (MCP) Joins Linux Foundation in Major AI Shift appeared first on Linux Today.
9to5Linux Weekly Roundup for December 28th, 2025, brings news about elementary OS 8.1, Parrot 7.0, PorteuX 2.5, postmarketOS 25.12, Inkscape 1.4.3, QEMU 10.2, Pinta 3.1, GStreamer 1.26.10, and Raspberry Pi Imager 2.0.3, and more. The post 9to5Linux Weekly Roundup: December 28th, 2025 appeared first on 9to5Linux – do not reproduce this article without permission. This […]
PorteuX 2.5 Linux distribution is now available for download with Linux kernel 6.17, GNOME 49.1, KDE Plasma 6.5.2, LXQt 2.3, and more. Here’s what else is new! The post PorteuX 2.5 Is Out with Flatpak Support, Cinnamon 6.6, COSMIC 1.0, and Linux 6.18 appeared first on 9to5Linux – do not reproduce this article without permission. […]
Inkscape 1.4.3 open-source SVG (Scalable Vector Graphics) editor is now available for download with new features and enhancements. Here’s what’s new! The post Inkscape 1.4.3 Open-Source SVG Editor Improves PDF Import and Text on Path appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not […]
GStreamer 1.26.10 open-source multimedia framework is now available for download with various improvements and bug fixes. Here’s what’s new! The post GStreamer 1.26.10 Released with Support for FLAC Audio in DASH Manifests appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
QEMU 10.2 open-source virtualization software is now available for download with new features and improvements for supported architectures. Here’s what’s new! The post QEMU 10.2 Officially Released with Live Update Support and Improvements appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
Parrot 7.0 ethical hacking and penetration testing distribution is now available for download with KDE Plasma desktop and Debian 13 base. Here’s what's new! The post Parrot 7.0 Ethical Hacking Distro Released with KDE Plasma, RISC-V Support appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for […]
Pinta 3.1 open-source paint and drawing software is now available for download with GTK4 port, new effects, and many other changes. Here’s what’s new! The post Pinta 3.1 Open-Source Paint App Released with New Cells Effect, Axonometric Grid appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended […]
postmarketOS 25.12 distribution based on Alpine Linux is now available for download with support for new devices and new features. Here's what's new! The post postmarketOS 25.12 Linux Mobile OS Rolls Out Based on Alpine Linux 3.23 appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for […]
Raspberry Pi Imager 2.0.3 microSD card flashing utility is now available for download with performance improvements and bug fixes. Here’s what’s new! The post Raspberry Pi Imager 2.0.3 Improves Drive Filtering and AppImage Bundle on Linux appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, […]
elementary OS 8.1 distribution is now available for download based on Ubuntu 24.04.1 LTS and powered by Linux kernel 6.8. Here’s what’s new! The post elementary OS 8.1 Released with Wayland Session by Default, ARM64 Support appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, […]
Here’s a quick rundown of the 10 quick tips after you finish installing a brand new Fedora 43 workstation edition. In this article, we will talk about a few post-install tips for Fedora 43 workstation edition. These are a good starting point if you are installing a fresh Fedora 43 workstation edition for all user… […]
Here’s are the quick steps on how you can upgrade to the Fedora 43 version. Fedora 43 is officially available for download and the upgrade channels are now available. This release brings the latest and greatest GNOME 49 desktop for workstation editions, refinements to KDE Plasma desktop and more updates. You can read our full… […]
We outline the list of new features of Xubuntu 25.10 release and additional updates for this version. Xubuntu 25.10: Core New Features Kernel and core updates Xubutnu 25.10 is based on the Ubuntu 25.10 Questing Quokka release. It is powered by Linux Kernel 6.17. This Kernel offers latest hardware and software updates. Linux kernel 6.17… […]
We round up the best new features of the Ubuntu 25.10 (“Questing Quokka”) release. Ubuntu 25.10, released on October 9, 2025 (supported until July 2026 for 9 months), is the final interim release before the next long term version of Ubuntu 26.04 LTS. This release prioritizes modernization through Rust-based components for improved security and new… […]
We round up the best new feature set of Fedora 43 workstation release (upcoming). Fedora 43 release is packed with enhancements and core updates. The release is currently going thru beta phase and the release is expected within few days. This page highlights key system-wide and self-contained changes that make Fedora 43 a release to… […]
Here’s a quick rundown of the best new features of the latest GNOME 49 desktop environment. GNOME 49, code named “Brescia” is released a while back on September 19, 2025. This release mostly focusses on the software stack updates, concentrated on the native applications and core updates. While it is not that of a fancy… […]
Here are the steps you need to upgrade your Fedora 41 workstation edition to Fedora 42. Fedora 42 is officially available for download and the upgrade channels are now available. This release brings the latest and greatest GNOME 48 desktop for workstation editions, refinements to KDE Plasma desktop, new Cosmic Spin and more. You may… […]
Here’s how you can upgrade to Debian 13 “Trixie” from Debian 12 “Bookworm”. Debian 13 “Trixie” is released on August 9, 2025 with many new features and updates. If you are running Debian 12 “bookworm”, you can plan to upgrade your desktop or server now. However, it is recommended that you wait until the first… […]
Here’s a quick tutorial on how you can connect your Ubuntu or Fedora Linux from macOS. Accessing your Linux machine (like Ubuntu or Fedora) from a Mac can be incredibly useful for development, server management, or just seamless productivity. While tools like SSH or VNC exist, using Remote Desktop Protocol (RDP) provides a full graphical… […]
A roundup of the key features of the latest Debian 13 release. After almost two years of development, Debian 13 “Trixie” is now available to download and upgrade from Debian 12. This critical release brings few major updates including latest packages across modules, Linux Kernel 6.12 LTS, modern desktop environments and more. Trixie will be… […]
SuperTux returns with version 0.7 Beta 1, its first major update in four years, bringing fully rebuilt worlds, new assets, music, and gameplay changes.
Catch up on the latest Linux news: Parrot 7.0, elementary OS 8.1, Fish Shell 4.3, OpenMediaVault 8, Inkscape 1.4.3, QEMU 10.2, Kitty Terminal 0.45, Winux tries to mimic Windows, CachyOS plans new server edition, and more.
Fish Shell 4.3 introduces smarter theming, improved completions, better terminal integration, and many changes across scripting and interactive features.
När tekniken krånglar mitt i vardagen kan frustrationen snabbt ta över. För boende i Telefonplan finns nu smidig hjälp nära till hands. Datorhjälp i Stockholm AB erbjuder hembesök av erfarna tekniker som löser problemen på plats – tryggt, personligt och till halva priset med RUT-avdrag. Datorstrul är ett återkommande bekymmer i många hushåll, oavsett om […]
När tekniken krånglar hemma kan det snabbt bli både tidskrävande och frustrerande. För boende i Hagsätra finns nu möjlighet att få snabb och personlig datorhjälp direkt i bostaden – till ett reducerat pris tack vare RUT-avdraget. När datorn går långsamt, Wi-Fi-uppkopplingen tappar kontakten eller skrivaren inte vill samarbeta är det många som helst vill ha […]
När tekniken krånglar hemma kan små problem snabbt bli stora irritationsmoment. För boende i Stureby finns nu smidig hjälp att få direkt i hemmet. Datorhjälp i Stockholm AB erbjuder hembesök av erfarna tekniker – tryggt, personligt och till halva priset tack vare RUT-avdraget. När datorn går långsamt, Wi-Fi:t tappar kontakten eller skrivaren vägrar samarbeta är […]
När datorn krånglar, internet ligger nere eller skrivaren vägrar fungera kan vardagen snabbt bli onödigt besvärlig. För boende i Skärholmen finns nu hjälp att få direkt i hemmet – när Datorhjälp i Stockholm AB erbjuder personlig teknisk support med RUT-avdrag. Under de senaste åren har efterfrågan på lokal datorhjälp ökat i Skärholmen. Allt fler väljer […]
När datorn krånglar, internet segar eller skrivaren vägrar fungera kan vardagen snabbt bli onödigt krånglig. För boende i Kristineberg finns nu tillgång till snabb och personlig datorhjälp direkt i hemmet – till halva priset med RUT-avdrag. Datorhjälp i Stockholm AB erbjuder hembesök av erfarna tekniker som hjälper privatpersoner i Kristineberg med allt från Wi-Fi-problem till […]
När tekniken strular kan vardagen snabbt bli krånglig. För boende i området kring Skogskyrkogården finns nu smidig hjälp nära till hands. Datorhjälp i Stockholm AB erbjuder hembesök av erfarna tekniker som löser IT-problem på plats – tryggt, personligt och till halva priset med RUT-avdrag. När datorn blir långsam, Wi-Fi:t tappar kontakten eller skrivaren vägrar fungera […]
När datorn krånglar, Wi-Fi:t tappar kontakten eller skrivaren vägrar fungera kan vardagen snabbt bli onödigt krånglig. För boende i Märsta finns nu möjlighet att få professionell datorhjälp direkt i hemmet – tryggt, smidigt och med RUT-avdrag. Datorhjälp i Stockholm AB erbjuder hembesök i Märsta för privatpersoner som vill ha tekniken att fungera utan stress. I […]
När tekniken strular hemma vill många ha snabb och pålitlig hjälp utan krångel. För boende kring Nockeby Torg erbjuder Datorhjälp i Stockholm AB hembesök av erfarna tekniker som löser allt från Wi-Fi-problem till datorstrul – tryggt, personligt och till halva priset med RUT-avdrag. När datorn krånglar, Wi-Fi:t tappar kontakten eller skrivaren vägrar fungera kan det […]
När datorn krånglar, Wi-Fi:t tappar kontakten eller skrivaren plötsligt slutar fungera kan vardagen snabbt bli onödigt krånglig. För boende i Råcksta finns nu tillgång till och personlig datorhjälp direkt i hemmet – till halva priset med RUT-avdrag. Datorhjälp i Stockholm AB har blivit ett uppskattat inslag för många hushåll i Råcksta som vill få tekniken […]
För boende i området finns nu möjlighet att få snabb och personlig datorhjälp direkt i hemmet. Datorhjälp i Stockholm AB erbjuder hembesök av erfarna tekniker som löser allt från Wi-Fi-problem till strulande datorer – smidigt, tryggt och till halva priset med RUT-avdrag. Datorhjälp på plats i Globen – teknisk hjälp direkt i hemmet När teknik […]
Fish Shell 4.3 är en uppdatering som vid första anblick kan verka försiktig, men som i praktiken förändrar hur skalet upplevs i det dagliga arbetet. Istället för stora, uppseendeväckande nyheter har utvecklarna fokuserat på att göra befintliga funktioner tydligare, smartare och mer konsekventa. Resultatet är ett kommandoskal som känns mer förutsägbart, lättare att konfigurera och…
WP-CLI gör det möjligt att administrera WordPress snabbt, effektivt och automatiserat direkt från kommandoraden. Med hjälp av detta verktyg kan du hantera allt från installation och uppdateringar till användare, databaser och felsökning – utan att logga in i webbgränssnittet. Den här lathunden ger en praktisk och tekniskt inriktad genomgång av de vanligaste WP-CLI-kommandona, med tydliga…
Terminaln har länge varit utvecklarens snabbaste verktyg – men också ett av de mest avskalade. Med Fresh utmanas den bilden. Den nya öppna textredigeraren kombinerar terminalns effektivitet med moderna funktioner som annars hör hemma i grafiska IDE:er. Resultatet är ett kraftfullt kodverktyg som körs helt i textläge, men ändå erbjuder en strukturerad, visuell och förvånansvärt…
Linux-kärnan har i årtionden prioriterat funktion före utseende, men med version 6.19 kommer en förändring som faktiskt syns. Ett nytt inbyggt konsoltypsnitt, Terminus 10×18, förbättrar läsbarheten i textläge och är anpassat för moderna laptopskärmar. Det är en liten justering med märkbar effekt – särskilt när textkonsolen verkligen behövs. Linux-kärnan 6.19 får nytt konsoltypsnitt – små…
Rspamd 3.14 markerar ett stort steg framåt för öppna spamfilter. Den nya versionen bjuder på mörkt läge i webbgränssnittet, snabbare fuzzy-hashning och en smartare Postfix-guide som förenklar e-postintegration. Under huven finns även ett nytt HTML-baserat analysverktyg som kan upptäcka strukturella likheter mellan skräppostmeddelanden – ett genombrott som gör det ännu svårare för spammare att smita…
Den populära GPU-accelererade terminalemulatorn Kitty har fått en ny version – 0.44 – som bjuder på både prestandaförbättringar och stöd för den senaste textstandarden Unicode 17. Uppdateringen fokuserar tydligt på stabilitet och användarupplevelse, särskilt för macOS- och Wayland-användare. Unicode 17 och bättre kontroll över miljövariabler Unicode 17-stödet innebär att Kitty nu kan visa de senaste…
Den som håller på med hemsidor, där är webappen wordpress den populäraste appen. Men även andra webappar som är skrivna i PHP kan behöva testas. Med egen testmiljö för LAMP kan man testa sina projekt. Har man till exempel en dator som inte klarar Windows 11, kan den bli en utmärkt NAS och testmiljö för…
Att förstå och hantera processer är en av de mest grundläggande färdigheterna i Linux. När du kör ett program – vare sig det är en webbläsare, ett terminalkommando eller en systemtjänst – skapas en process. Ibland behöver du som användare ta kontroll över dessa processer: kanske för att ett program har hängt sig, för att…
När vi startar datorn och skriver ls för att lista filer, eller cp för att kopiera något, tänker de flesta inte på det. Men bakom dessa små kommandon ligger en mjukvaruskatt med rötter tillbaka till 1970-talets Unix. Den heter GNU coreutils, och nu har den fått en ny stor uppdatering – version 9.8. En osynlig…
Google Chrome är världens mest använda webbläsare – snabb, kraftfull och med ett stort ekosystem av tillägg.För Debian 13-användare kan installationen verka lite krånglig vid första anblick, men lugn – det är enklare än du tror. Google Chrome är i dag världens mest använda webbläsare. Trots att Linuxvärlden är full av alternativ som Firefox, Vivaldi…
Updo är ett lättviktigt kommandoradsverktyg som övervakar upptid och prestanda på dina webbplatser i realtid – utan dyra abonnemang eller tunga dashboards. Installera på några minuter, mät svarstider och SSL, testa från flera regioner och få larm direkt i Slack eller via webhooks. Perfekt för allt från personliga bloggar till produktions-API:er. Håll koll på upptid…
Grml 2025.08 släppt – firar Debians 32-årsdag Den populära systemadministratörsdistributionen Grml är nu ute i en ny version, 2025.08, och släpps lagom till att Debian fyller 32 år. Bygger på Debian 13 och Linux 6.12 LTSDen nya versionen bygger på Debian 13 ”Trixie” och körs med den långtidssupportade Linux 6.12 LTS-kärnan, vilket innebär både modernare…
Tidigare denna månad presenterade vi ett inlägg om hur man återbrukar en uttjänt dator och förvandlar den till en dedikerad diskförstörare med webbgränssnitt. Artikeln beskrev en lösning där en gammal maskin utrustas med ett skriptbaserat webbgränssnitt för att hantera radering av hårddiskar lokalt och fjärrstyrt. För mer information om hur systemet byggs upp – se…
MX Linux är en lättviktig och användarvänlig Linux-distribution baserad på Debian. Den har snabbt blivit populär på grund av sin stabilitet, enkelhet och kraftfulla funktioner. Distributionen riktar sig både till nybörjare och erfarna användare som söker en pålitlig plattform för dagligt bruk. Med en välbalanserad blandning av moderna funktioner och stabila programvarupaket är MX Linux…