Как я могу создать собственную команду терминала (для запуска скрипта)?

36

Я веб-разработчик. Когда я хочу начать работать, всегда выполняю какую-то команду на терминале. Например:

sudo service apache2 start
sudo service mysql start
sublime

Для ускорения этого процесса я создаю .shфайл, содержащий эти команды.

Теперь, когда я хочу начать работать, я просто запускаю этот файл .sh и запускаю все службы (mysql, apache2 и т. Д.).

Можно ли создать для этого собственную команду? Например, если я введу sudo start-workingв терминал, он выполнит эти команды

Эрай
источник

Ответы:

58

Обычный способ, которым люди обращаются с этим, состоит в том, чтобы сделать binкаталог в их домашнем каталоге:mkdir ~/bin

Затем вы можете поместить свои собственные сценарии туда: mv start-working ~/bin

Убедитесь, что ваш скрипт исполняемый: chmod +x ~/bin/start-working

Добавьте это в конец вашего ~/.bashrcфайла (если вы используете bash, которым вы, вероятно, являетесь):export PATH=$PATH:~/bin

Теперь войдите в свой терминал и выйдите из него, и вы сможете просто напечатать start-working, и ваш скрипт будет выполнен.

Теперь, когда ваш путь настроен, любые новые скрипты, которые вы добавляете в свой, ~/binвы можете просто ввести имя.

Джозеф Оппегаард
источник
13
+1, и вместо того, чтобы выйти и войти, вы можете просто выполнить команды source ~/.bashrcили, . ~/.bashrcчтобы применить изменения.
Мейсам
Джо Оппегард, я нахожу эту действительно полезную информацию, поскольку у меня есть готовые сценарии, и я хотел бы запустить их как команду, а не как сценарий. Есть ли способ включить все подкаталоги, которые вы создаете в ~ / bin, чтобы вам не приходилось включать несколько строк экспорта в .bashrc? Я пытался, export PATH=$PATH:~/bin/*но это не принесло желаемых результатов.
Кевин Уайман
2
Значение по умолчанию ~/.profileуже добавляет ~/binк PATH, поэтому добавление его ~/.bashrcв дополнение будет бессмысленно добавлять его дважды или более.
гейра
Это работало без добавления чего-либо к .bashrc, так что вы можете пропустить это, как говорит Гериха
Аарон Флорес
По моему опыту, когда вы добавляете новый файл, вы должны повторить команду chmod, в противном случае разрешение будет отказано
Webwoman
15

Я искал, как создавать собственные команды, и я нашел этот вопрос среди других. Я думаю, что я искал псевдонимы, поэтому я дам вам способ сделать это с псевдонимом.

В вашей домашней папке:

nano .bash_aliases

И там вы можете записать свои команды в одну строку:

alias start-working='sudo service apache2 start; sudo service mysql start; sublime'

После сохранения файла перенастройте ваш bashrc

. ~/.bashrc

И проверьте, что ваш новый псевдоним загружен

alias

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

start-working
Roho
источник