Как создать свою команду в Linux?

Можно ли как-нибудь создать команду, которая выполнит несколько команд в терминале?
Например, чтобы запустить Android Studio, вместо
$ cd /opt/android-studio/bin/
$ ./studio.sh

написать просто
$ android
  • Вопрос задан
  • 20233 просмотра
Решения вопроса 1
NullByte
@NullByte
Bad gateway
для этого создайте постоянный алиас:
echo 'alias android="cd /opt/android-studio/bin/; ./studio.sh"' >> ~/.bashrc

эта команда запишет в файл конфига bash ваш постоянный собственный алиас к необходимой команде (или нескольким через знак ";"). т.е. если будете вбивать "android" от имени своего юзера, то автоматом в данном случае будет осуществлен переход в нужную директорию и запускаться Андроид Студио. я думаю это самый простой способ :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nano /usr/local/bin/android
Вставить туда

#!/bin/bash
cd /opt/android-studio/bin/
./studio.sh

Затем выйти и сохранить. И chmod +x /usr/local/bin/android
Все
Ответ написан
Комментировать
mak_sim
@mak_sim
maksim77ster@gmail.com
Alias это всего лишь один из способов решить вашу задачу. В широком смысле слова оболочка Linux (bash?) ищет ту команду которую вы набрали в консоли последовательно во всех каталогах указанных в переменной $PATH.
Например:
user@hostname:/home/user# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

Вы можете включить в переменную $PATH путь до вашего shell скрипта и тогда оболчка будет искать любую набранную вами команду в том числе и там. Добавить что-то к переменной проще всего вот так:
export PATH=$PATH:/opt/android-studio/bin/

Чтобы между различными входами в систему переменная сохранялась добавьте вот такие строки в в файл .bahs_profile вашей домашней директории.
PATH=$PATH:/opt/android-studio/bin/
export $PATH


Этот подход лучше чем создание алиаса потому, что если вам потребуется создать ещё одну команду не будет необходимости прописывать новый алиас. Достаточно положить исполняемый файл в нужный каталог.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы