Benutzerdefinierte Suche

./ weglassen?

  1. bullitt168

    bullitt168 Thread StarterMacUser Mitglied

    Mitglied seit:
    08.07.2004
    Beiträge:
    25
    Zustimmungen:
    0
    Hallo! Ich bin gerade dabei, mir ein wenig c++ anzueignen, verwende vim als editor und den gcc als compiler, arbeite also direkt auf der konsole. Was mich nur ein wenig nervt ist, daß ich die compilate immer mit ./compilat starten muss und nicht einfach "compilat" eingeben kann.
    Wenn ich das richtig verstanden hab, ist das problem, daß die shell (bash in meinem fall) nicht im aktuellen Pfad nach der ausführbaren datei sucht... Meine Frage also: Wie kann ich z.B. in der .bash_profile mit Hilfe der PATH-Variable den jeweils aktuellen Pfad hinzufügen?


    Wäre für hilfe Dankbar,


    Bastian!
     
    bullitt168, 07.11.2004
  2. -Nuke-

    -Nuke-MacUser Mitglied

    Mitglied seit:
    13.09.2003
    Beiträge:
    2.135
    Zustimmungen:
    15
    Na ganz einfach ./ in deine PATH eintragen.

    Z.B.

    export PATH=$PATH:./

    in die bash_profile eintragen. Hab es zwar jetzt nicht getestet, sollte aber funktionieren.
     
    -Nuke-, 07.11.2004
  3. crashx

    crashxMacUser Mitglied

    Mitglied seit:
    19.09.2004
    Beiträge:
    154
    Zustimmungen:
    2
    das wäre eine ganz krasse sicherheitslücke!
    stell dir vor ein user auf deinem system erstellt ein programm was eine shell kopiert und dann suid setzt, dieses programm nennt er ls und packt es in eins seiner verzeichnisse. dann sagt er dir guck dir mal an was ich in dem verzeichnis xy hab. du tust es und er bekommt eine shell mit deinen rechten... also ich empfehle dir das nich zu tun, die zeichen kannste jawohl eintippen!
     
    crashx, 07.11.2004
  4. klaus41542

    klaus41542MacUser Mitglied

    Mitglied seit:
    27.08.2004
    Beiträge:
    237
    Zustimmungen:
    0
    nicht ./ sondern nur . in der PATH Anweisung.

    ABER: siehe den vorherigen Beitrag. Nur Anwenden, wenn du mit Sicherheit allein auf deinem Mac arbeitest.
     
    klaus41542, 07.11.2004
  5. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    seh ich auch so, crashx.

    Man könnte sich aber ein Verzeichnis ~/bin anlegen, in dem man nur selbst Schreibrecht hat.
    Dahinein legt man seine eigenen Binaries.
    Nun kann man "~/bin" problemlos in den Suchpfad aufnehmen:

    export PATH=$PATH:~/bin

    Am besten schreibt man das dann in die "~/.bash_profile" etc. und man hat Ruhe
     
    maceis, 07.11.2004
  6. Agmemon

    AgmemonMacUser Mitglied

    Mitglied seit:
    05.11.2003
    Beiträge:
    172
    Zustimmungen:
    0
    Und wenn Du das ./ immer brav eingibst, hast Du auch einen Gewöhnungsfaktor.

    Nette Geschichte dazu:
    Ein Studienkollege hat sich die Pfadvariable auch angepaßt, damit er sich das ./ sparen konnte. Monate später hat er versucht ein Programm auf einer anderen Machine zu starten. Er hat ne Stunde nach dem fehler gesucht, bis er darauf kam, das ./ anzugeben. :)
     
    Agmemon, 07.11.2004
  7. KAMiKAZOW

    KAMiKAZOWMacUser Mitglied

    Mitglied seit:
    16.03.2004
    Beiträge:
    2.028
    Zustimmungen:
    23
    Ach was. Das wäre nur in dem Fall so, wenn "." am Anfang des Suchpfades stehen würde. Steht "." am Ende, wird erst /bin/ durchsucht und das System findet dort den richtigen ls-Befehl.
    Wenn man ausdrücklich ./ls ausführen will, muss man das noch immer genau so eingeben.

    MS-DOS hatte in seinen knapp 15 Jahren auch niemals Probeleme mit schädlichen dir.exe-Anwendungen, weil der System-Befehl "dir" höchste Priorität hatte.
     
    KAMiKAZOW, 07.11.2004
  8. Sym

    SymMacUser Mitglied

    Mitglied seit:
    11.06.2003
    Beiträge:
    1.899
    Zustimmungen:
    38
    Also soweit ich das noch von Linux kenne, wird zunächst der Befehl im Verzeichnis ausgeführt - wenn der nicht existiert, wird gesucht.
    Und MS-Dos und Linux/Unix ist eigentlich nicht vergleichbar.
     
  9. klaus41542

    klaus41542MacUser Mitglied

    Mitglied seit:
    27.08.2004
    Beiträge:
    237
    Zustimmungen:
    0
    dir ist ein interner Befehl aus command.com und außerdem war es ein Beispiel und bestimmt nicht einzige Möglichkeit das System zu beeinträchtigen. Wir müssen ja nicht alle aufzählen. In der Unix community ist das Problem bekannt und wird so gehandhabt.
     
    klaus41542, 07.11.2004
  10. KAMiKAZOW

    KAMiKAZOWMacUser Mitglied

    Mitglied seit:
    16.03.2004
    Beiträge:
    2.028
    Zustimmungen:
    23
    Ich weiß. Mir ging es ja auch nur darum welche Priorität das System einem Befehl gibt. Und durch die Reihenfolge der Pfadangabe kann man eben die Priorität selbst festlegen.

    Also ich habe es eben ausprobiert. Ich habe ein Shell-Script "ls" erstellt. Dann habe ich "ls" eingegeben und das Script wurde nicht ausgeführt, weil "." am Ende der Pfadangabe steht und /bin/ zuerst durchsucht wurde.

    Mein Fazit: Die Furcht über "." im Pfad ist Paranoia.
     
    KAMiKAZOW, 07.11.2004