Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Aiheet - petteriIII

Sivuja: 1 [2] 3 4
21
Mikäli koneessa on BIOS ei GPT:hen muuttamiseen ole oikeastaan syytä ellei yritä käyttää kovalevyä jonka koko on yli 2T. Mutta yhä useammat PC:t siirtyvät käyttämään EFI:ä ja silloin on järkevää alkaa käyttää GPT-osiointia jo alkuunsa sillä siinä osion koko on aikaslailla rajoittamaton ja mitään ensiö-toisio-jakoa ei ole ollenkaan joten nekin vaikeudet jäävät pois - ja onhan GPT ollut käytössä jo kauan ja on luotettava.

Ihan koe-mielessä muutin toimivan MBR-kovalevyni käyttämään GPT:tä; se onnistuu sillä varsinaisia eroja niillä on vain levyn alussa ja lopussa sellaisila alueilla jotka eivät käyttäjälle näy. Bootataan live-versiolla ja mennään gpartediin (paina ctrl-alt-t ja käske: sudo gparted). Tee uuteen levyyn GPT-tyyppinen osiotaulu. Kopioi kaikki muut osiot paitsi swap vanhalta kovalevyltä uudelle - swappia ei siis kopioda vaan tehdään uusi.
- swapin tarpeesta voi olla montaa mieltä varsinkin käytettäessä GPT:tä. Koska kovalevyt ovat niin suuria niin minun mielestäni sen swapin voi tedä ja jättää huolehtimisen hevosille.
- en vielä ole huomannut mitään mikä ei toimisi.  Levyllä on kolme versiota 15.04:ää - kaksi BTRFS:ää ja yksi EXT4.
- testi levyn osiointitavasta: [[ $(sudo parted -l | grep -m 1 "Partition Table" | awk '{print $3}') = msdos ]] && echo mbr || echo gpt ; tai näkeehän sen myös: gparted-näytä-tietoja laitteesta
- järjestelmässä voi olla samanaikaisesti mbr- ja gpt-levyjä.
- Win32 ei kuulemma toimi gpt:nä ja win64 nikottelee.

22
Yleistä keskustelua / Haavoittuvuuksista
« : 03.10.14 - klo:16.21 »
Haavoittuvuuksissa taitaa usein olla pääosa tottakin, onhan kaikki softa pelkkää reikää.
Mutta nyt on jo siirrytty rautaankin tuon badUSB:n kanssa.
Jotenkin alkaa tuntua siltä, että on alettu yhä enemmän ajatella: sama mitä puhutaan kunhan puhutaan => haavoittuvuudellakin on mainosarvo.

23
Tutkiessani Super-backupin mahdollista kokoonpanoa satuin tämmöiselle verkkosivulle: http://www.caine-live.net/page11/page11.html . Osaisiko joku arvella mihin soppaan lusikkansa työntää jos lataa ja kokeilee ?

En kyllä ole koskaan ollut ihastunut mihinkään jonka käyttämiseen tarvitaan ohjetta ollenkaan saatikka kun manuaaleja näyttäisi olevan miljoona sivua.

24
- järjestelmä on harvoin pahemmin vioittunut vaikka se ei boottaisikaan ja alkaa todennäköisesti boottaamaan kunhan se päivitettäisiin. Mutta milläs päivität sellaisen joka ei edes boottaa? Tällä skriptillä voi päivittää boottamattoman ubuntun boottamalla jostain muualta ja ajamalla sitten tämän skriptin.

- siis tämä korjaa koneet jotka ovat lakanneet boottaamasta joko päivityksen tai grubin asettelun seurauksena. Kyllä tämä usein muutenkin korjaa. Kaikki koneen ubuntut päivitetään kerralla ja saattaapa mintit sun muut lipsahtaa päivityskierteeseen nekin.

- skripti kopioidaan muistitikulle muistitikun omassa päätteessä "sudo nautilus":ksella. Vaikea homma ja täytyy jättää niille jotka ovat käyttäneet linuxia paljon. Tai voihan skriptiä ajaa myös boottaamattoman ubuntun kovalevyltä tai toiselta muistitikulta.

- ennen päivittämistä skripti poistaa kaikilta päivittämiltään osioilta roskikset, turhat imaget, extra-imaget ja headerit; siis toimia joita joskus ei haluta mutta puukota silloin koodia. Skripti raivaa pois muitakin päivittämistä estäviä tekijöitä. Lisäksi kovalevy-osiot tarkistetaan ja yritetään korjata lukuunottamatta sitä osiota jolla on bootattu eikä myöskään yhteistä kotia tarkisteta. Live-cd:tä tai live-muistitikkua ei päivitetä, mutta sensijaan päivitetään muistitikut joille on asennettu ubuntu.

- mikäli ubuntuja on monia ja monilla eri kovalevyillä on niiden kaikkien päivittäminen melkoinen työ normaalikeinoin. Tämä skripti päivittää ubuntut kaikilta löytämiltään levyiltä samallakertaa; skriptin toiminta on täysin automaattista eikä se koskaan kysy mitään: skriptin voi laittaa toimimaan ja itse poistua paikalta.

- mikäli ubuntuja on monta ja kenties jakautuneina eri levyille tulee tarve vakiona pysyvään valikkoon. Vakiona pysyvässä valikossa voi sallia järjestelmän hoitamisen tarkoitettujen skriptien käyttämisen vain jollekulle tai pitää jatkuvasti valikossa vain tarvittaessa koneeseen kytketyn pankki-Ubuntun kutsun. Vakiona pysyvä valikko on kehittäjien suosittelema - kehittäjistäkään useimmat eivät tosin taida tajuta mitään suositelleensa, sillä erittäin harvat tarvitsevat useita ubuntuja. GrubEdit täyttää vaatimukset vakioisen valikon teossa.

Koodia: [Valitse]
#!/bin/bash
# paivita 10.8.2014 petteriIII
function KirjoitaOhje { echo '- aluksi kysytään salasanaa ettei sitä kysyttäisi sitten toiminnan aikana keskenkaiken. Salasana on kovalevyllä toimittaessa oma'
echo '  salasanasi ja muistitikulla se on ubuntu jos sitä edes kysytään.
- toimiva internet-yhteys on välttämätön; live-versioiden verkkoyhteys asennetaan aivan samoin kuin normaalistikin - muistitikun asetukset säilyvät mutta cd:n ei.
- kovalevyosiot tarkistetaan ja yritetään korjata lukuunottamatta sitä osiota jolla on bootattu. Windows on kylläkin kantona kaskessa.
- roskikset tyhjennetään, vain viimeinen image jätetään ja päivityksen esteitä poistetaan.

luettuasi tämän paina mitähyvänsä näppäimistön nappia.'
read -sn 1 key
}

function tarkistaKovalevyjenKaikkiOsiot () {
apu=""
read -t 5 -n 1 -p 'jos haluat tarkistaa kovalevyn perusteellisesti paina jotain kirjainta; silloin tarkistus kestää jonkinverran kauemmin mutta tarkistaa paremmin.' apu
echo
for osio in $(sudo blkid | grep -v swap | awk '{print $1}' | sed 's/\://g'); do
  [[ ! $apu ]] && sudo fsck -MVCaf $osio ||   sudo fsck -MVCac $osio
  echo ""
done
}

function unmountmnt {
cd / # umount ei onnistu, jos joku umountattavan kansio on valittuna
sudo echo ""
for mountattu in $(sudo mount | grep /mnt | awk '{print $3}')
do
  [[ -e $mountattu ]] && sudo umount -l $mountattu
done  
echo '/mnt:n mountit on poistettu'
}

function paivitaKaikkiOsiot () { # itseensä chroottaus onnistuu ihan kivasti joten tällätavoin voi ihan hyvin päivittää itsensä
unmountmnt
for Chrootosio in $(sudo blkid | grep -v swap | grep -v vfat | awk '{print $1}' | sed 's/\://g'); do
  osiontyyppi=$(sudo blkid -o value -s TYPE $Chrootosio)
  #[[ $osiontyyppi = btrfs ]] && [[
  sudo mount -t $osiontyyppi $Chrootosio /mnt
  [[ -d /mnt/boot/grub ]] && [[ $(cat /mnt/boot/grub/grub.cfg | grep menuentry.*Ubuntu ) ]] &&  {
  echo; echo '********** päivitetään: '$Chrootosio

  sudo mount -t sysfs none /mnt/sys && sudo mount -t proc none /mnt/proc && sudo mount --bind /dev/ /mnt/dev &&  sudo mount --bind /dev/pts /mnt/dev/pts && sudo mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf && sudo mount -o bind /dev/shm /mnt/dev/shm

  [[ -d /mnt/home/$(env | grep USER)/.local/share/Trash ]] && sudo rm -rf /mnt/home/$(env | grep USER)/.local/share/Trash # poistaa roskikset kaikilta osioilta joiden käyttäjä on sama kuin se jonka tililtä päivitä ajetaan eikä roskista tyhjennetä jos se on erilliskodissa

  for n in $(ls /mnt/boot | grep config | grep -v $(ls /mnt/boot | grep config | sort | tail -1) | sed 's/config-//g'); do
    sudo chroot /mnt apt-get --yes --force-yes purge 'linux-image-'$n
    sudo chroot /mnt apt-get --yes --force-yes purge 'linux-image-extra-'$n # taitaa olla turha lause
    sudo chroot /mnt apt-get --yes --force-yes purge 'linux-headers-'$n
  done # Mikäli et halua poistaa imageja kommentoi nämä 5 riviä

  sudo chroot /mnt rm -f /var/cache/apt/archives/lock /var/lib/aptitude/lock /var/lib/dpkg/lock /var/lib/apt/lists/lock
  sudo chroot /mnt dpkg --force-confnew --configure -a
  sudo chroot /mnt apt-get --yes --force-yes --fix-broken install
  sudo chroot /mnt apt-get --yes --force-yes autoclean
  sudo chroot /mnt apt-get --yes --force-yes autoremove
  sudo chroot /mnt apt-get update
  sudo chroot /mnt apt-get --yes --force-yes safe-upgrade
  sudo update-grub2
}
unmountmnt
done
}

# Pääohjelma
KirjoitaOhje
echo ''; sudo echo
hommaalkoi="$(date +%s)"
tarkistaKovalevyjenKaikkiOsiot # sitä osiota jolta on bootattu ei tarkisteta.
paivitaKaikkiOsiot
echo -e 'päivitetty: '$(date +"%d-%m-%y %k:%M")'\t ja päivittäminen kesti: '$(date -d@$(echo $(date +%s)-$hommaalkoi-7200 | bc) | awk '{print $3}')

25
Skriptiajurin matematiikka_funktiot
=======================

Ladattuasi matemaattiset_funktiot.txt saat avaamasi päätteen toimimaan päätteen lisäksi myös funktiolaskimena kun avattuasi päätteen annat liitoskäskyn: . ~/Lataukset/matemaattiset_funktiot.txt   (siis käskyn edessä piste_ja_välilyönti).
- tiedosto ei tarvitse suoritusoikeutta.

Eihän tämä skripti enää kelpaa kuin leikkikaluksi mutta tarkoitus olikin osoittaa että bash on hävinnyt huonommilleen sillä tämä olisi toiminut jo 1980 kun kilpailijat olivat lastenkengissään. Eikä bash-skriptejä enää edes tehdä sillä tekovaiheessa bash-skripti tekee yleensä mitä se itse haluaa kaheleine merkintätapoineen, kummallisine logiikkoineen ja näkymättömine merkkeineen - kirotun nöyryyttävää kun ei saa konetta taipumaan tahtoonsa. Eihän siinä voi tehdä muuta kuin uskotella että bash on paitsi etanahidas niin myös kyvytön. Mutta kyvytön bash ei ole.

Alunperi tarkoitus oli, että pääte toimii täysin niinkuin ennenkin, mutta toistaiseksi päätteen virhekäyttäytyminen on erilaista - eihän niitä vanhoistakaan virheviesteistä saanut tolkkua, mutta voihan siitä silti urputtaa. Mutta helpollahan tästä matikasta pääsee; ei tarvitse tehdä muuta kuin sulkea pääte ja avata uusi.

Toistaiseksi matematiikka_funktiot eivät toimi skriptiajurin skripteissä.

Muun matematiikan toiminta selviää parhaiten esimerkeistä mutta lukujärjestelmämuunnokset kaipaavat lisäselityksiä:

Teoriassa bc ei tarvitse scalea lukujärjestelmämuutoksiin sillä bc:llä on autoscale jota se käyttää mikäli scalea ei ole bc:n käskyssä määrätty suuremmaksi. Autoscalen arvo on bc:lle annetun luvun desimaalien lukumäärä joten koska desimaaliluvun peränollia ei kirjoiteta niin niiden puuttuminen aiheuttaa sen että bc lopettaa desimaaliluvuilla muunnoksen liian aikaisin ellei scalea ole määrätty.

Asiaa sotkee se, että kun desimaalien lukumäärä kasvaa niin matematiikka_funktioiden itsensäkin täytyy huomioida se. Siten esimerkiksi:
1. "laskun" 1e-78 tulokseksi tulee nolla jos unohtaa lisätä perään: des100.
2. vielä pahempi on aa1e-78 (aa on käsky muuntaa seuraava lukun kaksijärjestelmään) sillä siihen täytyy
   lisätä perään: des400
- muunnettavilla luvuilla saa olla etumerkkikin.
- matemaattisen toiminnan tulos on myös muuttujassa nimeltään tulos
- jos suljet tämän päätteen niin myös matemaattiset kyvyt häviävät ja jos avaat uuden päätteen niin uusi pääte ei osaa matematiikkaa ennenkuin annat tuon liitoskäskyn.
- itseasiassa matemaattiset_funktiot ovat skriptiajurissakin. Mutta skriptiajurissa on vanha versio kunnes kerkiän päivittämään sen.


Toiminnan oikeellisuuden tarkistamista:
=======================================

- bc sopii tajuttoman suurten, pienten ja moninumeroisten lukujen laskentaan. Eikä niiden käyttäminen ole pelkkää leikkimistä, sillä matematisen toiminnan tarkastuksissa ne varmistavat sen ettei minkään laskun välitulokset aiheuta virhettä lopputulokseen. 
- yksi ilmiö kannattaa huomioida: mitä nopeammin toimitaan niin sitä nopeammin syntyy sutta-ja-sekundaa kun harkitsee tekemisensä huonosti.

1. Ihan alkuunsa voit laskea mitä kaksijärjestelmässä on kymmenjärjestelmän luku 6+1/2^10 sillä sehän on päässälasku että tulos on 110.0000000001. Tässä on tälle skriptille muodostettu käsky: aa[6+1/2^10]
- on käytettävä hakasulkuja. Kaarisulut päätyvät useimmiten virheeseen.
- voit toki kirjoittaa myös: aa6.0009765625 - sillä 6+1/2^10 on 6.0009765625
                                                                                     
2. Tehdään muunnoskäsky kymmenjärjestelmästä kaksijärjestelmään luvulle: 12345678901234567890123456789012345678901234567890123456789012345678901234567890.24 josta tulee: aa12345678901234567890123456789012345678901234567890123456789012345678901234567890.24des264 . Tulosteessa on iso joukko ykkös-nollaa. Huomioi desimaalipiste puolivälissä lukua - voit käsitellä sen kummallakin puolella olevaa lukua itsenäisesti.

3. muunnoksen oikeellisuutta on vaikeaa tarkistaa missään - netissä on montakin matematiikkamoottoria mutta tämän luvun suuruus ja tarkkuus lienevät niille liikaa - eikä se tarkistaminen taida muuallakaan onnistua. Mutta bc:lle ne eivät ole edes suuria lukuja ja tässä skriptissä tarkistuksen voi suorittaa muuntamalla ensin kaksijärjestelmään ja heti takaisin kymmenjärjestemään yhdellä kootullakäskyllä:
bb[aa12345678901234567890123456789012345678901234567890123456789012345678901234567890.24des264]
Vastauksena pitää tulla:123456789012---.24 

4. toiminnan toteamisessa voi käyttää myös laskuja jotka ovat mielettömiä mutta joiden lopputulos selviää jo laskun esityksestä, esimerkiksi: aa[[2^1999-1]/2^1999]des2200 jonka tulos on: .<ja perässä 2000 ykköstä> . Ihan aluksi tulee virheviesti, mutta kyllä se vastauskin tulee kymmenkunnan sekunnin kuluttua. Tuo skaalausarvo 2200 on liioittelua, mutta 2000 pistäisi epäilemään että tulos johtuukin siitä.
- tuloksessa ei saa olla yhtään nollaa ja ykkösten lukumäärän pitää olla 2000. Ykkösten määrän voi tarkistaa heti muunnoksen jälkeen käskyllä: echo $tulos | wc -c, mutta se on kylläkin 2001 sillä siinä on mukana desimaalipiste.
- Tämä matematiikkaa osaava pääte toimii päätteenäkin melkohyvin, joten voit antaa käskyt tässäkin.

5. Mitäpä on 1.24e-78 kaksijärjestelmässä? Käsky on: des500aa1.24e-78. Tarkistus: des500bb[aa1.24e-78]
Ja esitysmuodon voi muuttaa takaisin tieteelliseksi käskyllä: sci .
 

26
Windows-ystävällisyys =  kuvat ja videot vaati Windowsia. Ja joskus harvoin myös jotkut "viranomais"-sivut toimii vain Windowsilla.

Viimeksi viimeviikolla yksi tilaus vaati puhelisoittoa sillä verkkosivu vaati Windowsia.

Muuten tietokoneen käyttöni on melkein pelkästään teksti-pohjaista ja siinähän ei juuri koskaan tule eteen Windows-ystävällisyys. Mutta se kyllä kiinnostaa mikä on  suuntaus, onhan Windowsin osuus rajussa laskussa varsinkin some-sektorilla ?

- ubuntu-restricted-extras kyllä tulee aina ladattua.



27
Yleistä keskustelua / Varoituksia
« : 13.10.13 - klo:06.25 »
Satuinpa tämmöiselle englanninkieliselle sivulle: https://sites.google.com/site/easylinuxtipsproject/fatalmistakes

- enpä ota varmaa kantaa siinä esitettyihin asioihin, kuitenkin senverran sanoisin että joissain asioissa olen päätynyt samantapaisiin huomioihin.

- alkaakohan ubuntu vaatia liittymistä pilveensä asennuksen yhteydessä ? Vielä onnistuin kiemurtelemaan irti kun asensin ilman netti-yhteyttä. Sillä tuolta ohjeista puuttuu kohta: vältä pilveä.

Mitäpä mieltä toiset olette ?

28
Ubuntu tietokoneissa / Etäkirjautuminen
« : 10.10.13 - klo:07.20 »
Saan näppylöitä jo sanasta etäkirjautuminen ja omassa koneessa se saa aikaan paniikin.

Näin täysin riippumatta siitä, voiko sitä edes käyttää, pilvestä tai muualta. Samoin jokainen protokolla ja ohjelma joka edes viittaa etäkirjautumiseen on epäilyttävä. xrdp ei toki ole ladattuna oletuksena, mutta remminasta on ainakin neljä pakettia. Tietääkö joku mitä muita niitä on ja mitä niiden poistaminen tekee ?

Kirjoittautumisruudustahan etäkirjautumisen kuulemma saa pois kun kirjoittaa tiedostoon:  /etc/lightdm/lightdm.conf rivin: greeter-show-remote-login=false mutta poistaako etä-toiminnan ?

29
Yleistä keskustelua / EFI ja GPT
« : 29.09.13 - klo:20.22 »
Parikolmevuotta sitten kokeilin EFI:ä ja GPT:tä kun puhuttiin että kohta niitä täytyy käyttää. Sittemmin olen asentanut ja käyttänyt vain 32-bittisiä Ubuntuja ja Mintttejä. Mutta tänään sain hepulin ja hain 64-bittisen 13.10:n ja asensin sen EFI/GPT:nä. Mutta aloin siinä ajatella että eihän EFI/GPT niin nopeasti tunnu tulevan ja on vähän hankala asentaakin. Onko ne tulossa kuinkakin nopeasti ?

30
Koodia: [Valitse]
Tämä sed-ohje on vielä keskeneräisempi kuin tuo awk-ohje seuraavassa.

Ohjelma sed muokkaa ohjelmallisesti sille annettua tekstiä.
- käsiteltävä teksti on usein tiedostoissa. jokaisen tiedoston rivit on numeroitu, sitä ei vain aina näytetä. Rivit numeroidaan
  järjestyksessä ykkösestä alkaen.
- käsiteltävä voidaan toimittaa sed:iin:
  1. sed määrittelyt tiedostonNimi  
  2. "tulostus jollain konstilla" | sed määrittelyt  
  tai kyllähän niitä kikkoja löytyy mutta ne selviävät kyllä kun semmoinen tulee eteen
- sed käy yksitellen läpi tiedoston kaikki rivit alkaen ykkösestö ja siitä järjestyksessä eteenpäin. sed:issä voidaan kuitenkin antaa
  osoitteita. osoitteet ovat joko rivinumeroita tai /teksti/. jos osoitteita on vain yksi niin muokkaaminen koskee vain sitä ja jos
  osoitteita on kaksi niin muokataan rivejä niiden välissä.
- jos toiminta juuttuu jonnekin kun ollaan sed:issä paina CNTRL-c.
- tiedoston teksti tulee näytölle jokatapaukseessa. Jos hjaluat muutoksen tallentuvan tiedostoon niin kirjoita: sed -i ...
- jos et halua tekstimuutoksen kirjoittuvan näytölle niin kirjoita: sed -n ...
- ihan rauhassa voi käskeä: sed 's/apu/apua/g'  sillä se ei päädy päättymättömään looppiin.
- mikäli peräkkäin on useampia sed:ejä niin sana sed kirjoitetaan vain kerran ja käskyt erotetaan kuten seraavassa esimerkissä:  
  sed -e '/^#/d' -e 's/#.*$//' # poistaa kommenttirivit ja kommentit pitemmältä
 
Esimerkkejä:
sed 's/mikä/miksi/g'                     # muuttaa jokaisen sanan:mikä muuttaminen sanaksi:miksi  
sed -i 's/mikä/miksi/g'                  # sama muutos, mutta tiedoston teksti muutetaan myös
sed -n 's/mikä/miksi/g'                  # sama muutos, mutta tiedoston teksti muutetaan niin ettei se tule näytölle
sed -ni 's/mikä/miksi/g'                 # sama muutos, mutta tiedoston teksti muutetaan myös eikä näytölle tule mitään
sed 's/.*mikä.*/miksi/g'                 # koko lauseen jossa sana:mikä on muuttaminen sanaksi:miksi  
sed '/baz/s/foo/bar/g'                   # tiedostossa tehdään muutokset vain riveillä joissa on jossain paikassa: baz  
sed '/baz/!s/foo/bar/g'                  # tiedostossa tehdään muutokset vain riveillä joissa ei ole jossain paikassa: baz
sed 's/^ *//g;s/ *$//g'                  # Poistaa välilyönnit tiedoston riveiltä edestä ja perästä. Tästä
                                         # näkee myös kuinka kaksi perättäistä sed:iä yhdistetään
sed  's/^ *//g'                          # poistaa välilyönnit tiedoston rivien alusta
sed "s/^.//g"                            # poistaa tiedoston jokaiselta riviltä ensimmäisen merkin, mikä se sitten onkin
sed -e '/^$/d                            # poitaa tiedoston tyhjät rivit
sed -i 6,66d                             # poistaa tiedoston rivit 6-66
sed -e '/^#/d' -e 's/#.*$//'             # poistaa kommenttirivit ja kommentit pitemmältä riveistä
sed '4!d'                                # tulosta ainoastaan tiedoston rivin 4 . Sama kuin sed -n '4p' tai: awk 'NR==4'
sed '8,12!d'                             # tulosta rivit 8-12
sed '8,12d'                              # tulostaa kaikkimmuut rivit paitsi 8-12
sed -i.bak 's/mikä/miksi/g'              # tee backup ennenkuin talletat muutokset
sed 's/:/\n/g' <<< $PATH                 # tämä tulostaa käyttöjärjestelmän polut kukin omalle riville  
sed "s:/old/direcory/:/new/directory/:"  # sedissä / toimii kenttien jakajana. Tällätavoin jakajaksi voi määrätä kaksoispisteen  
sed -n -e '1,/etsittävä ilmaisu/p'       # poista loput rivit löydettyään ilmoitetun lukumäärän etsittyä
sed 's/[![0-9]][0-9]:/"\ "&/g')          # &-merkin kohdalle tulee se tekstijono mikä [![0-9]][0-9]: määräämässä etsinnässä löytyi
sed 's/^ */"/g;s/ *$/"/g'                # lisää tiedoston jokaisen rivin alkuun lainausmerkki ja loppuun myös.
sed -e :a -e '/$/N;s/\n/ /;ta'           # tulostaa kaiken yhteen riviin
sed -e 's/^\(.*\) .*/\1/'                # poistaa viimeisen sanan jokaiselta riviltä    
sed -e '/^[<space><tab>]*$/d' somefile   # tulostaa tiedoston jättäen pois rivit jotka ovat pelkkää välilyöntia tai tabulaattoria
sed 'G'                                  # tulosta tiedosto lisäten tyhjän rivin jokaisen tekstirivin perään
sed -n '1!G;h;$p'                        # tulosta rivit käänteisessä järjestyksessä. Käskyssä käsitellään buffereita
sed -e '/./{H;$!d;}' -e 'x;/hakusana/!d' # tulosta jokainen kappale jossa on määriteltävä-hakusana
sed  '/kortti/alisätty_rivi'             # lisää rivi jolla lukee: lisätty_rivi jokaisen rivin jälkeen jolla lukee jossain kortti

sed -e 's/'$(echo "octal-value")'/replace-word/g' # kontrollimerkkien poistaminen
sed 's/mikä/miksi/g' tiedosto1 > tiedosto2        # lukee tiedosto1:stä, tekee muutokset ja kirjoittaa tiedosto2:een
sed 's/^./tekstiä /g'                             # kirjoittaa jokaisette ei-tyhjälle riville sanan: tekstiä
                                                    ja perään kirjoittaa sen tekstin joka rivillä ennen oli


echo abcd1eeee | sed 's/\([a-z]*\).*/\1/'                     # tulostaa abcd ja jättää ensimmäisen numeron ja sen jälkeiset pois
echo "eka toka kolmas" | sed 's/\([[:graph:]]*\).*/\1/' # tulostaa eka ja jättää loput sanat pois.
echo "1eka2 toka kolmas" | sed 's/\([[:graph:]]*\) \([[:graph:]]*\)/\2 \1/' # vaihtaa ensimmäisen ja toisen sanan

tiedostojärjestemän osassa kaikissa tiedostoissa sanan muuttaminen toiseksi:
find tiedostojärjestelmän_osa -type f -exec sed -i "s/mikä/miksi/g" {} \;

Koodia: [Valitse]
Grep käy sille annetun tekstin läpi rivi kerrallaan järjestyksessä alusta loppuun ja tulostaa näytölle kaikki ne rivit joilta etsitty löytyy.
Grep on yleensä määrätty värittämään hakutermin tulostuksensa jokaisella rivillä. Jos näin ei ole voi kirjooittaa grep-käskyn perään:
--color=always. Tai jos et halua väriä niin kirjoita grepin jälkeen: --color=none

Etsittävä voidaan antaa grep:ille kahdella keinolla:
1. tulosta_etsittävä_teksti_jotenkin | grep mitenkä_etsitään      
2. grep mitenkä_etsitään  sen_tiedoston_nimi_josta_etsitään  
- siis yksinkertainen haku on muotoa: echo "hhh 58 jjjj" | grep 58       tai: grep "kortti" tiedosto
- BASH:kin yrittää tulkita tuon mitenkä_etsitään ja joskus se ei ole toivottavaa. Tältä tulkinnalta voi suojautua kirjoittamalla
  'mitenkä_etsitään'. Joskus kuitenkin BASH:n toiminta on toivottavaa. Silloin kirjoitetaan: "mitenkä_etsitään"  .  
**
Grep tuntee ennaltamäärätyn merkkin, jossa merkki kuuluu johonki seuraavista ryhmistä:
[[:alnum:]]->[[A-Za-z0-9]]      [[:alpha:]]->[A-Za-z]         [[:blank:]]->välilyönti tai TAB   [[:cntrl:]]->jokin kontrollimerkki    
[[:digit:]]->[0-9]              [[:graph:]]->ASCII 33 - 126   [[:lower:]]->[a-z]                [[:print:]]->ASCII 32 - 126 ja välilyönti      
[[:space:]]->välilyönti ja TAB  [[:upper:]]->[A-Z]            [[:xdigit:]]->[0-9A-Fa-f]        
- skandit taitaa olla mukana vaikei niistä puhutakaan; tämä näkyy käskystä: echo "AAAAAAAAAAAAAAAAAö" | grep [[:lower:]]
- joskus hyväksytään kaksois-sulun paikalla vain yksi sulku
**
Kun haettavassa sanassa on joku seuraavista niin se tulkitaan kuvatulla tavalla:
?                paikalla voi olla yksi merkki tai sitten ei
.*               paikalla voi olla mielivaltainen määrän merkkejä, ja sen paikalla ei välttämättä täydy olla merkkiä ollenkaan
+                paikalla voi olla mielivaltainen määrän merkkejä, ja sen paikalla täytyy olla vähintään yksi merkki
.                paikalla voi olla täsmälleen yksi merkki.
[abcde]          paikalla voi olla täsmälleen yksi mukanaolevista merkeistä
[^abcde]         paikalla voi olla mikähyvänsä muu merkki paitsi jonku esitetyistä merkeistä. Merkkiä ! voi käyttää ^ paikalla.
[a3][c5]         paikalla voi olla joku merkkiryhmistä  ac,a5,3c,35
-E haettava{n}   haettava kertautuu täsmälleen n-kertaa # tämä ja seuraavat 3 eivät toimi niin kuin ihminen ymmärtää vaan niin kuin kone ymmärtää
-E haettava{n,}  haettava kertautuu korkeintaan n-kertaa
-E haettava{n,m} haettava kertautuu jotakin n,m välillä
-E haettava{,m}  haettava kertautuu korkeintaan m-kertaa
\< ja \>         hakusana rajoittuu tyhjään (=joko välilyöntiin tai rivin alkuun/loppuun)
[asdfg]          hakusana on mikähyvansä merkeistä asdfg (se ei siis etsi koko sanaa. Kun etsitään sanaa niin jätetään sulut pois).
[a-g]            sama toisella tavalla
[^asdfg]         hakusana on mikähyvänsä muuta merkkiä kuin jotakin joukosta asdfg  . ! on sama kuin ^.
[[:digit:]]      hakusanaksi voi antaa minkähyvänsä ennaltamäärätyistä merkeistä; siis sillä paikalla on vain yksi merkki
                 esimerkiksi jos etsittävässä on kaksi numeroa niin periaatteessa se on: [[:digit:]][[:digit:]]
**
grepin kytkimistä (optiot):
Optioiden alku on grep-sanan jälkeisen välilyönnin jälkeinen miinusmerkki. Jos miinus on jossain muualla ei se ole merkki optioiden
alkamisesta. Optioita voidaan kirjoittaa vaikka kuinkamonta ja vain tuo yksi miinusmerkki tarvitaan; vaikka jos haluaa niin jokaisen
option eteen voi kirjoittaa <välilyönti>miinusmerkki. Joskus tarvitseekin kertoa grep:ille että "nyt ne optiot loppu". Tällöin viimeiseksi
optioksi kirjoitetaan e. Senjälkeistä käsitellään etsittävän määrityksenä vaikka se alkaisi miinusmerkillä.

Seuraavassa luettelo yleisimmistä optioista:
r  etsintäpaikka on kansio ja sieltä etsitään rekursiivisesti     s  ei tulosteta edes varoitusviestejä            
c  vain löytöjen lukumäärä tulostetaan                            v  poista hakutuloksista ne joissa etsitty on osana
h  tulostaa sen tekstirivin jolta etsitty löytyy                  w  oleta etsittävän alkuun ja loppuun \< ja \>      
l  tulostaa sen tiedoston nimen josta etsitty löytyy              n  tulostaa myös miltä riviltä etsitty löytyi    
i  etsittäessä ei huomioida kirjainkokoa                          m <luku>   lopeta luku osumien jälkeen  
F  etsitään kirjaimiltaan juuri sellaista mikä etsittäväksi määrättään                                
e  optiot on nyt kirjoitettu ja haettava seuraa vaikka se alkaisi miinus-merkillä
E  ota käyttöön laajennoksia, mm. \ ei tarvita; siis esimerkiksi kun etsit "placeholdereita" niin etsittävä on: grep -E {} mistä_etsittään
A <numero>  tai: -B <numero> tai: -C <numero>      tulosta <numero> riviä haetun rivin edestä, jäljestä yai molemminpuolin
**
ESIMERKKEJÄ:
grep "[0-9]\{5\}"                  # etsii yli viisinumeroista sanaa jonka jokainen merkki on 0-9
                                   # täsmälleen viisinumeroiset: grep "\<[0-9]\{5\}\>"
grep [![:lower:]]                  # etsii onko sanassa jossain ainakin yksi pieni kirjain
grep [a-c]-ajokortti               # etsii a-, b- ja c-ajokortit mutta ei muita ajokortteja
grep [\ e]grep                     # etsii grep:in ja egrep:in muttei muita grepejä
grep '^\..*\.$'                    # etsittävä alkaa pisteellä ja loppuu pisteeseen ja välissä on jotain tekstiä.
grep -E ^a\|^b                     # etsii rivit jotka alkavat a:lla tai b:llä
grep -E "a{2}"                     # etsittävässä täytyy olla peräkkäin vähintään 2 a:ta
grep -E -o ".{0,5}etsittävä.{0,5}" # tulostaa etsittävä:n edestä ja perästä korkeintaan 5 merkkiä, eikä kokoriviä
grep . tiedosto > tiedosto2        # kopioi tiedostosta tiedosto2:een jokaisen rivin jolla on tekstiä (=poistaa tiedosto:sta tyhjät rivit)
grep -C <riviluku> hakusana        # tulosta etsityn lisäksi edestä ja perästä riviluku riviä
grep -v "^#"                       # tulosta jättäen pois kommenttirivit
grep -e .doc -e .html              # grepin tai-funktio. Myös (.doc)|(.html) toimii.
grep '\<c...h\>'                   # etsii viisikirjaimisia sanoja jotka alkavat c:llä ja päättyvät h:hon. Esimerkki: grep '\<c...h\>' sanakirja
grep '[Ss]mug'                     # etsii kumpaakin sanoista: Smug ja smug
grep '"smug"'                   # etsii lainausmerkeussä olevaa sanaa "smug". Ilman lainausmerkkejä ei kelpaa.
grep -- --                         # etsi kahta tai useampaa -merkkiä
grep -o -b  "etsittävä" | awk -F: '{print $1}' # tulostaa etsittävän ensimmäisen merkin sijainti-numeron (=pos-käsky
grep -Eio '([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})' # tarkista onko kyse msähköposti-osoitteesta



**
HUOMAUTUKSIA:

- jostain syystä kun etsii ilmaisua: -exec kirjoitetaan hakusana: \\-exec

- etsittäessä merkkijonoa jonka alku ja loppu tiedetään mutta siinä välissä olevaa ei tiedetä niin hakusana on: tekstialussa.*tekstiloppussa
  tekstialussa ja tekstilopussa saavat olla eri riveillä. Joskus täytyykin painottaa että niiden täytyy olla samalla rivillä joten hakusana
  onkin: -e tekstialussa -e tekstilopussa
 
- etsittäessä merkkiä jolla on erikoismerkitys niin sen eteen tulee \. Siis esimerkiksi kun etsitään sanaa $-arvo niin hakusana on: \$-arvo

- useimmat erikoismerkit menettävät erikoismerkityksensä merkkien []   tai: '' välissä

- jos hakusana on etsittävän rivin alussa kirjoitetaan hakusanan eteen ^ ja jos se on lopussa kirjoitetaan hakusanan perään $ .
  Siis ^$ on tyhjä rivi. Mikäli merkki ^ on jossain muualla on se tavallinen merkki.

- nuo haut siis etsivät tiedoston sisällöstä. Kun etsit tiedoston nimestä niin käsky on esimerkiksi: find /home | grep "haettava"

- jos haluaa etsiä kahta sanaa samassa haussa onnisttu se käskyllä: egrep -w 'sana1|sana2' tiedosto

- grepin tulostuksesta voi muodostaa loopin: for i in /etc/profile.d/*.sh ; do ....; done

- oletetaanpa että koti-kansiossasi on skripti, jossa on käytetty käskyä tr hyvin erikoisella tavalla. Et muista missä se on ja haluaisit
  löytää sen. Annettava käsky on: grep -r "\<tr" ~  . (= tr:n tulee olla joko rivin alussa tai sitä täytyy edeltää välilyönti) Jos tuon
  \< jättää pois niin tulee tosipaljon "vääriä"" löytöjä.

- grepin toimintaan voidaan vaikutaa BASH:in ympäristömuuttujilla.

- grep:iä voidaa käyttää skripteissä myös siten, että skriptintoimintaa muutetaan senmukaan löytääkö grep jotakin vaiko ei. Tätä toimintaa
  vastaava käsky on: [[ $( grep ... ) ]] && tee_jotain. Tässä on kylläkin sellainen vikamahdollisuus että jos onnistuu tekemän grepin niin
  että se tekee virheen niin käsky suoritetaan aina. Siis joissakin tosi-harvinaisissa tapauksissa virheet pitää suunnata tiedostoon tai
  tarkistaa ettei muuttujan $? arvo ole 2.

31
Löytyhän se semafori, mutta jonkinsorttista epävarmuutta siinäkin oli, joten ei se käyttökelpoinen vielä ole ja poistin koko homman. Pitää tonkia syvemmältä.

Yksi toimintavarma keino on, mutta siinä pitää kylläkin painaa enteriä. Laita vaan ongelmapaikkaan: read -p 'paina enter'

32
Sain tabletin. Vaan eipä tuota alkuunsa saanut toimimaan. Vikana oli että vieressä oli päällekytketty mokkulareititin; mokkulareitittimen kun sammutti niin lähtipä tabletti raksuttamaan.
- toimii jatkuvasti näin, vaikka tabletti olisi talon toisessa päässä kuin reititin - tulee mieleen tekeekö mokkulareititin inhottavuuksia laajemmaltikin ? Onko kenelläkään kokemuksia ?

33
Ubuntun kehitysversio / Yhteinen koti-osiokin hajosi
« : 19.04.12 - klo:17.02 »
Päivitys hävitti 12.04:stä unityn ja yläpalkin. Enpä alkanut taisteluun vaan asensin uudestaan käyttäen vanhaa kotia. Vaan eipä auttanut - kyseessä oli asetus jossain kodin piilokansiossa. Tulihan siinä vähän temppuiltua mutta mikään ei auttanut. Tein siis uuden asennuksen jyräten koti-osionkin.  Jopa alkoi toimia, kaikki asetukset vaan täytyi tehdä uusiksi ja back-upit palauttaa. Mutta on ihan hyväkin välillä pistää kaikki uusiksi (minulla on tietokoneessani ollut sama koti jo 6 vuotta); arvaapas kuinka paljon kaikkialle kertyy roskaa - eikä se ainoastaan vie tilaa.
- muuten jos tallettaa kotiosion piilotiedostoja niin saa useimmat asetuksetkin talteen - esimerkiksi .mozilla-kansiossa on firefoxin ja firebirdin asetukset, senkun kopioi vaan.

34
Yleistä keskustelua / Google-etsintä näiltä sivuilta
« : 07.04.12 - klo:15.56 »
Googlella voi etsiä tältäkin verkkosivustolta tehokkaasti kun näppäilee hakukenttään: forum.ubuntu-fi.org/ se_mitä_haet

- hakutuloksiin tulee kyllä myös tämä sivusto mutta haittako tuo.
- aikarajoitukset sun muut toimii myös sieltä "Tarkennettu haku"-sivulta.
- voit kyllä joutua käyttämään verkkosivulla ollessasi lisäksi CTRL-f hakuakin, mutta ainakin kaikki löytyy siltä yhdeltä sivulta.
- erittäin monilla sivuilla on viittauksia tänne ja ne sivuthan tulee mukaan.
- itsestäänselvää ? Oletkos huomannut tehdä näin? Minä en.

35
Läppärini on toiminut jo pitkään ja SSD-levyn avulla boottaus kesti vain höikäsen-pöläyksen. Mutta nyt läppäri lakkasi boottaamasta. Taistelujen jälkeen aloin asentamaan uudelleen. Mutta ensialkuun asentaminen jäi yritykseksi sillä asennusohjelma kertoi haluavansa biosgrub nimistä osiota. Sen kun tein ja asennusohjelmassa otin käyttöön niin johan alkoi toimia.
Läppäri on varustettu UEFI-biosilla ja senkanssahan kohkataan tarvittavan jotain erillistä boot-osiota.
Mutta kuten sanottu: läppärini on toiminut jo pitkään ja täysin luotettavasti ilman mitään erillistä biosgrub:ia.

Netti on inhottava paikka nykyään; vain Wikeistä löytää jotain nopeasti ja jos sieltä ei löydä niin hitaaksi meni. Nyt ei löytynyt eikä muualtakaan nopeasti löytynyt. Miksi jokin biosgrub tarvitaan?

36
Yhtaikaa pitää paikkansa ettei mitään ongelmia ollut F1A75M/UEFI-BIOS emon kasaamisessa ja että se oli kolmipäiväinen hikinen urakka. Se ei olisi ollut hikinen urakka jos olisin heti alkuun laittanut PS/2-näppiksen ja erillisen näytönohjaimen. Jos niitä ei olisi löytynyt niin homma ei olisi onnistunut ikinä ja jos ne olisivat olleet jo alkuun kaikki olisi käynyt kuin tanssi. Varmaankin uudet BIOS:it korjaa tämän. Muuten BIOS:issa pääsee asetuksiin: exit/advanced - advanced (se kolmas vaihtoehto millä nimellä se nyt olikin).

Kun näppis oli oikea ja näytönohjain paikallaan homma onnistui kokonaan kun kasasi emon ja laittoi siihen vanhan koneen kovalevyn: boottasi heti.

GPT-kovalevyn teossakaan ei ollut vaikeuksia: gparted:issa vain: laite - luo osiotaulu - new - gpt. Sitten osioiden luonti normaalisti ja asennus normaalisti.

- nyt unta kaaliin.

37
Ubuntun kehitysversio / 12.04:n grub2
« : 27.02.12 - klo:07.54 »
Selvähän se että tässävaiheessa toiminta on pikkuisen kehittymätöntä, mutta koska aina aikaisemmin grub on toiminut moitteetta heti alussa niin kysyisin: missä mennään? Minulla eivät toiset käyttöjärjestelmät enää tunnistu (eipä minulla enää muita ole kuin toisia Ubuntuja, esimerkiksi Oneiric). Vielä viikko sitten muistaakseeni tunnistui.

38
Ubuntun kehitysversio / Gmail sähköposti-valikkoon
« : 02.02.12 - klo:15.57 »
Kirjoitinpa tämä kun asensin sisaren koneeseen 12.04:n ja sain kuulovamman ja flunssa puhkesi kun lilpy painoi sitä ylärivin kirjekuoren kuvaa ja toimi Gmailissa FireBirdin sävyttämänä.
Anna vain käsky: sudo apt-get install gnome-gmail - silloin valinta gnome-gmail ilmestyy kirjekuoren alle.

39
Ubuntun kehitysversio / Synaptic
« : 19.01.12 - klo:06.55 »
Mikä virallisesti vastaa Synapticia 12.04:ssä?
Yritänkö hölmöjä kun haluaisin jotain vastaavaa toimintaa tai itse Synapticin ?

- sain Synapticin lopulta sivulta: https://launchpad.net/ubuntu/precise/+package/synaptic


40
Ubuntun kehitysversio / Päivittäminen
« : 14.01.12 - klo:06.08 »
Kannattaako nykyään hyväksyä osittais-päivityksiä ?

Alfa-vaiheisen Ubuntun päivittämiseen hoidan muutenkin mieluiten jotenkin muuten kuin update-managerilla: esimerkiksi päätteessä käskyillä:
sudo apt-get update
sudo apt-get upgrade
- ja kun asialliselẗa tuntuu niin lisäksi: sudo apt-get dist-upgrade
- kun Ubuntu niin kehottaa niin muitakin käskyjä, kuten esimerkiksi: sudo dpkg --configure -a
- pari kertaa Pricise on kieltäytynyt boottaamasta päivityksen jälkeen. Silloin olen bootannut jollain muulla Ubuntulla ja päivittänyt skriptillä: ChroottaaJaKorjaa.
- kun alfa-vaihe on ohitettu niin täytyy jokatapauksessa suorittaa asennus puhtaalta pöydältä jolloin Ubuntun käyttö muuttuu aavistuksen verran; mikäli päivität distrojen ylikin niin käyttöön jää enemmänkin sellaista joka toimii eritavalla. 

Sivuja: 1 [2] 3 4