Brak pliku bashrc w moim katalogu domowym

14

Oto, co zanotowałem po moim wykładzie:

  • Znajdź plik .bashrcw swoim katalogu domowym
  • zrobić vi .bashrc
  • Po umieszczeniu gdzieś folderu aplikacji upewnij się, że jego adres znajduje się w zmiennej ścieżki.

Problem polega na tym, że nie mam .bashrcpliku w moim katalogu domowym. W .bash_historymoim domu jest tylko plik.

Jeśli przejdę do katalogu głównego, tam jest etc/bash.bashrcplik, ale myślę, że wprowadzi zmiany dla wszystkich użytkowników, a nie tylko dla mnie. Chcę dodać tę ścieżkę tylko dla siebie. Nie powinno to wpływać na innych. Również $PATHw tym pliku bashrc nie ma żadnej zmiennej, więc jestem jeszcze bardziej zdezorientowany.

detraveller
źródło

Odpowiedzi:

20

Nie zapominaj, że jest to ukryty plik w twoim katalogu domowym (nie byłbyś pierwszym, który ls -lpomyślałby, że go nie ma).

Wykonaj następujące ...

ls -la ~/ | more

Powinien być .bashrcna pierwszej stronie. Jeśli nie, po prostu go utwórz

vi ~/.bashrc

I po prostu napisz do niego następujący wiersz.

PATH=$PATH:~/bin

LUB Większość dystrybucji trzyma standardowy .bashrcplik w. /etc/skel/Możesz skopiować go do katalogu domowego.

$cp /etc/skel/.bashrc ~
MangeshBiradar
źródło
OK, rozumiem teraz. Na innych komputerach mogę pisać klocki LEGO i uruchamia się oprogramowanie. W moim systemie folder lego znajduje się w moim ~/data/user1/binfolderze. Dodałem tę ścieżkę do pliku .bashrc. Co mam teraz zrobić, aby po wpisaniu lego uruchomić oprogramowanie? Czy muszę skonfigurować alias? Jeśli tak to jak? alias lego='<What do i put here???>'
@detraveller Czy dodałeś ~/data/user1/bindo swojej zmiennej środowiskowej PATH w .bashrcpliku? (dodaj ten wiersz export PATH=$PATH:~/data/user1/bin:) - jeśli tak, powinieneś być w stanie po prostu wpisać legoterminal, a program powinien się uruchomić.
AcD
Dodałem tylko PATH=$PATH:~/data/user1/bin. Nie wspomniałeś o eksporcie, więc go tam nie umieściłem. Spróbuję ponownie jutro, kiedy idę do Uni.
detraveller
Ale zastanawiałem się, jak powiedzieć bash, że legoto słowo uruchamia oprogramowanie?
detraveller
11

Większość dystrybucji zawiera standardowy .bashrcplik, /etc/skel/który można po prostu skopiować do katalogu domowego. W przeciwnym razie możesz po prostu utworzyć nowy pusty .bashrcplik w swoim katalogu domowym.

Kwas
źródło
4

Utwórz własny plik startowy dla interaktywnych powłok

Informacje o plikach startowych Bash

Z sekcji ZAPROSZENIE man 1 bashmówi:

Po uruchomieniu interaktywnej powłoki, która nie jest powłoką logowania, bash czyta i wykonuje polecenia z /etc/bash.bashrc i ~ / .bashrc, jeśli te pliki istnieją.

Pamiętaj, że te pliki startowe są opcjonalne ; Bash ich nie wymaga. Bash rozróżnia również powłoki logowania i powłoki interaktywne. Interaktywna powłoka jest zdefiniowana w następujący sposób:

Powłoka interaktywna to taka, która została uruchomiona bez argumentów nie będących opcjami i bez opcji -c, której standardowe wejście i błąd są podłączone do terminali (jak określono przez isatty (3)), lub jedna została uruchomiona z opcją -i.

Wiele dystrybucji pobiera jeden typ pliku startowego od drugiego, ale niektóre nie, więc problem ten może być trudny do rozwiązania kanonicznego. Musisz sprawdzić wszystkie pliki startowe, aby zobaczyć, jak i kiedy ~/.bashrczostaniesz przywołany swoim systemie.

Tworzenie interaktywnego pliku startowego powłoki dla użytkownika

Jeśli po prostu brakuje ~/.bashrcpliku specyficznego dla użytkownika, po prostu utwórz go. Zostanie to wywołane przez Bash dla powłok niezalogowanych (np. Powłoki uruchomione bez --loginflagi) lub za każdym razem, gdy wymusisz interaktywność powłoki poprzez wywołanie jej z -iflagą.

CodeGnome
źródło
0

Jeśli nie masz .bashrc, możesz go po prostu utworzyć i dodać do niego wiersze, takie jak:

PATH=$PATH:~/bin

aby dodać katalog bin użytkownika na końcu ścieżki.

Należy jednak zachować ostrożność, jeśli istnieją inne pliki startowe. Reguły dotyczące wykorzystywania plików są dość złożone, ale wyszczególniono je na bashstronie man. Wpisz man bashw wierszu polecenia i poszukaj INVOCATION.


źródło
0

Krótkie odpowiedzi:

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

Szczegółowy:
Przyjmuję bliższą dosłowną interpretację.

  1. „Znajdź plik .bashrc w swoim katalogu domowym”.
    Ponieważ istnieje poleceniefind, być może zdradziecki edytor sugeruje, abyś go używał:

    find ~ -maxdepth 1 -name '.bashrc'

    Szukaj w katalogu domowym ~, zejdź tylko o jeden poziom (bez podkatalogu -maxdepth 1). Dla wszystkich opcji napisz man find.
    Linia poniżej wykona minimalną pracę

    ls ~/.bashrc   

    Uwaga: Jeśli ~/.bashrcnie istnieje , możesz go utworzyć za pomocą prostego echo >> ~/.bashrc.

    Plik >>zostanie utworzony, jeśli nie istnieje. Jeśli ~/.bashrczamiast tego istnieje, dołącza tylko nieszkodliwe wyjście pustego echo, unikając niezamierzonego usunięcia tak krytycznego pliku, który zresztą trudno przywrócić bez kopii zapasowej.

    (Następuje to, ponieważ rzadko muszę szanować znaczenie mojego pseudonimu, nie wykonuj, jeśli masz wątpliwości).

    if [ ! -f ~/.bashrc ] ; 
      then
         cp -i /etc/skel/.bashrc ~/.bashrc ;
      else ls -la ~/.bashrc; 
    fi || echo " # Auto Generated " >> ~/.bashrc
  2. „Zrób vi .bashrc
    Teraz możesz to zrobićvi ~/.bashrc, pułapką jest to, że musisz nacisnąć:iqwyjść!

  3. Folder aplikacji i$PATH
    podczas tworzenia folderu aplikacji, np~/MyNewCoolProgramFolder. Poniższy wiersz sprawdzi tylko, czy znajduje się w$PATH:

    echo $PATH | grep ~/MyNewCoolProgramFolder

    Nie musisz dodawać, jeśli już tam jest. W razie potrzeby można dodać do $PATHz

    PATH=$PATH:~/MyNewCoolProgramFolder

    i dodaj tę linię, ~/.bashrcjeśli chcesz, aby była stała.

  4. „4?!? Jak 4, jeśli były tylko 3 punkty?” - Obejścia.
    Istnieje kilka obejść tego drugiego; załóżmy, że plik wykonywalny o nazwieCoolDetravelleristnieje tylko w nowym folderze aplikacji:

    (a) Możesz spróbować go wykonać. Po prostu nie uruchomi się, jeśli nie ma go w $PATH.

    CoolDetraveller: nie znaleziono polecenia

    (b) Możesz wypróbować jego automatyczne uzupełnianie . Zacznij pisać CoolDetravellei naciśnij Tab. Jeśli jest w $PATH, będzie ono automatycznie uzupełniane (zawsze, jeśli włączone jest automatyczne uzupełnianie).

    (c) Możesz poprosić o whichużycie polecenia powłoki bash, jeśli napiszesz polecenie CoolDetraveller.

        which CoolDetraveller

    Uwaga: Jeśli w ścieżce aplikacji istnieje jeden lub więcej obszarów, whichmoże być w stanie znaleźć CoolDetraveller, choć (tutaj czczę moje imię znowu) na zakończenie auto o CoolDetravellertak ważny parametr whichkomendy będą działać!

    Ad nauseam : Nie możesz zapytać,whereis CoolDetravellerponieważwhereis

    ma zakodowaną ścieżkę, więc nie zawsze możesz znaleźć to, czego szukasz

Hastur
źródło