问题描述
在我的工作中,我需要不断向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(轻型)。