Pas de fichier bashrc dans mon répertoire personnel

Voici ce que j'ai noté dans ma lecture:

  • Trouver le fichier .bashrc dans votre répertoire personnel
  • Faire vi .bashrc
  • Lorsque vous placez un dossier d'application quelque part, assurez-vous que son adresse se trouve dans la variable du chemin d'accès.

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 existe un fichier etc/bash.bashrc là mais ce que je pense, c'est qu'il apportera des modifications pour tous les utilisateurs et pas seulement pour moi. Je veux ajouter ce chemin juste pour moi. Cela ne devrait pas affecter d'autres. En outre, il n'y a pas $PATH variable $PATH dans ce fichier bashrc, de sorte que 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 à penser qu'il n'est pas là).

Faites ensuite …

 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 personnel.

 $cp /etc/skel/.bashrc ~ 

La plupart des distributions conservent un fichier standard .bashrc dans /etc/skel/ vous pouvez simplement copier dans votre /etc/skel/ personnel. Sinon, vous pouvez simplement créer un nouveau fichier .bashrc vide dans votre répertoire personnel.

Créez votre propre fichier de démarrage pour les shells interactifs

À propos de Bash Startup Files

De la section INVOCATION de man 1 bash dit:

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, bash lit et exécute des commandes de /etc/bash.bashrc et ~ / .bashrc, si ces fichiers existent.

Notez que ces fichiers de démarrage sont facultatifs ; Bash ne les exige pas. Bash distingue également les shells de connexion et les shells interactifs. Une coque interactive est ainsi définie:

Un shell interactif est démarré sans arguments sans option et sans l'option -c dont l'entrée et l'erreur standard sont toutes deux connectées aux terminaux (comme déterminé par isatty (3)), ou on a commencé avec l'option -i.

De nombreuses distributions forment un type de fichier de démarrage de l'autre, mais certains ne le font pas, donc ce problème peut être difficile à traiter de façon canonique. Vous devez examiner tous vos fichiers de démarrage pour voir comment et quand votre ~/.bashrc sera invoqué sur votre système.

Création de votre fichier de démarrage interactif par utilisateur Shell

Si vous manquez simplement un fichier ~/.bashrc spécifique à l'utilisateur, créez simplement un. Ceci sera invoqué par Bash pour les shells sans connexion (par exemple, les shells démarrés sans l'indicateur --login ), ou lorsque vous forcez le shell à être interactif en l'invitant avec le drapeau -i .

Si vous n'avez pas de .bashrc , vous pouvez simplement en créer un et ajouter les lignes que vous souhaitez, telles que:

 PATH=$PATH:~/bin 

Pour ajouter votre répertoire bin utilisateur à la fin du chemin d'accès.

Mais vous devriez faire attention s'il existe d' autres fichiers de démarrage. Les règles concernant les fichiers utilisés sont plutôt complexes, mais elles sont détaillées dans la page man de bash . Entrez man bash sur une ligne de commande et cherchez INVOCATION .

Réponses courtes:

  1. find ~ -maxdepth 1 -name '.bashrc'
  2. vi ~/.bashrc
  3. echo $PATH | grep ~/MyNewCoolProgramFolder

Détaillé:
Je prends une interprétation littérale plus proche.

  1. "Trouver le fichier .bashrc dans votre répertoire personnel"
    Puisqu'il existe, la commande find , peut-être que l' éditeur traître vous suggère de l'utiliser:

     find ~ -maxdepth 1 -name '.bashrc' 

    Recherche dans le répertoire d'accueil ~ , descend seulement d'un niveau (pas de sous-fichier -maxdepth 1 ). Pour toutes les options, écris l' man find .
    La ligne ci-dessous fera le travail minimal

     ls ~/.bashrc 

    Remarque: Dans l'éventualité où ~/.bashrc n'existe pas, vous pouvez le créer avec un simple echo >> ~/.bashrc .

    Le >> crée le fichier s'il n'existe pas. Si le ~/.bashrc existe à la place, il n'appliquera que la sortie inoffensive de l' echo vide, en évitant une suppression involontaire d'un fichier critique, qui est incidemment difficile à restaurer sans une sauvegarde.

    (Ce qui suit est parce que rarement je dois honorer la signification de mon surnom, ne pas exécuter si vous avez des doutes).

     if [ ! -f ~/.bashrc ] ; then cp -i /etc/skel/.bashrc ~/.bashrc ; else ls -la ~/.bashrc; fi || echo " # Auto Generated " >> ~/.bashrc 
  2. "Faites vi .bashrc "
    Maintenant, vous pouvez faire vi ~/.bashrc , le piège ici est que vous devez appuyer sur : et q pour quitter!

  3. Dossier d'application et $PATH
    Lorsque vous créez un dossier d'application, par exemple ~/MyNewCoolProgramFolder , la ligne ci-dessous vérifiera seulement s'il se trouve dans $PATH :

     echo $PATH | grep ~/MyNewCoolProgramFolder 

    Vous n'avez pas besoin d'ajouter si cela existe déjà. Si nécessaire, vous pouvez ajouter au $PATH avec

     PATH=$PATH:~/MyNewCoolProgramFolder 

    Et ajouter cette ligne à ~/.bashrc si vous voulez la rendre permanente.

  4. "4?!? Comment 4 s'il n'y avait que 3 points?" – Solutions de contournement.
    Il existe des solutions de rechange 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. Tout simplement, cela ne démarrera pas si ce n'est pas dans $PATH .

    CoolDetraveller: commande introuvable

    (B) Vous pouvez essayer son achèvement automatique . Commencez à écrire CoolDetravelle et appuyez sur Tab . Si c'est dans $PATH il sera automatiquement complété (toujours si l'achèvement automatique est activé).

    (C) Vous pouvez demander au shell bash which commande sera utilisée si vous écrivez la commande CoolDetraveller .

      which CoolDetraveller 

    Remarque: si dans le chemin de votre application il existe un ou plusieurs espaces, which pourrait être impossible de trouver CoolDetraveller , bien que (ici CoolDetraveller mon surnom à nouveau), l' achèvement automatique de CoolDetraveller comme paramètre valide de la commande qui fonctionnera!

    Ad nauseam : Vous ne pouvez pas demander whereis CoolDetraveller parce whereis

    A un chemin codé, donc peut-être pas toujours trouver ce que vous recherchez