Ændring af PATH..?
-
- Indlæg: 889
- Tilmeldt: 19. dec 2008, 15:52
- IRC nickname: Jakob77
Ændring af PATH..?
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..?
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..?
-
- Indlæg: 5095
- Tilmeldt: 27. apr 2008, 02:16
- IRC nickname: lars_t_h
- Geografisk sted: Fyn
Re: Ændring af PATH..?
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
-
- Indlæg: 333
- Tilmeldt: 29. okt 2008, 23:39
- IRC nickname: ChrisBuchholz
- Geografisk sted: Nyborg, Fyn, Danmark
Re: Ændring af PATH..?
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.
$PATH: delen gør at mappen blot bliver "tilføjet" - hvis dette fjernes så vil ~/Dokumenter/kommandofiler være din eneste path mappe.
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.
Chris Buchholz
http://chrisbuchholz.name
http://chrisbuchholz.name
-
- Indlæg: 889
- Tilmeldt: 19. dec 2008, 15:52
- IRC nickname: Jakob77
Re: Ændring af PATH..?
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)..?
-
- Redaktør
- Indlæg: 5515
- Tilmeldt: 26. apr 2008, 20:52
- IRC nickname: laoshi
- Geografisk sted: Vejle
Re: Ændring af PATH..?
.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 - hvis du ikke står i det directory hvor du kopierer fra skal du efter mv bruge hele stien til filen.
Du kan kopiere et script til /usr/local/bin med
Kode: Vælg alt
sudo mv FILNAVN.sh /usr/local/bin/FILNAVN.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
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
-
- Indlæg: 333
- Tilmeldt: 29. okt 2008, 23:39
- IRC nickname: ChrisBuchholz
- Geografisk sted: Nyborg, Fyn, Danmark
Re: Ændring af PATH..?
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.
Chris Buchholz
http://chrisbuchholz.name
http://chrisbuchholz.name
-
- Indlæg: 333
- Tilmeldt: 29. okt 2008, 23:39
- IRC nickname: ChrisBuchholz
- Geografisk sted: Nyborg, Fyn, Danmark
Re: Ændring af PATH..?
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- hvis du ikke står i det directory hvor du kopierer fra skal du efter mv bruge hele stien til filen.Kode: Vælg alt
sudo mv FILNAVN.sh /usr/local/bin/FILNAVN.sh
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
Chris Buchholz
http://chrisbuchholz.name
http://chrisbuchholz.name
-
- Indlæg: 889
- Tilmeldt: 19. dec 2008, 15:52
- IRC nickname: Jakob77
Re: Ændring af PATH..?
Mange tak for jeres svar. Det er noget, der rykker..!
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..?
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..?
-
- Redaktør
- Indlæg: 5515
- Tilmeldt: 26. apr 2008, 20:52
- IRC nickname: laoshi
- Geografisk sted: Vejle
Re: Ændring af PATH..?
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.
- .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 *.shSå ".sh" er måske et levn fra fortiden
"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
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
-
- Indlæg: 889
- Tilmeldt: 19. dec 2008, 15:52
- IRC nickname: Jakob77
Re: Ændring af PATH..?
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..?
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..?
-
- Indlæg: 889
- Tilmeldt: 19. dec 2008, 15:52
- IRC nickname: Jakob77
Re: Ændring af 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
Kan man få Ubuntu til at køre en ".sh"fil , selvom man kun skriver filens fornavn i terminalprompten..?
-
- Indlæg: 333
- Tilmeldt: 29. okt 2008, 23:39
- IRC nickname: ChrisBuchholz
- Geografisk sted: Nyborg, Fyn, Danmark
Re: Ændring af PATH..?
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.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..?
Men teoretisk set kan en .sh fil også godt være en billedfil, så igen; permissions, permissions, permissions.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
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.
Chris Buchholz
http://chrisbuchholz.name
http://chrisbuchholz.name
-
- Redaktør
- Indlæg: 5515
- Tilmeldt: 26. apr 2008, 20:52
- IRC nickname: laoshi
- Geografisk sted: Vejle
Re: Ændring af PATH..?
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
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
-
- Indlæg: 889
- Tilmeldt: 19. dec 2008, 15:52
- IRC nickname: Jakob77
Re: Ændring af PATH..?
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.
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.
-
- Indlæg: 333
- Tilmeldt: 29. okt 2008, 23:39
- IRC nickname: ChrisBuchholz
- Geografisk sted: Nyborg, Fyn, Danmark
Re: Ændring af PATH..?
Hvis du vil flytte _alle_ filerne fra ~/Dokumenter/Kommandofiler til /usr/local/bin, så siger du bare
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.
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.
Chris Buchholz
http://chrisbuchholz.name
http://chrisbuchholz.name