Да, вы можете использовать либо скрипт, либо функцию оболочки. Они написаны практически одинаково - начните с простого перечисления всех команд, как если бы они выполнялись вручную, затем постепенно добавляйте такие вещи, как проверка на наличие ошибок.
Функции оболочки настраиваются в самой оболочке, в файле ~/.bashrc для bash (аналогично zsh и т.д.) И могут использоваться только в интерактивной оболочке. Синтаксис name() { commands...; }:
allthethings() {
    cd ~/things
    thing2 --whatever
    git thingify origin/master
}
Примечание: При редактировании ~/.bashrc он получает только перечитать при открытии нового терминала, или когда вы вручную перечитать его с помощью команды . ~/.bashrc .
Функции могут быть созданы непосредственно в интерактивной оболочке; они просто не будут помнить.
Скрипты - это автономные файлы, обычно в ~/bin или /usr/local/bin , начинающиеся с #! строка интерпретатора, за которой следует сам скрипт - в сценариях оболочки это почти то же самое, что и написание функции; в основном отличается тем, используете ли вы exit против return и влияют ли переменные и cd на интерактивную оболочку.
#!/usr/bin/env bash
cd ~/things
thing2 --whatever
git thingify origin/master
Обратите внимание, что вам нужно выполнить chmod +x файлы сценариев, прежде чем их можно будет запускать напрямую, без необходимости каждый раз указывать 'bash'. (Если вы используете #!/usr/bin/env python , остальные будут интерпретироваться Python или Ruby или любым другим языком по вашему выбору.)
Также каталог скриптов должен быть указан в $PATH . Пользовательские местоположения, такие как ~/bin часто нужно добавлять вручную, редактируя ~/.profile:
export PATH="$PATH:$HOME/bin"