В моем домашнем каталоге нет файла 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 флаг.
Короткие ответы:
find ~ -maxdepth 1 -name '.bashrc'vi ~/.bashrcecho $PATH | grep ~/MyNewCoolProgramFolder
Подробный:
Я принимаю более близкое буквальное толкование.
"Найти файл.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"Делать
vi .bashrc"
Теперь вы можете сделатьvi ~/.bashrcловушка заключается в том, что вам нужно нажать : и q, чтобы выйти!Папка приложения и
$PATH
Когда вы создаете папку приложения, например,~/MyNewCoolProgramFolder, строка ниже будет только проверять, находится ли она в$PATH:echo $PATH | grep ~/MyNewCoolProgramFolderВам не нужно добавлять, если уже есть. При необходимости вы можете добавить в
$PATHсPATH=$PATH:~/MyNewCoolProgramFolderи добавить эту строку в
~/.bashrcесли вы хотите сделать его постоянным."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, который вы найдете в своих скрытых файлах......