Где лежит bashrc linux

Где лежит bashrc linux

Недавно я столкнулся со следующей проблемой: приложение не сохраняло настройку umask , заданную в профиле root-пользователя, или в файле /etc/profile . Немного разобравшись в вопросе, я понял, что приложение использует только ту настройку umask , которая задана в /etc/bashrc , не принимая даже те значения, которые являются его же собственными сценариями запуска.

Немного изучив вопрос, я понял, какую функцию выполняют эти файлы, чем они различаются и как они выполняются. Такой вопрос поднимается не часто, поэтому я подумал, что будет полезно рассказать о нем вам.

Для чего нужен файл /etc/profile?

Если вы используете Linux, то вам наверняка знакомы файлы .profile или .bash_profile , размещенные в вашем домашнем каталоге. Эти файлы используются для задания элементов окружения для оболочки пользователя. Таких элементов, как, например, umask , и таких переменных, как PS1 или PATH .

Файл /etc/profile не очень-то отличается от этих файлов. Он используется для задания общесистемных переменных окружения в оболочках пользователя. Иногда это те же переменные, что и в .bash_profile , но этот файл используется для задания первоначальных PATH или PS1 для всех пользователей оболочек системы.

/etc/profile.d

Помимо задания элементов окружения, файл /etc/profile выполняет сценарии внутри /etc/profile.d/*.sh . Если вы хотите задать свои собственные переменные окружения для всей системы, вам следует поместить свою конфигурацию в сценарий оболочки в /etc/profile.d .

Для чего нужен файл /etc/bashrc?

Помимо .bash_profile , в своем домашнем каталоге вы также часто будете встречать файл .bashrc . Этот файл предназначен для задания псевдонимов команд и функций, используемых пользователями оболочки bash.

Аналогично тому, как /etc/profile является общесистемной версией .bash_profile , файл /etc/bashrc в Red Hat и файл /etc/bash.bashrc в Ubuntu являются общесистемной версией .bashrc .

Стоит отметить, что в Red Hat реализация /etc/bashrc также выполняет сценариий оболочки в /etc/profile.d , но только если пользовательская оболочка является Интерактивной оболочкой (т.е. Login Shell (стартовой оболочкой))

Когда используются эти файлы?

То, когда выполняется каждый из этих файлов, зависит от типа выполняемого логина. В Linux имеется два типа стартовых оболочек (login shells) — Интерактивные оболочки и Неинтерактивные оболочки. Интерактивная оболочка используется, когда пользователь может взаимодействовать с оболочкой, т.е., например, типичное приглашение командной строки bash. Неинтерактивная оболочка используется, когда пользователь не может взаимодействовать с оболочкой, т.е. выполнение bash-сценариев.

Разница проста: файл /etc/profile выполняется только для интерактивных оболочек, а файл /etc/bashrc – как для интерактивных, так и для неинтерактивных. Вообще-то, в Ubuntu файл /etc/profile вызывает файл /etc/bashrc напрямую.

Интерактивная оболочка и неинтерактивная оболочка: Сравнение

Чтобы на примере сравнить интерактивную и неинтерактивную оболочки, я добавлю переменную в оба файла /etc/profile и /etc/bash.bashrc в своей Ubuntu.

/etc/profile

/etc/bash.bashrc

Интерактивная оболочка

Ниже приведен пример интерактивной оболочки. В этом случае были выполнены оба файла /etc/profile и /etc/bash.bashrc .

Неинтерактивная оболочка

В этом примере мы выполняем команду через оболочку SSH, которая является неинтерактивной; поскольку это неинтерактивная оболочка, выполняется только файл /etc/bash.bashrc .

Читайте также:  Windows server краткое руководство

Заключение

В моем случае приложение не признает значение umask , заданное в файле /etc/profile , но признает значение в файле /etc/bashrc . Это говорит о том, что подпроцесс начинается как неинтерактивная оболочка. Поскольку предлагаемый способ изменения переменных окружения заключается в добавлении сценария оболочки в /etc/profile.d , в моем случае лучше задать значение umask в файле /etc/bashrc .

Источник

Где в Linux находится файл .bashrc?

Я не нахожу свои .bash_login и .bash_profile

Всегда ли для каждого пользователя есть только один файл .bashrc и .bash_profile?

И всегда ли .bashrc и .bash_profile находятся в каталоге / home / «username»?

Да, по умолчанию bash просматривает только домашний каталог пользователя. В Linux для них также обычно есть один источник — / etc / skel. Домашний каталог пользователя не обязательно должен находиться в / home.

Я вижу, что вы отредактировали свой вопрос, чтобы спросить, где находятся ваши файлы .bash_login и .bash_profile. Исходя из # подсказки, я предполагаю, что вы используете это как root. В этом случае ваши файлы

Смотрите мой оригинальный ответ выше относительно домашнего каталога пользователя — это не всегда / home; в этом случае домашним каталогом root является /root .

По словам man bash :

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

/ .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения.

Существует также /etc/bashrc ( /etc/bash.bashrc в Linux на основе Debian), который содержит System wide functions and aliases . По умолчанию это установлено, даже для неинтерактивных оболочек без входа в систему.

РЕДАКТИРОВАТЬ:

В tilde путях указывается home directory зарегистрированный в данный момент пользователь. Bash может использовать только одну из них

/.profile (для каждого пользователя, вошедшего в систему) в указанном порядке для чтения и выполнения команд. (Операционные системы на основе Debian, как правило, не имеют.

/.bash_login. Они используют файл

/.profile . Этот файл объясняет, что он будет прочитан и использован, если не

/.bash_login будет создан.

/.profile: executed by the command interpreter for login shells.

Источник

Где находится .bashrc?

Я чувствую себя глупо, спрашивая, но я не могу найти ответ на это нигде. Я пытаюсь следовать этим инструкциям для редактирования моего приглашения bash, но его нет ни .bashrc в моем каталоге пользователя (

/.bashrc ), ни в моем домашнем каталоге, ни в главном каталоге файловой системы.

Нет .bashrc в /etc/ (есть bash.bashrc , однако).

Создать .bashrc файл в моем пользовательском или домашнем каталоге? Есть ли лучший, более свежий набор инструкций для изменения приглашения bash?

/.bashrc . Но перед этим я должен также спросить, если вы новичок в Linux. Если вы новичок в Linux, то я могу опубликовать подробные инструкции здесь.

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

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

и добавьте в строки, которые нужно добавить в него.

Разрешения мои .bashrc являются:

( chmod 644 .bashrc чтобы сделать это rw r r ).

Читайте также:  Форматирование системного раздела windows

Специфично для пользователя , скрыто по умолчанию.

Если нет, просто создайте его.

Система в целом :

В каждой домашней папке пользователя есть файл .bashrc (99,99% времени), а также один в масштабе всей системы (местоположение которого я не знаю в Ubuntu).

Самый быстрый способ получить к нему доступ — nano

/.bashrc через терминал (замените его nano на то, что вам нравится).

Если это не присутствует в домашней папке пользователя, то общесистемная система .bashrc используется как запасной вариант, поскольку она загружается перед файлом пользователя. Вы можете просто скопировать и вставить его (конечно, с правами суперпользователя), но a .bashrc не является абсолютно необходимым (может потребоваться, чтобы все заработало. Я не обнаружил) на уровне пользователя, поскольку он в основном переопределяет всю систему один с пользовательскими настройками. Вы можете написать свой собственный, хотя.

Основными компонентами, которые могут настраивать пользователи, являются PS1 (приглашение Bash по умолчанию отображается user@localhost:pwd $ ) и псевдонимы, а также настройка цветного приглашения и, возможно, PS2 (сообщение о состоянии занятости).

Это скрыто, потому . что имя файла начинается с. Перечислите это с

или включите «Показать скрытые файлы» в меню просмотра в nautilus ( Ctrl — H тоже поможет).

Вы можете отредактировать его в своем любимом текстовом редакторе из вашего домашнего каталога, например, cd чтобы перейти в свой домашний каталог, а затем:

Источник

Где находится .bashrc?

Я чувствую глупость, но я не могу найти ответ на это. Я пытаюсь выполнить эти инструкции , чтобы отредактировать мое приглашение bash, но нет .bashrc в моем каталоге пользователя (

/.bashrc ) или в моем домашнем каталоге или в главном каталоге файловой системы.

В .bashrc отсутствует /etc/ (есть bash.bashrc ).

Создать файл .bashrc в моем пользовательском или домашнем каталоге? Есть ли лучший, более свежий набор инструкций для изменения подсказки bash?

9 ответов

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

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

и добавьте строки, которые нужно добавить в него.

Разрешения моего .bashrc :

( chmod 644 .bashrc , чтобы сделать его rw r r ).

Пользовательский , скрытый по умолчанию.

Если нет, просто создайте его.

Общая система :

В домашней папке каждого пользователя (99.99% времени) есть .bashrc, а также одна общесистемная (я не знаю, где находится Ubuntu).

Самый быстрый способ доступа к нему — nano

/.bashrc с терминала (замените nano на то, что вы хотите использовать).

Если этого нет в домашней папке пользователя, общесистемный .bashrc используется как резерв, поскольку он загружается перед файлом пользователя. Вы можете просто скопировать и вставить его (конечно, с правами root), но .bashrc не является абсолютно необходимым (может потребоваться, чтобы все работало, я не обнаружил) у пользователя поскольку он в основном переопределяет общесистемный подход с пользовательскими настройками. Вы могли бы написать свой собственный, хотя.

Основными компонентами для этих пользователей могут быть следующие: PS1 (приглашение Bash по умолчанию отображает [email protected]:pwd $ ) и псевдонимы, а также установку цветовой подсказки и, возможно, PS2 (сообщение состояния занятости).

Он скрыт из-за . начинается имя файла. Перечислите его с помощью

или включите «Показать скрытые файлы» в меню просмотра в nautilus ( Ctrl — H также выполнит трюк).

Читайте также:  Как сделать собственную сборку linux

Вы можете отредактировать его в своем любимом текстовом редакторе из своего домашнего каталога, например. cd , чтобы перейти в ваш домашний каталог, а затем:

Источник

Где находится файл .bashrc в Linux?

Я не нахожу свой .bash_login и .bash_profile

Всегда есть только один файл .bashrc и .bash_profile для каждого пользователя?

И, есть .bashrc и .bash_profile, всегда найденные в каталоге / home / «имя пользователя»?

Только те, которые bash смотрят по умолчанию, находятся в домашнем каталоге пользователя, да. В Linux также обычно есть один источник – / etc / skel. Однако домашний каталог пользователя не должен находиться под / home.

Я вижу, вы отредактировали свой вопрос, чтобы спросить, где находятся ваши файлы .bash_login и .bash_profile. Основываясь на приглашении # , я собираюсь предположить, что вы используете это как root. В этом случае ваши файлы

См. Мой первоначальный ответ выше, касающийся домашнего каталога пользователя – это не всегда / home; в этом случае корневой домашний каталог /root .

По словам man bash :

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

/ .profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения.

Существует также /etc/bashrc ( /etc/bash.bashrc в Linux на базе Debian), который содержит System wide functions and aliases . По умолчанию это устанавливается даже для неинтерактивных, не входящих в систему.

РЕДАКТИРОВАТЬ:

tilde на путях указывает home directory текущего пользователя. Bash может использовать только один

/.profile (для каждого пользователя, зарегистрированного в настоящий момент), в этом порядке, для чтения и выполнения команд. (На операционных системах на базе Debian обычно нет

/.bash_login. Они используют файл

/.profile . Этот файл объясняет, что он будет считан и использован, если

/.bash_login будут создано.

/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if

Ваше местоположение файла bashrc зависит от дистрибутива … Вот базовый список для системы bashrc :
/etc/bashrc (Redhat, Fedora и т. д.)
/etc/bash.bashrc (Debian, Ubuntu, Linux Mint, Backtrack, Kali и т. д.)
/etc/bash.bashrc.local (Suse, OpenSuse и т. д.)
Тогда есть частный однопользовательский bashrc , который по большей части хранится в

/.bashrc для каждого дистрибутива … Если у вас нет одного из перечисленных дистрибутивов или у вас есть специальная система, вы всегда можете найдите место bashrc в google для этого дистрибутива или системы …
С Уважением,
Интересно…

Как уже говорили люди, вы можете найти скелет bashrc в /etc/skel/.bashrc. Если разные пользователи хотят иметь разные конфигурации bash, тогда вы должны поместить файл .bashrc в домашнюю папку пользователей.

Когда дело доходит до .bash_profile и .bash_login, пользователь должен создать их вручную и связать их через bashrc. bash_profile и bash_login существуют, чтобы создать более организованное чувство для разных загружаемых параметров. Я лично сохраняю все свои псевдонимы в bash_profile, поэтому мне не нужно разбираться в беспорядке в bashrc, чтобы быстро редактировать.

Вот пример того, что у вас было бы в файле .bashrc:

Источник

Оцените статью