У моєму домашньому каталозі немає файлу bashrc


14

Ось що я зазначив із своєї лекції:

  • Знайдіть файл .bashrcу своєму домашньому каталозі
  • робити vi .bashrc
  • Коли десь помістите папку програми, переконайтеся, що її адреса знаходиться в змінній шляху.

Проблема полягає в тому, що я не маю .bashrcфайлу в своєму домашньому каталозі. У .bash_historyмоєму будинку є лише файл.

Якщо я переходжу до кореня, там є etc/bash.bashrcфайл, але я думаю, що він внесе зміни для всіх користувачів, а не лише для мене. Я хочу додати цей шлях лише для себе. Це не повинно впливати на інших. Також $PATHу цьому файлі bashrc немає змінної, тому я ще більше плутаюсь.

Відповіді:


20

Не забувайте, що це прихований файл у вашому домашньому каталозі (ви б не був першим, хто зробив це, ls -lі подумав, що його там немає).

Виконайте наступні ...

ls -la ~/ | more

На .bashrcпершій сторінці має бути а . Якщо не просто створити його

vi ~/.bashrc

І просто напишіть у нього наступний рядок.

PATH=$PATH:~/bin

АБО Більшість дистрибутивів зберігають стандартний .bashrcфайл у. /etc/skel/Ви можете скопіювати його в домашній каталог.

$cp /etc/skel/.bashrc ~

Гаразд, я це розумію зараз. На інших комп’ютерах я можу набрати lego і програмне забезпечення запуститься. У моїй системі папка lego знаходиться в моїй ~/data/user1/binпапці. Я додав цей шлях у файл .bashrc. Тепер що мені робити, щоб коли я вводив лего, він повинен запускати програмне забезпечення? Чи потрібно створити псевдонім? Якщо так, то як? alias lego='<What do i put here???>'

@detraveller Ви додали ~/data/user1/binдо змінної середовища PATH у .bashrcфайлі? (додайте цей рядок export PATH=$PATH:~/data/user1/bin:) - якщо так, ви повинні мати можливість просто ввести legoтермінал, і програма повинна запуститися.
AcId

Я додав лише PATH=$PATH:~/data/user1/bin. Ви не згадали про експорт, тому я його не розмістив. Я спробую ще раз завтра, коли поїду до Uni.
detraveller

Але мені було цікаво, як я можу сказати bash, що legoце слово, яке запускає програмне забезпечення?
detraveller

11

Більшість дистрибутивів зберігають стандартний .bashrcфайл, який /etc/skel/ви можете просто скопіювати в домашній dir. Інакше ви можете просто зробити новий порожній .bashrcфайл у своєму домашньому режисері.


4

Створіть власний файл запуску для інтерактивних оболонок

Про файли запуску Bash

З розділу ІНВОКАЦІЯ man 1 bashговорить:

Коли запускається інтерактивна оболонка, яка не є оболонкою для входу, bash зчитує та виконує команди з /etc/bash.bashrc та ~ / .bashrc, якщо ці файли існують.

Зауважте, що ці файли запуску необов’язкові ; Баш їх не вимагає. Bash також розрізняє вхідні оболонки та інтерактивні оболонки. Інтерактивна оболонка визначається таким чином:

Інтерактивна оболонка - це запущена без аргументів неопціонування та без параметра -c, стандартний вхід і помилка як з'єднані з терміналами (як визначено isatty (3)), так і інша, розпочата з опції -i.

Багато дистрибутивів видають один тип файлу запуску з іншого, але деякі - ні, тому цю проблему може бути важко вирішити канонічно. Вам потрібно вивчити всі файли запуску, щоб побачити, як і коли ~/.bashrcбуде викликатись у вашій системі.

Створення вашого інтерактивного файлу запуску оболонки користувача

Якщо вам просто не вистачає ~/.bashrcфайлу, призначеного для користувача , просто створіть його. Це буде викликано Bash для оболонок без входу (наприклад, оболонки, запущені без --loginпрапора), або коли ви змушуєте оболонку бути інтерактивною, викликаючи її -iпрапором.


0

Якщо у вас немає .bashrc, ви можете просто створити його та додати до нього потрібні рядки, наприклад:

PATH=$PATH:~/bin

щоб додати свій каталог бін користувача до кінця шляху.

Але ви повинні бути обережними, якщо є інші файли запуску. Правила щодо використання файлів досить складні, але вони детально описані на bashсторінці "man". Введіть man bashу командному рядку і шукайте INVOCATION.


0

Короткі відповіді:

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

Детальний:
я беру більш близьке дослівне тлумачення.

  1. "Знайти файл .bashrc у вашому домашньому каталозі"
    Оскільки в ньому існує командаfind, можливо, зрадливий редактор запропонує вам використовувати її:

    find ~ -maxdepth 1 -name '.bashrc'

    Шукайте в домашньому каталозі ~, спускайтеся лише на один рівень (без підкаталогу -maxdepth 1). Для всіх варіантів пишіть man find.
    Рядок під заповітом виконає мінімальну роботу

    ls ~/.bashrc   

    Примітка: Якщо ~/.bashrcйого немає, ви можете створити його за допомогою простого echo >> ~/.bashrc.

    Файл >>створить файл, якщо його не існує. Якщо ~/.bashrcзамість цього існує, він додасть лише нешкідливий вихід порожнього echo, уникаючи ненавмисного видалення такого критичного файлу, який, до речі, важко відновити без резервної копії.

    (Далі, тому що рідко мені доводиться шанувати значення своєї псевдоніму, не виконайте, якщо ви сумніваєтесь).

    if [ ! -f ~/.bashrc ] ; 
      then
         cp -i /etc/skel/.bashrc ~/.bashrc ;
      else ls -la ~/.bashrc; 
    fi || echo " # Auto Generated " >> ~/.bashrc
  2. "Зробіть vi .bashrc"
    Тепер ви можете зробитиvi ~/.bashrc, пастка тут полягає в тому, що вам потрібно натиснути:іqвийти!

  3. Папка програми та$PATH
    Коли ви створюєте папку програми, наприклад~/MyNewCoolProgramFolder, у нижченаведеному рядку буде перевірятися лише чи вона знаходиться у$PATH:

    echo $PATH | grep ~/MyNewCoolProgramFolder

    Не потрібно додавати, якщо він вже є. При необхідності ви можете додати до $PATHз

    PATH=$PATH:~/MyNewCoolProgramFolder

    і додати цей рядок, ~/.bashrcякщо ви хочете зробити його постійним.

  4. "4?!? Як 4, якщо було б лише 3 бали?" - Обхідні шляхи.
    Для останнього є деякі шляхи вирішення; припустимо, виконуваний файл з ім'ямCoolDetravellerіснує лише у вашій новій папці додатків:

    (а) Ви можете спробувати його виконати. Просто він не почнеться, якщо його немає в $PATH.

    CoolDetraveller: команда не знайдена

    (b) Ви можете спробувати його автоматичне завершення . Почніть писати CoolDetravelleі натискайте Tab. Якщо він знаходиться в $PATHньому, він буде автоматично завершений (завжди якщо включено автоматичне завершення).

    (c) Ви можете запитати, що команда bash shell whichбуде використана, якщо ви пишете команду CoolDetraveller.

        which CoolDetraveller

    Примітка: Якщо в вашому шляху додатки є один або кілька пробілу, whichможе бути не в змозі знайти CoolDetraveller, хоча (тут я знову шаную мій нік) на завершення авто в CoolDetravellerякості дійсного параметра whichкоманди буде працювати!

    Оскома оголошення : Ви не можете запитатиwhereis CoolDetravellerбоwhereis

    має важко кодований шлях, тому не завжди можна знайти те, що ви шукаєте

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.