Как постоянно определять псевдонимы в Терминале

18

Я хочу добавить псевдонимы в свою среду, чтобы они были доступны во всех экземплярах терминала.

Я получил этот ответ :

Да, вы можете поместить его в ваш .bashrc, .bash_profile или .profile. В некоторых системах сценарии инициализации оболочки также содержат исходные файлы .bash_aliases или .aliases, поэтому, если в вашей системе существует один из этих файлов, может иметь смысл использовать их.

Но я не могу найти ни одного из этих файлов.

(Я настроил OS X для просмотра скрытых файлов, и все же я не вижу ничего из вышеперечисленного 4.)

Элад Бенда
источник
Псевдонимы работают только в оболочке (в терминале), так что именно вы подразумеваете под добавлением псевдонимов в среду OS X? Хотите сделать псевдоним доступным для всех пользователей?
Nohillside
Я имел в виду, что он будет установлен для каждого терминала, который я открою в будущем
Elad Benda
Я откатил ваше редактирование, потому что оно изменило фокус вопроса. Если вы все еще ищете ответ о том, как добавить псевдонимы в zsh, задайте новый вопрос.
холме

Ответы:

23

Если вы используете bash, добавьте команды псевдонимов в ~ / .bashrc и сохраните такой файл как ~ / .bash_profile:

. ~/.bashrc

Когда bash вызывается как интерактивная оболочка без входа в систему, она читает .bashrc, но не .bash_profile. Когда bash активируется как интерактивная оболочка входа, он читает .bash_profile, но не .bashrc.

По умолчанию Terminal и iTerm открывают новые оболочки в качестве оболочек для входа в систему, поэтому многие пользователи OS X просто используют .bash_profile в качестве своего личного файла конфигурации. Например, tmux и режим оболочки в Emacs открывают новые оболочки как оболочки без входа в систему.

.profile также читается другими оболочками вроде ksh. Если существуют оба файла .bash_profile и .profile, bash читает .bash_profile только тогда, когда он вызывается в качестве интерактивной оболочки входа.

См. Https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html для получения дополнительной информации.

LRI
источник
3
@EladBenda Если вы используете zsh, добавьте команды псевдонима для ~/.zshrc. ~/.zshrcчитается обоими (интерактивными) не входящими в систему и не входящими в систему оболочками, поэтому вам не нужно получать его из ~/.zprofile.
Lri
Всегда хотел узнать разницу между .bash_profile и .bashrc, теперь я знаю. Благодарю.
Deesbek
Лучше оставить псевдонимы в файле ~ / .aliases, если вы используете oh-my-zsh. Если этот файл не существует, он может быть добавлен в домашнюю папку и будет скрытым файлом.
Анюша
6

Откройте новое окно терминала и перейдите в свой домашний каталог (просто введите cdи нажмите Enter).

После этого введите ls .bash*и также ls .profile(обратите внимание, что каждое из этих имен файлов начинается с точки). Если у вас есть эти файлы (а у вас должен быть хотя бы один .profile), вам нужно отредактировать их и добавить к ним псевдонимы. Я использую VI (или VIM) для редактирования этих файлов, но вы можете использовать другой редактор (фактически, ввод в окне терминала open .bash_profileоткроет его в TextEditor, который может быть немного более удобным для пользователя, если вы не знакомы с VI) , Если по какой-то причине у вас нет ни одного из этих файлов, то создайте новый (и назовите его .bashrc), добавьте в него строки псевдонимов (так что это будет одна команда на строку, как вы их наберете) в оболочке), а затем сохраните файл. Затем вы можете создать символические ссылки на .bash_profile и .profile, используяln -s .bashrc .bash_profile; ln -s .bashrc .profile .

Обычно я делаю символические ссылки .bashrc и .bash_profile на .profile, а затем просто беспокоюсь только об одном файле.

Разница между этими файлами заключается в том, что bash будет исходить из разных файлов в зависимости от того, был ли он запущен в качестве оболочки входа в систему (обычно процесс входа в систему запускает оболочку в качестве оболочки входа в систему) или в качестве просто интерактивной (но не учетной записи) оболочки, или неинтерактивная оболочка. Наличие всех трех одинаковых файлов дает мне согласованную среду независимо от того, как был запущен bash.

Вы получите больше информации man bash, но будьте готовы, это длинная справочная страница. Вы сможете увидеть, какой из трех файлов (.bashrc, .profile и .bash_profile) получен в зависимости от того, в каком режиме был запущен bash.

Надеюсь, это поможет - если нет, дай мне крик.

Майк
источник
3

Введите следующие команды в Терминале:

cd /etc
sudo vi bashrc

добавить следующее как:

alias ll="ls -lrt"

Наконец перезапустите Терминал.

user172265
источник
2

Если вам нужна эта машина в целом, вам нужно заглянуть в /etcпапку. Однако они могут не существовать по умолчанию, и в этом случае вам просто нужно создать их в указанной выше папке и перезапустить терминал. Скорее всего, вам придется использовать их sudoдля создания, поскольку /etcпапка принадлежит root.

Если вам это нужно для каждого терминала, который вы открываете, вам не нужно делать это по всей машине. Вы можете создать эти файлы в своей домашней папке, и они будут считываться терминалом каждый раз, когда вы начинаете сеанс терминала.

Также, как упоминалось в комментариях, вы, как правило, сможете видеть их только с помощью терминала и с помощью ls -lha.

BinaryMisfit
источник
0

если у вас установлен ruby, проверьте этот скрипт ruby https://github.com/ytbryan/aka

Сценарий предоставляет такие функции, как постоянство и автоматический поиск файла точек. Вы можете управлять псевдонимами через терминал, не нарушая рабочего процесса, и открыть текстовый редактор.

Отказ от ответственности: я написал этот сценарий и использую его каждый день. Дайте мне знать, если есть какие-либо ошибки / идеи. :)

ytbryan
источник
0

Для тех из вас, кто ищет команду ll, как в Linux BASH, она создана следующим образом ...

alias ll="ls -laF"

Добавьте эту строку в ваш .bashrcфайл, затем продублируйте .bashrcфайл как .bash_profile, и вы будете иметь всегда и навсегда.

Что бы это ни стоило, ll на linux BASH это просто псевдоним " ls -laF".

Филипп Х. Блантон
источник
-2

У меня была та же проблема, что у меня не было .bash или .profile в моем профиле. я наконец нашел это в / etc

Лео Буланжер
источник
1
/ etc используется для всей системы. Я настоятельно рекомендую не редактировать эти файлы, а использовать собственные файлы профиля в своей домашней папке, например, ~ / .bash_profile.
grg
я не хочу иметь ~ / .bash_profile, это было первое, что я попробовал, и если я его создаю, он не будет использоваться даже после перезапуска, я полагаю, что мои администраторы, должно быть, каким-то образом предотвратили его. теперь я использую zsh и .zshrc работает хорошо
Лео Буланжер,