tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Raubkopierer
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
1126
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von killerkirsche
    killerkirsche killerkirsche ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    168
    Hallo zusammen.
    Ich würde gerne einen Befehl zur Bash hinzufügen.
    Klingt komsich, ist aba so.
    Ich habe ein script mit dem namen "tree" und möchte es gerne durche infaches Namen-nennen öffnen können, unabhängig davon in welchem Verzeichnis ich mich befinde.

    Ich habe schon viel gegooglet, aber immer wenn ich das, was dort stand angewandt/ausprobiert habe, hats nicht geklappt.
     
    die ärzte | Wizo | Patti Smith
    Wer die nich kennt der verpasst was

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hallo,

    dafür musst du deine PATH Umgebungsvariable auf das Verzeichnis erweitern indem dein Skript liegt, wie unter Windows auch:

    Code bash:
    1
    
    export PATH=$PATH:/dir/to/your/binary

    Oder du legst dein Skript in eines der Verzeichnisse ab welche Defaultmäßig bei dir im Path schon aufgenommen sind.
    Welche das sind kannst du herausfinden wenn du dir den Inhalt von PATH anschaust:
    Code bash:
    1
    
    echo $PATH

    Gruß,
    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Der erste Ansatz ist nur die halbe Wahrheit ... auf diese Art würde das Verzeichnis nur temporär in die PATH-Variable kommen. Am besten suchst du dir ein Verzeichnis in das du alle deine persönlichen Bins, die nicht durch ein Paketmanagement installiert wurden packst. Etwa /home/deinBenutzer/bin (kurz ~/bin), legst dieses mittels

    Code :
    1
    
    mkdir ~/bin

    an und kopierst deine Binary hinein. Nun zur Path-Variable. Gebe folgende Komandos in deine Shell ein:

    Code :
    1
    2
    3
    
    cd /etc/profile.d
     
    sudo nano homebins.sh

    In die nun von Nano erstellten Textdatei schreibst du folgendes:

    Code :
    1
    2
    3
    
    #!/bin/sh
     
    export PATH=$PATH:~/bin

    Nun speicherst du indem du Strg + X zum beenden drückst und mit Yes/Ja bestätigst. Jetzt muss das erstellte Skript nur noch ausführbar gemacht werden mit dem Befehl:

    Code :
    1
    
    sudo chmod +x homebins.sh

    Beim nächsten Neustart wird dieses Skript nun automatisch ausgeführt sowie bei jedem weiteren Systemstart. Solltest du die Änderungen sofort anwenden wollen nutze den Befehl

    Code :
    1
    
    source /etc/profile
    killerkirsche bedankt sich. 
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  4. #4
    Avatar von killerkirsche
    killerkirsche killerkirsche ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    168
    Danke, klappt perfekt
     
    die ärzte | Wizo | Patti Smith
    Wer die nich kennt der verpasst was

  5. #5
    Laudian Laudian ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Ort
    kurzfristig wieder Passau
    Beiträge
    295
    @Raubkopierer
    Warum so umstaendlich ueber ein eigenes Script, das doch immer wieder angepasst werden muss?

    @Threadersteller

    mit alias kann auch ein Aufruf mit einem Pseudonyom im Bashsinne belegt werden ... alias-Zuweisungen kommen am besten in die /etc/bashrc fuer globale Einstellungen oder ~/.bashrc fuer Userspezifische Einstellungen ...

    Syntax:

    alias neuer_Befehl='alter_Befehl' .... der neue_Befehl bezeichnet den neuen Aufrufnahmen ... alter_Befehl den entsprechenden Aufruf, wie er frueher mit allen Schaltern und Optionen aufgerufen wurde.
     
    Mir hat ein Artikel, auf den ich hier gestossen bin sehr gefallen. Deswegen hat er es mal verdient, meine sonst leeren Sigs zu schmuecken:

    Linux ist nicht Windows!

    Ich bitte alle, die auf dem jeweils anderen OS rumhacken erst diesen Artikel zu lesen.

  6. #6
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Da man so ein festes Verzeichnis im Path hat wo man alle eigenen Binaries hinschieben kann? Natürlich kann man für jede Binary alias 'path/to/file = name machen ... und muss dann jeden dieser Einträge dann wieder aus der bashrc entfernen. Oder aber man macht ein Skript, dass die Umgebungsvariable neu setzt. Ob man das nun in der Bashrc macht oder nicht ist ja egal. Nur wenn man die Shell wechselt müsste man wieder in deren Konfig-Datei die Befehle schreiben. So denke ich der 'umständliche Weg' ist in diesem Fall der effektivste
     
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  7. #7
    Laudian Laudian ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Ort
    kurzfristig wieder Passau
    Beiträge
    295
    Zitat Zitat von Raubkopierer Beitrag anzeigen
    Da man so ein festes Verzeichnis im Path hat wo man alle eigenen Binaries hinschieben kann? Natürlich kann man für jede Binary alias 'path/to/file = name machen ... und muss dann jeden dieser Einträge dann wieder aus der bashrc entfernen. Oder aber man macht ein Skript, dass die Umgebungsvariable neu setzt. Ob man das nun in der Bashrc macht oder nicht ist ja egal. Nur wenn man die Shell wechselt müsste man wieder in deren Konfig-Datei die Befehle schreiben. So denke ich der 'umständliche Weg' ist in diesem Fall der effektivste
    Die Shell wechselt? Ich zumindest bleibe eigentlich auf einem System immer bei einer Shell ... wenn de ne Subshell aufmachst wird ja weiter vererbt ... da isses also vollkommen wurst, vor allem da bei jeder Subshell die .bashrc ausgewertet wird.

    Solange man also nicht dauernd zwischen bash, sh, ksh und/oder csh rumspringt reicht ein aendern der grundlegenden Configdatei.
     
    Mir hat ein Artikel, auf den ich hier gestossen bin sehr gefallen. Deswegen hat er es mal verdient, meine sonst leeren Sigs zu schmuecken:

    Linux ist nicht Windows!

    Ich bitte alle, die auf dem jeweils anderen OS rumhacken erst diesen Artikel zu lesen.

  8. #8
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    und genau dieses Wechseln der Shell meinte ich. Nicht jeder ist mit Bash zufrieden und man sollte diese eventualität schon berücksichtigen.
     
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  9. #9
    Laudian Laudian ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Ort
    kurzfristig wieder Passau
    Beiträge
    295
    mag sein, aber wer nutzt mehr als eine Shell auf einem OS? Fuer die anderen Shells gibts entsprechende Configdateien, und solang man nicht fuer jede Anwendung ne andere Shell nimmt, reicht es vom Aufwand her vollkommen, das zu Fuss per Editor einzutragen.
     
    Mir hat ein Artikel, auf den ich hier gestossen bin sehr gefallen. Deswegen hat er es mal verdient, meine sonst leeren Sigs zu schmuecken:

    Linux ist nicht Windows!

    Ich bitte alle, die auf dem jeweils anderen OS rumhacken erst diesen Artikel zu lesen.

Ähnliche Themen

  1. [BASH]
    Von Alex Duschek im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 06.05.10, 15:10
  2. Bash per SSH - Befehl bei Logout
    Von alois im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 29.05.06, 18:46
  3. Bash <TAB>
    Von kevkev im Forum Linux & Unix
    Antworten: 6
    Letzter Beitrag: 18.01.06, 19:05
  4. Wie kann ich in die rechen Maustaste einen Befehl hinzufügen?
    Von LogIC_FloP im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 01.06.04, 14:36
  5. C vs bash
    Von webfreak im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 04.04.04, 10:23