Утилиты и инструменты ·

Goto для терминала

Консольная утилита goto создана для удобного управления алиасами директорий при работе в терминале.

goto

Устанавливаем goto забрав его из Github репозитория, при установке утилита попросит права суперпользователя:

# git clone https://github.com/iridakos/goto.git
# cd goto/
# ./install

В процессе установки, скрипт будет скопирован в /usr/local/share/goto.sh, а в ~/.bashrc или ~/.zshrc будут добавлены строки:

# Source goto
[[ -s "/usr/local/share/goto.sh" ]] && source /usr/local/share/goto.sh

Если мы хотим, что бы goto был доступен какому-то пользователю, то приведённые выше строки нужно добавить в его ~/.bashrc.

Далее нам просто остаётся настроить нужные алиасы, и goto будет готов к использованию. Допустим, у нас есть директория /home/user/rpmbuild/SPECS/ в которую мы часто переходим работая в терминале. Добавляем алиас для неё:

# goto -r specs /home/user/rpmbuild/SPECS/

И теперь, перейти в директорию мы можем просто введя команду goto specs:

# pwd
/opt
# goto specs
# pwd
/home/user/rpmbuild/SPECS

Типичный пример использования такой утилиты у меня — это переход в директорию с файлами нужного домена на сервере. Когда пользователей и доменов на сервере очень много, для того что бы найти нужную директорию, приходится вспоминать/перебирать, либо смотреть в конфиге нужный путь, с goto это дело значительно упрощается. Достаточно ввести что-то вроде:

# goto sysadmin_pm

И я оказываюсь в директории с нужным доменным именем.

Вывод списка всех алиасов выполняется командой:

$ goto -l
specs /home/user/rpmbuild/SPECS
tlg /home/user/.tlg/Telegram
spft /home/user/SP/SP_Flash_Tool_v5.1628_Linux

Для удаления какого-то конкретного алиаса выполняем:

$ goto -u aliasname

При необходимости, мы можем очистить алиасы, которые указывают на уже не существующие директории:

$ goto -c

Вот такой простой, но в то же время, серьёзно упрощающий жизнь системного администратора инструмент. Берите на заметку, если не знали о нём раньше.