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.