Как я могу установить псевдонимы для всех пользователей?

У меня Ubuntu 14.04.2. Я хочу сделать так, чтобы у всех пользователей автоматически был определенный набор псевдонимов. Мои личные псевдонимы установлены в моем личном.bashrc, но я не хочу вручную копировать их другим пользователям. В идеале он должен автоматически устанавливать их и для вновь созданных пользователей.

3 ответа

Решение

Вы можете создать скрипт в /etc/profile.d/ сделать псевдонимы для всех пользователей:

  1. Создайте файл с именем 00-aliases.sh (или любое другое причудливое имя) в /etc/profile.d:

    gksu gedit /etc/profile.d/00-aliases.sh
    
  2. Поместите в этот файл псевдонимы. Пример:

    alias foo='bar --baz'
    alias baz='foo --bar'
    
  3. Сохранить файл

  4. Перезапустите все открытые терминалы, чтобы применить изменения.
  5. Наслаждайтесь!

Некоторые заметки:

  • /etc/profile это глобальный файл, который запускается раньше ~/.profile,
  • /etc/profile.d/ папка, содержащая скрипты, вызываемые /etc/profile
  • когда /etc/profile вызывается (когда вы запускаете / входите в оболочку), он ищет любые файлы, заканчивающиеся на .sh в /etc/profile.d/ и запускает их с помощью одной из следующих команд:

    source /etc/profile.d/myfile.sh
    

    . /etc/profile.d/myfile.sh
    
  • Я ставлю 00- перед именем файла, чтобы он выполнялся перед остальными сценариями.
  • Вы также можете добавить свои псевдонимы в /etc/profile, но это не рекомендуется.

Как указано здесь, вероятно, лучше добавить глобальные псевдонимы в /etc/bash.bashrc:

alias foo='bar --baz'
alias baz='foo --bar'

потому что скрипты в /etc/profile.d можно игнорировать для определенных (не входящих в систему) оболочек. Мне понадобились часы, чтобы понять, почему /etc/profile.d не работал

См., Например, /questions/387248/ponimaniebashrc-ibashprofile/387253#387253 и Понимание.bashrc и.bash_profile для различия между оболочками.

Псевдоним будет работать только внутри оболочки. Если вы хотите что-то столь же широко доступное, как исполняемый файл, вы можете добавить небольшой ярлык /usr/binНапример:

#!/bin/sh
ls -l "$@"

"$@" передает все аргументы в исполняемый файл. Имя скрипта будет именем исполняемого файла.

Источник: /questions/123599/dvojnaya-zagruzka-windows-2000-i-ubuntu/123608#123608

/ И т.д. / Bashrc

  • Общесистемные функции и псевдонимы
  • Окружающая среда находится в / etc / profile

Не рекомендуется менять этот файл, если вы не знаете, что делаете. Гораздо лучше создать сценарий оболочки custom.sh в /etc/profile.d/ для внесения пользовательских изменений в вашу среду, поскольку это предотвратит необходимость слияния в будущих обновлениях.

Другие вопросы по тегам