где хранятся все эти псевдонимы?

На моем макбуке, когда я запускаю iterm

alias

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

Я попытался добавить несколько к ~/.bash_profile:

alias gcm='git commit -m'
alias c='clear'

но это не повлияло на вывод alias.

Да, я перезагрузил итерм.


person Andrey Deineko    schedule 07.02.2016    source источник
comment
попробуй source ~/.bash_profile. Теперь это работает?   -  person John_West    schedule 07.02.2016
comment
@John_West, к сожалению, еще нет   -  person Andrey Deineko    schedule 07.02.2016
comment
Какой у вас синтаксис псевдонима?   -  person John_West    schedule 07.02.2016
comment
@John_West отредактировал вопрос   -  person Andrey Deineko    schedule 07.02.2016
comment
Вы можете изменить их в своих собственных файлах, даже если они уже существуют. Это зависит от порядка выполнения файла. Файлы запуска — это обычное место для хранения псевдонимов, но их порядок легко настраивается. Посмотрите на man bash и найдите INVOCATION.   -  person cdarke    schedule 07.02.2016
comment
@cdarke, там написано When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.   -  person Andrey Deineko    schedule 07.02.2016
comment
Может быть глупо - ваш iterm запускает bash по умолчанию? Проверьте здесь: iTerm -> Preferences -> Profiles Tab -> General У вас может быть другая оболочка.   -  person John_West    schedule 07.02.2016
comment
Забавно, об этом говорят и мои справочные страницы. Один из способов узнать, как они загружаются, — запустить bash -xl (это минус ex ell). Это даст трассировку файлов запуска (это x) для оболочки входа в систему (это черт).   -  person cdarke    schedule 07.02.2016
comment
Однако, если source не работает... Неправильный синтаксис в ~/.bash_profile где-то выше? Просто, есть ли команда exit перед вашими псевдонимами? :)   -  person John_West    schedule 07.02.2016
comment
@John_West на самом деле мой .bash_profile выглядит подозрительно коротким [[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*   -  person Andrey Deineko    schedule 07.02.2016
comment
-s проверяет, существует ли файл, если да (&&), то исходный файл. поиск файла выполняет команды в текущей оболочке (в противном случае он будет выполнять его в дочернем процессе, который не повлияет на текущий). Очевидно, что эти псевдонимы могут быть в других файлах, например .profile. Я думаю, что rvm — это стартап Ruby (?).   -  person cdarke    schedule 07.02.2016
comment
Пожалуйста, отредактируйте свой вопрос полным .bash_profile   -  person John_West    schedule 07.02.2016
comment
Вопрос where довольно прост: .bash_profile, .bashrc, .profile и подобное в /etc - общее место. См. здесь объясняется. Кроме того, все сценарии, включенные (./ или source) в эти сценарии, также выполняются при запуске сеансов, например, ваша виртуальная машина Ruby rvm. Я не понимаю, почему ваши aliases не отображаются в списке alias.   -  person John_West    schedule 07.02.2016
comment
О, вы уже определили псевдонимы gcm и c (с помощью git и т. д.)? Проблема заключается в последовательности запуска скрипта.   -  person John_West    schedule 07.02.2016
comment
@John_West да, я уже определил gcm, и это моя забота - я этого не делал, поэтому хотел знать, откуда взялось   -  person Andrey Deineko    schedule 08.02.2016


Ответы (3)


Вы вышли из системы и вошли снова? Я думаю, что ~/.bash_profile - это правильный файл, поэтому он должен работать.

Как перезагрузить псевдонимы bash был дан ответ ранее:

Как перезагрузить .bash_profile из командной строки?

person oli-ver    schedule 07.02.2016
comment
в вопросе я написал, что перезалил итерм - person Andrey Deineko; 07.02.2016

"Где хранятся все эти псевдонимы?"

~/.bashrc – это скрипт, вызываемый, когда вы запускаете свой общий терминал (iterm и т. д.), потому что вы вызываете оболочку non-login. Здесь прекрасно объясняется разница между входными и не входными платами: https://unix.stackexchange.com/a/46856/58326

Каждый сценарий, вызываемый из другого сценария, также может содержать псевдонимы.

Итак, я предлагаю вам добавить свои псевдонимы в конец ~/.bashrc, если вы хотите перезаписать псевдонимы, созданные в других скриптах.

Вы можете добавлять свои пользовательские псевдонимы куда хотите (например, als.sh) и загружать их только тогда, когда хотите: source als.sh

person John_West    schedule 08.02.2016
comment
Большое спасибо за достойное объяснение! Вечером, когда я буду дома, я протестирую его и вернусь к вам, а пока определенно голосуйте, еще раз спасибо! - person Andrey Deineko; 08.02.2016
comment
Нисколько! Между тем, я исправил ответ сейчас :) раньше была ошибка - person John_West; 08.02.2016

Вы можете найти, существует ли уже псевдоним, используя это:

alias | grep keyword

Если он существует, вы можете удалить уже существующий, используя

unalias alias_name

Затем добавьте свой новый псевдоним. Выполнено!

person Vineeth Kada    schedule 24.12.2020