/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Kald af program
Fra : Morten Winther


Dato : 06-12-01 12:43

Hej

Jeg har lige lavet min første program i c++, men har lige et spørgsmål som
nok er lidt trivielt:

Jeg har compilet filen som nu hedder myprog

Det virker med ./myprog

Men ikke med myprog (altså uden ./)

Hvorfor nu lige det? Det giver ikke mening for en der kun har brugt dos før.

morw@~/test % ls -la myprog
-rwxrwxrwx 1 morw morw 4381 Dec 5 22:54 myprog

morw@~/test % myprog
myprog: Command not found.
morw@~/test % ./myprog
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!


Jeg bruger FreeBSD hvis det skulle gøre en forskel.

/ morten






 
 
Simon Kristensen (06-12-2001)
Kommentar
Fra : Simon Kristensen


Dato : 06-12-01 13:02

"Morten Winther" <mw@get2net.dk> writes:

> Hej
>
> Jeg har lige lavet min første program i c++, men har lige et spørgsmål som
> nok er lidt trivielt:
>
> Jeg har compilet filen som nu hedder myprog
>
> Det virker med ./myprog
>
> Men ikke med myprog (altså uden ./)
>
> Hvorfor nu lige det? Det giver ikke mening for en der kun har brugt dos før.

Det burde det nu. I DOS er der også sat en path, men den indeholder
pr def. allerede det directory, du pt. er i. Du har formodentlig ikke
dit nuværende directory i din path under BSD. Det er der mange gode
grunde til at lade være med at have, men hvis du virkelig vil, kan du
sagtens råde bod på dette.

I bash:

export PATH=$PATH:.

For at gøre dette permanent, sættes det ind i din .bash_profile eller
..profile.

I tcsh:

setenv PATH $PATH:.

For at gøre dette permanent skal det sættes ind i .tcshrc eller
..cshrc.

Nu skal der nok være nogen, der fortæller mig at jeg har glemt et
eller andet...

Venligst

Simon

--
The good Christian should beware of mathematicians, and all those who
make empty prophecies. The danger already exists that the
mathematicians have made a covenant with the devil to darken the
spirit and to confine man in the bonds of Hell. -- St. Augustin

Morten Winther (06-12-2001)
Kommentar
Fra : Morten Winther


Dato : 06-12-01 12:58


"Simon Kristensen" <spam_me_senseless@simonsays.dk> wrote in message
news:m3itbksgki.fsf@chaos1.york.ac.uk...

> Det burde det nu. I DOS er der også sat en path, men den indeholder
> pr def. allerede det directory, du pt. er i. Du har formodentlig ikke
> dit nuværende directory i din path under BSD. Det er der mange gode
> grunde til at lade være med at have, men hvis du virkelig vil, kan du
> sagtens råde bod på dette.

Er det sikkerhedsmæssige grunde eller hva'? Det må du eller en anden gerne
uddybe lidt eller evt henvise til onlone-doc der beskriver dette.

<snip>

> export PATH=$PATH:.

> setenv PATH $PATH:.

Så er jeg med ;-D


/ morten



Simon Kristensen (06-12-2001)
Kommentar
Fra : Simon Kristensen


Dato : 06-12-01 13:13

"Morten Winther" <mw@get2net.dk> writes:

> "Simon Kristensen" <spam_me_senseless@simonsays.dk> wrote in message
> news:m3itbksgki.fsf@chaos1.york.ac.uk...
>
> > Det burde det nu. I DOS er der også sat en path, men den indeholder
> > pr def. allerede det directory, du pt. er i. Du har formodentlig ikke
> > dit nuværende directory i din path under BSD. Det er der mange gode
> > grunde til at lade være med at have, men hvis du virkelig vil, kan du
> > sagtens råde bod på dette.
>
> Er det sikkerhedsmæssige grunde eller hva'? Det må du eller en anden gerne
> uddybe lidt eller evt henvise til onlone-doc der beskriver dette.

Jeg kan ikke lige komme på et dokument, der beskriver de
sikkerhedsmæssige implikationer, men jeg formoder at ræsonæmentet er
at en bruger nødigt skulle komme til at køre et program, der ikke er
tilsigtet. Lad of f.eks. antage, at jeg får listet mig til at parkere
et program i dit c++ directory, der hedder gcc, men i virkeligheden
bare er et shell-script der kalder rm -rf $HOME/*. Det ville jo være
stor skade, hvis du troede, at du kompilede, men i virkeligheden kørte
ovenstående.

> > export PATH=$PATH:.
>
> > setenv PATH $PATH:.
>
> Så er jeg med ;-D

Jammen dog - velkommen til

Simon

--
The good Christian should beware of mathematicians, and all those who
make empty prophecies. The danger already exists that the
mathematicians have made a covenant with the devil to darken the
spirit and to confine man in the bonds of Hell. -- St. Augustin

Morten Winther (06-12-2001)
Kommentar
Fra : Morten Winther


Dato : 06-12-01 13:12

Tak til jer begge for svarene.

"Simon Kristensen" <spam_me_senseless@simonsays.dk> wrote in message
news:m3elm8sg29.fsf@chaos1.york.ac.uk...

> Jeg kan ikke lige komme på et dokument, der beskriver de
> sikkerhedsmæssige implikationer, men jeg formoder at ræsonæmentet er
> at en bruger nødigt skulle komme til at køre et program, der ikke er
> tilsigtet. Lad of f.eks. antage, at jeg får listet mig til at parkere
> et program i dit c++ directory, der hedder gcc, men i virkeligheden
> bare er et shell-script der kalder rm -rf $HOME/*. Det ville jo være
> stor skade, hvis du troede, at du kompilede, men i virkeligheden kørte
> ovenstående.

Det må siges at være en god grund til at passe på.

Så blev jeg også klogere i dag. Gad vide hvad det ender med?

>
> Jammen dog - velkommen til

Jov tak du.

/ morten





Peter Makholm (06-12-2001)
Kommentar
Fra : Peter Makholm


Dato : 06-12-01 12:54

"Morten Winther" <mw@get2net.dk> writes:

> Hvorfor nu lige det? Det giver ikke mening for en der kun har brugt dos før.

I Dos ligger det aktuelle katalog (.) implicit i begyndelsen af din
PATH, sådan er det ikke under unix, der er det aktuelle katalog ofte
slet ikke i din PATH.

Tilføj . til din PATH, så skulle det virke som du forventer.

$ export PATH=$PATH:.

(Der er sikkerhedsgrunde til at . ikke er med i PATH som standard)

--
Når folk spørger mig, om jeg er nørd, bliver jeg altid ilde til mode
og svarer lidt undskyldende: "Nej, jeg bruger RedHat".
-- Allan Olesen på dk.edb.system.unix

Peter Makholm (06-12-2001)
Kommentar
Fra : Peter Makholm


Dato : 06-12-01 13:04

"Morten Winther" <mw@get2net.dk> writes:

> Er det sikkerhedsmæssige grunde eller hva'? Det må du eller en anden gerne
> uddybe lidt eller evt henvise til onlone-doc der beskriver dette.

Når . er i din PATH kan systemets opførelse ændre sig afhængigt af
hvor du står i systemet. Hvis du for eksempel har onde brugere på
systemet kunne de måske finde på at lave et script i /tmp der hed
ls-la som lavede underlige ting.

Det ville være meget let at komme til at udføre dette script ved en
fejl.

--
Når folk spørger mig, om jeg er nørd, bliver jeg altid ilde til mode
og svarer lidt undskyldende: "Nej, jeg bruger RedHat".
-- Allan Olesen på dk.edb.system.unix

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408907
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste