openSUSEa suomeksi
openSUSE => Palvelinohjelmat ja ohjelmointi => Aiheen aloitti: Majava - 23.09.2009 - klo:20:45
-
Komento scripti toimii.
Miten saan sen jättämäään ikkunan auki suorituksen jälkeen.
Jos avaan komento kehoitten ja ajan scriptin moi.cmd, niin se toimii ihan ok.
Kun teen siitä kuvakkeen (linkin) työpöydälle ja ajan scriptin linkistä se ei tee mitään.
(varmaan tekee, mutta sulkee ikkunan samantien.)
Miten saan komentokehoitteen jäämään auki?
#!/bin/bash
# tiedosto moi.cmd
ls -la
echo "moi"
-
Linkin päällä hiiren oikealla näppäimellä
-> properties -> application > advanced options
- run in terminal
- do not close when command exits
Näin siis kde 3.5 os 10.3:ssa
-
Näin siis kde 3.5 os 10.3:ssa
Samoin 3.5/11.1
-
Ei ymmärrä miten ton teitte!!!
Mulla ihan erillaiset kuvakkeet.
Kokoonpano:
Suse 11.0 / KDE3.5.9 kernel 2.6.25.20-0.5-pae
Aivan sama painanko hiiren kakkospainiketta tiedoston, vai linkin päällä sama ikkuna aukeaa.
Kuvaia tiedoston päällä hiiern "kakkosta"
Linkissä on vain hieman eri tekstit
linkissä on Yleinen välilehdellä muuten samat tiedot, paitsi
Sijainti kohdassa on /home/userxx/Desktop.
Linkin oikeudet välilehti on samanlainen tiedot erit
Omistaja = Linkki
Ryhmä = Linkki
Muu = Linkki
Eli tuossa kohdassa lukee teksti "Linkki" ja se on harmaana, eikä sitä voi muuttaa.
Tiedoston päällä hiiren "kakkosta" vastaavat tiedot
Omistaja = Voi lukea ja kirjoittaa
Ryhmä = Voi lukea
Muut = Voi lukea
Rasti ruudussa "Suoritettava"
Kohtaa "Run in terminal" en löydä.
Ei löydy käyttäjän tiedostonhallinnalla, eikä vaikka ottaa käyttöön työkalun "Tiedostonhallinta pääkäyttäjänä"
Mulla on toisessa koneessa SUSE 11.1 siinä on hieman erinäköiset ikkunat(kuvakkeet), mutta valinnat ja tekstit on samat kun kuvissakin (11.0) En siitäkään löytänyt tuota valintaa
"Run in terminal" vaikka se kone on enkun kielinen.
Lisäsin tuohon skriptiin "sleep 5"
#!/bin/bash
# tiedosto moi.cmd
(ls -la)
sleep 5
echo "moi"
Ei avaa koko ikkunaa, vaal suorittaa skriptin jossain taustalla.
Mulla on hatara muistikuva että jollain komennolla/parametrillä tuonne skriptiinkin voi sanoa "aja uudessa ikkunassa".
Kuvia:
-
Linkin oikeudet välilehti on samanlainen tiedot erit
Omistaja = Linkki
Ryhmä = Linkki
Muu = Linkki
Eli tuossa kohdassa lukee teksti "Linkki" ja se on harmaana, eikä sitä voi muuttaa.
Katsot siis linkin etkä alkuperäisen tiedoston ominaisuuksia. Etsi jälkimmäinen ja säädä sitä.
-
Käviskö näin.
-
On se vaan kumma kun toi tuntuu ihan helpolta ja mää se vaan en osaa.
Kokeilin tota töissä Susella en löytänyt sielläkään rastia "Run in terminal"
Kotona kaksi konetta toisessa Suse 11.0 suomi ja toisessa 11.1 enkku.
Kummastakaan en löydä ko kohtaa. Lisäksi mulla on ihan eri näköiset valikot.
Laitan lisää kuvia Suomenkieliset on 11.0 ja UK 11.1 versiosta.
Kokeilin tota samaa mun media PC:llä, siinnä Ubuntu.
Ei siitäkään löytynyt rastia "Run in terminal". ei tiedostosta, eikä linkistä.
Annoin tiedostolle ajo-oikeudet, tein linkin ja käynnistin.
Silloin kysyy että ajetaanko terminaalissa. Ajaa ihan ok. mutta menee heti skriptinjälkeen kiinni.
Laitoin ennen viimeistä echoa sleep 10, jolloin listauksen näkee odottaa ja menee niin nopeasti kiinni ettei viimeistä echo "moi" kerkiä näkemään.
Kun katsoo noita kuvia, niin aiemmissa tiedoston määrittelyissä yleiset välilehdellä on rasti "suoritettava" linkin vastaavassa sitä ei ole.
Lisäksi ninkin määrittelyt on harmaina ja niitä ei voi muuttaa.
-
Avaa tekstimuokkain ja kopioi siihen alla oleva(muokkaa niin että sopii järjestelmääsi)
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=/usr/share/icons/oxygen/scalable/status/object-locked-verified.svgz
Exec="/home/risto/bin/OmaSkripti.pääte"
Name=MunOmaSkripti
Tallenna se sitten Desktop-hakemistoon, esim. tapauksessa tallennusnimi olisi
MunOmaSkripti.desktop
Jotta tuo toimisi muuta Exec= osoittamaan skriptiisi tai kopioi se oma skriptisi bin-hakemistoon.
Nyt sun pitäisi pystyä muuttamaan noita asetuksia.
-
"Jotta tuo toimisi muuta Exec= osoittamaan skriptiisi tai kopioi se oma skriptisi bin-hakemistoon.
Nyt sun pitäisi pystyä muuttamaan noita asetuksia."
En ymmärtänyt mitä iloa on että asetuksia pääsee muokkaamaan, kun se rasti "Run in terminal" puuttuu!
No ohjeet on saatu, joten tein ohjeiden mukaan.
Kuvake ilmestyi työpöydälle ja sen ominaisuuksia pystyi muokkaamaan.
Sitten testi. Pah ei toiminut.
Tuolla samassa Desktop hakemistossa on paljon muitakin tiedostoja kutrn MotzillaFirefox.Desktop joten sitä tutkimaan.
Tässä pätkä tiedostosta.
Name=Firefox
Comment=Web Browser
TryExec=firefox
Exec=firefox %u
Icon=firefox
Terminal=false
MimeType=text/html;application/xhtml+xml
Type=Application
NotShowIn=GNOME;
Tuo rivi "Terminal=false" kiinniti huomiota.
Kopioin sen omaan tiedostooni ja muutin muotoon "Terminal=True"
Kas kumaa nyt pelittää.
Viellä olisi yksi pikku säätö tehtäv, jotta tarvittavat palikat olisi kasassa. Kun skripti on ajettu niin ikkuna sulkeutuu tuon "sleep xx" ajan jälkeen.
Dos bateissa oli semmoinen komento kuin pause. Mikähän olisi vastaava?
Miksi moinen vaiva ls -la komentoskriptin takia?
Tuo oli vain "tee jotai" kokeilu, oikeasti halusin tehdä varmistus skriptin
varmistaskripti.cmd
su
# mount
mount paikallinen varmistuslevy
mount verkkolevy
#varmista
kopio kuvat paikalliseen varmistuslevyyn
kopio kuvat verkkolevyyn
kopio dokumentit verkkolevyyn
# umount
irroita paikallinen levy
irroita verkkolevy
# end
Suuret kiitokst kaikille avusta.
PS.
Nyt kaikki sitten ilolla tiedostoja varmistamaan.
-
Tässä tuo Desktop hakemiston code
[Desktop Entry]
Encoding=UTF-8
Type=Application
Terminal=true
Icon=/usr/share/icons/oxygen/scalable/status/object-locked-verified.svgz
Exec="/home/user/moi.cmd"
Name=MunOmaSkripti
-
"Jotta tuo toimisi muuta Exec= osoittamaan skriptiisi tai kopioi se oma skriptisi bin-hakemistoon.
Nyt sun pitäisi pystyä muuttamaan noita asetuksia."
En ymmärtänyt mitä iloa on että asetuksia pääsee muokkaamaan, kun se rasti "Run in terminal" puuttuu!
Vaikka teen minkälaisen skritin, niin tuo kohta löytyy kyllä.
katso kuvankaappaus
Tuo rivi "Terminal=false" kiinniti huomiota.
Kopioin sen omaan tiedostooni ja muutin muotoon "Terminal=True"
Kas kumaa nyt pelittää.
Niin, tuo on nimenomaan se mitä tuo "run in terminal" tiedostoon lisää ;)
Dos bateissa oli semmoinen komento kuin pause. Mikähän olisi vastaava?
Olisiko tästä apua > http://tldp.org/LDP/abs/html/dosbatch.html
Tässä tuo Desktop hakemiston code
[Desktop Entry]
Encoding=UTF-8
Type=Application
Terminal=true
Icon=/usr/share/icons/oxygen/scalable/status/object-locked-verified.svgz
Exec="/home/user/moi.cmd"
Name=MunOmaSkripti
Laita se oma skriptisi kotihakemistosi bin-hakemistoon ja anna sille suoritusoikeus.
Eli Exec="/home/user/bin/moi.cmd"
-
Kiitos linkistä jmp
Apu löytyi.
Pause komentoa vastaavaa ei taida olla, mutta vaikka näin
Laitetaan odotusajaksi 2 tuntia ja ohjeteksti
Dossihan tulostaa tuon ohjeen "paina jotain jatkaaksesi"
echo "Sulje ikkuna Ctrl+C"
sleep 2h
-
Olet oikeassa jmp olin huolimaton!
Kun olin tehnyt tuon tiedoston tuonne user/Desktop-hakemistoon ja kuvake ilmestyi työpöydälle kokeilin sitä heti.
Ei toiminut
En ollut avannut sitä hiiren "kakkosella" silloin sieltä olisi löytynyt tuo välilehti Sovellus ja sieltä Lisäasetukset josta olisi voinut valita rastilla "Käynnistä Pääteikkunassa".
Tuo tiedodtoon lisäämäni rivi "Terminal=True" laitta tuon rastin päälle, (rasti ilmestyy välilehdelle) jolloin homma toimii.
Testailin seuraavat kokoonpalot
suse KDE
11.0 3.5.9
11.0 3.5.7
11.1 4.1.3 * tarkastan illalla
Näissä kokoonpanoissa ei tule kopiota, tai linkkiä tehtäessä työpöydälle kuvakkeen ominaisuudet ikkunaan välilehteä "sovellus" joten lisäasetukset ja "Suorita ikkunassa".puuttuu valinnoista.
Sensijaan jmp:n ohjeella tehtynä valinta on.
Liitteenä samassa koneessa tehtyt
kuvat kuvakkeista
- kuvake jmp:n ohjeella tehtynä
- kuva linkkinä tehtynä kuvakkeesta
Kopiossa on aivan samat valinnat, kuin linkissä, joten sekään ei toimi
Muokkaus = * versio tarkistettu
-
Yksi vaihtoehto olisi käyttää noiden työpöytäympäristöjen mahdollisuuksia
esim näin:
#! /bin/sh
SOURCE=$HOME/myFiles
DEST=/work/BACKUP
mountBackupDisk()
{
kdesu 'mount /dev/disk/by-id/usb-WDC_WD-*-0\:0-part1 /work/BACKUP'
}
backStuffUp()
{
kdialog --passivepopup "<strong>Varmuuskopioidaan tiedostoja</strong>" --title "rsync $SOURCE -> $DEST" 5
rsync -h --progress --stats -r -tgo -l -p -D --update $SOURCE $DEST
}
syncDisk()
{
kdialog --passivepopup "<strong>Suoritetaan sync</strong>" --title "Varmistetaan kirjoitus" 5
sync
wait
kdialog --passivepopup "<strong>sync suoritettiin onnistuneesti, irrotetaan levy järjestelmästä</strong>" --title "Varmuuskopiointi suoritettu!" 5
}
umountBackupDisk()
{
kdesu umount /work/BACKUP
}
mountBackupDisk
wait
backStuffUp
wait
syncDisk
wait
umountBackupDisk
Gnomessa vaikka näin
#! /bin/sh
SOURCE=$HOME/myFiles
DEST=/work/BACKUP
mountBackupDisk()
{
gnomesu 'mount /dev/disk/by-id/usb-WDC_WD-*-0\:0-part1 /work/BACKUP'
}
backStuffUp()
{
notify-send "<strong>Varmuuskopioidaan tiedostoja</strong>"
rsync -h --progress --stats -r -tgo -l -p -D --update $SOURCE $DEST
}
syncDisk()
{
notify-send "<strong>Suoritetaan sync</strong>"
sync
wait
notify-send "<strong>sync suoritettiin onnistuneesti, irrotetaan levy järjestelmästä</strong>"
}
umountBackupDisk()
{
gnomesu umount /work/BACKUP
}
mountBackupDisk
wait
backStuffUp
wait
syncDisk
wait
umountBackupDisk
Tuon voisi tehdä huomattavasti paremminkin, mutta en nyt millään jaksanut siihen sen tarkemmin paneutua(nopeasti testattuna tuo ylempi ainakin toimi).
Jos testaatte tuota niin muuttakaa /dev/disk/by-id/usb-WDC_WD-*-0\:0-part1 vastaamaan omaa varmuuskopiolevyänne.
-
Konsolissa voi käyttää ainakin komentoa read, jotta scriptin suoritus ei lopu (ei siis sleep komentoa)
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_08_02.html
-- loppurivit --
echo "Press ENI KII"
read PALAUTE # Jäädään odottamaan käyttäjän näpyttelyä
echo ${PALAUTE}
exit;