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

28

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

    
задан Brian Sizemore 16.04.2015 в 14:15
источник

3 ответа

38

Вы можете создать скрипт в /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 , но это не рекомендуется.
ответ дан Helio 16.04.2015 в 15:01
источник
4

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

#!/bin/sh
ls -l "[email protected]"

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

Источник: Ссылка

    
ответ дан jtpereyda 14.09.2017 в 21:03
0

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

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

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

См. Ссылка и Понимание .bashrc и .bash_profile для разграничения между оболочками.

    
ответ дан tinlyx 13.12.2017 в 23:26