В моем домашнем каталоге нет файла 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 ~/.bashrc
echo $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, который вы найдете в своих скрытых файлах......