Існує дві пов'язані причини, через які псевдоніми не завжди працюють, коли їх розміщують у .profile
файлі. Перший полягає в тому, що .profile
(або .bash_profile
) файл запускається лише для оболонки входу. Якщо ви запускаєте bash у вікні термінала під X, ваш емулятор терміналу (наприклад, gnome-termanl), ймовірно, не працює bash як оболонка входу. [У більшості є можливість змінити це, якщо ви хочете, але за замовчуванням (для gnome-termal все одно) це не запускати його як оболонку для входу.]
Оболонка буде інтерактивною оболонкою і тому .bashrc
буде запущена.
Однак зазвичай bash запускається як оболонка входу назад під час запуску сеансу X. Отже, якщо в ньому є команди псевдоніму, .profile
вони будуть виконані разом із встановленням змінних оточуючих середовищ, таких як PATH і т.д. На відміну від змінних середовища, псевдоніми не можна експортувати з одного примірника bash до нового, розпочатого ним. Тож псевдоніми не передаються новій оболонці.
Щоб побачити це, спробуйте цей експеримент:
export ROBERT=bob
alias james=jimmy
echo $ROBERT
alias james
bash #start a new bash instance
echo $ROBERT
alias james
exit #end the new bash instance and revert to the original one
echo $ROBERT
alias james
Зауважте, що .bashrc
він не запускається bash, коли він запускається як оболонка входу. Тож розміщення псевдонімів не завжди спрацює, якщо ви не отримаєте .bashrc
своє .profile
, що є звичайною практикою.
gl
? Термінал? GUI?