Ændring af PATH..?

Få hjælp til at sætte programmer eller funktioner op.
soundpartner
Indlæg: 3461
Tilmeldt: 27. sep 2008, 23:51
IRC nickname: sound
Geografisk sted: København

Re: Ændring af PATH..?

Indlæg af soundpartner »

Jakob77 skrev:
ChrisBuchholz skrev:Ja på nuværende tidspunkt, ville jeg også tro at det ville ændre path indtil genstart af X, men hvad er det for et resultat du får i stedet?



Jeg tror nok, at det var Per Højholt, der engang sagde, at det er gentagelsen, som skaber fremskridt. :wink:

Vil du afprøve det på din maskine, for jeg får ingen nævneværdig ændring af PATH, når jeg kører kommandoerne via et script.
Tastet ind fra terminalen er en anden historie.

testscript:

Kode: Vælg alt

#!/bin/bash
export PATH=$PATH:$HOME/Menu/system/bin

nu brugte jeg ca. 2 min på at google dit prolem og komfrem tl denne side http://www.troubleshooters.com/linux/prepostpath.htm
den siger sådan ca at du har ret i at i scriptet virker det kun i selve scriptet. men giver dig en eventuel løsning, eller du kan adde et ar linier til ~/.bash_profile eller /etc/profile
Selvudnævnt guru når det drejer sig om mobilt bredbånd

Webmaster og stifter af:
Billede
Hvor du finder scripts til en hver situation

Billede
cmay
Indlæg: 461
Tilmeldt: 24. feb 2009, 22:45

Re: Ændring af PATH..?

Indlæg af cmay »

jeg har læst en del på ubuntu forums subforums for programming hvor jeg fordi jeg lære c programming som vane altid læse alle indlæg om morgen. der var ikke for længe siden en tråd om PATH og ændring af denne således at man kunne køre nogle build /makefiles lidt nemmer.
hvori at der kom en lidt mere erfaren bash shellscripter til sidst med en advarsel om at fordi i gamle dage hvor rootkits lige var begyndt på unix systemer at kunne blive farlige udnyttede man dette at hvis folk lavede om på de stier og forud definerede path som der i unix linux bsd osv osv så kunne man trickse et rookit ind ved at udnytte det at standard path var ændret.
jeg vil ikke fortælle her hvordan. søg selv på google hvis sådanne ting har interesse. jeg har heller ikke noget at bruge de ting til selv så det er bare information jeg har i baghovedet.

mit spørgsmål til dig er om du er helt klar over om dine ændringer kan betyde en sikkerheds risiko og i så fald hvis de er hvordan vil du forhindre dine ændringer kan evt kan misbruges hvis uheldet er ude..


min pointe med resten af dette indlæg er at for mig at se så er du ikke helt heller ikke så velbevandret i selve scripting at du kan få noget som helst ud at bruge mere tid på at lege med path. brug tiden på at lære sed og awk som man jo også lære når man begynder på bash scripts.

istedet for at bruge tid på at spekulere mere i den path så følg heller en tutorial eller to som starter ved hello world og så slutter med at du kender og forstår kommandolinjen og de mange værktøjer der er tilrådighed.

du kan selv skrive programmer som grep more cat wc også videre med bash. jeg lære c ved at skrive de programmer igen ligge dem i min bin og teste dem og der er aldrig nogen sinde et tidspunkt hvor jeg har måtte ændre i path eller andre system instillinger for at kunne skrive mine egne versioner af allerede eksisterene unix programmer.

jeg siger dette her alene af den grund at du ender med at blive dybt frusteret over at du ikke kan få dit project til at lykkes fordi du ikke kender sproget godt nok endu. og ender med at spilde alt din tid på denne path og så ender med ikke at lære noget som helst.

for et halvt år siden startede jeg med at designe en shell som jeg vil skrive i c og det er først nu jeg skal til at lære ncurses samt dyber forståelse af shellen og hvordan den fungere internt for at kunne begynde at skrive på den. tiden indtil man lære om parsing af commandoer og implementer et programmerings sprog samt holde styr på fork processer er lang for mig som begynder.. målet er ikke endu at lave en programmbar shell men med tiden vil jeg gerne prøve dette også.

ligesom i dit tilfælde kan man sige om den tid jeg har ventet at man skal kende et system til bunds for man kan lave en vellykket menu til den. det er det som du ikke kan gøre fordi du ikke har erfaringen endnu og for at få den erfaring er du nødt til at give dig tid til at blive i stand til at bruge pipes og de værktøjer der er tilrådighed som standard i alle unix systemer udfra de standarder de følger som er nøje specificeret og så forstå om nødvendigheden af hvad du laver er tilstede.

jeg har et script som selv regner ud om jeg er på min ubuntu 8.10 64bit eller 32 bit og installere så derudfra de restrictive codecs og keyrings til den pågældene version. jeg har skrevet det i perl og som en øvelse kunne du starte med at lave et sådan script der gjorde det muligt at de meget mere uerfarne brugere kunne bare indtaste navnet på dit script og så klarede dit script alt det terminal arbejde for dem. det med at installere alle de codecs er der faktisk mange de klager sig over er for svært.

øvelse gør mester og før det ligge på rygraden med syntaxt , statements og sprogkontruktioner variabler og konventioner osv osv så lad være med at begynde at skrive på et project for det ender som regelt galt hvis man prøver at udføre noget som man ikke har lært hvordan man skal gøre endu.

iøvrigt så vil jeg lige nævne at jeg har ingen planer om at lave en c programs version af dette perl script da behovet ikke er tilstede. det vil nemlig tage længere tid at installere mit program for at slippe for at bruge tid på terminalen end det ville at slå op på ubuntu forums dokumentation kopier hvad der allerede står der om emnet og så selv lave et lille install codecs script. for at installere mit program som source da jeg ikke kan kan få en .deb ind i synaptic bare lige sådan kræver det at man installere build-essentials fra terminalen derefter køre ./configure make make install og det er mere kompliceret end at bare taste de ting ind ved håndkraft som kræves for at får de codecs for nogle hvis ikke de fleste.
har grå stær. forklare mine (ofte) stavefejl

Kode: Vælg alt

#include <stdio.h>
int main(int argc, char** argv) { int beer; for(beer = 100;beer > 0; beer--)printf("%d bottles of beer%s on the wall take %d down and pass it around \n",beer,beer == 1 ? "":"s",beer -1); return 0;}
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

soundpartner skrev:nu brugte jeg ca. 2 min på at google dit prolem og komfrem tl denne side http://www.troubleshooters.com/linux/prepostpath.htm
den siger sådan ca at du har ret i at i scriptet virker det kun i selve scriptet. men giver dig en eventuel løsning, eller du kan adde et ar linier til ~/.bash_profile eller /etc/profile


Mange tak fordi du ville bruge ca 2 minutter på reelt at løse min udfordring. Det er noget sjovere, end bare at få høvl, fordi man vover at stille den. :)

Men det løser så vidt jeg kan se ikke noget særligt i forhold til at ændre PATH via et script.
Det minder meget om ChrisBuchholz forslag først i tråden:
viewtopic.php?p=39142#p39142


Din henvisning giver mig måske denne scriptsyntaks til konkurrence med den foregående:

Kode: Vælg alt

#!/bin/bash
PATH=$PATH:$HOME/Menu/system/bin
export PATH


Men den ser ikke ud til at gøre nogen forskel hos mig.
soundpartner
Indlæg: 3461
Tilmeldt: 27. sep 2008, 23:51
IRC nickname: sound
Geografisk sted: København

Re: Ændring af PATH..?

Indlæg af soundpartner »

Jakob77 skrev:
soundpartner skrev:nu brugte jeg ca. 2 min på at google dit prolem og komfrem tl denne side http://www.troubleshooters.com/linux/prepostpath.htm
den siger sådan ca at du har ret i at i scriptet virker det kun i selve scriptet. men giver dig en eventuel løsning, eller du kan adde et ar linier til ~/.bash_profile eller /etc/profile


Mange tak fordi du ville bruge ca 2 minutter på reelt at løse min udfordring. Det er noget sjovere, end bare at få høvl, fordi man vover at stille den. :)

Men det løser så vidt jeg kan se ikke noget særligt i forhold til at ændre PATH via et script.
Det minder meget om ChrisBuchholz forslag først i tråden:
viewtopic.php?p=39142#p39142


Din henvisning giver mig måske denne scriptsyntaks til konkurrence med den foregående:

Kode: Vælg alt

#!/bin/bash
PATH=$PATH:$HOME/Menu/system/bin
export PATH


Men den ser ikke ud til at gøre nogen forskel hos mig.

så skulle du læse linket igen for der er også løsningen til at ændre path for en enkeltuser, alle brugere (men ikke root) samt for root
Selvudnævnt guru når det drejer sig om mobilt bredbånd

Webmaster og stifter af:
Billede
Hvor du finder scripts til en hver situation

Billede
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

soundpartner skrev:så skulle du læse linket igen for der er også løsningen til at ændre path for en enkeltuser, alle brugere (men ikke root) samt for root


Ja, men ikke via et script, som jeg strikker sammen og kører når det passer mig.
Det kan måske så ikke lade sig gøre for nuværende, og det tager jeg selvfølgelig til efterretning, at du ikke har en løsning, selvom det er tæt på.
Bare vi så også i andre tråde fremover er enige om, at det faktisk forholder sig sådan, at man ikke kan ændre PATH permanent uden at ændre på systemets boot-filer.
soundpartner
Indlæg: 3461
Tilmeldt: 27. sep 2008, 23:51
IRC nickname: sound
Geografisk sted: København

Re: Ændring af PATH..?

Indlæg af soundpartner »

Jakob77 skrev:
soundpartner skrev:så skulle du læse linket igen for der er også løsningen til at ændre path for en enkeltuser, alle brugere (men ikke root) samt for root


Ja, men ikke via et script, som jeg strikker sammen og kører når det passer mig.
Det kan måske så ikke lade sig gøre for nuværende, og det tager jeg selvfølgelig til efterretning, at du ikke har en løsning, selvom det er tæt på.
Bare vi så også i andre tråde fremover er enige om, at det faktisk forholder sig sådan, at man ikke kan ændre PATH permanent uden at ændre på systemets boot-filer.

du kan sagtens ændre path fra et script, men du kan ikke gøre det midlertidigt ud over hvor længe scriptet kører.

hvis du vil ændre path for din bruger burde følgende script fikse det:

Kode: Vælg alt

#!/bin/bash
echo "PATH=$PATH:$HOME/Menu/system/bin" >> .bash_profile
echo "export PATH" >> .bash_profile

om en genstart af x (evt reboot) er nødvendig ved jeg dog ikke
du kan så evt undersøge hvad der ellers står i din .bash_profile og så evt slette den eller rette den til en backup foretaget på et tidspunkt
Selvudnævnt guru når det drejer sig om mobilt bredbånd

Webmaster og stifter af:
Billede
Hvor du finder scripts til en hver situation

Billede
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

soundpartner skrev:du kan sagtens ændre path fra et script, men du kan ikke gøre det midlertidigt ud over hvor længe scriptet kører.

hvis du vil ændre path for din bruger burde følgende script fikse det:

Kode: Vælg alt

#!/bin/bash
echo "PATH=$PATH:$HOME/Menu/system/bin" >> .bash_profile
echo "export PATH" >> .bash_profile

om en genstart af x (evt reboot) er nødvendig ved jeg dog ikke


Mange tak for en spændende syntaks, som jeg måske tror, at jeg kan finde nyttig. :)
Men det er jo stadig en ændring af en boot-fil
Hvis jeg har ret, så tilføjes de to linjer i bunden af systemfilen, hvergang scriptet køres.
soundpartner
Indlæg: 3461
Tilmeldt: 27. sep 2008, 23:51
IRC nickname: sound
Geografisk sted: København

Re: Ændring af PATH..?

Indlæg af soundpartner »

Jakob77 skrev:
soundpartner skrev:du kan sagtens ændre path fra et script, men du kan ikke gøre det midlertidigt ud over hvor længe scriptet kører.

hvis du vil ændre path for din bruger burde følgende script fikse det:

Kode: Vælg alt

#!/bin/bash
echo "PATH=$PATH:$HOME/Menu/system/bin" >> .bash_profile
echo "export PATH" >> .bash_profile

om en genstart af x (evt reboot) er nødvendig ved jeg dog ikke


Mange tak for en spændende syntaks, som jeg måske tror, at jeg kan finde nyttig. :)
Men det er jo stadig en ændring af en boot-fil
Hvis jeg har ret, så tilføjes de to linjer i bunden af systemfilen, hvergang scriptet køres.

hvilket igen fører mig til at du har taget munden ALT fr fuld og roder med noget du ikke skal, bør og burde pille ved.

ja det ændrer i en fil, og kører du scriptet 10 gange så står linierne der 10 gange hvilket igen er grunden til at du skal vide hvad du laver, og at du skal bygge dine scripts rigtigt op. men hvis ellers der er bare lidt celler at rykke rundt med inde i dit hovede så tror jeg nu godt at du kan finde på en løsning selv. Hvis ikke så må du jo spørge igen og så skal jeg se om jeg har overskud til at give dig en løsning på et sølvfad.

***hint*** måske ku man føre linierne ind i et andet script som "installerer" din menu og slutte dette script af med en reboot og så ville det virke fint efterfølgende
Selvudnævnt guru når det drejer sig om mobilt bredbånd

Webmaster og stifter af:
Billede
Hvor du finder scripts til en hver situation

Billede
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

soundpartner skrev:ja det ændrer i en fil, og kører du scriptet 10 gange så står linierne der 10 gange hvilket igen er grunden til at du skal vide hvad du laver, og at du skal bygge dine scripts rigtigt op. men hvis ellers der er bare lidt celler at rykke rundt med inde i dit hovede så tror jeg nu godt at du kan finde på en løsning selv. Hvis ikke så må du jo spørge igen og så skal jeg se om jeg har overskud til at give dig en løsning på et sølvfad.

***hint*** måske ku man føre linierne ind i et andet script som "installerer" din menu og slutte dette script af med en reboot og så ville det virke fint efterfølgende


Jeg har slet ikke kørt scriptet, fordi jeg kunne se, at det ville gøre noget, som jeg ikke havde lyst til. :wink:

Det er jo netop mit ønske at finde en løsning, så jeg ikke behøver at rode med systemfiler.
Ellers kan jeg sagtens se dit hint, og det kan måske også blive enden på det til menusystemet.


Men det undrer mig, at de skriver:

# If, within the script, you export the environment variable it is effective within any programs called by the script. Note that it is not effective within the program that called the script.


Men hvis jeg kører dettet script:

Kode: Vælg alt

PATH=$PATH:$HOME/Menu/system/bin
export PATH
gnome-terminal


så åbnes der en ny terminal, men i den er PATH heller ikke ændret.
Det har jeg også været omkring tidligere. Her synes jeg bare, at det strider direkte imod instruktionen.
ChrisBuchholz
Indlæg: 333
Tilmeldt: 29. okt 2008, 23:39
IRC nickname: ChrisBuchholz
Geografisk sted: Nyborg, Fyn, Danmark

Re: Ændring af PATH..?

Indlæg af ChrisBuchholz »

@Jakob77:

Nå, så måtte jeg til at hive mine bøger frem.
Problemet er at når du kører et script på normalvis, så køres det i det der kaldes en sub-shell - dvs. en i en slags sandkasse, der søger for at når man f.eks. ændre path deri, så bliver det kun ændret for selve scriptet, og ikke for hele maskinen.
Løsningen er derfor at source' sit script, så det køres direkte i shell.

Kode: Vælg alt

# en måde er source scriptet på
. scriptname

# en anden måde hvor vi definere stien til scriptet
. /sti/til/scripts/scriptname

# og en tredje måde
source scriptname

# og til sidst
source /sti/til/scripts/scriptnavn
læg mærke til at der, i de to første eksempler, skal være et mellem filnavnet og punktummet


UPDATE
Ah - jeg kan se at tråden er kørt en del længere, siden den besked jeg svarede på, hvilket var den med hvordan han fik sin path til at hænge ved i den pågældende session.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

ChrisBuchholz skrev:@Jakob77:

Nå, så måtte jeg til at hive mine bøger frem.
Problemet er at når du kører et script på normalvis, så køres det i det der kaldes en sub-shell - dvs. en i en slags sandkasse, der søger for at når man f.eks. ændre path deri, så bliver det kun ændret for selve scriptet, og ikke for hele maskinen.
Løsningen er derfor at source' sit script, så det køres direkte i shell.

Kode: Vælg alt

# en måde er source scriptet på
. scriptname

# en anden måde hvor vi definere stien til scriptet
. /sti/til/scripts/scriptname

# og en tredje måde
source scriptname

# og til sidst
source /sti/til/scripts/scriptnavn
læg mærke til at der, i de to første eksempler, skal være et mellem filnavnet og punktummet


UPDATE
Ah - jeg kan se at tråden er kørt en del længere, siden den besked jeg svarede på, hvilket var den med hvordan han fik sin path til at hænge ved i den pågældende session.



Vil du bruge det i forbindelse med denne kode?:

Kode: Vælg alt

gnome-terminal --command="bash /sti/til/scriptet.sh"


Hvis jeg ikke skal gætte en hel masse, så vil det være en stor hjælp, hvis du strikker et helt eksempel sammen, som jeg kan kigge på.
Jeg skal nok lade være med at skælde særlig meget ud, selvom du laver en fejl, der kan slette hele computeren. :wink:
ChrisBuchholz
Indlæg: 333
Tilmeldt: 29. okt 2008, 23:39
IRC nickname: ChrisBuchholz
Geografisk sted: Nyborg, Fyn, Danmark

Re: Ændring af PATH..?

Indlæg af ChrisBuchholz »

Det må vel så give

Kode: Vælg alt

gnome-terminal --command="source /sti/til/scriptet.sh"