
Hämta Ubuntu
Ubuntu är helt gratis
Ladda ner Ubuntu
MenyVilka är nya?
Användarinloggning |
Ta kommandot - rörmokeri (12)![]() Våra kommandon skriver saker på skärmen och många av dem läser med fördel saker från tangentbordet. Det verkar enkelt, men vänta bara till jag får förklara. Egentligen finns det tre dataströmmar, Standard In (stdin) motsvarar tangentbordet och strömmarna Standard Out (stdout) och Standard Error (stderr) motsvarar det som hamnar på skärmen. Så långt bara teori, men det är när vi kommer till undantagen från regeln det börjar bli spännande. Vi kan nämligen få ett program att hämta sitt indata från ett annat och likaså kan vi hämta data från en fil eller spara som en fil. Många av kommandona funkar som filter. Det blir lite som att vaska guld eller destillera fram ädla drycker. Man kan koppla ihop långa rörledningar med filter som fixar det ena efter det andra med dataströmmen. Vi har redan fuskat lite med det här, men utan att riktigt förklara urban@yoda:~$ ls /etc | less Ett rent ls på den mappen blir lite väl långt och en del av filnamnen försvinner "över kanten". Filtrerat genom less blir det lättare att läsa. Standard Out från ls skickas här inte direkt till skärmen utan blir Standard In för less. Kanske hittar du ändå inte vad du letar efter, men du har för dig att filen hette något med "con". Då kan du koppla in ett grep på rörledningen: urban@yoda:~$ ls /etc | grep con | less Tecknet | får du fram genom att trycka på [AltGr] och [<]. Jag brukar kalla det ett "pipe-tecken". Ofta vill man spara resultatet från något kommando i en fil och det är enkelt: urban@yoda:~$ date > labbmapp/loggfil Ovan sparar vi datum och klockslag (date) i en fil. Använder vi samma kommando igen, raderas den gamla filen. Ibland är det just vad du vill, men annars finns alternativet urban@yoda:~$ date > labbmapp/loggfil Med två >> läggs det nya resultatet till i slutet av filen. Kommandot cat används egentligen för att konkatenera (lägga ihop) filer, men kan också användas för att titta på dem och det gör vi här. Vi kan lägga ihop nästan allt vi gjort tidigare i den här lilla kursen på en enda kommandorad om vi vill: urban@yoda:~/labbmapp$ ls urban@yoda:~/labbmapp$ ls (...) Vi hoppar tillbaks till vår gamla labbmapp. Städar för tydlighetens skull bort allt som finns där. Kommandot rm * är just ett sådant där farligt kommando, som du ska se upp med. Det rensar rubbet! Du kollar att det verkligen är tomt. Kör det långa mastodontkommandot och beundrar resultatet. Vi hämtar alltså filen, gör om den till text, gör om den till rätt filformat, tar bort tomrader, fixar om språket och allt detta på en enda kommandorad. Givetvis går det också blixtrande snabbt eftersom datorn aldrig måste skriva något på den tusen gånger slöare hårddisken utan allt händer i minnet. Naturligtvis kan det aldrig finnas färdiga, så specialiserade kommandon i något operativsystem, men du kan bygga dem av de enkla beståndsdelar som finns. Det är som att bygga med LEGO. Har du tröttnat på det första kapitlet, kan du lägga till det andra... urban@yoda:~/labbmapp$ html2text http://runeberg.org/rodarum/02.html | iconv -f iso8859-1 -t utf-8 | sed /^$/d | sed s/voro/var/g >> bok Du behöver bara ändra till 02 i filnamnet och ändra omdirigeringen till >>. Hur du lägger till resten av boken kan du nog räkna ut själv?
Läs även andra bloggares åsikter om Linux, Unix, Ubuntu, terminalen, kommandon
Inskrivet av urban_anjar sön, 2008-08-10 20:44 urban_anjar blogg | logga in eller registrera dig för att kunna kommentera
![]() Du är en fruktansvärt duktig pedagog Urban. Allt blir så enkelt och förståenligt när det vaskas fram ur din min :) logga in eller registrera dig för att kunna kommentera
![]() *rodnar* Hrrm, tack, det värmde. Funderade just om den här serien hade alldeles försvunnit i det blå och tappat läsarna på vägen. Tydligen hänger i alla fall någon kvar. logga in eller registrera dig för att kunna kommentera
|
Senaste nyttPersonliga Bloggar
Senaste kommentarer
|
ls /etc | grep con | less kan förstås också lösas utan grep, med
ls /etc/*con* | less