如何为多个用户设置单个 .bashrc 文件?

如何为多个用户设置单个 .bashrc 文件?

在工作中我需要不断地向 bashrc 添加别名命令,其中大多数命令需要由其他用户运行。有没有什么方法可以从外部源向 bashrc 添加别名命令?

答案1

用户主目录中的许多配置文件只是覆盖/添加到其中的配置文件/etc- 例如,用户主目录中的 GIMP 设置位于~/.gimp-2.*,它添加到系统范围的配置中/etc/gimp/2.0

因此~/.bashrc,你可以编辑系统范围的配置文件/etc/bash.bashrc (对于函数/别名) 或者/etc/profile (针对环境方面)- 完整列表可从此处获取man bash

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bash_logout
              The systemwide login shell cleanup file, executed when a login shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a login shell exits
       ~/.inputrc
              Individual readline initialization file

文件中针对一些 Linux 系统给出了此警告:

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

因此,您可以编辑这些文件,您可能需要先备份它们(cp /etc/bash.bashrc /etc/bash.bashrc-backup例如),或者在中创建 shell 脚本/etc/profile.d- 例如,您可以使用以下命令创建一个(使用 sudo/as root):

touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh

然后打开它nano /etc/profile.d/custom.sh

#!/bin/sh
alias ls='ls -lah'

并通过查看它是否出现在输出中来检查它是否有效alias- 请注意,您可能需要注销/登录或重新启动才能看到任何更改(如果您不想,source /etc/profile在任何更改后运行可能会有效)

答案2

/etc/bash.bashrc

vim /etc/bash.bashrc

并在那里创建你的别名。

在最后一行添加您的别名。

别名 abc="随便"

该别名将成为所有用户的全局别名。

但出于安全原因,我们不建议您这样做。

profile.d一个包含用户环境文件的目录

cd /etc/profile.d/

vim 别名

并在此添加您的别名。

不会影响您的系统文件。这是处理环境文件的安全且正确的方法。

答案3

这里已经有一个可以接受的答案,但是您可以考虑使用某种形式的环境模块来处理用户环境的系统范围配置,而不是弄乱 /etc/profile.d 等中的文件。如果您想在许多 shell 中在一个地方管理这个控制,尤其如此。模式(正在积极开发中),C/TCL模块(经典解决方案),或模式(轻的)。

答案4

我对 Linux 操作系统还很陌生,但我绘制了一个 bash 脚本,可以修改所有用户的 .bashrc 文件,而不是系统文件 /etc/.bashrc 文件。

#!/bin/bash

X=$( cat etc/passwd | cut -f1 -d: ) #All-users

For X in /home/*/.bashrc ; do 

echo "alias ls='ls -al'" >> $X

2>/dev/null

done

source $X

exit 0

好的,我知道该脚本可以运行,但我不知道它是否没有错误:) 您还可以修改它,使其不涉及所有用户,也许您可​​以为所有需要定制其 .bashrc 文件的用户创建一个文件。

相关内容