¿Cómo puedo crear un comando de terminal personalizado (para ejecutar un script)?


36

Soy un desarrollador web. Cuando quiero comenzar a trabajar, siempre estoy ejecutando algún comando en la terminal. Por ejemplo:

sudo service apache2 start
sudo service mysql start
sublime

Para acelerar este proceso, creo un .sharchivo que contiene estos comandos.

Ahora, cuando quiero comenzar a trabajar, solo estoy ejecutando este archivo .sh y todos los servicios (mysql, apache2, etc.) comenzando.

¿Es posible crear un comando personalizado para esto? Por ejemplo, si escribo sudo start-workingen la terminal, ejecutará estos comandos

Respuestas:


58

Una forma común de manejar esto es crear un bindirectorio en su directorio personal:mkdir ~/bin

Luego, puede poner sus scripts personalizados allí: mv start-working ~/bin

Asegúrese de que su script sea ejecutable: chmod +x ~/bin/start-working

Agregue esto al final de su ~/.bashrcarchivo (si está usando bash, que probablemente sea):export PATH=$PATH:~/bin

Ahora vuelva a iniciar y cerrar sesión en su terminal y debería poder simplemente escribir start-working, y su script se ejecutará.

Ahora que su ruta está configurada, cualquier secuencia de comandos nueva que ~/biningrese puede simplemente escribir el nombre de.


13
+1, y en lugar de cerrar sesión e iniciar sesión, simplemente puede ejecutar los comandos source ~/.bashrco . ~/.bashrcpara aplicar los cambios.
— Meysam

Joe Oppegaard, encuentro esta información realmente útil ya que hay scripts completos que tengo y me gustaría ejecutarlos como un comando en lugar de un script. ¿Hay alguna manera de incluir todos los subdirectorios que cree en ~ / bin para que no tenga que incluir varias líneas de exportación en .bashrc? Lo intenté export PATH=$PATH:~/bin/*pero eso no arrojó los resultados deseados.
— Kevin Wyman

2
El valor predeterminado ~/.profileya se agrega ~/bina PATH, por lo que agregarlo ~/.bashrcademás lo agregará sin sentido dos veces o más.
— geirha

Funcionó sin que yo agregara nada a .bashrc, por lo que puede omitir eso como dice geriha
— Aaron Flores

en mi experiencia, cuando agrega un nuevo archivo, tiene que rehacer un comando chmod, de lo contrario, se le negará el permiso
— Webwoman

15

Estaba buscando cómo crear comandos personalizados y encontré esta pregunta entre otras. Creo que lo que estaba buscando era un alias, así que te daré la manera de hacerlo con un alias.

En tu carpeta de inicio:

nano .bash_aliases

Y allí puedes escribir tus comandos en una línea:

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

Después de guardar el archivo, reconfigure su bashrc

. ~/.bashrc

Y verifica que tu nuevo alias esté cargado

alias

Eso es todo, puedes comenzar a trabajar ahora ejecutando

start-working
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.