Enradare

Enradare

Enradare i programmeringssammanhang är program som skrivs på en rad och avslutas med Enter

Enradarna är oftast kryptiska men inte avsiktligt tillkrånglade och utför (oftast) nyttiga saker. Denna blogg är ett hobbyprojekt, men bygger även på erfarenheter ur arbetslivet. Nya besökare, se första inlägget.

Starta terminalemulering mot en serieport

Bash, Kubuntu 8.04Skapad av M.O.B. 2013-02-24 20:02
sudo minicom -o -D /dev/ttyACM0

Startar minicom, ett terminalemuleringsprogram för serieportar. Detta fungerar t.ex. för DuinoMite-Mini via USB-porten. Kolla med dmesg vilken device som serieporten hamnar på.

  • Kommentarer(0)//enradare.orbin.se/#post43

Flasha en DuinoMite-Mini med ny firmware

Bash, Kubuntu 8.04Skapad av M.O.B. 2013-02-16 19:58
sudo mphidflash -v 15BA -p 0032 -r -n -w Olimex\ DuinoMite\ Mega\ MMBasic\ Project.hex

Detta flashar en DuinoMite-Mini med en ny version av DMBASIC eller MMBASIC. Innan detta måste man koppla in DuinoMite-Mini:n till Linux-datorn via USB och hålla ned användarknappen samtidigt som man trycker på resetknappen, d.v.s. User+Reset, där User fungerar som en skiftknapp. Då blinkar de gula och gröna lysdioderna omväxlande.

  • Kommentarer(0)//enradare.orbin.se/#post41

Hitta alla IP-nummer som hämtat fil & sortera efter åtkomstdatum

Bash, Kubuntu 8.04Skapad av M.O.B. 2013-01-09 23:33
zgrep 'special\.pdf' /var/log/apache2/access.log* | sed -r 's/.*:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*(\[.*\]).*/\2 \1/' | sort -k3n,3 -k2M,2 -t'/'

De IP-nummer som hämtat en viss fil på webbservern hittas. Loggfilen finns på olika ställen på olika servrar och äldre loggar brukar komprimeras och då behövs zgrep. Olika webbservrar ger olika loggfiler och därför måste enradaren anpassas.

  • Kommentarer(0)//enradare.orbin.se/#post40

Sök i alla zip-filer i en mapp efter ett filnamn

Bash, Kubuntu 8.04Skapad av M.O.B. 2013-01-05 02:53
ls *.zip | while read file; do unzip -l "$file" | grep 'zx81.*\.rom' && echo $file; done

I detta fall hittas filer med namn som börjar på 'zx81' och slutar på '.rom' i samtliga zip-filer i aktuell katalog och zip-filens namn skrivs ut efter de funna filerna inom respektive zip-fil.

  • Kommentarer(0)//enradare.orbin.se/#post39

Spegelvända bilder i en mapp

Bash, Kubuntu 8.04Skapad av M.O.B. 2012-07-26 04:16

ls -tr | while read file; do convert $file -flop $file; done

Bilderna spegelvänds i samma tidsordning som de modifierades senast.

  • Kommentarer(0)//enradare.orbin.se/#post38

Ladda upp en fil till en SSH-server och radera filen

Bash, Kubuntu 8.04Skapad av M.O.B. 2012-07-23 16:56

scp muzak.wav myusername@mywebsite.se:public_html/abc/80/

Denna rad laddar upp en fil till en SSH-server och med följande raderar man filen:

ssh myusername@mywebsite.se 'rm -f public_html/abc/80/muzak.wav'

Lösenordet får man skriva för hand, men man kan skicka flera filer samtidigt eller ett arkiv som man packar upp.

  • Kommentarer(0)//enradare.orbin.se/#post37

Ladda upp en fil till en FTP-server och radera filen

Bash, Kubuntu 8.04Skapad av M.O.B. 2012-07-23 15:58

curl -T muzak.wav ftp://ftp.mywebsite.se/dl/ --user myusername:mypassword

Denna rad laddar upp en fil till en FTP-server. För att radera filen kan man använda:

curl ftp://ftp.mywebsite.se/dl/ -X 'DELE muzak.wav' --user myusername:mypassword

  • Kommentarer(0)//enradare.orbin.se/#post36

Ladda ner alla mp3-filerna till böckerna Fysik Lpo & Kemi Lpo

Bash, Kubuntu 8.04Skapad av M.O.B. 2012-05-01 22:54
sed '/\.mp3/!d;s|.*href=\"\(\./mp3/.*\.mp3\)\".*|curl -O \"http://www.tefy.se/\1\"|' ../mp3_fysik_lpo1.htm > curl.sh; . curl.sh

sed '/\.mp3/!d;s|.*href=\"\(\./mp3/.*\.mp3\)\".*|curl -O \"http://www.tefy.se/\1\"|' ../mp3_fysik_lpo2.htm > curl.sh; . curl.sh

sed '/\.mp3/!d;s|.*href=\"\(\./mp3/.*\.mp3\)\".*|curl -O \"http://www.tefy.se/\1\"|' ../mp3_fysik_lpo3.htm > curl.sh; . curl.sh

sed '/\.mp3/!d;s|.*href=\"\(\./mp3/.*\.mp3\)\".*|curl -O \"http://www.tefy.se/\1\"|' ../mp3_kemi_lpo1.htm > curl.sh; . curl.sh

sed '/\.mp3/!d;s|.*href=\"\(\./mp3/.*\.mp3\)\".*|curl -O \"http://www.tefy.se/\1\"|' ../mp3_kemi_lpo2.htm > curl.sh; . curl.sh

sed '/\.mp3/!d;s|.*href=\"\(\./mp3/.*\.mp3\)\".*|curl -O \"http://www.tefy.se/\1\"|' ../mp3_kemi_lpo3.htm > curl.sh; . curl.sh

Man kan hämta ner alla mp3-filer till böckerna Fysik Lpo och Kemi Lpo om man har sparat HTML-filen i katalogen ovanför katalogen mp3 som man skall stå i. Man kan hämta en HTML-fil med t.ex. kommandot:

curl -O http://www.tefy.se/mp3_fysik_lpo[1-3].htm

curl -O http://www.tefy.se/mp3_kemi_lpo[1-3].htm

Man måste öppna HTML-filerna för redigering i SeaMonkey och göra en liten ändring som man återställer och spara dem innan man kör enradarna. Resultatet av SeaMonkey-operationen är att ÅÄÖ & åäö byts ut mot HTML-entities: t.ex. Å. Detta behövs eftersom Sed ej verkar klara ÅÄÖ & åäö i den teckenkodning som filerna använder.

  • Kommentarer(0)//enradare.orbin.se/#post33

Skanna dubbelsidiga pappershögar med enkelsidig skanner

Bash, Kubuntu 8.04Skapad av M.O.B. 2011-11-22 20:14
pdftk A=mbvim101.pdf B=mbvim102.pdf cat $(i=1; while [ $i -le 11 ]; do echo -n "A$i B`expr 11 + 1 - $i` "; i=`expr $i + 1`; done) output lsg-mbvim1.pdf

Min skanner med arkmatare (Brother MFC-5840CN) kan bara skanna enkelsidigt, men jag vill skanna en hög med 11 blad dubbelsidiga papper till ett dokument. Framsidorna av högen med papper finns skannade i filen mbvim101.pdf. Baksidorna av samma hög finns skannade med sista sidan först i filen mbvim102.pdf (det blir så automatiskt om man bara vänder på högen). Med enradaren ovan så sätts filerna ihop till en pdf-fil med rätt ordning på sidorna. Man kan ändra 11 i raden ovan (på två ställen) till antalet ark för att anpassa till sin egen hög med papper. Det går att få reda på antalet sidor med pdftk så även inmatningen av antalet ark kan automatiseras.

  • Kommentarer(0)//enradare.orbin.se/#post32

Ladda ner samtliga numrerade webbsidor

Bash, Kubuntu 8.04Skapad av M.O.B. 2010-09-22 20:32
i=0; while [ $i -le 289 ]; do curl http://partiintresserade.se/?page=$i > PI$i.html; i=`expr $i + 1`; done
Raden hämtar ner samtliga sidor mellan 0 och 289 från webbplatsen och sparar dem i HTML-filer. Programmet kan t.ex. användas för att inhämta data för undersökande journalistik samt för samhällsvetenskaplig och historisk forskning.

  • Kommentarer(0)//enradare.orbin.se/#post31

Ladda ner pdf-filer länkade från HTML-fil

Bash, Kubuntu 8.04Skapad av M.O.B. 2010-08-03 22:55
sed '/\.pdf/!d;s|.*=\"\(.*pdf\)\".*|curl -O \"http://www.ciberdigital.net/books/\1\"|' Index_of_books.html > curl.sh ; . curl.sh

  • Kommentarer(0)//enradare.orbin.se/#post30

Köra PHP-servlet från kommandoraden

Bash, Kubuntu 8.04Skapad av M.O.B. 2009-06-15 22:07
php -r '$_GET[cmd]=718750; $_GET[pid]=2; include "DriveReporterServlet.php";'
Att köra problematiska PHP-skript i terminalfönstret i stället för på webbservern ger bättre felmeddelanden.

  • Kommentarer(0)//enradare.orbin.se/#post29

Strömmande backup av konto

Bash, Kubuntu 8.04Skapad av M.O.B. 2009-03-11 10:03
ssh login@dator.domän.se "tar cf - ~/" | gzip -9 > backup.tar.gz
Denna rad gör säkerhetskopiering på ett helt konto på en annan dator utan att mellanlagra något i en temporärfil. Resultatet blir en packad fil på den lokala datorn. Fjärrdatorn kan ha Linux eller Solaris.

  • Kommentarer(0)//enradare.orbin.se/#post27

Läsa av säkringar på Atmel AVR mikrokontroller

Bash, Kubuntu 8.04Skapad av M.O.B. 2009-03-08 15:22
För STK500:
avrdude -c stk500v2 -p m8515 -P /dev/ttyUSB0 -U hfuse:r:h-fuse.txt:r -U lfuse:r:l-fuse.txt:r

För USB-ASP:
sudo avrdude -c usbasp -p m88 -U hfuse:r:h-fuse.txt:r -U lfuse:r:l-fuse.txt:r -U efuse:r:e-fuse.txt:r

Ovanstående rader för respektive mikrokontrollerprogrammerare lagrar säkringsvärdena i filer som måste tolkas med:
od -d h-fuse.txt | head -1 | sed -e 's/0000000 *//' | xargs -i perl -e '$str= unpack("B32", pack("N",{})); $str =~ s/.*([01]{4})([01]{4})$/$1 $2/; print "$str\n";'
(AVR Fuses HOWTO Guide)

Alternativt för STK500:
avrdude -vv -c stk500v2 -p m8515 -P /dev/ttyUSB0 -F

Alternativt för USB-ASP:
sudo avrdude -vv -c usbasp -p m88

Här får man säkringsvärdena i hexadecimalt i slutet av en längre text.

  • Kommentarer(0)//enradare.orbin.se/#post26

Koda om en textfil

Bash, Kubuntu 8.04Skapad av M.O.B. 2008-06-18 08:42
sed -n 's/\([^ ]*\)\( *\)/"\1";/;/^"[A-Z][^e]/h;/@/G;/@/p' riksdagen.txt|sed 'N;s/\n//;s/;$//' > riksdagen2.txt
Koda om en textfil med e-postadresser och med rubriker med organisationsnamn så att den kan importeras av MySQL.

  • Kommentarer(0)//enradare.orbin.se/#post25

Skapa jar-fil med hårddiskavbild men utan manifest

Bash, Kubuntu 8.04Skapad av M.O.B. 2008-06-16 11:38
jar cvfM dos_pascal.jar dos_pascal.img
Denna rad skapar en jar-fil (Java archive) med en hårddiskavbild men utan manifest. Det är precis vad JPC.jar eller JPCApplet.jar (bantad JPC) behöver för att ladda hårddiskavbilden.

  • Kommentarer(0)//enradare.orbin.se/#post24

Förkorta hårddiskavbilden

Bash, Kubuntu 8.04Skapad av M.O.B. 2008-06-16 11:31
dd if=dos_pascal.img of=dos_pascal2.img bs=4096 count=512
Syftet med denna rad är att förkorta hårddiskavbilden för att spara minne vid körning. Om man först gjort defrag med full optimization i JPC (Java PC-emulator) på hårddiskavbilden och sedan chkdsk, så vet man hur mycket man kan förkorta filen. Sätt bs till klusterstorleken. Tänk på att sätta count något större än minimalt så att utrymme finns för temporära filer.

  • Kommentarer(0)//enradare.orbin.se/#post23

Skapa en tom hårddiskavbild

Bash, Kubuntu 8.04Skapad av M.O.B. 2008-06-15 17:29
dd if=/dev/zero of=dos_pascal.img bs=1MB count=5
Denna rad används för att skapa en tom hårddiskavbild på 5 MB (5000000 B). Avbilden kan sedan fyllas med filer innefrån Java PC-emulatorn.

  • Kommentarer(0)//enradare.orbin.se/#post22

Starta Java PC-emulator med DOS

Bash, Kubuntu 8.04Skapad av M.O.B. 2008-06-15 15:01
/usr/local/jdk1.6.0_06/bin/java -jar Downloads/JPC.jar -fda mem:floppy.img -hda dosprog.img -hdb dir:dosprog -boot fda
Denna rad startar Java PC-emulatorn med den inbyggda FreeDOS 1.1 på A:. C: motsvaras av en hårddiskavbild, och D: motsvaras av en katalog. Syftet är att preparera hårddiskavbilden genom att kopiera filer från katalogen.

  • Kommentarer(0)//enradare.orbin.se/#post21

Korrigera fil skapad av HTTP::Recorder så att den kan användas av WWW::Mechanize

Bash, Kubuntu 8.04Skapad av M.O.B. 2008-04-24 18:44
sed -i '//s//\\xa0/g;/\\xa0/s/'\''/"/g' MKBTest.pl
Denna byter ut mot \xa0 ty WWW::Mechanize kräver detta. Sedan gör den om enkelcitat till dubbel för de redigerade raderna eftersom escape bara fungerar med dubbelcitat. Följande gör det omvända:
sed -i '/\\xa0/s/\\xa0/\/g;//s/"/'\''/g' MKBTest.pl

  • Kommentarer(0)//enradare.orbin.se/#post20