Voici ce que j'ai noté lors de ma conférence:
.bashrc
dans votre répertoire personnelvi .bashrc
Le problème est que je n'ai pas de fichier .bashrc
dans mon répertoire personnel. Il n'y a qu'un fichier .bash_history
dans ma maison.
Si je vais à la racine, il y a un fichier etc/bash.bashrc
mais ce que je pense, c’est que cela apportera des modifications à tous les utilisateurs et pas seulement à moi. Je veux ajouter ce chemin juste pour moi. Cela ne devrait pas affecter les autres. De plus, il n'y a pas de variable $PATH
dans ce fichier bashrc, donc je suis encore plus confus.
N'oubliez pas qu'il s'agit d'un fichier caché à l'intérieur de votre répertoire personnel (vous ne seriez pas le premier à faire un ls -l
et à croire qu'il n'est pas là).
Faire suite ...
ls -la ~/ | more
Il devrait y avoir un .bashrc
sur la première page. Sinon, créez-le simplement avec
vi ~/.bashrc
Et écrivez simplement la ligne suivante.
PATH=$PATH:~/bin
OU La plupart des distributions conservent un fichier .bashrc
standard dans /etc/skel/
Vous pouvez le copier dans le répertoire de base.
$cp /etc/skel/.bashrc ~
La plupart des distributions conservent un fichier .bashrc
standard dans /etc/skel/
que vous pouvez simplement copier dans votre répertoire personnel. Sinon, vous pourriez créer un nouveau fichier .bashrc
vide dans votre répertoire personnel.
Dans la section INVOCATION de man 1 bash
, on lit:
Quand un shell interactif qui n'est pas un login est démarré, bash lit et exécute les commandes de /etc/bash.bashrc et ~/.bashrc, si ces fichiers existent.
Notez que ces fichiers de démarrage sont facultatifs ; Bash n'en a pas besoin. Bash fait également la différence entre les shells de connexion et les shells interactifs. Un shell interactif est défini ainsi:
Un shell interactif est un environnement démarré sans arguments non-option et sans l'option -c dont l'entrée standard et l'erreur sont toutes deux connectées à des terminaux (comme déterminé par isatty (3)), ou l'une démarrée avec l'option -i.
De nombreuses distributions utilisent un type de fichier de démarrage de l'autre type, mais d'autres non. Ce problème peut donc être difficile à résoudre de manière canonique. Vous devez examiner tous vos fichiers de démarrage pour voir comment et quand votre ~/.bashrc
sera appelé sur votre système .
S'il vous manque simplement un fichier ~/.bashrc
spécifique à l'utilisateur, créez-en un. Ceci sera invoqué par Bash pour les shells non connectés (par exemple, les shells démarrés sans l'indicateur --login
) ou chaque fois que vous forcerez le shell à être interactif en l'invoquant avec l'indicateur -i
.
Si vous n'avez pas de .bashrc
, vous pouvez simplement en créer un et y ajouter les lignes de votre choix, telles que:
PATH=$PATH:~/bin
pour ajouter votre répertoire bin utilisateur à la fin du chemin.
Mais vous devez faire attention s'il existe d'autres fichiers de démarrage. Les règles relatives aux fichiers utilisés sont plutôt complexes, mais elles sont détaillées dans la page de manuel bash
. Entrez man bash
sur une ligne de commande et recherchez INVOCATION
.
Réponses courtes:
find ~ -maxdepth 1 -name '.bashrc'
vi ~/.bashrc
echo $PATH | grep ~/MyNewCoolProgramFolder
Détaillé:
Je prends une interprétation littérale plus étroite.
"Trouver le fichier .bashrc dans votre répertoire personnel"
Puisqu'il existe la commande find
name__, peut-être que l'éditeur perfide vous suggérerait de l'utiliser:
find ~ -maxdepth 1 -name '.bashrc'
Recherchez dans le répertoire personnel ~
, ne descendez que d’un niveau (pas de sous-répertoire -maxdepth 1
). Pour toutes les options, écrivez man find
.
La ligne en dessous de fera le travail minimum
ls ~/.bashrc
Remarque: Si ~/.bashrc
n'existe pas , vous pouvez le créer avec un simple echo >> ~/.bashrc
.
Le >>
créera le fichier s'il n'existe pas. Si le ~/.bashrc
existe à la place, il ajoutera uniquement la sortie inoffensive de echo
vide, évitant ainsi la suppression involontaire d'un fichier aussi critique, qu'il est par ailleurs difficile de restaurer sans sauvegarde.
(Ce qui suit est parce que rarement je dois honorer la signification de mon pseudo, n'exécutez pas si vous avez un doute).
if [ ! -f ~/.bashrc ] ;
then
cp -i /etc/skel/.bashrc ~/.bashrc ;
else ls -la ~/.bashrc;
fi || echo " # Auto Generated " >> ~/.bashrc
"Faites vi .bashrc
"
Maintenant vous pouvez faire vi ~/.bashrc
, le piège est que vous devez appuyer sur : et q pour quitter !
Dossier d'application et $PATH
Lorsque vous créez un dossier d’application, par exemple ~/MyNewCoolProgramFolder
, la ligne ci-dessous vérifiera uniquement si elle se trouve dans le $PATH
:
echo $PATH | grep ~/MyNewCoolProgramFolder
Vous n'avez pas besoin d'ajouter si est déjà présent. Si nécessaire, vous pouvez ajouter au $PATH
avec
PATH=$PATH:~/MyNewCoolProgramFolder
et d'ajouter cette ligne à ~/.bashrc
si vous voulez la rendre permanente.
"4?!? 4 s'il n'y avait que 3 points?" - Solutions de contournement.
Il existe des solutions de contournement pour ce dernier; Supposons qu'un fichier exécutable nommé CoolDetraveller
n'existe que dans votre nouveau dossier d'application:
(a) Vous pouvez essayer de l'exécuter. Simplement, il ne démarrera pas s'il ne se trouve pas dans le $PATH
.
CoolDetraveller: commande non trouvée
(b) Vous pouvez essayer sa complétion automatique . Commencez à écrire CoolDetravelle
et appuyez sur Tab. S'il se trouve dans le $PATH
, il sera automatiquement complété (toujours si la saisie automatique est activée).
(c) Vous pouvez demander à la commande bash Shell which
d'être utilisée si vous écrivez la commande CoolDetraveller
name__.
which CoolDetraveller
Remarque: Si le chemin de votre application contient un ou plusieurs espaces, which
pourrait ne pas être en mesure de trouver CoolDetraveller
name__, bien que La complétion automatique de CoolDetraveller
en tant que paramètre valide de la commande which
fonctionnera!
Ad nauseam : Vous ne pouvez pas demander whereis CoolDetraveller
car whereis
name__
a un chemin codé en dur, donc peut ne pas toujours trouver ce que vous cherchez