~/.profile bearbeiten

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo, ich möchte, dass wenn ich mich nach dem Bootvorgang des Raspberry Pi das erste mal einlogge, ein paar Kommandos ausgeführt werden.
    Diese sollen aber erst nach dem Login ausgeführt werden, daher fällt eintragen in /etc/rc.local weg...
    Ich hab gelesen, dass man irgendwie die Datei ~/.profile bearbeiten kann um zu dem von mir gewünschten Ergebnis zu kommen, aber ich krieg einfach nicht heraus, was ich da genau eintragen muss und wo!
    Ich würde mich über ein paar Tipps sehr freuen.

  • Okay, danke schon mal für die schnelle Antwort!

    Und wenn ich ein Shellskript ausführen lassen will, dann wahrscheinlich einfach das Shellskript mit Pfad angebe.

    Zur Zeit steht in ~/.profile:

    # ~/.profile: executed by Bourne-compatible login shells.

    if [ "$BASH" ]; then
    if [ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi
    fi

    mesg n


    Was bedeutet das?

  • Okay, muss ich mein Skript dann in die .bashrc eintragen?
    denn so wie ich es jetzt gemacht hab funktioniert es irgendwie nicht... Es passiert einfach gar nichts

    Einmal editiert, zuletzt von magu (20. Februar 2013 um 13:34)

  • Hallo magu,

    Ich würde das Skript über die ~/.bashrc aufrufen. Am Ende der ~/.bashrc musst du auch nur den Aufruf des Skriptes eintragen. Beachte dabei aber, dass du die richtige Pfadangabe verwendest. In deinem Fall würde ich volgendes eintragen.

    Code
    ~/ShellSkripts/meinskript.sh

    Zuvor solltest du noch die Rechte deines Skriptes überprüfen. Damit es aufgerufen werden kann, muss das Execute-Bit für mindestens deinen Benutzer gesetzt sein. Dies setzt du zum Beispiel mit folgendem Befehl.

    Code
    chmod +x ~/ShellSkripts/meinskript.sh

    Es schadet auch nichts, wenn du das Skript einmal manuell aufrufst um zu sehen was es eigentlich macht. Liefert es irgendwelche Fehlermeldungen die beim automatischen Starten eventuell untergehen?

    Gruß Georg

  • Ahh, Ok jetzt geht schonmal etwas^^
    Also jetzt wird jedes mal wenn ich ein LXTerminal öffne meinskript.sh ausgeführt.
    Leider ist das nicht genau das was ich eigentlich wollte....
    Gibt es ne Möglichkeit, das ein Skript nur ein einziges mal beim allerersten login nach jedem Booten ausgeführt wird?
    Außerdem möchte ich nicht die graphische Oberfläche starten müssen und also auch kein LXTerminal öffnen.

    Aber schon mal vielen Dank für die bisherigen Tipps!

  • Hallo magu,

    Zitat

    Gibt es ne Möglichkeit, das ein Skript nur ein einziges mal beim allerersten login nach jedem Booten ausgeführt wird?

    eine direkte Funktion für dein Anliegen kenne ich im Augenblick nicht, aber du kannst dir ganz einfach behelfen. In deinem Skript fügst du den folgenden Befehl ein - am Besten irgendwo am Ende vor dem "exit".

    Code
    touch /tmp/meinskript

    Dadurch wird im temporären Verzeichnis von Linux eine leere Datei erstellt. Des Weiteren fügst du am Anfang deines Skriptes die folgende Abfrage ein.

    Code
    if [ -f /tmp/meinskript ]; then
      exit 0
    fi

    Das bedeutet, wenn dein Skript aufgerufen wird überprüft dieses ob die Datei /tmp/meinskript existiert. Ist dies der Fall wird das Skript beendet. Wenn die Datei nicht gefunden wird, wird das Skript weiter ausgeführt. Der Clou an der Sache ist das /tmp Verzeichnis. Dieses wird bei einem Neustart gelöscht. Also auch deine temporäre Datei welche das Skript bei weiteren Anmeldungen abbricht.

    Zitat

    Außerdem möchte ich nicht die graphische Oberfläche starten müssen und also auch kein LXTerminal öffnen.

    Dein Skript wird ausgeführt sobald du eine Shell oder ein Terminal startest. Bei jedem Start einer neuen Bourne Again Shell (bash) wird die .bashrc ausgeführt. Das bedeutet du musst keine graphische Oberfläche starten sondern kannst dich auch einfach auf der Konsole anmelden.

    Gruß Georg

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!