Como posso criar um comando de terminal personalizado (para executar um script)?


36

Sou desenvolvedor web. Quando quero começar a trabalhar, sempre estou executando algum comando no terminal. Por exemplo:

sudo service apache2 start
sudo service mysql start
sublime

Para acelerar esse processo, crio um .sharquivo que contém esses comandos.

Agora, quando quero começar a trabalhar, estou apenas executando este arquivo .sh e todos os serviços (mysql, apache2 etc.) iniciando.

É possível criar um comando personalizado para isso? Por exemplo, se eu digitar sudo start-workingno terminal, ele executará esses comandos

Respostas:


58

Uma maneira comum de lidar com isso é criar um bindiretório em seu diretório pessoal:mkdir ~/bin

Em seguida, você pode colocar seus scripts personalizados lá: mv start-working ~/bin

Verifique se o seu script é executável: chmod +x ~/bin/start-working

Adicione isso ao final do seu ~/.bashrcarquivo (se você estiver usando o bash, o que provavelmente é):export PATH=$PATH:~/bin

Agora entre e saia do seu terminal e você poderá simplesmente digitar start-working, e seu script será executado.

Agora que seu caminho está configurado, qualquer novo script que você solte no seu ~/binpode digitar apenas o nome de.


13
+1 e, em vez de fazer logoff e logon, você pode simplesmente executar os comandos source ~/.bashrcou . ~/.bashrcpara aplicar as alterações.
Meysam 02/09/12

Joe Oppegaard, acho essas informações realmente úteis, pois existem scripts completos que eu tenho e gostaria de executar como um comando, e não como um script. Existe uma maneira de incluir todos os subdiretórios criados em ~ / bin para que você não precise incluir várias linhas de exportação no .bashrc? Eu tentei, export PATH=$PATH:~/bin/*mas isso não retornou os resultados desejados.
precisa

2
O padrão ~/.profilejá é adicionado ~/binao PATH; portanto, anexá-lo ~/.bashrcalém disso irá adicioná-lo sem sentido duas ou mais vezes.
Geirha #

Ele trabalhou sem me acrescentar nada para .bashrc, assim você pode ser capaz de ignorar que, como geriha diz
Aaron Flores

na minha experiência, quando você adiciona um novo arquivo, você precisa refazer um comando chmod, caso contrário, a permissão será negada
Webwoman 28/02

15

Eu estava procurando como criar comandos personalizados e encontrei essa pergunta entre outros. Penso que o que procurava era aliases, por isso darei o caminho para fazer isso com um alias.

Na sua pasta pessoal:

nano .bash_aliases

E aí você pode anotar seus comandos em uma linha:

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

Após salvar o arquivo, reconfigure o seu bashrc

. ~/.bashrc

E verifique se o seu novo alias está carregado

alias

É isso, você pode começar a trabalhar agora executando

start-working
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.