Консоль. Алиасы. Переопределение встроеных функций.
Основы работы с Linux. -> Активируем виртуальное окружени Python.
Bash и виртуальное окружение Python.
Интерпретатор BASH помогает автоматизировать многие рутинные действия.
Например активирование виртуального окружения.
Эта операция происходит довольно часто и иногда разработчик забывает про нее.
Сделаем так, чтобы процесс активации происходил без нашего участия.
Создадим bash скрипт auto.sh с командой активации виртуального окружения.
source ./venv/bin/activate
При этом учитывая что папка виртуального окружения уже создана.
Добавим право на исполнение.
chmod +x auto.sh
Теперь для того, чтобы при изменении директории автоматически запускался наш скрипт необходимо переписать функцию cd.
Сделаем это в файле .bashrc
cd () {
builtin cd ${1:+"$@"}
if [ -f "auto.sh" ]
then
. ./auto.sh
fi
}
В этой функции мы первым делом вызываем оригинальную (встроенную) функцию cd.
builtin cd ${1:+"$@"}
Затем проверяем существование файла и если он есть запускаем его.
if [ -f "env.sh" ]
then
. ./auto.sh
fi
Основы работы с Linux. -> Алиасы.
BASH Алиасы.
Часто возникает необходимость в консоле создать собственную команду.
Напимер для того, чтобы запустить последовательно ряд повторяющихся команд.
К примеру, команду, которая добавляет файлы в индекс git и комитит изменения на сервер.
Такая операция проводится довольно часто и состоит из 3-х шагов.
-
добавление файло в индекс для отслеживания;
-
совершение комита;
-
загрузка изменений на удаленный сервер.
Создадаим выполняемый скрипт для этого autocomit.sh.
git add --all
git commit -m 'auto commit'
git push
Добавим права на выполнение.
chmod +x ./autocomit.sh
Теперь чтобы создать свою команду, можно воспользоваться alias-ом, определив его в файле, который будет выполняться каждый раз когда вы открываете терминальную сессию.
Одним из таких файлов являются .bashrc, он запускается первым.
Добавим в него следующий alias и назовем его agit.
alias agit='./path/to/script/autocomit.sh'
Теперь при перезагрузке терминала эта команда станет доступна.