Aggiungi un binario al mio percorso


15

Ho un eseguibile. Voglio eseguire l'eseguibile nel terminale con il nome solo come altri comandi.

Posso mettere la mia in eseguibili /usr/local/bino potrei aggiungere il suo PATHa ~/.bashrc. Entrambi funzioneranno.

Cos'è meglio? C'è qualche differenza?

Risposte:


12

Per esempio, supponiamo che tu abbia un eseguibile myscript. È necessario eseguirlo da un terminale come,

/path/to/myscript

Cambio livello utente

Se si aggiunge il PATHfile eseguibile ~/.bashrc, è possibile eseguire il file eseguibile con il nome solo da qualsiasi punto ( già menzionato in Avinash Raj ), come

myscript

Ma la modifica sarà influenzata a livello di utente . Ciò significa che se hai altri utenti non potrebbero accedere all'eseguibile solo con il nome. Se dispongono delle autorizzazioni necessarie devono eseguire l'eseguibile come,

/path/to/myscript

Inoltre, non sarai in grado di eseguire lo script come sudo in quanto non è in PATHroot, per eseguire come sudoè necessario utilizzare,

sudo /path/to/myscript

cambio di livello di sistema

Se inserisci lo script, /usr/local/binè possibile accedervi a livello di sistema e per tutti gli utenti. In tal caso, qualsiasi utente può eseguire il file eseguibile come (soggetto a disporre delle autorizzazioni appropriate)

myscript

In tal caso è possibile eseguire l'eseguibile come sudoanche come,

sudo myscript

Ora scegli un modo a seconda delle tue necessità.


2

L'aggiunta della posizione del file alla $PATHvariabile nel ~/.bashrcfile ti consentirà di eseguire solo da qualsiasi posizione, mentre inserirla /usr/bin/consentirà a tutti gli utenti del sistema di eseguire quel file da qualsiasi posizione.

Perché? Perché, il tuo ~/.bashrcfile è visibile solo a te come utente. Quindi tutte le modifiche alle variabili fatte sono limitate a te. Considerando che l'aggiunta di quel file /usr/binconsentirà al file di rimanere lì per tutti gli utenti e poiché /usr/binè presente nella $PATHvariabile a meno che qualcuno non lo rimuova, consentirà a tutti gli utenti di eseguirlo da qualsiasi posizione.


1

Se si inserisce il file eseguibile in /usr/bino /usr/local/bin, sarà possibile eseguire quel programma specificando solo il nome ( your-programanziché /usr/local/bin/your-program).

Se invece aggiungi la directory che contiene il programma al ~/.bashrcfile PATH, allora qualsiasi file eseguibile presente in quella directory può essere avviato solo digitandone il nome.


1
Questa informazione è falsa, è possibile avviare il file eseguibile anche se non ci si trova in "quella directory".
Lekensteyn,

Come è falso ?, per favore, spiega un po 'di più.
Avinash Raj,

1
Ok, ho avuto difficoltà a leggere la tua risposta (e quindi ho fatto un errore), quindi l'ho modificata per rimuovere la confusione e remotare il downvote. Speriamo che aiuti.
Lekensteyn,

Quindi, la domanda è: cosa c'è di meglio? C'è qualche differenza? Praticamente non hai detto altro che il PO.
Radu Rădeanu,

Ho risposto alla domanda del sistema operativo, ma non in un formato breve.
Avinash Raj,

0

Proprio come complemento alla risposta di @souravc ...

Per la "Modifica del livello utente", invece di modificare il ~/.bashrcfile puoi semplicemente creare la directory $HOME/bin/e inserire gli script.

La directory verrà automaticamente aggiunta a PATH(almeno da Ubuntu 12.04), il che significa che sarai in grado di eseguire tutti gli script / eseguibili all'interno di quella directory con un semplice:

myscript

Solo i miei 2 centesimi. :)

PS: ho provato a postare questo come commento alla risposta di @souravc, ma non avevo abbastanza reputazione. :-(

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.