Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Ik kan niks in mijn bin zetten.  (gelezen 1930 keer)

Ik kan niks in mijn bin zetten.
« Gepost op: 2009/09/17, 00:22:58 »
Beste,

Het probleem is dat ik niet weet wat ik verkeerd doe, ik wil een script in mijn bin (is dit ./bin of ./usr/bin?)zetten dat de achtergrond om de zoveel tijd verranderd.
Hiervoor had ik het volgende staan in mjn shell :

sudo cp -u -r /home/slasher/Bureaublad/change-background.sh ./bin

Helaas lukt het nog altijd niet,

Alvast bedant,

slasher

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: Ik kan niks in mijn bin zetten.
« Reactie #1 Gepost op: 2009/09/17, 00:28:20 »
Je kunt beter een symlink (snelkoppeling) maken in de bin map.
en het is trouwens geen ./bin, maar /bin (zonder punt)

Deze regel zou moeten werken.

sudo ln -s /home/slasher/Bureaublad/change-background.sh /usr/bin

PS: is het script uitvoerbaar gemaakt?
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Re: Ik kan niks in mijn bin zetten.
« Reactie #2 Gepost op: 2009/09/17, 00:35:09 »
Ik vrees dat ik niet volledig snap wat je bedoelt?
Is het niet altijd uitvoerbaar als het .sh is ?

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: Ik kan niks in mijn bin zetten.
« Reactie #3 Gepost op: 2009/09/17, 00:38:34 »
Volgens mij niet. Uitvoerbaar maken, kan met dit commando
chmod +x /home/slasher/Bureaublad/change-background.sh
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Offline track

  • Lid
Re: Ik kan niks in mijn bin zetten.
« Reactie #4 Gepost op: 2009/09/17, 02:44:45 »
Hoi slasher,

drie punten bij jouw verhaal:

1. Bij *nix maak je bestanden uitvoerbaar door het attribuut "uitvoerbaar" aan hen te geven
   en niet door welke extensie dan ook, zoals Ronnie al zei.  Dat is Win.. en DOS, die werken op die manier ...
2. De map "." is de huidige map.  jouw "cp ...  ./bin"  zal dus naar de submap "bin" onder de huidige map kopiëren.
   Niet naar de map "/bin",  want die heet alleen "/bin" (recht onder bestandsysteem "root" = "/")
3. Normaal zou ik nooit met de systeemmappen "/bin" of dergelijke prutsen, want daar heb je zo
   het gehele systeem naar de soep gestuurd.  Evenmin heeft een "sudo" iets te maken in een
   automatisch uitgevoerd commando tenzij je weet heel precies wat je doet.

Dat indruk heb ik op dit moment niet.  Als je het achtergrondplaatje wilt ruilen is helemaal
geen ingreep in het systeem nodig.  Je hoeft maar een cron-job aan te maken die
de  gconftool-2 met de passende parameters oproept.  En klaar is slasher.
Info onder  man gconftool-2 .

track
« Laatst bewerkt op: 2009/09/17, 02:48:25 door track »

Offline vanadium

  • Lid
Re: Ik kan niks in mijn bin zetten.
« Reactie #5 Gepost op: 2009/09/17, 08:21:44 »
Voor mijn persoonlijke scriptjes hou ik er een aparte "bin" directory in mijn home op na:

/home/vanadium/bin

Die directory plaats ik dan in mijn zoekpad, zodat ik ook mijn personlijke scriptjes van eender waar kan uitvoeren, eenvoudig door hun naam te tikken. Je doet dit door een aanpassing in je .bashrc

gedit ~/.bashrc

Voeg volgende lijn toe:
export PATH=$PATH:$HOME/bin

Zo moet je voor je eigen kleine scripts geen systeemaanpassingen doorvoeren. Je moet op geen enkel moment beheerder (root) zijn. Ook zullen de scripts enkel beschikbaar zijn onder jou account alleen.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Ik kan niks in mijn bin zetten.
« Reactie #6 Gepost op: 2009/09/17, 12:44:39 »
Vanadium, kijk eens in je ~/.profile
Daar staat al een stukje code om ~/bin op te nemen in je path:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Dus zodra je een aparte ~/bin map maakt en opnieuw inlogt, wordt die automatisch toegevoegd aan je path :)

Offline vanadium

  • Lid
Re: Ik kan niks in mijn bin zetten.
« Reactie #7 Gepost op: 2009/09/17, 12:52:31 »
Bedankt, Johan! Dit is waarom ik twee /home/vanadium/bins in mijn pad had. Dit is (denk ik) een wijziging ten opzichte van vroegere Ubuntu edities, of ik heb het nooit eerder opgemerkt. Ik had mijn lijn er al uit gesloopt, maar had de lijn die het doet nog niet gevonden.

Re: Ik kan niks in mijn bin zetten.
« Reactie #8 Gepost op: 2009/09/17, 21:33:24 »
Kan iemand mij uitleggen wat er niet klopt aan m'n scriptje?

#!/usr/bin/python
#
# change-background.py
#
# A script to change to a random background image
#
# (c) 2004, Davyd Madeley <davyd@madeley.id.au>
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2, or (at your option)
#   any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software Foundation,
#   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

backgrounds = "/home/slasher/background"

import gconf
import os
import random
import mimetypes

class GConfClient:
        def __init__ (self):
                self.__client__ = gconf.client_get_default ()
        def get_background (self):
                return self.__client__.get_string ("/desktop/gnome/background/picture_filename")
        def set_background (self, background):
                self.__client__.set_string ("/desktop/gnome/background/picture_filename", background)

client = GConfClient ()


dir_items = os.listdir (os.path.join (os.environ["HOME"], backgrounds))
items = []

for item in dir_items:
        mimetype = mimetypes.guess_type (item)[0]
        if mimetype and mimetype.split ('/')[0] == "image":
                items.append (item)

item = random.randint (0, len (items) - 1)
current_bg = client.get_background ()

while (items[item] == current_bg):
        item = random.randint (0, len (items) - 1)

client.set_background (os.path.join (os.environ["HOME"], backgrounds, items[item]))
Het werkt enkel als ik er zelf één keer op klik (bv. als het op mijn bureaublad staat en ik klik erop (Display)).
« Laatst bewerkt op: 2009/09/17, 21:36:42 door the1slasher »