[RISOLTO]creare scorciatoie per i comandi

Installazione, configurazione e uso di programmi e strumenti.
mangia91
Prode Principiante
Messaggi: 40
Iscrizione: sabato 5 gennaio 2013, 19:43
Desktop: Gnome
Distribuzione: ubuntu 10.04.4 LTS

[RISOLTO]creare scorciatoie per i comandi

Messaggio da mangia91 »

Premetto che di terminologia ne so davvero poco, anzi praticamente nulla ma, per la tesi sto usando dei programmi che mi permettono di compiere certi lavori
e spesso di questi programmi nelle diverse cartelle ho un eseguibile (il file col rombo blu e gli ingranaggi disegnati) chiamato nomeprogramma.x poi ho un .f e un .dat
dei formati dei file non voglio sapere nulla ma, dal profondo della mia inesperienza ho notato che se uso il programma dando da terminale

Codice: Seleziona tutto

./nomeprogramma.x <input >output
il tutto funziona, ma solo se ho il file eseguibile (il rombo sopracitato).
Quindi dovendo compilare diversi input mi sono copiato tale eseguibile in ogni cartella (strada più banale ma certo non comoda)...
il mio correlatore mi ha fatto tutto un discorso che putroppo non ho afferrato così al volo , ma ciò che ho capito è che se fai ./programma devi avere il programma nella cartella, ESISTE PERÒ un modo per far si che scrivendo programma (senza ./) questo in qualsiasi cartella ci si trova va a pescare da solo il l'eseguibile e il tutto funziona senza copiare da ogni parte il .x.
lui mi ha mostrato come fare ma sinceramente non ho capito nulla, so solo che se scrivo

Codice: Seleziona tutto

locate programma
mi dice dove posso trovarlo, poi lui aveva aperto un file di nome bash... ma da qui i miei ricordi sono vaghi e incerti, e alla fine aveva modificato delle cose e il tutto poi funzionava.

IN SINTESI:
se ho un file.x e so dove è localizzato, come posso creare un comando che digitando da terminale NOMEPROGRAMMA senza mettere prima ./ sappia dove andare a cercare il.x
spero di essere stato chiaro :nono:
Ultima modifica di mangia91 il giovedì 26 settembre 2013, 10:44, modificato 1 volta in totale.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: creare scorciatoie per i comandi

Messaggio da crap0101 »

se (come presumo) usi bash il metodo normale per far questo è mettere lo script/programma deltro a una delle cartelle in cui i programmi vengono cercati per l'esecuzione, che è il meccanismo che ti permette di scrivere

Codice: Seleziona tutto

ls FILE
anzichè

Codice: Seleziona tutto

/bin/ls FILE
le cartelle in questione sono quelle elencate nella variabile d'ambiente (della shell) PATH, le vedi dando il comando

Codice: Seleziona tutto

crap0101@orange:/tmp/foo/bar$ echo $PATH
/home/crap0101/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
quindi, quello che devi fare è copiare il tuo script in una di queste. Solitamente sono cartelle di sistema per cui devi avere i permessi di admin per scriverci dentro, ma c'è un'altra soluzione... se noti, nell'output del comando precedente oltre alle cartelle /usr/*, /bin, etc io ho anche /home/crap0101/bin che è appunto una cartella nella mia home che ho aggiunto apposta per metterci prog usati solo dal mio utente e richiamabili come un qualsiasi altro comando (tipo ls,cat,etc).
Per fare una cosa del genere, vedi modificare "permanentemente" PATH, aggiungendo nel file ~/.bashrc o ~/profile una cosa del genere

Codice: Seleziona tutto

PATH="$HOME/bin:$PATH"
dove al posto di $HOME/bin ci metti il percorso della cartella scelta contenente i programmi che vuoi rendere accessibili.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
mangia91
Prode Principiante
Messaggi: 40
Iscrizione: sabato 5 gennaio 2013, 19:43
Desktop: Gnome
Distribuzione: ubuntu 10.04.4 LTS

Re: creare scorciatoie per i comandi

Messaggio da mangia91 »

crap0101 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4455103#p4455103][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:se (come presumo) usi bash il metodo normale per far questo è mettere lo script/programma deltro a una delle cartelle in cui i programmi vengono cercati per l'esecuzione, che è il meccanismo che ti permette di scrivere

Codice: Seleziona tutto

ls FILE
anzichè

Codice: Seleziona tutto

/bin/ls FILE
le cartelle in questione sono quelle elencate nella variabile d'ambiente (della shell) PATH, le vedi dando il comando

Codice: Seleziona tutto

crap0101@orange:/tmp/foo/bar$ echo $PATH
/home/crap0101/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
quindi, quello che devi fare è copiare il tuo script in una di queste. Solitamente sono cartelle di sistema per cui devi avere i permessi di admin per scriverci dentro, ma c'è un'altra soluzione... se noti, nell'output del comando precedente oltre alle cartelle /usr/*, /bin, etc io ho anche /home/crap0101/bin che è appunto una cartella nella mia home che ho aggiunto apposta per metterci prog usati solo dal mio utente e richiamabili come un qualsiasi altro comando (tipo ls,cat,etc).
Per fare una cosa del genere, vedi modificare "permanentemente" PATH, aggiungendo nel file ~/.bashrc o ~/profile una cosa del genere

Codice: Seleziona tutto

PATH="$HOME/bin:$PATH"
dove al posto di $HOME/bin ci metti il percorso della cartella scelta contenente i programmi che vuoi rendere accessibili.
il metodo usato dal mio prof era il secondo che hai descritto...
quindi apro il file ~/.bashrc (o profile? il mio prof la fatto su bashrc) e poi scrivo path= percorso ottenuto con locate :$path e il gioco è fatto? ora provo
mangia91
Prode Principiante
Messaggi: 40
Iscrizione: sabato 5 gennaio 2013, 19:43
Desktop: Gnome
Distribuzione: ubuntu 10.04.4 LTS

Re: creare scorciatoie per i comandi

Messaggio da mangia91 »

[/quote] ma c'è un'altra soluzione... se noti, nell'output del comando precedente oltre alle cartelle /usr/*, /bin, etc io ho anche /home/crap0101/bin che è appunto una cartella nella mia home che ho aggiunto apposta per metterci prog usati solo dal mio utente e richiamabili come un qualsiasi altro comando (tipo ls,cat,etc).
Per fare una cosa del genere, vedi modificare "permanentemente" PATH, aggiungendo nel file ~/.bashrc o ~/profile una cosa del genere

Codice: Seleziona tutto

PATH="$HOME/bin:$PATH"
dove al posto di $HOME/bin ci metti il percorso della cartella scelta contenente i programmi che vuoi rendere accessibili.[/quote]

ok spiego cosa ho fatto.
ho aperto il file bashrc e ho trovato le righe di comando inserite dal relatore che (in riferimento al programma di nome siesta) sono

Codice: Seleziona tutto

siesta=/home/mangia/siesta-3.1/bin/
export PATH=$siesta:$PATH
allora mi sono detto basterà fare la stessa cosa e per il mio programma che è grid2cube ho fatto

Codice: Seleziona tutto

grid2cube=/home/mangia/siesta-3.1/Util/Grid/
export PATH=$grid2cube:$PATH
ho salvato, ho provato a dare grid2cube da terminale ma nulla.
mi sono accorto che nella cartella inserita come percorso c'era un makefile, sono entrato e ho dato make, si è generato lo script .
rifatto tutto do grid2cube da terminale e zero.
a questo punto mi sale un dubbio, prendo il programma/script/non so come si chiami il rombo azzurro di grid2cube e lo trasferisco nella cartella a cui ha fatto riferimento il mio relatore, quindi siesta-3.1/bin salvo do grid2cube da terminale e sta volta funziona.
come dire che quella del mio prof viene riconosciuta e la mia no. qualcuno sa spiegarmi dove sta l'errore?
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: creare scorciatoie per i comandi

Messaggio da crap0101 »

quando modifichi bashrc o apri una nuova shell oppure devi "ricaricare" il file perchè i cambiamenti abbiano effetto, col comando

Codice: Seleziona tutto

source ~/.bashrc
btw, eviterei di mettere nel PATH cartelle "di lavoro" in cui ci stanno cose estraee (tipo il makefile di cui parli), piuttosto scegli una cartella specifica nella tua home (o da qualche altra parte) in cui raccogli questi comandi script/programmi "extra" che ti servono (al limite li linki solamente) e poi aggiungi solo quella cartella al PATH.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
mangia91
Prode Principiante
Messaggi: 40
Iscrizione: sabato 5 gennaio 2013, 19:43
Desktop: Gnome
Distribuzione: ubuntu 10.04.4 LTS

Re: creare scorciatoie per i comandi

Messaggio da mangia91 »

crap0101 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4455360#p4455360][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:quando modifichi bashrc o apri una nuova shell oppure devi "ricaricare" il file perchè i cambiamenti abbiano effetto, col comando

Codice: Seleziona tutto

source ~/.bashrc
btw, eviterei di mettere nel PATH cartelle "di lavoro" in cui ci stanno cose estraee (tipo il makefile di cui parli), piuttosto scegli una cartella specifica nella tua home (o da qualche altra parte) in cui raccogli questi comandi script/programmi "extra" che ti servono (al limite li linki solamente) e poi aggiungi solo quella cartella al PATH.

che è quello che ha fatto il mio correlatore, e che alla fine ho fatto anche io, tengo una sola cartella e aggiungo li gli script.
Grazie a tutti per la chiarezza e la rapidità
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti