Пользовательские команды в ZSH

Пользовательские команды в ZSH

Я сравнительно новичок в Zsh и Bash.

Я хочу настроить пользовательские команды, например desktop, которые перенесут меня на рабочий стол. Добавление следующих строк в файл .bash_profile будет работать с Bash.

desktop() {
  cd /Users/me/Desktop
}

Похоже, с Zsh это не работает.

Вопрос только в том, где я размещаю код, или я все делаю неправильно?

решение1

Отредактируйте файл ~/.bashrc. Найдите раздел alias и добавьте следующий
alias desktop='cd /path/to/desktop'

Делая так, вы объявите несколько псевдонимов. Вы можете создать любой пользовательский псевдоним, который захотите!
(т. е. у меня есть псевдоним ne='emacs -nw', и каждый раз, когда я запускаю
ne "some file",
он открывает файл в оболочке emacs.)

Когда бы вы ни написали «desktop», это приведет вас туда :-) (теоретически)

решение2

С zsh вам следует отредактировать ~/.zshrc (создать его, если он не существует -> пример шаблонаhttps://github.com/robbyrussell/oh-my-zsh/blob/master/templates/zshrc.zsh-template)

так:

нано ~/.zshrc

и добавьте нужный вам псевдоним, например

alias my_project_runserver='cd my_project_path; . venv/bin/активировать; ./manage.py запустить сервер'

Используя указанный выше псевдоним, я захожу в папку своего проекта, активирую virtualenv и запускаю сервер django.

;

разделяет команды, поэтому с помощью одного псевдонима можно выполнить несколько команд

и для вступления изменений в силу выполните:

. ~/.zshrc

решение3

Создать глобальный исполняемый файл скрипта оболочки z

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

1.Создайте текстовый файл со следующим содержимым (назовите файл «desktop»):

#!/usr/bin/env zsh
cd /Users/me/Desktop
#or any shell commands you want

2.Сохраните файл по указанному пути

/usr/local/bin 

3. Выполните следующую команду, чтобы сделать скрипт исполняемым с необходимыми разрешениями:

cd /usr/local/bin 
sudo chmod -x ./desktop
Sudo chmod 755 desktop

4.Перезагрузите терминал.

Связанный контент