Linux /etc/profile 详解

打印 上一主题 下一主题

主题 831|帖子 831|积分 2493

在 Linux 体系中,/etc/profile 是一个全局配置文件,用于设置体系级别的情况变量和启动脚本。它主要影响所有用户的登录情况,通常在用户登录时被自动实行。下面是 /etc/profile 文件的详细介绍及其作用:
1. 文件作用



  • 全局配置:/etc/profile 是一个全局配置文件,设置所有用户的登录 shell 情况变量。这意味着它会影响体系中所有用户的情况配置,而不但仅是单个用户。
  • 用户登录时实行:/etc/profile 会在用户登录时被实行,具体来说,它在每次启动交互式登录 shell 时都会被实行,通常是在终端或通过 SSH 长途登录时。
2. 实行顺序

当用户登录体系时,以下文件按顺序实行:

  • /etc/profile:体系级别的配置文件,首先实行。
  • ~/.bash_profile、~/.bash_login 或 ~/.profile:用户级别的配置文件,实行此中一个(优先级递减)。
  • /etc/profile.d/:假如在 /etc/profile 中有引用,会加载这个目录下的所有 .sh 脚本。
因此,/etc/profile 通常会在用户个人的配置文件(如 ~/.bash_profile 或 ~/.profile)之前实行。
3. 常见用途

在 /etc/profile 中,通常会设置以下内容:
1) 体系情况变量



  • 设置全局情况变量,比方 PATH,JAVA_HOME 等。
  • 示例:
    1. PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:$PATH"
    2. export PATH
    复制代码
2) 设置 Shell 选项



  • 可以配置默认的 shell 举动,如开启下令别名,设置 umask 等。
  • 示例:
    1. umask 022
    复制代码
3) 引用 /etc/profile.d/ 目录



  • profile.d 目录通常用于存放多个独立的 shell 脚本,这些脚本可以为特定的应用或情况单独配置。/etc/profile 文件会自动加载这些脚本。

    • 示例:
      1. for i in /etc/profile.d/*.sh; do
      2.   if [ -r "$i" ]; then
      3.     . "$i"
      4.   fi
      5. done
      6. unset i
      复制代码

4) 设置体系别名



  • 可以在 /etc/profile 中为所有用户设置一些常用的别名。

    • 示例:
      1. alias ll='ls -alF'
      2. alias la='ls -A'
      3. alias l='ls -CF'
      复制代码

5) 体系消息



  • 在用户登录时,显示一些体系信息或公告。

    • 示例:
      1. echo "Welcome to the Linux system!"
      复制代码

4. 与其他配置文件的区别



  • /etc/profile:体系级别的配置文件,影响所有用户的登录 shell。它在每次用户登录时实行,适用于所有用户。
  • /etc/bash.bashrc:影响所有用户的非登录 shell,比方在终端内打开的交互式 shell(比方打开新的终端窗口)。
  • ~/.bash_profile:用户个人的登录 shell 配置文件,影响单个用户。它会在用户登录时实行。
  • ~/.bashrc:用户个人的非登录 shell 配置文件,通常在用户打开新的终端会话时加载。
5. 自界说 /etc/profile

假如你希望为体系中的所有用户设置某些全局配置或下令别名,可以通过编辑 /etc/profile 来实现。在编辑时需要小心,因为它影响的是所有用户。
示例:在 /etc/profile 中添加新的情况变量和别名

  1. # 设置全局 JAVA_HOME 路径
  2. JAVA_HOME="/usr/local/java/jdk1.8.0_251"
  3. export JAVA_HOME
  4. PATH="$JAVA_HOME/bin:$PATH"
  5. export PATH
  6. # 为所有用户定义别名
  7. alias cls='clear'
  8. alias vi='vim'
复制代码
6. 权限和安全性

由于 /etc/profile 影响体系中所有用户的情况,因此编辑该文件时需要具备管理员权限(通常为 root 权限)。可以使用以下下令来编辑 /etc/profile:
  1. sudo nano /etc/profile
复制代码
确保在修改后保存并退出编辑器。
7. 修改后的生效

修改 /etc/profile 后,你可以通过以下方式使更改立刻生效:

  • 重新登录:用户重新登录体系后更改会自动生效。
  • 手动加载:也可以使用 source 下令手动加载文件,使更改立刻生效:
    1. source /etc/profile
    复制代码
8. 典型的 /etc/profile 文件结构示例

  1. # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).if [ "${PS1-}" ]; then  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then    case $- in      *i*) ;;        *) return;;    esac  fi  if [ -f /etc/bash.bashrc ]; then    . /etc/bash.bashrc  fifi# Set PATHPATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"export PATH# Load profile.d scriptsfor i in /etc/profile.d/*.sh; do
  2.   if [ -r "$i" ]; then
  3.     . "$i"
  4.   fi
  5. done
  6. unset i
复制代码
总结

/etc/profile 是 Linux 体系中一个紧张的全局配置文件,用于配置登录时的情况变量、Shell 设置、别名以及体系消息等。它对所有用户生效,并在用户登录时被自动加载。通过适当配置 /etc/profile,可以为整个体系的用户提供统一的情况配置。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表