我有一个作业,但我很困惑要编辑哪个 bash 配置文件。
我应该编辑 bash 配置文件并更改 PS1 提示符并添加一个环境变量,每当 root 用户输入命令时该环境变量都会搜索 ~/scripts 。然后我应该将其复制到适当的目录,以便所有新创建的用户也将拥有变量。
我可以很好地完成第一部分,但不确定我应该编辑哪个配置文件。根据第二个要求,我正在编辑 ~/.bashrc,但随后我陷入了要复制到哪个目录的第二部分。
NDG 表示该目录中带有 .sh 扩展名的所有文件都会在 /etc/profile.d/ 中自动执行,因此我继续将 ~/.bashrc 复制/重命名为 bashrc.sh 之类的文件。但是当我使用新的用户配置文件测试它时,终端中出现空提示。
希望这里有人可以帮助我,谢谢。
作业的确切措辞
- 在相应的 bash shell 配置文件中,配置主命令行提示符,使其显示您的姓氏,后跟 @、主机名和工作目录。
- 创建一个名为 ~/scripts 的目录
- 在相应的 bash shell 配置文件中,更改相应的环境变量,以便当 root 用户输入命令时系统也会搜索新创建的 ~/scripts 目录。
- 将您在上述步骤中修改的 bash shell 配置文件复制到适当的目录,以便每当创建新用户时,该用户也将具有这些环境变量值。
答案1
你看起来编辑得很好.bashrc
;您还需要复制要在创建用户时复制的任何配置/脚本文件的模板的目录通常位于/etc/skel
.
所以你会这样做:
附加
~/.bashrc
并放置在那里:PS1="surname@\h\w>"
在 ~/scripts 中为将来的用户脚本创建占位符
mkdir ~/scripts
附加到
~/.bashrc
$PATH 修饰符以使其搜索脚本;根据经验,出于安全原因,您将其附加在末尾,而不是开头PATH=$PATH:~/scripts
在最后一部分中,您需要以
root
或属于sudo
该命令前面的组的身份执行此操作,以sudo
获得超级用户权限;您的普通用户默认权限不足以在 /etc/skel 目录中写入。如在sudo cp ~/.bashrc /etc/skel
或作为
root
用户:cp ~your_user_name/.bashrc /etc/skel
查看相关内容关联有关 /etc/skel 的更多详细信息
/etc/skel 目录包含在 useradd 程序创建新用户时自动复制到新用户主目录的文件和目录。
/etc/skel 允许系统管理员为计算机或网络上的所有新用户创建默认主目录,从而确保所有用户都以相同的设置或环境开始。
操作系统安装时默认将几个用户配置文件放置在/etc/skel中。
目录 skel 的名称源自“骨架”一词,因为它包含的文件构成了用户主目录的基本结构。
至于PATH环境变量,参见这
PATH 环境变量是一个以冒号分隔的目录列表,当您输入命令时,shell 将搜索该目录。
程序文件(可执行文件)保存在 Unix 系统上的许多不同位置。当您请求特定程序时,您的路径告诉 Unix shell 在系统上查找的位置。
要更改 PS1 的提示,您可以使用.bashrc PS1 生成器并使用一个非常聪明的网页实时查看修改。