Почему файл bashrc пустой
Я поместил некоторые команды псевдонимов в свой .bashrc файл, чтобы они могли загружаться каждый раз, когда я открываю новое окно терминала. Но этого не происходит.
Я должен выбрать run script: в Терминале> Настройки> « MyDefaultTheme »> Prefpane Shell и добавить: source .bashrc && clear чтобы он работал .
Это кажется странным, поскольку во многих руководствах говорится, что вам просто нужно добавить .bashrc файл, и все хорошо.
Обратите внимание, что я не запускаю bash при использовании терминала, мне нравится другой (по умолчанию) один (не знаю, что это) лучше, потому что он показывает мне, где я нахожусь все время, например:
В bash все загружается как должно быть.
Поэтому мой вопрос: почему мой .bashrc файл не загружался автоматически, и мне приходилось добавлять опцию, чтобы вызывать его каждый раз?
Также какой-то учебник сказал мне сделать что-то вроде:
который должен написать псевдоним для моего .bashrc , это тоже не работает .
Обратите внимание, что я новичок в UNIX, так что будьте осторожны.
Вам, вероятно, нравится csh (или другой вариант) лучше. Но вы должны знать, что это >>bash$ можно изменить :)
Просто поместите это в свой .profile файл из вашего домашнего каталога, и он должен работать при следующем запуске новой оболочки или после запуска source ~/.profile
Вниз проголосовали. Я рекомендую не следовать этому совету. Проблема в том, что Терминал создает оболочки входа в систему, а оболочки входа в Bash только запускают сценарий запуска входа в систему, а не ~/.bashrc . Однако решение состоит не в том, чтобы просто поместить свой .bashrc контент в файл запуска входа в систему, поскольку эти два файла предназначены для выполнения различных типов настройки. Вместо этого каноническая установка для Bash заключается в том, чтобы ваш ~/.bash_profile источник ~/.bashrc находился в какой-то подходящей точке сценария (обычно последний).
Был там, сделал это. То, о чем я узнал, OS X не читает .bashrc файл при запуске bash. Вместо этого он читает следующие файлы (в следующем порядке):
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
Смотрите также информативный и полезный комментарий Криса Йонсена :
По умолчанию Терминал запускает оболочку через /usr/bin/login , что делает оболочку оболочкой входа в систему. На каждой платформе (не только Mac OS X) баш не используется .bashrc для входа в систему оболочек (только /etc/profile и первым .bash_profile , .bash_login , .profile что существует и может быть прочитан). Вот почему "положить source ~/.bashrc в свой .bash_profile " является стандартным советом
Я обычно просто положить вещи , которые я обычно положить в ~/.bashrc к ~/.profile - работает до сих пор , как обаяние.
По умолчанию Терминал запускает оболочку через /usr/bin/login , что делает оболочку оболочкой входа в систему. На каждой платформе (не только Mac OS X) баш не используется .bashrc для входа в систему оболочек (только /etc/profile и первым .bash_profile , .bash_login , .profile что существует и может быть прочитан). Вот почему «вставь source ~/.bashrc в себя .bash_profile » - это стандартный совет.
Что касается примечания, в Mac OS X вы должны рассмотреть возможность запуска ~ / .bashrc / etc / bashrc для определения глобального поведения. В частности, в / etc / bashrc есть код для обновления рабочего каталога при каждом запросе, что позволяет терминалу отображать значок прокси, создавать новые терминалы в том же каталоге и восстанавливать рабочий каталог для групп резюме и окон.
Для меня получение .bashrc из .bash_profile не сработало. Но поиск .bashrc / .bash_profile из .profile работал.
Хороший ответ, но немного дезинформированный. Я считаю , что баш терминальные нагрузки только один из ~/.bash_profile , ~/.profile , ~/.bash_login , никогда не все они. Вы можете запустить простой тест, создав 3 файла. Похоже , что Баш терминал имеет предпочтение ~/.bash_profile > ~/.bash_login > ~/.profile . Если кто-либо из них существует, те, кто менее предпочтителен, пропускаются. Вот почему иногда рекомендуется также источник ~/.profile в ~/.bash_profile .
Я положил все ~/.bashrc и только source ~/.bashrc в .profile.
Это позволяет сеансам screen и xterm (и я полагаю, tmux) унаследовать мою среду, так как сеансы без входа в систему выполняются только .bashrc тогда, когда сеансы входа в систему (например, терминал или iTerm) только запускаются .profile .
Это мой подход. Таким образом, я могу поддерживать .bashrc, который работает в обеих системах . и я могу поместить любые специфичные для Mac вещи или вещи, такие как псевдонимы, которые предназначены только для работы (где я чаще всего использую mac) в моем файле .bash_profile.
Обратите внимание, что это .profile является общим для нескольких оболочек и должно содержать только POSIX-совместимый sh-код. Если это источник, .bashrc он, возможно, содержит специфичный для Bash код (существование .bashrc файла зависит от Bash). Я рекомендую переименовать его .profile в, .bash_profile так как вы используете его для Bash-ориентированного способа. Или, вставьте общий код .profile и создайте .bash_profile источники .profile и .bashrc .
Есть два сценария:
- Вы используете Linux
- Вы используете Mac Os X
Для обоих вы хотите, чтобы источник ~/.bashrc в вашем профиле загружался или был получен при запуске вашей оболочки для терминала.
В Linux ~/.profile автоматически запускается источник в вашей оболочке. Итак, если вы зайдете в свой терминал и введете команду cd ~; ls -A , вы увидите все ваши файлы и каталоги в вашем домашнем каталоге ( /home/usrname/ ). Вы должны увидеть файл с именем .profile . Это файл, который автоматически "получен" при запуске терминала.
Если вы хотите добавить псевдонимы и функции к ~/.bashrc (что я и делаю), то вам следует (внутри ~/.profile добавить оператор if, который проверяет, ~/.bashrc является ли непустой файл, а затем получить его источник).
Чтобы проверить, если вы ~/.profile уже делаете это, введите nano ~/.profile . Это откроет его в текстовом редакторе (вы можете использовать gedit, если вы знаете, что он у вас есть, или даже vim, если вы знаете, как его использовать). Вы можете получить пустой текстовый файл (вы не должны), но если вы просто продолжите. Если вы не видите нигде строки, в которой написано source ~/.bashrc , введите где-то следующие строки (поместите ее в разумное место, например в конец или начало, а не в середину оператора if):
Это проверяет, ~/.bashrc является ли файл непустым (с помощью if [ -s ~/.bashrc ] ), и если это так, он получает его. Довольно просто Теперь вы можете добавить любой допустимый псевдоним, функцию, переменную и т ~/.bashrc . Д.
По умолчанию источники Max OS X ~/.bash_profile . Чтобы иметь возможность добавлять что-то ~/.bashrc (что, опять же, то, что я делаю в OS X), вы должны следовать той же процедуре, что и в Linux. В терминал войдите cd ~; nano .bash_profile . Проверьте строку с надписью source ~/.bashrc и, если ее нет, добавьте оператор if выше ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi ).
При написании оператора if обязательно оставляйте пробелы между практически всем (например if [ -s ~/.bashrc]; then echo "found"; fi , не работает, потому что между ними нет пробела ~/.bashrc и ] - интерпретатор будет думать, что это одно слово).
Если вы хотите выяснить, как лучше проверять вещи в операторе if, перейдите в терминал и введите man \[ ; это, по сути, дает вам сокращение предложения if. Например, if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi проверяет, /path/to/file является ли файл файлом и выводится ли он на стандартный вывод. Я всегда ссылаюсь на это для удобства и наглядности: 7.2. Операторы проверки файлов .
Надеюсь, это поможет. Я помню, как я был смущен, когда начал все это (что было не так давно); Итак, удачи в ваших будущих начинаниях UNIX!
, но если я напишу это в скрипте оболочки и выполним его, ничего не произойдет. Почему?
Есть ли способ сделать это?
мой код оболочки:
Также попробовал .[dot] вместо source . Тот же результат
Сценарий оболочки запускается в своем собственном экземпляре оболочки. Все переменные настройки, определения функций и т. Д. Влияют только на этот экземпляр (и, возможно, на его дочерние элементы), но не на вызывающую оболочку, поэтому они исчезли после завершения скрипта.
В отличие от команды source не запускается новый экземпляр оболочки, а используется текущая оболочка, поэтому изменения остаются.
Если вам нужен ярлык для чтения вашего .bashrc, используйте функцию оболочки или псевдоним вместо сценария оболочки, например
Это должно перезагрузить ~ /.bashrc, ~ /.bash_aliases и т. д.
Обычно ваш .bashrc начинается:
Так как ваш скрипт не имеет набора PS1 (потому что он не является интерактивным), он не сбрасывает путь, потому что он выходит раньше. Чтобы продемонстрировать, измените свой скрипт:
теперь это позволит вашим скриптам работать с новым .bashrc . Примечание: как только ваш скрипт выйдет, env будет настроен на то, что было до начала сценария. Изменения будут отображены при следующем запуске терминала.
Ни один из других методов не работал для меня [ source /path/to/file vs . ./path/to/file , псевдоним и т. д.) до тех пор, пока этот учебник Я обнаружил, что с помощью:
В любом случае, если исходные команды в любой форме не работают для вас, попробуйте проверить свой shebang, это может быть проблемой:)
Я хочу дополнить ответ ravi :
Это поведение специфично для Ubuntu (и, вероятно, для большинства производных дистрибутивов), поскольку ваш файл по умолчанию ~/.bashrc начинается с короткого замыкания, Ubuntu 18.04, например:
Это остановит оценку файла, если он запущен в неинтерактивной оболочке, что соответствует вашему сценарию, поскольку все скрипты запускаются в неинтерактивной оболочке , а затем каждый файл, который вы source наследует это свойство.
eval hack
Я обнаружил уродливый взлом для обхода Ubuntu специально, используя eval вместо source :
Он просто пропускает несколько первых строк и оценивает остальную часть кода ~/.bashrc , поэтому остальное оценивается и изменяет текущее исполнение.
Помните, что это волшебное число и может не работать в версиях Ubuntu; но может быть хорошим решением, если вы создаете сценарии для более или менее известных систем.
Решение fancier может включать использование регулярного выражения для таргетинга на определенные биты, которые останавливают оценку.
О загрузочных файлах Bash
Из раздела ПРИЗВАНИЕ man 1 bash говорит:
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc, если эти файлы существуют.
Обратите внимание, что эти файлы запуска не являются обязательными ; Баш не требует их. Bash также различает логин и интерактивные оболочки. Интерактивная оболочка определяется следующим образом:
Интерактивная оболочка запускается без аргументов без параметров и без опции -c, чьи стандартные входные данные и ошибки связаны с терминалами (как определено isatty (3)), или запускаются с параметром -i.
Многие дистрибутивы используют один тип файла запуска из другого, но некоторые этого не делают, поэтому эту проблему может быть трудно решить канонически. Вам нужно проверить все ваши файлы запуска, чтобы увидеть, как и когда вы ~/.bashrc будете вызываться в вашей системе.
О файлах запуска Bash
В разделе INVOCATION man 1 bash говорится:
Когда запущена интерактивная оболочка, не являющаяся оболочкой входа, bash считывает и выполняет команды из /etc/bash.bashrc и ~ /.bashrc, если эти файлы существуют.
Обратите внимание, что эти файлы запуска необязательные ; Баш не требует их. Bash также различает оболочки входа и интерактивные оболочки. Интерактивная оболочка определяется таким образом:
Интерактивная оболочка запускается без аргументов без опций и без опции -c, стандартный ввод и ошибка которой связаны между собой к терминалам (как определено isatty (3)), или один начинается с -i вариант.
Многие дистрибутивы ссылаются на один тип файла запуска из другого, но некоторые этого не делают, поэтому эту проблему трудно решить канонически. Вам нужно изучить все ваши файлы запуска, чтобы узнать, как и когда ваш ~/.bashrc будет вызываться в вашей системе .
Создание вашего пользовательского загрузочного файла интерактивной оболочки
Если вам просто не хватает пользовательского ~/.bashrc файла, просто создайте его. Это будет вызываться Bash для оболочек без входа в систему (например, оболочки, запущенные без --login флага), или всякий раз, когда вы заставляете оболочку быть интерактивной, вызывая ее с -i флагом.
Если у вас нет .bashrc , вы можете просто создать его и добавить строки, которые вы хотите, например:
добавить свой каталог bin пользователя в конец пути.
Но вы должны быть осторожны, если есть другие файлы запуска. Правила относительно того, какие файлы используются, довольно сложны, но они подробно описаны на bash странице руководства . Войдите man bash в командную строку и ищите INVOCATION .
Короткие ответы:
- find ~ -maxdepth 1 -name '.bashrc'
- vi ~/.bashrc
- echo $PATH | grep ~/MyNewCoolProgramFolder
Подробный:
я беру более близкое буквальное толкование.
«Найдите файл .bashrc в вашем домашнем каталоге».
Так как команда существует find , возможно, коварный редактор посоветует вам использовать ее:
Поиск в домашнем каталоге ~ , спуск только одного уровня (без subdir -maxdepth 1 ). По всем вариантам пишите man find .
Строка ниже будет делать минимальную работу
Примечание: в случае, если ~/.bashrc не существует, вы можете создать его с помощью простого echo >> ~/.bashrc .
>> Создаст файл , если не существует. Если ~/.bashrc вместо этого существует, он будет добавлять только безвредный вывод пустого echo , избегая непреднамеренного удаления такого важного файла, который, кстати, трудно восстановить без резервной копии.
(Следующее потому, что редко я должен соблюдать значение своего псевдонима, не выполняйте, если у вас есть сомнения).
«Делай vi .bashrc »
Теперь вы можете сделать vi ~/.bashrc , ловушка здесь, что вам нужно нажать : и q выйти!
Папка приложения и $PATH
когда вы создаете папку приложения, например ~/MyNewCoolProgramFolder , строка ниже будет проверять только, находится ли она в $PATH :
Вам не нужно добавлять, если уже есть. При необходимости вы можете добавить в $PATH с
и добавить эту строку, ~/.bashrc если вы хотите сделать его постоянным.
«4. Как 4, если было только 3 балла?» - Временные решения.
Есть несколько обходных путей для последнего; давайте предположим, что исполняемый файл с именем CoolDetraveller существует только в вашей новой папке приложения:
(а) Вы можете попытаться выполнить это. Просто он не запустится, если его нет в $PATH .
CoolDetraveller: команда не найдена
(б) Вы можете попробовать его автозаполнение . Начните писать CoolDetravelle и нажмите Tab . Если он есть, $PATH он будет автоматически завершен (всегда, если автоматическое завершение включено).
(c) Вы можете спросить, which будет ли использоваться команда оболочки bash , если вы напишете команду CoolDetraveller .
Примечание: Если в вашем пути приложения есть один или несколько пробела, which может быть не в состоянии найти CoolDetraveller , хотя (здесь я снова чту мой ник) на завершение авто в CoolDetraveller качестве действительного параметра which команды будет работать!
Ad nauseam : Вы не можете спросить, whereis CoolDetraveller потому что whereis
имеет жестко заданный путь, поэтому не всегда может найти то, что вы ищете
Похожие вопросы
Альтернатива Шебанга
Другая альтернатива, которая может работать лучше в некоторых сценариях, - заставить скрипт работать в интерактивной оболочке, добавив флаг в shebang :
Помните о нескольких вещах:
Популярные теги
Я поместил некоторые команды псевдонимов в мой файл .bashrc , чтобы они могли загружаться каждый раз, когда я открываю новое окно терминала. Но этого не происходит.
Мне нужно выбрать скрипт run script: в Предпочтения> Preferences> " MyDefaultTheme "> Префикс оболочки и добавить: source .bashrc && clear , чтобы он работал .
Это кажется странным, поскольку во многих учебниках говорится, что вам просто нужно добавить файл .bashrc , и все это хорошо.
Заметьте, что я не запускаюсь в bash при использовании терминала, мне нравится другой (по умолчанию) один (не знаю, что это) лучше, потому что он показывает мне, где я все время, например:
В bash все загружается как должно быть.
Итак, мой вопрос: почему мой файл .bashrc не загружался автоматически и мне нужно было добавить этот параметр, чтобы вызывать его каждый раз?
Также в некоторых уроках мне сказали сделать что-то вроде:
, который должен написать псевдоним для моего .bashrc , это тоже не работает .
Обратите внимание, что я новичок UNIX, поэтому будьте осторожны.
Просто поместите это в свой .profile файл из своего домашнего каталога и он должен работать при следующем запуске новой оболочки или после запуска source ~/.profile
Был там, сделал это. О чем я узнал, OS X не читает файл .bashrc при запуске bash. Вместо этого он считывает следующие файлы (в следующем порядке):
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
По умолчанию Terminal запускает оболочку через /usr/bin/login , что делает оболочку оболочкой входа. На каждой платформе (а не только в Mac OS X) bash не использует .bashrc для оболочек входа (только /etc/profile ) и первый из .bash_profile , .bash_login , .profile , который существует и доступен для чтения). Вот почему «put source ~/.bashrc в вашем .bash_profile " является стандартным советом
Я обычно просто помещаю вещи, которые я обычно помещал в ~/.bashrc , в ~/.profile â € " работал до сих пор, как прелесть.
Я помещал все в ~/.bashrc и просто source ~/.bashrc в .profile.
Это позволяет сеансам экрана и xterm (и я думаю, tmux) наследовать мою среду, поскольку сеансы, не связанные с входом в систему, запускаются только .bashrc , тогда как сеансы входа в систему (например, терминал или iTerm) запускают только .profile .
Существует два сценария:
- Вы используете Linux
- Вы используете Mac Os X
Для обоих вы хотите указать исходный код ~/.bashrc в своем профиле, который загружается или загружается, когда начинается ваша оболочка для вашего терминала.
В Linux ~/.profile автоматически запускается в вашей оболочке при ее запуске. Итак, если вы перейдете к своему терминалу и введите cd ~; ls -A , вы увидите все ваши файлы и каталоги в своем домашнем каталоге ( /home/usrname/ ). Вы должны увидеть файл с именем .profile . Это файл, который автоматически «выдается» при запуске терминала.
Если вы хотите добавить псевдонимы и функции в ~/.bashrc (это то, что я делаю), тогда вы должны (внутри ~/.profile добавить if, который проверяет, является ли ~/.bashrc непустым файлом, а затем его источник.
Чтобы проверить, действительно ли ваш ~/.profile вводит nano ~/.profile . Это откроет его в текстовом редакторе (вы можете использовать gedit, если знаете, что у вас есть это или даже vim, если вы знаете, как его использовать). Вы можете получить пустой текстовый файл (вы не должны), но если вы просто продолжаете. Если вы не видите строку в любом месте , которая говорит source ~/.bashrc , тогда введите следующие строки где-нибудь (поставьте ее в разумном месте, например, в конце или начале и не в середине оператора if):
Это проверяет, является ли ~/.bashrc непустым файлом (с if [ -s ~/.bashrc ] ), и если он такой, он это источники. Довольно просто. Теперь вы можете добавить любой действительный псевдоним, функцию, переменную и т. Д. В ~/.bashrc .
По умолчанию Max OS X source ~/.bash_profile . Чтобы иметь возможность добавлять вещи в ~/.bashrc (что опять же то, что я делаю в OS X, также), вы выполняете ту же процедуру, что и linux. В терминале введите cd ~; nano .bash_profile . Проверьте строку, которая говорит source ~/.bashrc , и если она там не добавляется вышеприведенный оператор if ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi ).
При написании оператора if обязательно оставляйте пробелы между главным образом (например, if [ -s ~/.bashrc]; then echo "found"; fi не работает, потому что есть без пробела ~/.bashrc и ] - интерпретатор будет считать это одним словом).
Если вы хотите выяснить, как лучше проверить информацию в инструкции if, перейдите к терминалу и введите man \[ ; это, по сути, дает вам прогон инструкции if. Например, if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi проверяет, является ли файл /path/to/file файлом, и если он печатает на stdout соответственно. Я всегда ссылаюсь на это, а также на простые и быстрые справки: 7.2. Операторы проверки файлов .
Надеюсь, это поможет. Я помню, как я был смущен, когда начал все это (что было не так давно); поэтому, удачи с будущими UNIX-начинаниями!
Проблема заключается в том, что у меня нет файла .bashrc в моем домашнем каталоге. В моем доме есть только файл .bash_history .
Если я перехожу к корню, есть файл etc/bash.bashrc , но я думаю, что он внесет изменения для всех пользователей и не только для меня. Я хочу добавить этот путь только для себя. Это не должно влиять на других. Также нет переменной $PATH в этом файле bashrc, поэтому я еще более запутан.
Не забывайте, что это скрытый файл внутри вашего домашнего каталога (вы бы не первый, кто сделал ls -l и думал его там нет).
На первой странице должен быть .bashrc . Если не просто создать его с помощью
И просто напишите в нем следующую строку.
ИЛИ Большинство дистрибутивов содержат стандартный .bashrc файл в /etc/skel/ Вы можете скопировать его в домашний каталог.
Большинство дистрибутивов содержат стандартный .bashrc файл в /etc/skel/ , вы можете просто скопировать в свой домашний каталог. В противном случае вы можете просто создать новый пустой файл .bashrc в домашнем каталоге.
Создание файла запуска интерактивной оболочки для каждого пользователя
Если вам просто не нужен файл ~/.bashrc для пользователя, просто создайте его. Это будет вызываться Bash для недействительных оболочек (например, оболочки запускаются без флага --login ) или всякий раз, когда вы принудительно устанавливаете оболочку интерактивно, вызывая его с помощью флага -i .
Если у вас нет кода .bashrc , вы можете просто создать его и добавить строки, которые вы хотите, например:
, чтобы добавить ваш каталог bin пользователя в конец пути.
Но вы должны быть осторожны, если есть другие файлы запуска. Правила использования файлов довольно сложны, но они подробно описаны в справочной странице bash . Введите man bash в командной строке и найдите INVOCATION .
Краткие ответы:
-
find ~ -maxdepth 1 -name '.bashrc' литий> vi ~/.bashrc литий> echo $PATH | grep ~/MyNewCoolProgramFolder литий>
Подробный:
Я беру более близкую литературную интерпретацию.
«Найти файл .bashrc в вашем домашнем каталоге»
Поскольку существует команда find , возможно, предательский редактор предложит вам использовать его:
Поиск в домашнем каталоге ~ , опускаться только на один уровень (нет subdir -maxdepth 1 ). Для всех вариантов напишите man find .
Строка ниже значения будет выполнять минимальное задание
Примечание: Если ~/.bashrc не существует , вы можете его создать > с помощью простого echo >> ~/.bashrc .
>> создаст файл, если он не существует. Если существует ~/.bashrc , он будет добавлять только безобидный вывод пустого echo , избегая непреднамеренного удаления такого критического файла, который, кстати, трудно восстановить без резервной копии.
(Следующее потому, что редко я должен уважать смысл моего никнейма, не выполняйте, если у вас есть сомнения).
"Do vi .bashrc "
Теперь вы можете сделать vi ~/.bashrc , здесь вам нужно нажать : и q для выхода!
Папка приложения и $PATH
При создании папки приложения, например. ~/MyNewCoolProgramFolder , строка ниже проверяет, находится ли она в $PATH :
Вам не нужно добавлять, если он уже существует. При необходимости вы можете добавить в $PATH с
и добавить эту строку в ~/.bashrc , если вы хотите сделать ее постоянной.
"4. Как 4, если было всего 3 балла?» - Методы обхода.
Для этого есть некоторые обходные пути; предположим, что исполняемый файл с именем CoolDetraveller существует только в вашей новой папке приложения:
(a) Вы можете попробовать выполнить его. Просто он не запустится, если он не находится в $PATH .
CoolDetraveller: команда не найдена
(b) Вы можете попробовать автоматическое завершение . Начните писать CoolDetravelle и нажмите Tab . Если он находится в $PATH , он будет завершен автоматически (всегда, если автозаполнение включено).
(c) Вы можете запросить команду bash shell which , если вы напишете команду CoolDetraveller
Примечание: Если на вашем пути к приложению есть одно или несколько пробелов, which не может найти CoolDetraveller , хотя (здесь я снова чтую свое прозвище) автозавершение CoolDetraveller в качестве действительного параметра команды which будет работать!
Ad nauseam : вы не можете запросить whereis CoolDetraveller , потому что whereis
имеет жестко закодированный путь, поэтому не всегда можно найти то, что вы ищете
Проблема в том, что у меня нет .bashrc файла в моем домашнем каталоге. В .bash_history моем доме только файл.
Если я иду в корень, там есть etc/bash.bashrc файл, но я думаю, что он будет вносить изменения для всех пользователей, а не только для меня. Я хочу добавить этот путь только для себя. Это не должно влиять на других. Кроме того, $PATH в этом файле bashrc нет никаких переменных, поэтому я еще больше запутался.
Не забудьте, что это скрытый файл в вашем домашнем каталоге (вы не будете первым, кто сделает это, ls -l и подумает, что его там нет).
Там должно быть .bashrc на первой странице. Если не просто создать его с
И просто напишите следующую строку в него.
ИЛИ В большинстве дистрибутивов хранится стандартный .bashrc файл. /etc/skel/ Вы можете скопировать его в домашний каталог.
Хорошо, я понял это сейчас. На других компьютерах я могу набрать lego, и программа запускается. В моей системе папка lego находится в моей ~/data/user1/bin папке. Я добавил этот путь в файл .bashrc. Теперь, что мне нужно сделать, чтобы при вводе lego программа запускалась? Должен ли я создать псевдоним? Если да, то как? alias lego='
@detraveller Вы добавили ~/data/user1/bin переменную среды PATH в .bashrc файл? (добавьте эту строку:) export PATH=$PATH:~/data/user1/bin - если это так, вы должны просто набрать текст lego в терминале, и программа должна запуститься.
Я только добавил PATH=$PATH:~/data/user1/bin . Вы не упомянули экспорт, поэтому я не поместил его туда. Я попробую еще раз завтра, когда пойду в универ.
Но мне было интересно, как я могу сказать Bash, что lego это слово, которое запускает программное обеспечение?
В большинстве дистрибутивов хранится стандартный .bashrc файл, который /etc/skel/ вы можете просто скопировать в домашний каталог. В противном случае вы можете просто создать новый пустой .bashrc файл в вашем домашнем каталоге.
Создайте свой собственный файл запуска для интерактивных оболочек
Создайте свой собственный файл запуска для интерактивных оболочек
Читайте также: