Описание тега .profile

Пользовательский (не общесистемный) скрипт конфигурации, выполняемый при запуске оболочек входа в систему.

.profile файл в домашнем каталоге каждого пользователя (например, /home/octavia/.profile), который запускается только для логинов. Это означает, что он определенно будет читаться bash, когда пользователь входит в систему на TTY (виртуальном терминале), но обычно не будет читаться bash при открытии эмулятора терминала внутри графической оболочки. Однако, поскольку файл обычно читается графической оболочкой, когда пользователь входит в систему, установленные там переменные могут наследоваться другими оболочками. Поэтому это единственное место, которое можно использовать для установки или изменения некоторых пользовательских переменных среды.

Файл .profile обычно читается в Ubuntu, потому что у нас обычно нет файла ~/.bash_login, который будет читать в предпочтении ~/.profile если он существует, или файл ~/.bash_profile который будет читаться в предпочтении к любому из этих файлов.

Вот пример .profile в убунту

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Как показано, ~/.profile может быть использован для установки umask для пользователя, переопределяя один набор по всей системе: /etc/profile,

Затем код проверяет, является ли запускаемая оболочка оболочкой bash, и, если это так, читает пользователя ~/.bashrc, Это означает, что любые настройки (такие как определение PS1, псевдонимы и функции) сделаны в ~/.bashrc будут доступны в оболочках, которые читают ~/.profile но нет ~/.bashrc непосредственно, если они не будут переопределены командами позже в файле.

Наконец, код проверяет, есть ли у пользователя каталог ~/bin и если он существует, он добавляется к их переменной PATH. Это означает, что пользователи могут размещать приложения в этом каталоге и вызывать их без полного пути.

Дополнительные настройки могут быть добавлены в конец файла.

Некоторые популярные вопросы:

Что такое логин и не-логин?

Почему в Ubuntu по умолчанию ~/.profile источник ~/.bashrc?