webForumDet fria alternativet

exec m.fl.?

9 svar · 585 visningar · startad av Swey

SweyMedlem sedan apr. 20003 971 inlägg
#1

Vad är egentligen skillnaden mellan exec <fil>, ./<fil> och <fil> om <fil> är namnet på en fil som ska köras? Jag har inte lyckats förstå detta och jag hittar inget i manualen om det.

Någon som vet? :)

------------------
- Swey
Skriv först, tänk sen!

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#2

<./fil> kör "fil" om den finns i den katalog du står i just nu. <fil> letar efter fil i PATH och kör den om den hittar den.

SweyMedlem sedan apr. 20003 971 inlägg
#3

Går det att göra så att <fil> också kör filen som finns i aktuell mapp(som i Windows/DOS)? Känns lite jobbigt att skriva ./ :)

Och när vi ändå är inne på ämnet starta program. Hur startar man program i bakgrunden som inte är ägda av konsolfönstret? Jag vill kunna starta kwrite från konsolfönstret och stänga det utan att programet avslutas. I Windows gör man det med kommandot start. Hur är det i Linux?

Jag kör fortfarande KDE.

Tack :)

------------------
- Swey
Skriv först, tänk sen!

bughawkMedlem sedan juni 20001 839 inlägg
#4

Swey, om du sätter ett "&" efter kommandot så kommer det att köras i bakgrunden !
Men om du stänger konsollen så tror jag att programmet kommer att dödas också... så för att vara på den säkra sidan kan man ju ha en "mini-commander-applet" eller vad det nu heter som ligger nere i panelen och som man kan skriva kommandon i !

RobbanMedlem sedan dec. 19992 555 inlägg
#5

Går det att göra så att <fil> också kör filen som finns i aktuell mapp(som i Windows/DOS)?

Japp, det går. Viss säkerhetsrisk med det dock (speciellt om du är inloggad som root). Se åtminstone till så att ./ ligger sist i din $PATH, inte först.

Antar att du kör bash? I din hemkatalog bör finnas en fil med namnet .bash_profile (finns ingen sådan kan du skapa den själv). Och i den en rad som ser ut typ:

PATH=$PATH:$HOME/bin

Lägg till :./ på slutet. Nästa gång du loggar in bör du kunna starta program varsomhelst.

Hur startar man program i bakgrunden som inte är ägda av konsolfönstret?

I KDE kan du enklast högerklicka på skrivbordet och välja Kör kommando (kommer inte ihåg den engelska benämningen). Du får då upp ett litet textfönster där du kan starta program på vanligt vis.

------------------
Robban < robban@lipogram.com >

[Redigerat av Robban den 10 okt 2000]

SweyMedlem sedan apr. 20003 971 inlägg
#6

Tack...
Robban,
Run Command heter det.

Men finns det inget sätt att starta oberoende program från konsolen? Eftersom jag har vant mig att använda konsolen för att starta program känns det lite jobbigt att behöva byta till Run Command(eller det bughawk föreslog) varje gång.

------------------
- Swey
Skriv först, tänk sen!

RobbanMedlem sedan dec. 19992 555 inlägg
#7

Hur lat får man bli? Lägg in en genväg då (på skrivbord / i startmeny / i panelen). ;)

Finns ett program för att göra vad du vill. Nämligen screen. Inte så säker på att Red Hats installerar det som standard, men det bör finnas på skivan (typ screen-X.X.X-X.i386.rpm).

För att starta gimp i bakgrunden, och göra dig fri från terminalen du startar från:

screen gimp &

Tryck på enter så har du tillbaka prompten i terminalen. Stänger du sedan terminalen så stannar gimp kvar (förhoppningsvis).

------------------
Robban < robban@lipogram.com >

[Redigerat av Robban den 11 okt 2000]

SweyMedlem sedan apr. 20003 971 inlägg
#8

Tack, fast det var inte så bra eftersom all text försvann från konsolen.

Vad var exec för något?

------------------
- Swey
Skriv först, tänk sen!

RobbanMedlem sedan dec. 19992 555 inlägg
#9

Tack, fast det var inte så bra eftersom all text försvann från konsolen.

Tja, man kan inte få allt här i livet. :)

Vad var exec för något?

Ett inbyggt kommando i bash som gör att programmet du startar ersätter nuvarande process (bash). I normala fall startas en ny process när du startar ett program. Är inte så användbart utom när det gäller att starta ett nytt skal (t.ex. tcsh) som då ersätter bash.

Ett exempel. Öppna ett terminalfönster och skriv vid bash-prompten tcsh. Då startas skalet tcsh. Skriver du nu exit så kommer du tillbaka till bash, eftersom den processen ligger kvar efter att du startat tcsh. Om du i stället från bash skriver exec tcsh så startar tcsh som förut. Skillnaden är nu att tcsh-processen ersätter bash-processen, och skriver du exit nu så kommer terminalfönstret att stängas (eftersom det inte finns någon bash-process som kan ta över).

------------------
Robban < robban@lipogram.com >

SweyMedlem sedan apr. 20003 971 inlägg
#10

Tackar...

------------------
- Swey
Skriv först, tänk sen!

260 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
125 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)