¿Cómo crear comandos personalizados en Unix / Linux? [cerrado]

55

¿Alguien puede guiarme para crear comandos personalizados en Unix / Linux?

Qadir Hussain
fuente
2
Para referencia futura, debe consultar la página de datos. Explica las cosas que debe poner en sus preguntas. (como publicar las cosas que ha investigado y probado). Esa es probablemente la razón por la cual alguien dio un voto negativo a esta pregunta.
Spuder

Respuestas:

68

Cree un script bash en su carpeta / usr / bin, debería verse así

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

Es realmente así de fácil.

Simplemente asigne al script de bash lo que desea escribir en el terminal y hágalo ejecutable: ¡ chmod +x filenamey listo!

Eric
fuente
1
¿Podría modificar esto para que sea una guía paso a paso, incluidos todos los pasos necesarios? Todavía no estoy seguro de cómo hacer mi propio comando personalizado.
Yoda
55
@ AndersMB, necesitas leer un libro . Hay muchos buenos, incluso disponibles de forma gratuita. Comience con "La línea de comandos de Linux" .
Comodín
Umm ... estaba bromeando. Él estaba bromeando, ¿verdad ?!
Somenath Sinha
1
ejecutar con./filename
Squirrl
46
  1. Cree un directorio que diga "bin" debajo de su directorio de inicio.
  2. Actualice su variable de ruta para incluir este directorio bin. Ponga esto .profileo .bash_proflearchivo para hacerlo permanente.

    export PATH=$PATH":$HOME/bin"

  3. Cree un script que diga "hola" y manténgalo en su directorio bin. Otorgue permiso de ejecución al script de saludo de $ chmod +x hello.

    #!/bin/bash    
    echo My first program
  4. Recargar .profileo .bash_profle:

    $ . ~/.bash_profile

  5. Desde cualquier directorio, simplemente escriba:

    $ hello
    My first program
Gurú
fuente
Sé que esto es muy antiguo, pero he visto su sugerencia de crear una bincarpeta en muchas respuestas aquí. ¿Hay algún problema si es en .binlugar de bin? Soy muy exigente con mi homeaspecto y no quiero una carpeta adicional solo porque sí.
MO
Intenté usar esto sin éxito y estuve muy frustrado por un tiempo pensando que había algo mal con mi zshinstalación o $PATHque chmod -x helloresultó que no funcionaba, tampoco lo hace un capital -X. En cambio, lo intenté chmod 755 hello, aunque no estoy seguro de los riesgos de seguridad con respecto a este comando, en realidad me permitió ejecutarlo hello. ¿Alguien tiene una explicación para esto? ¿Asumo que es un problema con respecto a la edad?
ConstantFun
1
@ConstantFun Se usa chmod +x hellopara agregar privilegios de 'ejecución' al script. chmod -x hellohace exactamente lo contrario: elimina los privilegios de 'ejecución'. (Observe la diferencia de signo más / menos en la respuesta y en su comentario.)
Filip Happy
25

Fácil, crea un alias.

Digamos que desea escribir un comando para cd en su directorio de descarga. Y quieres llamarlo cdd.

alias cdd='cd ~/Downloads' 

Puede crear cualquier comando que desee.

Aquí hay más información:
http://www.mediacollege.com/linux/command/alias.html

Spuder
fuente
66
Sin embargo, esto no persiste en las sesiones. Este comando funciona, pero no es permanente. Una forma más permanente sería modificar su archivo ~ / .bash_aliases y agregar la línea que sugirió allí.
Jeff Grimes
2
También funciona agregándolo a su archivo ~ / .bashrc
Delicia Brummitt
11

La mayoría, si no todas, las distribuciones de Linux tienen un pequeño script en ~ / .bashrc que se ve casi idéntico a este:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

Esto simplemente significa que puede crear sus propios comandos (también conocido como ' aliases' generalmente se refiere a un comando existente con algunos argumentos que siempre tiene que usar, o una lista de comandos que deben ejecutarse en orden).

Lo más probable es que su distribución de Linux no tenga el archivo .bash_aliases creado en su hogar, a menos que ya lo haya hecho manualmente. Entonces, para crear el archivo, escriba el siguiente comando:
touch ~/.bash_aliases

Ahora ese archivo se ejecutará automáticamente cada vez que encienda una nueva Terminal.

Lo que puede hacer ahora es crear una lista de alias y agregarlos a ese archivo para usos posteriores. Por ejemplo, el rmcomando (eliminar) por defecto NO le pide que confirme su solicitud cuando le dice que elimine un archivo / directorio. Sin embargo, existe un argumento que dice rmque le pedirá que confirme su solicitud, -i. Por lo tanto, rm -i filePathmostrará un mensaje preguntándole si estaba seguro de que desea eliminar el archivo especificado. Ahora, si eliminara accidentalmente un archivo, es muy probable que olvide incluir la -iopción, y ahí es donde se aliasvuelve muy beneficioso. Escribiendo el siguiente comando

echo "alias rm='\rm -i'" >> ~/.bash_aliases

le dirá Bashque cada vez que solicite eliminar un archivo, se le mostrará un mensaje de confirmación. Por supuesto, hay mucho más que puede hacer, esto es solo lo básico.

Si quieres aprender a utilizar algunos comandos básicos (es decir cd, touch, rm, mkdir, pushd, popd, etc.) y / o los más sofisticados, me gustaría recomendar un libro muy bueno que puede tener en su biblioteca como referencia llamada

Una guía práctica para editores de comandos de Linux y programación de shell , por Mark G. Sobell . ISBN: 978-0133085044

Fadi Hanna AL-Kass
fuente
1
¿Por qué la barra invertida?
phil294