当前位置: 首页>>技术教程>>正文


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

问题描述

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

最佳办法

用户主目录中的许多配置文件只是覆盖/添加到/etc中的文件中,例如,用户主目录中GIMP的设置位于~/.gimp-2.*中,这会添加到system-wide的配置/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),或者在/etc/profile.d中创建一个shell脚本-例如,您可以使用以下命令创建一个(以sudo /作为根用户):

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可能会起作用)

[编辑:删除了此无效链接] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]

次佳办法

转到/etc/bash.bashrc

vim /etc/bash.bashrc

然后在那做你的别名

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

alias abc=”whatever”

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

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

profile.d目录,其中包含user-environment个文件

cd /etc/profile.d/

vim aliases

并在此处添加别名。

而不影响您的系统文件。这是使用环境文件的安全正确的方法。

第三种办法

此处已经有一个可接受的答案,但是您可以考虑使用某种形式的环境模块来处理用户环境的system-wide配置,而不是弄乱/etc/profile.d中的文件等。如果要管理此文件,则尤其如此。跨多个 shell 在一处进行控制。 Lmod(正在积极开发中),C/TCL modules(经典解决方案)或Cmod(轻型)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9962.html,未经允许,请勿转载。