Это последняя строка в моем .profile:
alias gl="cd /home/jrenner/glances/glances"
все же даже после перезагрузки я получаю команду, не найденную при наборе gl. Что происходит? Я вошел как правильный пользователь.
command-line
bash
alias
.profile
talloaktrees
источник
источник
gl
? Терминал? GUI?.profile
, не работают ни в каком контексте, который я пробовал: вход в текстовую консоль, графические терминалы или что-либо еще, даже если переменные среды из того же файла работают.Ответы:
Я почти уверен, что идея lpanebr сработает, но вот более элегантное решение. Выполните эту команду псевдонима в
.bashrc
разделе Вот как я это делаю, или некоторые люди предпочитают добавить файл, посвященный псевдониму. Позвони.alias
или как угодно и добавь.alias
в свой.bashrc
Хотел бы я сделать форматирование как @lpanelbr. Интересно, есть ли вики?
источник
.bashrc
работает, а.profile
нет? Кроме того, есть какая-либо причина, почему вы решили назвать псевдоним файла,.allias
а не.alias
?Есть две связанные причины, по которым псевдонимы не всегда работают, когда помещаются в
.profile
файл. Во-первых, файл.profile
(или.bash_profile
) запускается только для оболочки входа в систему. Если вы запускаете bash в окне терминала под X, ваш эмулятор терминала (например, gnome-termanl), вероятно, не запускает bash в качестве оболочки входа в систему. [У большинства есть возможность изменить это, если вы хотите, но по умолчанию (для gnome-termal в любом случае) это не запускать его как оболочку входа в систему.]Оболочка будет интерактивной и поэтому
.bashrc
будет запущена.Однако, как правило, bash запускался как оболочка для входа в систему при запуске X-сессии. Таким образом, если в
.profile
команде есть псевдонимы, они будут выполняться вместе с настройкой переменных среды, таких как PATH и т. Д. Когда открывается окно терминала, запускается новый экземпляр bash для запроса и выполнения команд в этом окне терминала. В отличие от переменных среды, псевдонимы нельзя экспортировать из одного экземпляра bash в новый, запущенный им. Таким образом, псевдонимы не передаются новой оболочке.Чтобы увидеть это, попробуйте этот эксперимент:
Обратите внимание, что
.bashrc
bash не запускается при запуске в качестве оболочки входа в систему. Таким образом, размещение ваших псевдонимов не всегда будет работать, если вы.bashrc
не получены от вас.profile
, что является очень распространенной практикой.источник
source .bashrc
в.bash_profile
разрешенном множестве псевдонимов в .bashrc к работе.~/.bash_aliases
. Это правильный способ сделать это. (прочитайте файл .bashrc для деталей).Если вы используете bash (
echo $SHELL
) в качестве интерпретатора оболочки, я думаю, что будет лучше (или, возможно, единственным способом), если вы определите свою собственную функцию CD.Отредактируйте ваш
.bashrc
файл и добавьте следующее в конце:Вы также можете расширить его так:
и перейти непосредственно в подкаталог и перечислить его содержимое.
источник
alias
директива, помещенная в.profile
файл, терпит неудачу.Это была проблема с моим сервером. Простой
source .profile
не работал по какой-то причинеисточник
Правильный способ сделать это в Ubuntu - добавить свой псевдоним
~/.bash_aliases
. Создайте файл, если он не существует.Этот файл (если имеется) вызывается по умолчанию
~/.bashrc
, и псевдоним будет доступен и в эмуляторах вашего терминала.источник