чому імена псевдонімів, визначені у файлі .bashrc, не працюють?


12

Я даю псевдоніми імена у .bashrc файл, як нижче. Але псевдоніми не працюють. чому?

alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

2
Ви хочете сказати, що ви отримуєте змінні середовища, але не псевдоніми, або ви нічого не отримуєте?
Пол

1
Можливо, це буде окремим питанням, але ви викреслюєте свій ПАТ. Ви повинні посилатися на свій старий PATH в будь-яких умовах, наприкладexport PATH=$PATH:$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Rich Homolka

Відповіді:


29

Ви джерело свого .bashrcфайлу після зміни його? Спробуйте:

. ~/.bashrc

Тоді ваша оболонка повинна побачити зміни. Крім того, ви можете скасувати та перезапустити оболонку.

пс

Запускаючи сценарій, завантажте цю першу посилання

shopt -s expand_aliases

2
Це вирішило мою проблему! До цього я навіть намагався вийти та знову через SSH, але нічого не сталося. Псевдонім досі був недоступний. Схоже, я маю це робити щоразу, коли роблю SSH! Чи знаєте ви, чому це відбувається?
Володимир Деспотович

Не рекомендую повторно бігати .bashrc. Це може спричинити деякі повторювані та набряклі значення. Чому б не вийти і не запустити нову оболонку? Він завантажить оновлений .bashrcфайл.
АлікЕльзін-кілака

2

Це може статися тому, що ваш PATH не встановлений правильно для використання всіх посилань на бінарні файли absoulte. Тобто ls існує під / bin / ls.

Чи можете ви спробувати скористатися "експортувати PATH = $ PATH: $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin:." або щось подібне до "експортувати PATH = $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin: / bin: / sbin /: / usr / sbin

якщо ні, то використовуйте "котрий", щоб знайти каталог шляху для окремих бінарних псевдонімів (які історії).


1

Питання, які слід задати собі:

  • Чи виконаний ~ / .bashrc у вашій оболонці. Вона запускається лише при запуску оболонки. Якщо ви відкриєте нову оболонку (виконайте bash), вона повинна бути. З aliasвами слід побачити всі друковані ваші псевдоніми.
  • Друге, що потрібно запитати: чи доступні програми у ваших псевдонімах. Принаймні h (псевдонім історії) обов'язково повинен працювати, тому що він побудований.

1

Можливо, ви намагаєтесь визначити свої псевдоніми .bashrc, які вже є глобальними.

Зазвичай ваші псевдоніми .bashrcвизначаються перед /etc/bashrcвикликом. Спробуйте визначити їх після .

Ось приклад вашого .bashrc:

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

Страхітлива відповідь! Я бачу це послідовно в AMI AWS Linux
rainabba

1

На всякий випадок, якщо будь-які користувачі MacOS шукають цю відповідь, я спробував це на своєму MacBook і навіть перезапуск терміналу не завантажував би нові визначення псевдоніму. Єдиний спосіб я міг змусити його працювати source ~/.bashrcкожен раз. Потім я спробував перенести свої псевдонімічні визначення до цього,~/.bash_profile і саме це зробило трюк.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.