Durante mi trabajo, necesito agregar constantemente comandos de alias a bashrc, la mayoría de esos comandos deben ser ejecutados por otros usuarios. ¿Hay alguna forma de agregar comandos de alias a un bashrc desde una fuente externa?
Durante mi trabajo, necesito agregar constantemente comandos de alias a bashrc, la mayoría de esos comandos deben ser ejecutados por otros usuarios. ¿Hay alguna forma de agregar comandos de alias a un bashrc desde una fuente externa?
Respuestas:
Muchos archivos de configuración en el directorio de inicio de los usuarios simplemente anulan / agregan a los que están en el /etc
- por ejemplo, la configuración de GIMP en el inicio de los usuarios se encuentra ~/.gimp-2.*
, lo que se agrega a la configuración de todo el sistema /etc/gimp/2.0
.
Por lo tanto ~/.bashrc
, puede editar los archivos de configuración de todo el sistema /etc/bash.bashrc
(para funciones / alias ) o /etc/profile
(para cosas de entorno) ; puede ver la lista completa en 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
Esta advertencia se da para algunos sistemas Linux en los archivos:
# 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.
Por lo tanto, puede editar esos archivos, es posible que desee hacer una copia de seguridad primero ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
por ejemplo) o crear un script de shell /etc/profile.d
; por ejemplo, puede crear uno con estos comandos (con sudo / as root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Luego ábrelo con nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
Y verifique si funciona al ver si aparece en la salida de alias
- Tenga en cuenta que es posible que deba cerrar sesión / iniciar sesión o reiniciar para ver los cambios (si no lo desea, ejecutar source /etc/profile
después de que cualquier cambio pueda funcionar)
[editar: eliminó este enlace muerto] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
y /etc/bash.bash_logout
no funcionan. :(
/etc/profile.d/
recogerá por subproceso, ¿verdad? Entonces, ¿el alias solo está disponible cuando Bash es el shell de inicio de sesión?
Ir /etc/bash.bashrc
vim /etc/bash.bashrc
y haz tu alias allí.
agrega tu alias en la última línea.
alias abc = "lo que sea"
Ese alias se volverá global para todos los usuarios.
pero por razones de seguridad no te recomendamos eso.
hay un profile.d
directorio que contiene archivos de entorno de usuario
ir
cd /etc/profile.d/
alias vim
y agrega tus alias aquí.
sin afectar los archivos de su sistema. Es una forma segura y correcta de trabajar con los archivos de su entorno.
Ya hay una respuesta aceptada aquí, pero podría considerar utilizar algún tipo de módulos de entorno para manejar la configuración de todo el sistema de los entornos de usuario en lugar de meterse con los archivos en /etc/profile.d, etc. Esto es especialmente cierto si desea gestione este control en un solo lugar a través de muchos proyectiles. Lmod (en desarrollo muy activo), módulos C / TCL (la solución clásica) o Cmod (ligero).
No sé si lo estoy haciendo bien, pero me funciona mantener un directorio / home / ComunAtodos (en mayúscula y en español para hacer evidente que no es un directorio nativo de Linux) y poner .bashrc, .nanorc y .bash_aliases allí. Luego hago referencia a aquellos en /etc/skel/.profile para que los nuevos usuarios los señalen, y solo agrego extras a usuarios específicos que los necesitan.
Soy realmente nuevo en el sistema operativo Linux, pero hice un boceto de un script bash que funciona para modificar todos los archivos .bashrc de los usuarios y no el archivo del sistema /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
Bien, sé que ese script funciona, pero no lo hago si está libre de fallas :) También puedes modificarlo para que no involucre a todos los usuarios, tal vez hagas un archivo para todos los usuarios que necesitan su archivo .bashrc Personalizado.
.bashrc
archivo, y siempre se agrega independientemente de si la línea ya está en su archivo.
/etc/skel/.bashrc
para cambiar el~/.bashrc
aspecto de los contenidos para los usuarios recién creados.