В моем домашнем каталоге нет файла bashrc

Вот что я отметил в своей лекции:

  • Найти файл .bashrc в вашем домашнем каталоге
  • делать vi .bashrc
  • Когда вы помещаете папку приложения куда-нибудь, убедитесь, что ее адрес находится в переменной пути.

Проблема в том, что у меня нет .bashrc файл в моем домашнем каталоге. Есть только .bash_history файл в моем доме.

Если я иду в корень, есть etc/bash.bashrc Файл там, но я думаю, что он будет вносить изменения для всех пользователей, а не только для меня. Я хочу добавить этот путь только для себя. Это не должно влиять на других. Тоже нет $PATH переменная в этом файле Bashrc, так что я еще больше запутался.

6 ответов

Решение

Не забудьте, что это скрытый файл в вашем домашнем каталоге (вы не будете первым, кто ls -l и думал, что его там нет).

Делайте следующее...

ls -la ~/ | more

Там должно быть .bashrc на первой странице. Если не просто создать его с

vi ~/.bashrc

И просто напишите следующую строку в него.

PATH=$PATH:~/bin

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

$cp /etc/skel/.bashrc ~

Большинство дистрибутивов придерживаются стандарта .bashrc файл в /etc/skel/ Вы можете просто скопировать в свой домашний каталог. В противном случае вы можете просто сделать новый пустой .bashrc файл в вашем доме, реж.

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

О загрузочных файлах Bash

Из раздела INVOCATION man 1 bash говорит:

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

Обратите внимание, что эти файлы запуска не являются обязательными; Баш не требует их. Bash также различает логин и интерактивные оболочки. Интерактивная оболочка определяется следующим образом:

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

Многие дистрибутивы используют один тип файла запуска из другого, но некоторые этого не делают, поэтому эту проблему трудно решить канонически. Вам нужно проверить все ваши файлы запуска, чтобы увидеть, как и когда ваш ~/.bashrc будет вызван в вашей системе.

Создание стартового файла интерактивной оболочки для каждого пользователя

Если вам просто не хватает конкретного пользователя ~/.bashrc файл, просто создайте его. Это будет вызываться Bash для оболочек без входа в систему (например, оболочки запускаются без --login флаг), или когда вы заставляете оболочку быть интерактивной, вызывая ее с -i флаг.

Короткие ответы:

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

Подробный:
Я принимаю более близкое буквальное толкование.

  1. "Найти файл.bashrc в вашем домашнем каталоге"
    Поскольку существует команда find Может быть, предательский редактор посоветует вам использовать его:

    find ~ -maxdepth 1 -name '.bashrc'
    

    Поиск в домашнем каталоге ~, спуск только одного уровня (без subdir -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: команда не найдена

    (б) Вы можете попробовать его автозаполнение. Начать писать CoolDetravelle и нажмите Tab. Если это в $PATH это будет автоматически завершено (всегда, если автоматическое завершение включено).

    (с) Вы можете попросить Bash Shell which Команда будет использоваться, если вы напишите команду CoolDetraveller,

        which CoolDetraveller
    

    Примечание. Если в пути к вашему приложению есть один или несколько пробелов, which может быть не в состоянии найти CoolDetraveller, хотя (здесь я снова читаю мой ник) авто завершение CoolDetraveller в качестве действительного параметра which команда будет работать!

    До тошноты: вы не можете спросить whereis CoolDetraveller так как whereis

    имеет жестко заданный путь, поэтому не всегда может найти то, что вы ищете

Если у вас нет .bashrc, вы можете просто создать его и добавить строки, которые вы хотите, например:

PATH=$PATH:~/bin

добавить свой каталог bin пользователя в конец пути.

Но вы должны быть осторожны, если есть другие файлы запуска. Правила относительно того, какие файлы используются, довольно сложны, но они подробно описаны в bash справочная страница. Войти man bash в командной строке и искать INVOCATION,

вы можете открыть скрытые файлы из дома, нажав CTRL + h

тогда, если вы не найдете там .bashrc, откройте терминал и просто запустите Commond

      /bin/cp etc/skel/.bashrc ~/

и ваша проблема будет решена любым файлом bashrc, который вы найдете в своих скрытых файлах......

Другие вопросы по тегам