Je veux ajouter un petit script au CHEMIN linux, donc je n'ai pas besoin de l'exécuter là où il est physiquement placé sur le disque.
Le script est assez simple, il s'agit de donner accès à apt-get via un proxy, je l'ai fait comme ceci:
#!/bin/bash
array=( $@ )
len=${#array[@]}
_args=${array[@]:1:$len}
Sudo http_proxy="http://user:password@server:port" apt-get $_args
Ensuite, je l'ai enregistré sous apt-proxy.sh, défini sur + x (chmod) et tout fonctionne bien lorsque je suis dans le répertoire où ce fichier est placé.
Ma question est: comment ajouter ceci apt-proxy à CHEMIN pour que je puisse l'appeler comme si c'était le vrai apt -get? [de partout]
Vous recherchez des solutions en ligne de commande uniquement, si vous savez comment faire par GUI c'est sympa, mais pas ce que je cherche.
Essaye ça:
apt-proxy
(sans le .sh
extension) dans certains répertoires, comme ~/bin
.~/bin
dans votre PATH
, en tapant export PATH=$PATH:~/bin
~/.bashrc
. Si vous utilisez zsh
, ajoutez-le à ~/.zshrc
au lieu.apt-proxy
avec vos arguments et il s'exécutera n'importe où.Notez que si vous export
la variable PATH dans une fenêtre spécifique, elle ne sera pas mise à jour dans les autres instances bash.
Vous voulez définir cela répertoire à la variable de chemin, pas au binaire réel, par exemple.
PATH=$MYDIR:$PATH
où MYDIR
est défini comme le répertoire contenant votre binaire, par exemple.
PATH=/Users/username/bin:$PATH
Vous devez mettre cela dans votre script de démarrage, par exemple .bashrc tel qu'il s'exécute chaque fois qu'un processus Shell est appelé.
Notez que l'ordre est important et le CHEMIN est évalué de telle sorte que si un script correspondant à votre nom se trouve dans une entrée antérieure de la variable de chemin, c'est celui que vous exécuterez. Donc vous pourriez nommer votre script comme apt-get
et le mettre plus tôt dans le chemin. Je ne ferais pas ça car c'est déroutant. Vous souhaiterez peut-être rechercher les alias Shell à la place.
Je note également que vous dites que cela fonctionne bien à partir de votre répertoire actuel. Si vous entendez par là que vous avez le répertoire courant dans votre chemin (.
) alors c'est un risque potentiel pour la sécurité. Quelqu'un pourrait mettre une variante de cheval de Troie d'un utilitaire commun (par exemple ls
) dans un répertoire, puis vous amener à cd to
ce répertoire et l'exécuter par inadvertance.
créez un alias pour l'exécutable dans le fichier ~/.bash_profile, puis utilisez-le de n'importe où ou vous pouvez trouver le répertoire contenant les exécutables dont vous avez besoin pour exécuter n'importe où et cela fera l'affaire pour vous.