Alternativa non sudo a / usr / local / bin per script comuni


16

Sono abituato a inserire script comuni in /usr/local/binmodo da poterli eseguire da qualsiasi luogo con il terminale.

Ad esempio, creo uno script di shell chiamato 1, lo eseguo chmod +x 1e lo inserisco /usr/local/bin, e all'interno dello script scrivo #!/bin/shsulla prima riga, quindi i miei comandi. Da lì in poi, è molto convenientemente utilizzabile e veloce da eseguire digitando

1Enter

sul terminale, da qualsiasi cartella.

Il mio problema è che attualmente sto lavorando su un computer dove non posso farlo sudoe non posso nemmeno aspettarmi di ottenerlo, quindi non posso inserire il mio script /usr/local/bin.

Quali sono le mie opzioni? Esiste un altro percorso con la stessa funzionalità "corri da qualsiasi luogo", a cui posso accedere senza sudoo un altro modo per ottenere qualcosa di equivalente?

La risposta accettata a questo post dice

Per gli script con ambito utente, utilizzare bin / nella home directory.

Cosa che ho provato, ma non c'è alcuna bincartella nella mia home directory e quando ne ho creata una, non riuscivo ancora a eseguire lo script da nessun'altra parte.

Sono in esecuzione su Ubuntu 12.04 LTS.


2
Non usare 1 o qualcosa del genere come nome dello script. Prova a calcolare qualcosa nella tua shell: ad esempio expr 1 + 1 (e se non lo stai facendo, alcuni script lo faranno ad un certo punto)
frlan

1
@frlan: in che modo sarebbe expr 1 + 1influenzata la presenza di uno script chiamato 1?
psmears,

Vero ... non influisce expr, né bash aritmetica $(( 1 + 1 )).
Campa,

Risposte:


19

Quali sono le mie opzioni? Esiste un altro percorso con la stessa funzionalità "corri da qualsiasi luogo", a cui posso accedere senza sudo, o un altro modo per ottenere qualcosa di equivalente?

Come farlo?

Crea un dir nella tua casa per contenere i tuoi script normalmente chiamati bincome convenzione.

mkdir ~/bin

Ora sposta i tuoi script nel cestino

mv somescript ~/bin

Ora come farlo sintonizzare da ogni parte ?!

Devi aggiungere il binal PERCORSO

apri i tuoi .bashrc

gedit .bashrc

e aggiungi questa riga:

export PATH=$PATH:/home/username/bin

Non dimenticare di sostituire usernamecon il tuo nome utente

Salva ed esci, quindi procedi alla fonte

source .bashrc

e ora stai bene, puoi eseguire il tuo script come facevi prima! ma devi notare che questo è legato solo al tuo utente.

Nota: è meglio rinominare i tuoi script diversi da 1, 2 poiché potresti riscontrare problemi con quei nomi


AGGIORNARE:

Puoi fare lo stesso semplicemente creando la cartella bin nella tua casa, source ~/.profileinvece di ~/.bashrc. Poiché l'aggiunta di ~ / bin al PATH è già elencata in.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Uso in export PATH=$PATH:$HOME/binmodo da poter utilizzare la stessa bashrc per altri account con nomi utente diversi.
Anthony G - giustizia per Monica,

1
Solo per citare ~/bin è $PATHdi default su Ubuntu. Basta eseguire source ~/.profileo disconnettersi / accedere dopo aver creato la directory.
Jacob Vlijm,

@JacobVlijm In quale versione? !!! Uso 12.04, 14.04, 15.04 e nessuno di essi ha ~ / bin in PERCORSO
Maythux,

In tutti loro, lo uso sempre , anche in molte delle mie (accettate) risposte, non ho mai avuto commenti a riguardo, la fa funzionare a casa anche su cinque sistemi, ma, come detto, dopo l'esecuzione source ~/.profile. Vedi (es.) Qui: askubuntu.com/a/247422/72216
Jacob Vlijm

1
Ha detto fonte ~/.profile, non ha mai detto fonte ~/.bashrc. :) Inoltre, come regola generale, le variabili ambientali dovrebbero andare in .profilee non .bashrcin quanto hanno bisogno solo di essere impostato una volta. (niente di tutto questo per dire che la tua risposta non è buona,
intendiamoci

4

Oltre a /ubuntu//a/643030/218015 potresti anche definire un alias all'interno di .bashrc per attività di piccole dimensioni e spesso utilizzate. Per esempio

alias ll='ls -l'
alias ls='ls --color=auto'

ti creerà un "comando" ll, che sta facendo ls -l e ls sarà colorato dopo aver definito l'alias. https://wiki.ubuntuusers.de/alias sta avendo alcuni altri esempi e un howto per configurarlo.

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.