¿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.