Está en la página 1de 23

Que es una shell ?

El shell de Unix o tambin shell, es el termino usado en informtica


para referirse a un interprete de comandos. Los comandos que aportan
los intrpretes, pueden usarse a modo de guin si se escriben en
ficheros ejecutables denominados shell-scripts, de este modo, cuando
el usuario necesita hacer uso de varios comandos o combinados de
comandos con herramientas, escribe en un fichero de texto marcado
como ejecutable, las operaciones que posteriormente, lnea por lnea,
el intrprete traducir al ncleo para que las realice.
Sin ser un shell estrictamente un lenguaje de programacin, al proceso
de crear scripts de shell se le denomina programacin shell o en ingls,
shell programming o shell scripting.
Los usuarios de Unix y similares, pueden elegir entre distintos shells
(programa que se debera ejecutar cuando inician la sesin, bash, ash,
csh, zsh, ksh, tcsh).
Primeros pasos
Uno de los primeros pasos es saber que shell (interprete de comando
estamos usando).
$ echo $SHELL
Las variables por convencin se utiliza en maysculas y las forma de
obtener el contenido de la variable o mejor dicho su valor es poniendo el
smbolo $.
Si queremos saber la versin de nuestro interprete de comandos en este
caso bash ejecutamos el siguiente comando :
$ echo $BASH_VERSION

Para conocer todos los interpretes de comandos que tenemos veremos que
se guardan dentro de un archivo llamado shells.
$ cat /etc/shells
Manejo de comodines

Los comodines de bsqueda son


signos o smbolos que nos ayudarn
a la hora de encontrar algn archivo
en nuestro ordenador. Donde mas lo
podemos llegar a utilizar es con el
comando ls.
$ ls /bin/bash
Ejemplo de usos :
$ ls *.txt
En el ejemplo anterior me trae
cualquier archivo que tenga como
extensin txt.
Algunos trucos
Buscar y ejecutar comandos del historial

La tecla de Tab (tabulador) nos ayuda a completar el comando que


estamos escribiendo o fichero o directorio. Reglas a tener en
cuenta : 3. Si hay un directorio que comienza por el nombre
1. Si no hay nada que empiece por el texto escrito, Bash completa el nombre de directorio
de la palabra que precede al cursor se seguido por una barra de separacin de nombres de
produce un pitido que informa del directorios /.
problema. 4. Si hay ms de una forma de completar la palabra
2. Si hay un comando (en el PATH), una el shell completa lo ms que puede y emite un pitido
informado de que no la pudo terminar de completar.
variable (siempre precedida por $), un
5. Cuando Bash no puede completar una cadena (por
nombre de fichero o funcin Bash que haber varias posibles que empiecen igual), podemos
comienza por el texto escrito, Bash completa pulsar dos veces el tabulador y se nos mostrar una
la palabra. lista con las posibilidades cadenas candidatas.
Gestin del histrico de comandos
Donde guardar el histrico: por defecto el histrico
se guarda en ~/.bash_history pero podemos indicar
donde guardarlo con la variable HISTFILE.

Formatear la salida del histrico: la variable de


entorno HISTTIMEFORMAT nos permite formatear la
salida de history, agregando especificaciones de
fecha y hora, por ejemplo.
Sustitucin del Historial
Como una alternativa a las teclas de direccin, la shell bash
tambin realiza "sustitucin de historial", la cual se desencadena
por el signo de exclamacin.
El siguiente cuadro resume la sintaxis de sustitucin de historial
ms utilizada.
Sustitucin del Historial
Ejemplo:

Resultado:
Ejecucin de comandos mltiples
La shell bash permite a los usuarios unir comandos mltiples en una
sola lnea de comandos separando los comandos con un . ;
Ejemplo:
Ejecucin de comandos mltiples de
modo condicional
La shell bash usa && y || para unir dos comandos de modo
condicional. Cuando los comandos se unen de este modo, el primero
siempre se ejecutar. El segundo comando puede que se ejecute o
no dependiendo del valor de retorno del primer comando.

Ejemplo:

[elvis@station elvis]$ mkdir /tmp/boring && mv numbers.txt


/tmp/boring
Datos Importantes:
La primera lnea de su script debe especificar a qu intrprete se
van a enviar las instrucciones. Esto se hace con una cadena
especial llamada "shebang (pronunciada "shuh-bang"), la cual
se ve as: #!. A la shebang le sigue el nombre del intrprete para
este script.

Ejemplo: para usar bash como su intrprete, se debera usar


#!/bin/sh o #!/bin/bash.
Datos Importantes:
La mayora de los scripts slo usan #!/bin/sh.

Al referirse al intrprete como #!/bin/bash se habilitan otras


caractersticas, pero se limita la compatibilidad del script con los
sistemas antiguos de Unix y rara vez es necesario.
Datos Importantes:

Antes de ejecutar un script, usted debe habilitar el permiso "ejecutable"


en l (de lo contrario, es slo un archivo de texto).

El comando para esto es:

chmod u+x <scriptname>.

Le otorga (y slo a usted) permiso para ejecutar este script justo como
usted hara con otro comando.
Datos Importantes:

Si cre un script llamado foo.sh en su directorio de inicio y justo


despus tecle foo.sh obtendra el mensaje de error "no existe tal
directorio o archivo".

Esto se debe a que cuando teclea un comando hay una serie de


directorios en donde Linux busca ese comando.
Datos Importantes:
Para resolver este problema tiene dos alternativas:
1. Usted usar ~/foo.sh o ./foo.sh ("." siempre se refiere al directorio
actual).
2. Puede colocar el script en un directorio que sea parte de su RUTA.
Los usuarios que no son root no tienen permiso para colocar
archivos en la mayora de estos directorios, pero todos los usuarios
tienen un bin personal, al cual pueden escribir en su directorio de
inicio. Por lo tanto, si foo.sh fuera movido a ~/bin se podra
ejecutar al teclear simplemente foo.sh en la lnea de comandos.
Variables de Bash
Las variables de la shell:
Se asignan mediante una sintaxis A=apple.
Se examinan con el caracter $, echo $A.

En el nivel de kernel, cada proceso tiene una coleccin de variables de


entorno que los procesos hijos heredan.

El comando export convierte una variable de shell en una variable de


entorno.

Los comandos set y env listan las variables de shell y las variables de
entorno, respectivamente
Creacin y uso de Alias en linux
Un alias es una cadena que sustituye un texto por otro, cuando es
usada como la primera palabra de un comando simple.

Como Configurar un Alias


Un alias puede ser definido en la lnea de comandos, en
.bash_profile o en .bashrc usando la siguiente sintaxis:

$ alias nombre='aqu escribes el comando completo y con


opciones'
nombre - Es el nombre que deseas ponerle al alias, Esto quiere decir
que "nombre" es un alias para dicho comando. Cada vez que "nombre"
es escrito como un comando, bash reemplazar el comando
correspondiente junto con las opciones especificadas en su lugar.

Nota: No hay espacios en blanco entre el signo igual (=). Las comillas
son necesarias si la cadena que se usara tiene mas de una palabra.

Ejecutando este comando en la lnea de comandos se creara un alias


temporal. Eso quiere decir que el alias existir hasta que salgas del
terminal. Si guardas el alias en el archivo de inicio del bash (~/.bashrc)
entonces el alias ser permanente.
Ejemplos de Alias
Los siguientes alias podran ser tiles. Puedes configurarlos en el
archivo ~/.bashrc.
Buscar los 5 archivos mas grandes

alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"

Ubicar los procesos bash:


alias psg="ps -aux grep bash"

Lista en formato largo:

alias ll='ls -l'


Como Ver todos los Alias

Ejecuta el comando alias sin ningn argumento para ver la lista de


los alias en un shell:

$ alias
alias ..='cd ..'
alias ...='cd ../..'
alias mnt='mount /mnt/cdrom'
alias umnt='umount /mnt/cdrom'
alias dus='df -h'
Ver Alias individual
Para ver un alias en particular ingresa el comando con el formato "alias
nombre" as como se muestra abajo:

$ alias dus
alias dus='df -h'
Como Remover un Alias
$ unalias hcl

$ hcl
-bash: hcl: comando no encontrado

Como Remover todos los Alias

$ unalias -a
$ alias

También podría gustarte