podczas mojej pracy muszę ciągle dodawać aliasy do bashrc, większość z nich musi być uruchamiana przez innych użytkowników. czy jest jakiś sposób, aby dodać polecenia aliasu do bashrc ze źródła zewnętrznego?
podczas mojej pracy muszę ciągle dodawać aliasy do bashrc, większość z nich musi być uruchamiana przez innych użytkowników. czy jest jakiś sposób, aby dodać polecenia aliasu do bashrc ze źródła zewnętrznego?
Odpowiedzi:
Wiele plików konfiguracyjnych w katalogu domowym użytkowników po prostu zastępuje / dodaje do plików w /etc
- na przykład są ustawienia GIMP w katalogu domowym użytkowników ~/.gimp-2.*
, co dodaje się do konfiguracji ogólnosystemowej /etc/gimp/2.0
.
Tak więc dla ~/.bashrc
możesz edytować systemowe pliki konfiguracyjne /etc/bash.bashrc
(dla funkcji / aliasów ) lub /etc/profile
(dla elementów środowiska) - możesz uzyskać pełną listę z 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
To ostrzeżenie jest podane dla kilku systemów Linux w plikach:
# 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.
Aby móc edytować te pliki, możesz najpierw wykonać ich kopię zapasową ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
na przykład) lub utworzyć skrypt powłoki /etc/profile.d
- na przykład możesz utworzyć jeden z tych poleceń (z sudo / as root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Następnie otwórz za pomocą nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
I sprawdź, czy to działa, sprawdzając, czy pojawia się na wyjściu alias
- Pamiętaj, że może być konieczne wylogowanie / zalogowanie lub ponowne uruchomienie, aby zobaczyć zmiany (jeśli nie chcesz, uruchamianie source /etc/profile
po zmianach może działać)
[edytuj: usunąłem ten martwy link] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
i /etc/bash.bash_logout
nie działają. :(
/etc/profile.d/
będzie nie być odebrany przez prawo sub-process? Czy więc alias jest dostępny tylko wtedy, gdy Bash jest powłoką logowania?
Iść do /etc/bash.bashrc
vim /etc/bash.bashrc
i stwórz tam swój alias.
dodaj swój alias w ostatniej linii.
alias abc = "cokolwiek"
Ten alias stanie się globalny dla wszystkich użytkowników.
ale ze względów bezpieczeństwa nie zalecamy tego.
istnieje profile.d
katalog zawierający pliki środowiska użytkownika
iść do
cd /etc/profile.d/
Aliasy vim
i dodaj tutaj swoje aliasy.
bez wpływu na pliki systemowe. Jest to bezpieczny i właściwy sposób pracy z plikami środowiska.
Odpowiedź jest już zaakceptowana, ale możesz rozważyć użycie jakiejś formy modułów środowiska do obsługi ogólnosystemowej konfiguracji środowisk użytkowników zamiast bałagania się w plikach w /etc/profile.d itp. Jest to szczególnie prawdziwe, jeśli chcesz zarządzaj tą kontrolą w jednym miejscu na wielu powłokach. Lmod (w trakcie bardzo aktywnego rozwoju), moduły C / TCL (klasyczne rozwiązanie) lub Cmod (lekki).
Nie wiem, czy robię to dobrze, ale dla mnie działa utrzymanie katalogu / home / ComunAtodos (pisane wielkimi literami i po hiszpańsku, aby było oczywiste, że nie jest to katalog macierzysty linuksa) i wstawić .bashrc, .nanorc i .bash_alia tam. Następnie odsyłam do tych w /etc/skel/.profile, aby nowi użytkownicy wskazywali na nich i dodawali dodatki tylko do określonych użytkowników, którzy ich potrzebują.
Jestem naprawdę nowy w systemie operacyjnym Linux, ale zrobiłem szkic skryptu bash, który działa, aby zmodyfikować plik .bashrc wszystkich użytkowników, a nie plik systemowy /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
Okej, więc wiem, że ten skrypt działa, ale nie robię tego, jeśli jest bezbłędny :) Możesz go również zmodyfikować, aby nie obejmował wszystkich użytkowników, być może tworzysz plik dla wszystkich użytkowników, którzy potrzebują ich pliku .bashrc dostosowane
.bashrc
plik i zawsze dołącza się niezależnie od tego, czy wiersz jest już w pliku.
/etc/skel/.bashrc
aby zmienić wygląd zawartości~/.bashrc
dla nowo utworzonych użytkowników.