J'ai ajouté un chemin de répertoire au chemin système ( $PATH
) en exécutant,
export PATH=$PATH:/home/avinash/Desktop/raj
Maintenant, mon chemin ressemble à ceci,
$ echo $ PATH / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games : / home / avinash / Bureau / raj
Je souhaite supprimer /home/avinash/Desktop/raj
de la variable de chemin d'accès système en utilisant la commande ( comme la commande d'exportation le fait lors de l'ajout de chemin d'accès ).
command-line
Avinash Raj
la source
la source
Réponses:
L'exécution
export PATH=$PATH:/...
ne définit pas votrePATH
système à l'échelle. C'est juste une variable shell. Démarrez un nouveau shell et BOOM , c'est parti. Évidemment, si vous l'avez ajouté à~/.bashrc
(ou à un autre fichier d'amorçage d'environnement), vous devrez annuler ce changement, mais cela ne ressemble pas à votre problème ici.Si vous êtes désespéré de ne pas démarrer un nouveau shell, vous pouvez le définir en le supprimant manuellement, avec:
la source
Dans votre shell actuel (votre session actuelle de gnome-terminal), vous pouvez le faire en utilisant:
En général:
supprime la correspondance la plus courte
$substring
de l' arrière de$string
.Consultez la manipulation des chaînes pour plus d'informations.
la source
Si vous souhaitez l'utiliser comme commande, voici un petit script:
Nommez-le
unexport
et ajoutez-le à votre CHEMIN.Usage:
unexport /usr/local/bin /bin /sbin
Ce script ne change pas votre réalité
PATH
. Si vous voulez que le script le fasse, vous devez changer la dernière ligne. Remplacerecho "export PATH=$PATH"
parexport PATH=$PATH
la source
Si vous placez l'
export
instruction dans un fichier d'initialisation de shell comme~/.bashrc
, vous pouvez utiliser les commandes suivantes dans le terminal,Il supprimera le dossier du chemin.
Si vous avez exporté le chemin depuis un terminal
Le dossier sera dans le chemin tant que vous serez dans ce shell. Pour écraser le chemin, vous devez attribuer un nouveau chemin. Comme oli déjà mentionné dans l'autre réponse.
Vous pouvez utiliser la commande suivante pour définir l'ancien chemin
Ou simplement
Ceci est le remplacement de sous-chaîne,
la source
Un hack sale est
tr
grep -v
, etpaste
.cela ne fonctionnera probablement pas bien si un dir dans PATH a
:
ou une nouvelle lignesi vous vous en sortez beaucoup, envisagez d'en faire une fonction et d'enregistrer votre profil shell (par exemple
.bashrc
,.zshrc
)la source
export PATH=$PATH:/home/avinash/Desktop/raj
(Ici, vous avez ajouté le fichier à la variable de chemin d'accès.)echo $PATH
Si vous exécutez cette commande, voici la sortie:
Comment le supprimez-vous du chemin? il suffit d'exécuter
C'est un concept de remplacement de chaîne.
la source
La commande intégrée du shell
export
ne détermine pas si une variable est définie ou non, elle détermine si la variable et sa valeur sont également définies dans des sous-processus.La modification d'une variable, exportée ou non, n'affecte pas le processus parent ou supérieur, donc la changer dans un script n'a aucun effet à moins que ce script ne soit exécuté avec
source
.Une fonction shell:
supprimera le dernier composant de la variable PATH. Son
export
statut n'est pas affecté.la source
déclarez -x PATH = "/ desire / path / you_want" si je ne me trompe pas, cela mettra à jour ce que vous voulez et c'est à votre entière demande ce que ce sera. [Assurez-vous que vous exécutez en tant que root ET en tant qu'utilisateur souhaité pour lequel vous souhaitez que cette modification affecte]. (Ceci est utilisable pour modifier n'importe quelle sortie que vous obtiendrez lorsque vous exécuterez '/ usr / bin / env'. Bien que je ne sais pas si elle est permanente ou non. À cet égard, faites comme indiqué ci-dessus et modifiez ~ / .bashrc pour à coller)
la source