Mam Ubuntu 14.04.2. Chcę, aby wszyscy użytkownicy automatycznie mieli określony zestaw aliasów. Mam swoje aliasy w moim osobistym pliku .bashrc, ale nie chcę ręcznie kopiować ich do innych użytkowników. Najlepiej byłoby automatycznie ustawić je również dla nowo utworzonych użytkowników.
38
Odpowiedzi:
Możesz utworzyć skrypt,
/etc/profile.d/
aby tworzyć aliasy dla wszystkich użytkowników:Utwórz plik o nazwie
00-aliases.sh
(lub innej wymyślnej nazwie) w/etc/profile.d
:Umieść ci aliasy w tym pliku. Przykład:
Zapisz plik
Niektóre uwagi:
/etc/profile
to plik globalny, który jest uruchamiany wcześniej~/.profile
./etc/profile.d/
to folder zawierający skrypty wywoływane przez/etc/profile
Kiedy
/etc/profile
jest wywoływany (po uruchomieniu / zalogowaniu się powłoki), wyszukuje pliki kończące się.sh
na/etc/profile.d/
i uruchamia je za pomocą jednego z następujących poleceń:00-
przed nazwą pliku, aby była wykonywana przed resztą skryptów./etc/profile
, ale nie jest to zalecane.źródło
.sh
plikach w/etc/profile.d/
(lub/etc/profile
) zostaną zdefiniowane tylko dla powłok logowania i nie będą działać w interaktywnych powłokach bez logowania. W przeciwieństwie do zmiennych środowiskowych, bash nie może eksportować aliasów do procesów potomnych, nawet powłok potomnych bash. Ta metoda może wydawać się działać poprawnie, jeśli jest testowana tylko w powłokach logowania, takich jak oryginalna powłoka uzyskana po zalogowaniu się w konsoli wirtualnej lub za pośrednictwem SSH, ale zawodzi w powłokach potomnych, a także w powłokach uruchamianych przez okna terminala GUI.Jak wskazano tutaj , prawdopodobnie lepiej jest dodać globalne aliasy w
/etc/bash.bashrc
:, ponieważ skrypty w
/etc/profile.d
mogą być ignorowane dla niektórych powłok (niezalogowanych). Zrozumienie, dlaczego/etc/profile.d
nie zadziałało, zajęło mi wiele godzin .Zobacz np. Https://askubuntu.com/a/606882/ i Zrozumienie .bashrc i .bash_profile w celu odróżnienia powłok.
źródło
Alias będzie działał tylko w powłoce. Jeśli chcesz czegoś tak powszechnie dostępnego jak plik wykonywalny, możesz dodać mały skrypt skrótu
/usr/bin
, np .:"$@"
Przechodzi przez wszystkie argumenty do pliku wykonywalnego. Nazwa skryptu będzie nazwą pliku wykonywalnego.Źródło: https://unix.stackexchange.com/a/52509/15954
źródło
/ etc / bashrc
Zmiana tego pliku NIE jest dobrym pomysłem, chyba że wiesz, co robisz. O wiele lepiej jest utworzyć skrypt powłoki custom.sh w /etc/profile.d/, aby wprowadzić niestandardowe zmiany w środowisku, ponieważ zapobiegnie to konieczności scalania w przyszłych aktualizacjach.
źródło