创建用户的模板目录
一、目录作用
/etc/skel 是系统创建新用户时的家目录模板目录。当通过 useradd 等命令创建新用户时,该目录下的所有文件和子目录会被自动复制到新用户的家目录(如 /home/用户名),从而为新用户提供统一的初始环境配置。
二、/etc/skel 中包含的主要文件
1. .bash_logout
- 作用:当用户退出 bash shell 时,会执行该文件中的命令(如清理临时文件等)。
- 适用范围:属于用户级配置,每个用户的家目录中会包含此文件,仅对当前用户生效。
2. .bash_profile
- 作用:主要用于设置用户的环境变量、启动程序等,在用户登录(如通过控制台、ssh 登录)时执行。
- 适用范围:属于用户个性化配置,仅对当前用户生效(不同用户的
.bash_profile可独立修改)。
3. .bashrc
- 作用:用于配置 bash shell 的交互环境(如命令别名、命令提示符样式等),在每次打开新的 bash 终端时执行。
- 适用范围:
/etc/skel/.bashrc作为初始模板,会被复制到各用户家目录,成为用户级.bashrc;系统级的 bash 配置通常在/etc/bashrc(对所有用户生效),用户级.bashrc可覆盖或补充系统级配置。
三、模板的典型应用场景
- 统一运维操作规范:通过在
/etc/skel中预设脚本、配置文件,确保所有新用户初始环境符合运维规范。 - 统一命令提示符样式:在
/etc/skel/.bashrc中预设命令提示符配置(如PS1变量),新用户创建后自动应用统一样式,无需逐个配置。
四、用户家目录中的特殊文件
非模板初始文件,用户使用后生成。
1. .bash_history
- 作用:记录用户在 bash shell 中执行过的历史命令。
- 存储位置:
- 内存中:当前 shell 会话的历史命令暂存于内存,可通过
history命令直接查看。 - 磁盘文件中:当用户退出 shell 时,内存中的历史命令会写入家目录的
.bash_history文件,长期保存(默认保存最近 1000 条,可通过HISTSIZE等变量调整)。
- 内存中:当前 shell 会话的历史命令暂存于内存,可通过
2. .viminfo
- 作用:保存 vim 编辑器的相关状态信息,包括:
- 历史编辑的文件路径
- 搜索历史记录
- 光标位置记忆
- 寄存器内容等
- 特点:用户首次使用 vim 后自动生成,仅对当前用户的 vim 操作生效。