web-dev-qa-db-fra.com

Alternative non-Sudo à / usr / local / bin pour les scripts courants

J'ai l'habitude de mettre des scripts communs dans /usr/local/bin pour pouvoir les exécuter de n'importe où avec le terminal.

Par exemple, je crée un script Shell nommé 1, le rend exécutable avec chmod +x 1 et le mets dans /usr/local/bin et, à l'intérieur du script, je tape #!/bin/sh sur la première ligne, puis mes commandes. A partir de là, il est très facilement utilisable et rapide à exécuter en tapant

1Entername__

sur le terminal, depuis n'importe quel dossier.

Mon problème est que je travaille actuellement sur un ordinateur sur lequel Sudone peut pas fonctionner et que je ne peux pas espérer l'obtenir non plus. Je ne peux donc pas placer mon script dans /usr/local/bin.

Quelles sont mes options? Existe-t-il un autre chemin avec la même capacité "exécuter de partout", auquel je peux accéder sans Sudoname__, ou un autre moyen d'obtenir quelque chose d'équivalent?

La réponse acceptée à ce post dit

Pour les scripts définis par l'utilisateur, utilisez bin/dans votre répertoire personnel.

J'ai essayé, mais il n'y a pas de dossier bindans mon répertoire personnel et, lorsque j'en ai créé un, je ne pouvais toujours pas exécuter le script ailleurs.

Je suis sous Ubuntu 12.04 LTS.

15
user985366

Quelles sont mes options? Existe-t-il un autre chemin avec la même capacité "exécuter de partout", auquel je peux accéder sans Sudo, ou un autre moyen d'obtenir quelque chose d'équivalent?

Comment faire?

Créez un répertoire dans votre maison pour que vos scripts portent normalement le nom bin comme convention.

mkdir ~/bin

Maintenant, déplacez vos scripts vers bin

mv somescript ~/bin

Maintenant, comment le faire venir de partout?!

Vous devez ajouter le bin au PATH

ouvrez votre .bashrc

gedit .bashrc

et ajoutez cette ligne:

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

N'oubliez pas de remplacer username par votre nom d'utilisateur

Sauvegarder et quitter, puis source le bashrc

source .bashrc

et maintenant vous allez bien, vous pouvez exécuter votre script comme vous le faisiez! mais vous devez noter que cela est lié à votre utilisateur uniquement.

Remarque: il est préférable de renommer vos scripts autres que 1, 2, car vous pourriez avoir des problèmes avec ces noms


METTRE À JOUR:

Vous pouvez faire de même, créez simplement le répertoire bin dans votre maison, puis source ~/.profile au lieu de ~/.bashrc. Depuis que l’ajout du ~/bin à votre PATH est déjà répertorié dans .profile

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

En plus de https://askubuntu.com/a/643030/218015 , vous pouvez également définir un alias dans votre .bashrc pour de petites tâches souvent utilisées. Par exemple.

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

vous créera une "commande" ll, qui fait ls -l et ls sera colorée après avoir défini le pseudonyme. https://wiki.ubuntuusers.de/alias a quelques exemples supplémentaires et un guide pour le configurer.

4
frlan