3 Linux-kommandon som du har förbises för länge (men kan memorera på sekunder)

3 Linux-kommandon som du har förbises för länge (men kan memorera på sekunder)
Index
  1. tac — Läs filer i omvänd riktning
    1. Vänd filer så de senaste raderna kommer först
  2. shuf — Randomisera dina ingångar
    1. Välj, blanda och sampla rader utan att skriva skript
  3. timeout — Ställ in en klocka på kommandon
    1. Stoppa okontrollerade kommandon innan de hänger sig
    2. Tre små kommandon som sparar tid varje dag

Upptäck tre kraftfulla Linux-kommandon: tac läser filer baklänges, shuf randomiserar rader och timeout sätter tidsgräns för kommandon. Perfekta verktyg för att effektivisera ditt arbete!

Linux har många verktyg, men många av oss fastnar vid några få. Trots att många kommandon är bortglömda, kan de vara både roliga och användbara. Tac, shuf och timeout löser vanliga problem på några sekunder och kan bli värdefulla tillägg i din verktygsarsenal.

tac — Läs filer i omvänd riktning

Vänd filer så de senaste raderna kommer först

Namnet tac avslöjar allt. Det skriver ut filens rader baklänges, med den sista raden först. Inbyggt i GNU coreutils, finns det i nästan alla moderna Linux-distributioner.

Varför använda det? Perfekt för loggar. Loggfiler lägger till poster längst ner, så den information du söker ligger ofta i slutet av filen. Med kommandot tac /var/log/syslog | less får du de senaste posterna först och kan börja läsa utan att bläddra.

Det fungerar bra med andra verktyg också. Pipe det med grep och flaggan -m, som i tac access.log | grep -m 5 "404", för att få de fem senaste matchningarna direkt. Eftersom tac läser från standardingången fungerar det i vilken pipeline som helst, till exempel seq 1 5 | tac.

Flaggan -s ändrar separeraren, vilket är användbart för data utan radbrytningar, medan -r behandlar separeraren som ett reguljärt uttryck, så du kan vända poster i enkel strukturerad text.

Begränsningar finns. tac vänder rader, inte tecken, så för det behöver du rev. Det väntar också på hela ingången innan det skriver ut något, vilket gör det olämpligt för oändliga strömmar. Om du bara behöver de senaste raderna, är tail snabbare. På macOS och BSD-system är tac ofta inte installerat, men tail -r ger liknande funktionalitet.

shuf — Randomisera dina ingångar

Välj, blanda och sampla rader utan att skriva skript

shuf skapar slumpmässiga permutationer - eller blandar rader. Ge det en fil och det skriver ut raderna i slumpmässig ordning, som med shuf names.txt. Det tillhör också GNU coreutils och fungerar i pipelines likaväl som på filer.

Sampling är där shuf verkligen glänser. Med flaggan -n kan du begränsa utdata, som i shuf -n 1 quotes.txt för ett slumpmässigt citat eller shuf -n 10 dataset.csv för ett tiolinjesprov. Perfekt för den som arbetar med data utan att behöva öppna en fil i ett kalkylprogram.

Flaggan -e tar kommandoradsargument som ingång, så du kan blanda ord direkt: shuf -e pizza sushi tacos -n 1 för att lösa middagsfrågan. Flaggan -i genererar ett intervall, så shuf -i 1-100 -n 5 drar fem unika nummer mellan 1 och 100. Med -r tillåts upprepningar, perfekt för tärningskastande.

Det har även praktiska skriptanvändningar. Ett shell-skript kan välja en slumpmässig bakgrundsbild från en mapp med ls pipat till shuf -n 1, spela låtar i slumpordning eller generera varierande testdata. Spara ändringar direkt i en fil med flaggan -o.

Till skillnad från en enkel omdirigering, hanterar denna metod fallet där ingång och utmatning är samma fil, utan risk.

Men det finns en hake. Shuf drar på systemets slumpmässiga källa som standard. Det fungerar för vardagliga uppgifter, men fungerar dåligt för kryptografi, som att generera lösenord. För pålitliga resultat, använd --random-source.

Ge en fil med byte för att återskapa samma blandning.

timeout — Ställ in en klocka på kommandon

Stoppa okontrollerade kommandon innan de hänger sig

timeout kör ett kommando och avslutar det om det överskrider en angiven tid. Syntaxen är enkel: först varaktigheten, sedan kommandot, exempelvis timeout 10 ping example.com. Du kan använda sekunder, med möjlighet till suffix: m för minuter, h för timmar, d för dagar.

Varför detta spelar roll? Vissa kommandon kan hänga sig. En nätverksfråga kan vänta på en svarslös server, ett skript kan fastna på en låst resurs eller en backup kan ta längre tid än väntat. I en interaktiv terminal kan du trycka Ctrl+C, men i cron-jobb eller automatiserade skript finns ingen att agera. En fast process kan blockera andra jobb. Att kapsla in kommandot med timeout håller skriptet igång.

Som standard skickar timeout TERM-signalen när tiden är ute, vilket ber om en vänlig nedstängning. Vissa program ignorerar det. Med -k kan du ange en andra tidsgräns där timeout skickar KILL. Till exempel, timeout -k 5 30 ./long-task.sh ger skriptet trettio sekunder, och fem extra för att avsluta rent innan tvingad avstängning. Använd -s för att välja en annan signal om du vill.

Utgångsstatus är också viktig. När ett kommando stoppar p.g.a. tidsgräns, ger timeout status 124. Skript kan kolla detta värde och särskilja en timeout från ett vanligt fel, vilket möjliggör omförsök, loggning eller vidare steg. Med --preserve-status får timeout kommandots egen utgångsstatus istället.

En detalj att ha i åtanke: timeout kör kommandot i en bakgrundsprocessgrupp, vilket kan påverka interaktiva program som kräver tangentbordsinmatning. Alternativet --foreground löser det, så testa alltid program som läser från terminalen innan du litar på det.

Tre små kommandon som sparar tid varje dag

Tac, shuf och timeout gör en specifik funktion bra. Att läsa loggar baklänges, plocka ut slumpmässiga rader och stoppa okontrollerade processer är vanliga uppgifter. Alla tre kommandon är installerade på de flesta Linux-system, så det är bara att använda dem direkt.

Nu när du har läst klart 3 Linux-kommandon som du har förbises för länge (men kan memorera på sekunder), inbjuder vi dig att utforska kategorin Linux ytterligare. Där hittar du fler intressanta artiklar som kommer att utöka dina kunskaper och hålla dig informerad. Sluta inte läsa och upptäcka mer!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Go up