Aucun fichier bashrc dans mon répertoire personnel

14

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

  • Rechercher un fichier .bashrcdans 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 de chemin.

Le problème est que je n'ai pas de .bashrcfichier dans mon répertoire personnel. Il n'y a qu'un .bash_historydossier chez moi.

Si je vais à la racine, il y a un etc/bash.bashrcfichier mais ce que je pense, c'est qu'il fera des changements pour tous les utilisateurs et pas seulement pour moi. Je veux ajouter ce chemin juste pour moi. Cela ne devrait pas affecter les autres. De plus, il n'y a pas de $PATHvariable dans ce fichier bashrc, donc je suis encore plus confus.

détraqueur
la source

Réponses:

20

N'oubliez pas qu'il s'agit d'un fichier caché dans votre répertoire personnel (vous ne seriez pas le premier à le faire ls -let à penser qu'il n'y est pas).

Faites ce qui suit ...

ls -la ~/ | more

Il devrait y en avoir un .bashrcsur la première page. Si ce n'est pas simplement le créer avec

vi ~/.bashrc

Et écrivez simplement la ligne suivante.

PATH=$PATH:~/bin

OU La plupart des distributions conservent un .bashrcfichier standard dans /etc/skel/Vous pouvez le copier dans le répertoire personnel.

$cp /etc/skel/.bashrc ~
MangeshBiradar
la source
OK je comprends ça maintenant. Sur d'autres ordinateurs, je peux taper lego et le logiciel démarre. Sur mon système, le dossier lego est dans mon ~/data/user1/bindossier. J'ai ajouté ce chemin au fichier .bashrc. Maintenant, que dois-je faire pour que lorsque je tape lego, il démarre le logiciel? Dois-je configurer un alias? Si oui, comment? alias lego='<What do i put here???>'
@detraveller Avez-vous ajouté ~/data/user1/binà votre variable d'environnement PATH dans le .bashrcfichier? (ajoutez cette ligne:) export PATH=$PATH:~/data/user1/bin- si c'est le cas, vous devriez pouvoir simplement taper legodans le terminal, et le programme devrait démarrer.
AcId
J'ai ajouté seulement PATH=$PATH:~/data/user1/bin. Vous n'avez pas mentionné l'exportation, donc je ne l'ai pas mis là. Je vais réessayer demain quand je vais à Uni.
detraveller
Mais je me demandais comment dire à bash que legoc'est le mot qui démarre le logiciel?
detraveller
11

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

Acide
la source
4

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

À propos des fichiers de démarrage Bash

De la section INVOCATION de man 1 bashdit:

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, bash lit et exécute les commandes depuis /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 shell démarré sans arguments sans option et sans l'option -c dont l'entrée standard et l'erreur sont tous deux connectés aux terminaux (comme déterminé par isatty (3)), ou un ordinateur démarré avec l'option -i.

De nombreuses distributions source un type de fichier de démarrage de l'autre, mais certains ne le font pas, donc ce problème peut être difficile à résoudre de manière canonique. Vous devez examiner tous vos fichiers de démarrage pour voir comment et quand vous ~/.bashrcserez invoqué sur votre système.

Création de votre fichier de démarrage du shell interactif par utilisateur

Si vous manquez simplement un ~/.bashrcfichier spécifique à l' utilisateur, créez-en un. Cela sera invoqué par Bash pour les shells sans connexion (par exemple les shells démarrés sans l' --loginindicateur), ou chaque fois que vous forcez le shell à être interactif en l'invoquant avec l' -iindicateur.

CodeGnome
la source
0

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

PATH=$PATH:~/bin

pour ajouter votre répertoire bin utilisateur à la fin du chemin.

Mais vous devez être prudent s'il existe d' autres fichiers de démarrage. Les règles concernant les fichiers à utiliser sont assez complexes, mais elles sont détaillées dans la bashpage de manuel. Entrez man bashsur une ligne de commande et recherchez INVOCATION.


la source
0

Réponses courtes:

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

Détail:
je prends une interprétation littérale plus proche.

  1. "Trouver le fichier .bashrc dans votre répertoire personnel"
    Comme il existe la commandefind, peut-être que l' éditeur perfide vous suggérera de l'utiliser:

    find ~ -maxdepth 1 -name '.bashrc'

    Recherchez dans le répertoire personnel ~, descendez d'un seul niveau (pas de sous-répertoire -maxdepth 1). Pour toutes les options, écrivez man find.
    La ligne sous le fera le travail minimal

    ls ~/.bashrc   

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

    Le >>va créer le fichier s'il n'existe pas. Si à la ~/.bashrcplace il existe, il ajoutera uniquement la sortie inoffensive de vide echo, évitant ainsi une suppression involontaire d'un tel fichier critique, qui est d'ailleurs difficile à restaurer sans sauvegarde.

    (Ce qui suit est parce que je dois rarement honorer la signification de mon surnom, ne l'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. "Faire vi .bashrc"
    Maintenant, vous pouvez le fairevi ~/.bashrc, le piège ici est que vous devez appuyer sur:etqpour sortir!

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

    echo $PATH | grep ~/MyNewCoolProgramFolder

    Vous n'avez pas besoin d'ajouter si est déjà là. Si nécessaire , vous pouvez ajouter à la $PATHavec

    PATH=$PATH:~/MyNewCoolProgramFolder

    et d'ajouter cette ligne ~/.bashrcsi vous voulez la rendre permanente.

  4. "4?!? Comment 4 s'il n'y avait que 3 points?" - Solutions de contournement.
    Il existe quelques solutions 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. Il ne démarre tout simplement pas s'il n'est pas dans le $PATH.

    CoolDetraveller: commande introuvable

    (b) Vous pouvez essayer sa complétion automatique . Commencez à écrire CoolDetravelleet appuyez sur Tab. S'il se trouve dans, $PATHil sera automatiquement complété (toujours si la complétion automatique est activée).

    (c) Vous pouvez demander à la whichcommande shell bash d' être utilisée si vous écrivez la commande CoolDetraveller.

        which CoolDetraveller

    Remarque: Si dans votre chemin d'application il y a un ou plusieurs espaces, whichpourrait être incapable de trouver CoolDetraveller, bien que (ici je honore à nouveau mon surnom) l' achèvement automatique de CoolDetravellerun paramètre valide de la whichcommande fonctionnera!

    Ad nauseam : vous ne pouvez pas demanderwhereis CoolDetravellercarwhereis

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

Hastur
la source