Что такое файл .bashrc?

Unix-оболочки при запуске читают файл .bashrc и выполняют команды, написанные на нем. Что это за файл и что он выполняет?

4 Solutions collect form web for “Что такое файл .bashrc?”

На самом деле, это bash специально, что читает .bashrc/etc/bash.bashrc ). Есть много разных снарядов.

Страница справки bash (Брайан Фокс и Чет Рейме, также информационная страница «Файлы запуска Bash» ) является авторитетной ссылкой:

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

Когда bash запускается неинтерактивно, для запуска сценария оболочки, например, он ищет переменную BASH_ENV в среде, расширяет ее значение, если она появляется там, и использует расширенное значение в качестве имени файла для чтения и выполнения , Bash ведет себя так, как если бы выполнялась следующая команда:

 if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi 

Но значение PATH не используется для поиска имени файла.

Файл – это только команды оболочки. Он обычно используется для изменения подсказок, установки переменных среды и определения процедур оболочки. Обычно для этого используется файл .profile , но у bash столько расширений, что ему нужен собственный файл автозагрузки для пользователей, которые хотят поместить бахизмы в файлы автозагрузки.

« Не для входа в систему » означают такие вещи, как запуск сценариев и обычно терминальные окна, запускаемые оконными менеджерами. Иногда я настраивал * nix системы, чтобы иметь .bashrc и BASH_ENV только исходный .profile . Пока вы не отклоняетесь от команд оболочки POSIX, вы получите ту же инициализацию в любой оболочке.

Это особенно ценно, когда sh действительно bash , что иногда случается. Для этого используйте:

 . .profile 

Одна из причин этого настолько сложна, потому что иногда люди помещают вещи, которые производят вывод в файлы запуска оболочки, или они безоговорочно устанавливают подсказки. Это вызывает множество проблем при запуске программ оболочки и команд backtick в языках, не говоря уже о system(3) из программ на C. Путь bash запускается, я думаю, иметь один файл, в котором параметры вывода и подсказки в порядке, и один файл, где это не так. Традиционно будет проводиться тест времени выполнения, чтобы различать интерактивность, например, проверку наличия подсказки.

Когда Bash запускается, он выполняет команды в разных сценариях.

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

Когда оболочка входа завершается, Bash считывает и выполняет команды из файла ~ / .bash_logout, если он существует.

Когда запущена интерактивная оболочка, которая не является оболочкой входа, Bash считывает и выполняет команды из ~ / .bashrc, если этот файл существует. Это может быть заблокировано с помощью параметра –norc. Параметр файла -rcfile заставит Bash читать и выполнять команды из файла вместо ~ / .bashrc.

http://en.wikipedia.org/wiki/Bash_(Unix_shell)

Вот несколько трюков и советов:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

Попробуем установить подсказку, чтобы она могла отображать сегодняшнюю дату и имя хоста:

 PS1="\d \h $ " 

Он должен содержать различные команды инициализации для вашей оболочки, например:

  • Создание полезных псевдонимов (например, alias ll='ls -l' ).
  • Добавление большего количества каталогов в PATH.
  • Установка новых переменных среды.

Я хотел бы просто поделиться некоторым опытом.

После того, как я установил Ubuntu 10.10, я начал запускать Bash. Но в окне терминала Bash я даже не мог запустить команду clear . Он продолжал говорить мне, что переменная среды TERM не установлена. После того, как я добавил следующие строки в файл .bashrc , все было в порядке.

TERM = Linux

Экспортный срок

Надеюсь, это поможет вам в этом.

  • Bash цитирует unescaped при подстановке команд
  • Linux / Unix в Windows
  • Можно ли «мгновенно» создавать произвольные файлы?
  • Поверните экран с помощью xrandr на Solaris 10
  • Автоматически перезагружать работу Unix, если она опускается?
  • Bash - обработка вывода по одной строке за раз
  • Какие / где различия
  • Команда: sudo su -
  • Как заменить часть текстового файла между маркерами на другой текстовый файл?
  • Unix: как объединить два каталога
  • Страница Bash Man: kill <pid> vs kill -9 <pid>
  • Interesting Posts
    Давайте будем гением компьютера.