web-dev-qa-db-fra.com

Aucun fichier bashrc dans mon répertoire personnel

Voici ce que j'ai noté lors de ma conférence:

  • Trouvez 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 est dans la variable de chemin.

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.

11
detraveller

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 ~
13
MangeshBiradar

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.

11
AcId

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

À propos des fichiers de démarrage de Bash

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 .

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

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.

4
CodeGnome

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.

0
user53528

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 étroite.

  1. "Trouver le fichier .bashrc dans votre répertoire personnel"
    Puisqu'il existe la commande findname__, 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 echovide, é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
    
  2. "Faites vi .bashrc"
    Maintenant vous pouvez faire vi ~/.bashrc, le piège 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 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?!? 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é CoolDetravellern'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 CoolDetravelleet 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 whichd'être utilisée si vous écrivez la commande CoolDetravellername__.

        which CoolDetraveller
    

    Remarque: Si le chemin de votre application contient un ou plusieurs espaces, whichpourrait ne pas être en mesure de trouver CoolDetravellername__, bien que La complétion automatique de CoolDetravelleren tant que paramètre valide de la commande whichfonctionnera!

    Ad nauseam : Vous ne pouvez pas demander whereis CoolDetraveller car whereisname__

    a un chemin codé en dur, donc peut ne pas toujours trouver ce que vous cherchez

0
Hastur