Ændring af PATH..?

Få hjælp til at sætte programmer eller funktioner op.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Ændring af PATH..?

Indlæg af Jakob77 »

Når jeg kører terminalkommandoen "set" , så får jeg blandt andet denne linje som svar:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Jeg går ud fra, at det er de mapper, hvor Ubuntu af sig selv søger efter kommandofiler (kørbare scripts), hvis de kaldes i terminalen.
Men jeg vil gerne derforuden have Ubuntu til af sig selv også at kigge i en mappe ved navn "Kommandofiler", som jeg har oprettet under "Dokumenter".

Hvordan gør jeg det..? :)
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Ændring af PATH..?

Indlæg af lath »

Jakob77 skrev:Når jeg kører terminalkommandoen "set" , så får jeg blandt andet denne linje som svar:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Jeg går ud fra, at det er de mapper, hvor Ubuntu af sig selv søger efter kommandofiler (kørbare scripts), hvis de kaldes i terminalen.
Men jeg vil gerne derforuden have Ubuntu til af sig selv også at kigge i en mappe ved navn "Kommandofiler", som jeg har oprettet under "Dokumenter".

Hvordan gør jeg det..? :)


Det er meget nemmere at gøre noget andet:
Flyt dine scripts over i /usr/local/bin. Din PATH har allerede den sti inkluderet. Dermed bliver de også tilgængelige for andre brugere af systemet. Skal de ikke være det skal du bruge chmod til at fjerne rettigheder i "others".

Med den antagelse at dine scripts ender på .sh, så gøres det således i en terminal:

Kode: Vælg alt

sudo cp $HOME/Dokumenter/*.sh /usr/local/bin


/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
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 »

Nu spurgte manden jo hvordan han tilføjer en mappe til sin path, lath...

Det du gør er at du smider følgende i din ~/.bashrc fil - bare nede i bunden et sted.

Kode: Vælg alt

export PATH=$PATH:~/Dokumenter/kommandofiler

$PATH: delen gør at mappen blot bliver "tilføjet" - hvis dette fjernes så vil ~/Dokumenter/kommandofiler være din eneste path mappe.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

ChrisBuchholz skrev:Det du gør er at du smider følgende i din ~/.bashrc fil - bare nede i bunden et sted.

Kode: Vælg alt

export PATH=$PATH:~/Dokumenter/kommandofiler

$PATH: delen gør at mappen blot bliver "tilføjet" - hvis dette fjernes så vil ~/Dokumenter/kommandofiler være din eneste path mappe.


Mange tak, det ser ud til at virke perfekt. :)
Efter jeg har kørt kommandoen viser "set" mig denne path:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/mit-brugernavn/Dokumenter/kommandofiler



Findes der også en enkel kommando, som kan gøre det tilbage igen..?





lath skrev:
Jakob77 skrev:Det er meget nemmere at gøre noget andet:
Flyt dine scripts over i /usr/local/bin. Din PATH har allerede den sti inkluderet. Dermed bliver de også tilgængelige for andre brugere af systemet. Skal de ikke være det skal du bruge chmod til at fjerne rettigheder i "others".

Med den antagelse at dine scripts ender på .sh, så gøres det således i en terminal:

Kode: Vælg alt

sudo cp $HOME/Dokumenter/*.sh /usr/local/bin



Jeg har forsøgt at kopiere mine kommandofiler til /usr/local/bin , men Filhåndteringen vil ikke lade mig gøre det.

Jeg havde tænkt mig at lave mine kommandofiler uden ekstension, men ".sh" er måske standard for kommandofiler (ligesom ".bat" i dos)..?
laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Ændring af PATH..?

Indlæg af laoshi »

.sh er filnavnet for scriptfiler, så det skal du have med for at at et script vil køre.
Du kan kopiere et script til /usr/local/bin med

Kode: Vælg alt

sudo mv FILNAVN.sh /usr/local/bin/FILNAVN.sh
- hvis du ikke står i det directory hvor du kopierer fra skal du efter mv bruge hele stien til filen.
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi
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 skrev:Findes der også en enkel kommando, som kan gøre det tilbage igen..?


Hvis du blot har kørt kommandoen i shell så er den væk igen efter et genstart, det er jeg ret sikker på. Har dog ikke prøvet. Hvis du har smidt kommandoen i din .bashrc fil, så fjerner du den blot igen.
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 »

laoshi skrev:.sh er filnavnet for scriptfiler, så det skal du have med for at at et script vil køre.
Du kan kopiere et script til /usr/local/bin med

Kode: Vælg alt

sudo mv FILNAVN.sh /usr/local/bin/FILNAVN.sh
- hvis du ikke står i det directory hvor du kopierer fra skal du efter mv bruge hele stien til filen.


Nej, det behøver han ikke. Husk på linux kernen er ligeglad med filendelser, alt handler om permissions. Hvis man bare giver filen permissions som en kørbar fil (+x), så kan man kører hvilken som helst fil som et program, ligegyldigt filendelsen.

Kode: Vælg alt

chmod +x minkommandofil
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

Mange tak for jeres svar. Det er noget, der rykker..! :D


ChrisBuchholz

Jeg formoder, at PATH virker på den måde, at der først søges i stiens første mappe, dernæst i nummer to osv...

Hvad så, hvis jeg gerne vil have stien til "Kommandofiler" til at stå først, så det er den allerførste mappe, som Ubuntu søger i..?



laoshi

Er "mv" en forkortelse for noget, der giver mening ("copy") ..? :)

Efter hvad jeg har forsøgt, så ser det ud til at ChrisBuchholz har ret i, at ekstensionen ".sh" er unødvendig for at køre filen.
Så ".sh" er måske et levn fra fortiden..?

Anyway, hvis jeg har den med, så skal den også skrives, hvilket er en ulempe for den dovne tastaturfumler. Derfor vil jeg nok vælge at undlade den, hvis der ikke kommer for mange protester.




PS:

I DOS kan man via en kommandofil (".bat") tilføje en midlertidig PATH således:

SET PSTORE=%PATH%

PATH=C:\tilføjet-path;%PSTORE%



Og når man vil lave det tilbage og rydde op efter sig, kan det gøres det således:

PATH=%PSTORE%

SET PSTORE=




Måske er der et tilsvarende trick i Linux..?
laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Ændring af PATH..?

Indlæg af laoshi »

Er "mv" en forkortelse for noget, der giver mening ("copy") ..? :)

på mange måde som mange kommandoer har en indbygget huskeregel, så har mv det også move
Den fungerer i mangt og meget på samme måde som cp, bortset fra at den ikke efterlader noget på det sted hvor den flytter fra. Og så skal man lige være opmærksom på, at findes der allerede en fil af samme navn og på samme sted som man flytter til, så overskrives den eksisterende fil.
Så ".sh" er måske et levn fra fortiden
- .sh fortæller dig og systemet og alle andre at der her er tale om en scriptfil. Så selv om en fil kan køres uden at hedde *.sh (på samme måde som gedit lige godt læser f.eks. fil1 som fil1.txt) så er det nok nyttigt at kalde sine scriptfiler noget med *.sh
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

 

hmm... nu ved jeg ikke helt, om jeg fik leget for meget med path, "mv", Midnight Commander eller sudo, eller om jeg kom til at skrive for meget i en terminal, som i forvejen kørte noget andet.
Men jeg har i hvert fald mistet min home-mappe på den pågældende PC. Er det ikke flot klaret..? :oops:

Det er nok bedre, at jeg holder mig til "cp" i fremtiden.

Men jeg har problemer med at få visse kommandoer til at køre fra en scriptfil.

F.eks. når den skal bede om password pga. "sudo"

Og hvis jeg skriver "exit" i en scriptfil og kører den for at lukke terminalen.

"export PATH=$PATH:~/Dokumenter/kommandofiler" virker heller ikke fra et script.
Det var ellers min tanke, at jeg ville kalde den i opstarten i stedet for at rette i "~/.bashrc"





Hvis jeg vil tillade argumenter på et script, hvad kaldes de så i scriptet, er det %1, %2, %3 ligesom jeg husker det fra DOS..?
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

laoshi skrev:.sh fortæller dig og systemet og alle andre at der her er tale om en scriptfil. Så selv om en fil kan køres uden at hedde *.sh (på samme måde som gedit lige godt læser f.eks. fil1 som fil1.txt) så er det nok nyttigt at kalde sine scriptfiler noget med *.sh


Kan man få Ubuntu til at køre en ".sh"fil , selvom man kun skriver filens fornavn i terminalprompten..?
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 skrev:Hvad så, hvis jeg gerne vil have stien til "Kommandofiler" til at stå først, så det er den allerførste mappe, som Ubuntu søger i..?
Jeg ved faktisk ikke hvad rækkefølgen er, men jeg ville selv påstå at det er smartere bare at lade vær at kalde sine filer det samme som andre filer i ens path.


laoshi skrev:- .sh fortæller dig og systemet og alle andre at der her er tale om en scriptfil. Så selv om en fil kan køres uden at hedde *.sh (på samme måde som gedit lige godt læser f.eks. fil1 som fil1.txt) så er det nok nyttigt at kalde sine scriptfiler noget med *.sh
Men teoretisk set kan en .sh fil også godt være en billedfil, så igen; permissions, permissions, permissions.
Udover det kan man godt køre en python fil (med endelse) uden at give den kørbare rettigheder ved at skrive python filnavn.py, og man kan også godt køre en bash fil med bash filnavn.sh, men ligeså snart at det faktisk er en fil der skal bruges - dvs. filen virker og den skal nu tages i brug, f.eks. smides i ens PATH, så bør man altid give den kørbare rettigheder og så er der overhovedet ingen grund til at lade filendelsen blive tilbage.
Senest rettet af ChrisBuchholz 8. mar 2009, 13:58, rettet i alt 1 gang.
laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Ændring af PATH..?

Indlæg af laoshi »

Kan man få Ubuntu til at køre en ".sh"fil , selvom man kun skriver filens fornavn i terminalprompten..?

Du kan til en hver tid bruge autofuldførelse af filnavnet i en terminal. Tast de første par tegn i stien/filnavnet og tryk på <tab> - det kan også være med til at minimere tastefejl.
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Ændring af PATH..?

Indlæg af Jakob77 »

ChrisBuchholz skrev:Jeg ved faktisk ikke hvad rækkefølgen er, men jeg ville selv påstå at det er smartere bare at lade vær at kalde sine filer det samme som andre filer i ens path.


Det har jeg nu også tænkt mig. Men jeg går ud fra, at jeg får en hurtigere response fra mit script, hvis Ubuntu ikke først skal søge i flere andre mapper med flere 100 filer.
Jeg er i al hemmelighed ved at lave et super hurtigt "retro-menusystem", så alt det nye gejl godt kan pakke sammen, og derfor vil jeg jo nødigt gå på kompromis med en så vigtig ting. :wink:


Men jeg må nok hellere lave en ny tråd til alle mine spørgsmål angående scriptfiler.

Jeg tror næsten, at jeg på det nuværende grundlag vil følge forslaget fra lath:
Flyt dine scripts over i /usr/local/bin. Din PATH har allerede den sti inkluderet.



Men så vil jeg lave en scriptfil , som kan kopiere alle filer fra mappen "kommandofiler" over til "/usr/local/bin"

Kan det mon tænkes, at kommandoen i scriptet skal se sådan ud?:

Kode: Vælg alt

sudo cp /home/mit-brugernavn/Dokumenter/kommandofiler/*.* /usr/local/bin/


Jeg må hellere få lidt bedre styr på det, så jeg er mere sikker på, at jeg ikke flytter alt indholdet fra min home-mappe udenfor min egen rækkevidde.

Scriptet vil jeg måske kalde for "copytobin.sh" og det skal også ligge i min kommandofilmappe under Dokumenter.
Det er et passende sted, når jeg vil installere filerne, og det er et godt sted, fordi jeg tager backup af den mappe.
Senest rettet af Jakob77 29. apr 2009, 12:16, rettet i alt 1 gang.
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 »

Hvis du vil flytte _alle_ filerne fra ~/Dokumenter/Kommandofiler til /usr/local/bin, så siger du bare

Kode: Vælg alt

sudo cp ~/Dokumenter/Kommandofiler/* /usr/local/bin/


Udover det, så synes jeg også selv at det er smartest at have ens egne scripts i /usr/local/bin - og ikke andre paths - udelukkende fordi meningen med denne mappe, fra systemudviklernes side, netop er dette.