Linux: Dar de alta un nuevo usuario sin el comando adduser

El objetivo de esta entrada de blog es para ilustrar como se puede dar de alta a un nuevo usuario en Linux sin usar el comando adduser. En realidad esta fue una practica que hicimos en una clase de la escuela para la materia de Administracion de redes y se me hizo interesante republicarla (ya que ya la tenia en otro blog) para no perderla y bueno creo que el titulo lo dice todo. Primero que todo quiero mostrar las caracteristicas de la maquina donde se realiza la practica:

  • Distribucion linux                  Fedora 14
  • Versión del kernel                 2.6.35.11-83
  • Arquitectura del equipo        x86

Como se puede observar la prueba la he realizado en Fedora a la fecha que escribo esta era la mas reciente y está recién bajada e instalada de la página oficial.

Resumen de los pasos a realizar

  1. Dar de alta al usuario en el archivo /etc/passwd.
  2. Crear un grupo para el nuevo usuario en el archivo /etc/group
  3. Crear la carpeta hogar del nuevo usuario.
  4. Copiar los archivos ubicados en /etc/skel/ en la carpeta hogar del usuario.
  5. Establecer como propietario de su carpeta hogar al nuevo usuario.
  6. Cambiar de grupo a la carpeta hogar al grupo del nuevo usuario.
  7. Cambiar los permisos apropiados de la carpeta hogar del usuario.
  8. Asignar un password al nuevo usuario.
  9. Opcional; iniciar sesion para probar el nuevo usuario.

El paso 3 opcionalmente se puede realizar primero que todos si así se desea. Los pasos que siguen a continuación son estos mismos pasos pero detallados y por último se muestra una imagen de todos los pasos (no se muestran los archivos abiertos):

Paso 1: Dar de alta al usuario en el archivo /etc/passwd.

Antes de editar este archivo debemos tener privilegios de super usuario root, para adquirir estos privilegios, abrimos una consola y escribimos lo siguiente (solo lo que esta en color verde) y presionamos ENTER:

[adminredes@gnz ~]$  su
Contraseña:  {teclea aqui el password de root}
 
 

Despues de que tecleas el password y presionas nuevamente ENTER, si el password es correcto te haz convertido en el super usuario root.
 
Bueno, ahora vamos a abrir el archivo /etc/passwd con el editor nano, en la terminal escribe:

[root@gnz adminredes]#  nano /etc/passwd
 
 

A continuación se abrira dicho archivo, desplazate hasta abajo (con las flechas de cursor) despues de la ultima linea y escribe los siguiente:

xavier:x:502:502:Xavier Silva:/home/xavier:/bin/bash
 
 

Observa como he marcado los dos puntos con color rojo para que se te haga mas facil diferenciar los datos, tu archivo se debe parecer al de la siguiente imagen:
Pantallazo editando archivo /etc/passwd

El significado de los campos que conforman la ultima linea es:

  • xavier   Es el nombre del nuevo usuario que estas dando de alta.
  • x         Aqui iria el password pero como es una x, significa que el password esta encriptado (modo sombra) en el archivo /etc/shadow.
  • 502     Es el ID del nuevo usuario que estas creando (UID), como vez e puesto un ID+1 del ultimo que habia (501) y si quisieras dar de alta otro le corresponderia el que sigue, es decir el UID 503.
  • 502     Es el ID del grupo al que va a pertenecer este nuevo usuario. Aplica lo mismo que con el ID de usuario (…el que le sigue es el 503).
  • Xavier Silva   Es el  nombre real del nuevo usuario, si quisieras poner su telefono lo separas con una coma, si quieres poner su direccion con otra coma y asi sucesivamente. Es decir, este campo puede tener varios datos separados con coma. Este A este este campo a veces se le llama GECOS (General Electric Comprehensive Operating System, Sistema Operativo de General Electric).
  • /home/xavier   Es el directorio hogar de este usuario.
  • /bin/bash  Es la shell predeterminada que se le asigna a este usuario.

Ahora vamos a guardar los cambios realizados a este archivo que hemos abierto con el editor nano; presiona CTRL+O (o, no cero), y cuando te pida el nombre del archivo le das ENTER. A continuación cerramos el archivo; presiona CTRL+X. Hasta aqui ya hemos realizado el primer paso (ya no nos podemos detener o quedaria inconsistente la configuración del sistema, jajaja, tranquilo/a no te asustes).

Paso 2: Crear un grupo para el nuevo usuario en el archivo /etc/group.

Igual que en el paso 1 debes tener privilegios de root para editar este archivo, yo voi a dar por hecho que ya te has logueado como el super usuario root.

Procedamos a abrir el archivo /etc/group con el editor nano, en la terminal escribe (lo de verde):

[root@gnz adminredes]#  nano /etc/group
 
 

Con esto se abrira dicho archivo, desplazate hasta abajo (con las flechas de cursor) despues de la ultima linea y escribe lo siguiente:

xavier:x:502:
 
 

Observa que otra vez; he marcado los dos puntos con color rojo para que se te haga mas facil diferenciar los datos, tu archivo se debe parecer al de la siguiente imagen:

Archivo /etc/group
El significado de los campos que conforman esta linea es esta:

  • xavier   Es el nombre del nuevo grupo; estamos creando un nuevo grupo para el nuevo usuario que estas dando de alta.
  • x         Aqui iria el password del grupo, si hubiera un password este permitiria que nuevos usuarios se unieran al mismo.
  • 502     Es el ID del nuevo grupo que estas creando (GID), como vez e puesto un ID+1 del ultimo que habia (501) y si quisieras dar de alta otro le corresponderia el que sigue, es decir el GID 503.
  • Despues de los dos puntos (xavier:x:502:aqui!!) irian los miembros que pertenecen a este grupo, por ejemplo xavier:x:502:pepito,daniel,gonzasilve

Ahora guarda los cambios realizados a este archivo; presiona CTRL+O , y cuando te pida el nombre del archivo le das ENTER. A continuación cerramos el archivo; presiona CTRL+X.

Hasta aquí ya hemos realizado el segundo paso, vamos por el tercero…

Paso 3: Crear la carpeta hogar del nuevo usuario.

Que paso tan mas dificil (jejej), suponiendo que te has logueado como root, en la terminal teclea (lo de verde):

[root@gnz adminredes]#  mkdir /home/xavier
 
 

Listo.

Paso 4: Copiar todos los archivos ubicados en /etc/skel/ en la carpeta hogar del usuario.

Bien, primero vamos a entrar a la carpeta /etc/skel, suponiendo que eres root, en la terminal teclea (lo de verde):

[root@gnz adminredes]#  cd /etc/skel
 
 

Ahora vamos a ver (listar) que hay en esta carpeta, teclea:

[root@gnz skel]#  ls -la
 
 

Supongo que sabes para que sirve el comando ls, y sino pues aqui te lo vas a saber: Sirve para mostrar el contenido de un directorio, la l sirve para indicar que los muestre en forma tabular (modo detallado) y la a sirve para que muestre TODOS los archivos, incluso los ocultos.

Bueno, en mi caso el comando anterior me muestra lo siguiente (la linea en gris es el comando anterior):

[root@gnz skel]# ls -la
drwxr-xr-x.   4 root root  4096 feb 10 21:05 .
drwxr-xr-x.  126 root root 12288 mar 12 07:07 ..
-rw-r–r–.      1 root root    18 jun 22  2012 .bash_logout
-rw-r–r–.      1 root root   176 jun 22  2012 .bash_profile
-rw-r–r–.      1 root root   124 jun 22  2012 .bashrc
drwxr-xr-x.   2 root root  4096 sep 28 23:15 .gnome2
drwxr-xr-x.   4 root root  4096 feb 10 20:54 .mozilla

 
Como se puede ver ahi 3 archivos: (.bash_logout, .bash_profile y .bashrc) y dos carpetas (.gnome2 y .mozilla), ahi que copiarlos todos con los siguientes comandos, primero los archivos, en la terminal teclea (lo de verde):

[root@gnz skel]#  cp .bash_logout /home/xavier (pulsa ENTER)
[root@gnz skel]#  cp .bash_profile /home/xavier (pulsa ENTER)
[root@gnz skel]#  cp .bashrc /home/xavier (pulsa ENTER)
 
 

 
Ahora las carpetas…

[root@gnz skel]#  cp -R .gnome /home/xavier (pulsa ENTER)
[root@gnz skel]#  cp -R .mozilla /home/xavier (pulsa ENTER)
 
 

 
A las carpetas les agregue una R por que son carpetas (valga la redundancia) y éstas se deben copiar en forma Recursiva, para copiar todo lo que hay dentro.
 
Con esto hemos terminado de realizar el 4to paso, siguiente paso…

Paso 5: Establecer como propietario de su carpeta hogar al nuevo usuario.

Una vez copiados todos los archivos, ahora vamos a indicar que la carpeta /home/xavier pertenece al usuario xavier. Para hacer esto, en la terminal teclea (lo de verde):

[root@gnz skel]#  chown xavier -R /home/xavier
 
 

 
El comando chown permite cambiar de propietario a un archivo o carpeta. Igual que en el paso anterior agregue la R como parámetro para que también cambie de propietario a los archivos que copiamos en el paso 4. Continuemos…

Paso 6: Cambiar de grupo a la carpeta hogar, al grupo del nuevo usuario.

Casi terminamos, ahora vamos a indicar que la carpeta /home/xavier pertenece al grupo xavier (recuerda que este grupo lo dimos de alta en el archivo /etc/group), es decir, al grupo del nuevo usuario. Para hacer esto, en la terminal teclea (lo de verde):

[root@gnz skel]#   chgrp xavier -R /home/xavier
 
 

 
El comando chgrp tiene la misma sintaxis que chown y permite cambiar de grupo a un archivo o carpeta. Igual que en el paso anterior agregue la R como parámetro para que también cambie de grupo a los archivos que copiamos en el paso 4. Sigamos con el paso 7…

Paso 7: Cambiar los permisos apropiados de la carpeta hogar del usuario.

Ahora vamos a cambiar los permisos a todo el contenido de la carpeta hogar del usuario. Ummm, para entender esto te doy una breve explicación de los permisos en Unix

En Unix los permisos se pueden asignar de muchas maneras pero la que mas me gusta en lo personal es esta (por medio de números):
4 significa permiso de lectura
2 significa permiso de escritura
1 significa permiso de ejecucion

Estos números se pueden sumar para asignar una configuración de permisos mas adecuada, Ejemplos:
4+1=5, entonces el 5 significa lectura+ ejecución, otra configuración es 4+2+1=7, entonces el 7 significa que el archivo tiene permisos de lectura+escritura+ ejecución (todos los permisos), una ultima configuración; 4+2=6, entonces el 6 significa permisos de lectura+escritura.

El comando chmod permite asignar (o cambiar como quieras decirle) permisos a un archivo o carpeta. Ademas con el comando chmod se pueden asignar 3 diferentes tipos de permisos; los del propietario, los del grupo y los permisos para otros (que no son el propietario, ni los miembros del grupo), como se muestra en la siguiente imagen:
Los permisos en Unix

Como dije anteriormente el comando chmod tiene varias sintaxis y también se pueden asignar permisos a un grupo en particular por ejemplo: chmod ug+rwx setup.deb , esta asignando permisos de lectura(r), escritura(w) y ejecucion(x) al usuario(u) y al grupo(g) al que pertenece el archivo setup.deb. No entro en mas detalles para no confundirte.

Por lo regular, la configuración de permisos 755 es aceptable para cualquier archivo o carpeta. Así que esa configuración le aplicaremos, en la terminal teclea (lo de verde):

[root@gnz skel]#   chmod 755 -R /home/xavier
 
 

 
Siguiente paso…

Paso 8: Asignar un password al nuevo usuario.

En este ultimo paso vamos a asignarle un password al nuevo usuario, por que en este momento no tiene ninguno y por lo tanto no se podría iniciar sesión en el sistema. Suponiendo que sigues siendo root, en la terminal teclea (lo de verde):

[root@gnz skel]#   passwd xavier
Cambiando la contraseña del usuario xavier.
Nueva contraseña: (aqui teclea la contraseña y pulsa ENTER)
Vuelva a escribir la nueva contraseña: (otra vez, aqui teclea la contraseña y pulsa ENTER)
passwd: todos los tokens de autenticación se actualizaron exitosamente.
 
 

 
Como puedes darte cuenta despues de escribir el comando passwd xavier, el sistema nos pide el nuevo password, escribelo y pulsa ENTER, te lo vuelve a pedir, escribelo otra vez y pulsa ENTER.

…y waooo, con esto hemos terminado!¡!. En horabuena, con este paso hemos terminado de crear al nuevo usuario sin necesidad de usar el comando adduser de Linux.
 
Si eres de los excepticos…

Paso 9: [Opcional], Iniciar sesión para probar el nuevo usuario.

Por ultimo para probar que hemos creado al usuario correctamente no hay como iniciar una sesion en el sistema, para hacer esto, los puedes hacer de dos formas, Forma 1: suponiendo que sigues siendo root, en la terminal escribe (lo de verde):

[root@gnz skel]#   su – xavier
[xavier@gnz ~]$ (haz iniciado sesion con el nuevo usuario)
 
 

 
A continuación te muestro una imagen de todos los pasos realizados, (la edición del archivo passwd y group ya lo mostre arriba, en el paso correspondiente):
Comandos para crear usuario sin adduser

Forma 2: La otra forma es cerrar la sesión actual (si estas usando Linux) e iniciar como lo harías normalmente en Gnome (desde el GDM), ademas, al iniciar sesión de esta forma se van a crear automáticamente las carpetas Documentos, Imágenes, Vídeos… etc.

Aprovecho para mandar saludos a mi bola de amigos de ingeniería de sistemas del I.T. Zacatepec, Morelos.
 
Hasta pronto y espero te sirva de algo esta cosa… sugerencias y comentarios constructivos son bienvenidos. Y recuerda que en el mundo del bloggin comentar=agradecer.
 
 
 
Tux camina Tux maroma
Anuncios

Bash: Uso de la estructura de control if-then

Para realizar esta prueba, doy por hecho que ya sabes algunos comandos basicos de la shell y lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script4.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script4.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #4: Script que muestra como utilizar la estructura de control if-then
    #Author: Gonzalo Silverio   gonzasilve@gmail.com
    #Archivo: script4.sh
    #Si el nombre juan esta en el archivo nombres.txt 
    #devolvera true. El comando se evalua a falso o verdadero.
    #verdadero =devolvio un resultado, falso = no devolvio nada
     if grep juan nombres.txt
       then
         echo 'El nombre juan ESTA en la lista de nombres'
     fi
    echo
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script4.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script4.sh

La sentencia if evalua a falso o verdadero la ejecucion de un comando. Observe que la palabra then debe ir en la siguiente linea (no puede ir adelante del comando a evaluarse), por que sino marca error de sintaxis. A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion 1 del script4 para Bash

Ejecucion 1 del script4 para Bash


Como se puede observar el comando grep informa al usuario que el archivo nombres.txt no existe. Ahora muestro otra imagen:
Ejecucion 2 de script4 para Bash

Ejecucion 2 de script4 para Bash


Como se puede ver en la imagen hemos creado el archivo nombres.txt y le agregue varios nombres (gonza, javier,itzel), pero no el de juan y ejecutamos el archivo y vemos que no entra al if y por tanto no se muestra nada (grep ya no manda msg).

A continuacion le agregamos otros dos nombres (juan y monica) y vemos que ahora si entra al if y muestra la unica instruccion dentro del if (avisa que el nombre juan si esta).

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script4.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Bash: Uso de la variable $? para depurar scripts de shell.

Para realizar esta prueba, doy por hecho que ya sabes algunos comandos basicos de la shell y lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script3.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script3.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #3: Script que muestra como utilizar la variable $? para depurar un programa y
    #            saber si un comando se ejecuto con exito.
    #            Si hubo exito    $?=1
    #            Si NO hubo exito $?=2
    #Author: Gonzalo Silverio -> gonzasilve@gmail.com
    #Archivo: script3.sh
    #Limpiar la consola
    clear
    #Mostrar informacion al usuario
    echo 'A continuacion se buscara una cadena en un archivo'
    echo 'no existente y se mostrara'
    echo 'lo que devolvio la variable $?'
    echo 'Comando: grep donde poema.txt'
    #ejecutar comando grep
    grep donde poema.txt
    #Mostrar el valor de la variable al usuario
    echo $?
    echo
    #Avisar al usuario que se ha terminado de ejecutar el script
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script3.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script3.sh

La variable $? es una variable de la shell y en ella esta el codigo de retorno del ultimo comando ejecutado. devuelve 1 cuando el comando se ejecuto con exito, en caso contrario (no se ejecuto con exito) devuelve 2. El comando grep busca una cadena dentro de un archivo y muestra todas las lineas que contengan esa cadena. A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion del scrip3 para Bash.

Ejecucion del scrip3 para Bash.


Como se puede observar el comando grep informa al usuario que el archivo no existe y el 2 que esta en la siguiente linea es el valor de la variable $? (grep no se ejecuto con exito). A continuacion vamos a crear el archivo poema.txt para ver la ejecucion del script nuevamente:
En la terminal de gnome escribe touch poema.txt, pulsa ENTER
Vuelve a ejecutar el script3, en la terminal escribe sh script3.sh, pulsa ENTER. A continuacion te muestro una imagen del terminal y el resultado de la ejecucion:
Ejecucion del script3 para Bash

Ejecucion del script3 para Bash


como vez ahora la variable $? tiene el valor 1 (el comando grep se ejecuto con exito), pues el archivo poema.txt si existe sin embargo como no tiene nada escrito dentro, pues grep no devolvio ninguna linea.

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script3.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Bash: Lectura de datos del teclado (uso de instruccion read)

Para realizar esta prueba, doy por hecho que ya sabes lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script2.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script2.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #2: Script que muestra como asignar valores a variables en forma interactiva por el
    #            usuario, uso de la funcion read.
    #Author: Gonzalo Silverio  -> gonzasilve@gmail.com
    #Archivo: script2.sh
    #pedir el dato al usuario
    echo 'Introduzca un  valor para la variable var1:'
    #leer el dato del teclado y guardarlo en la variable de usuario var1
    read var1
    #Mostrar el valor de la variable de usuario
    echo $var1
    echo 
    #Avisar al usuario que se ha terminado de ejecutar el script 
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script2.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script2.sh

La instruccion read permite leer cadenas del teclado, se pueden asignar n numero de cadenas de caracteres a una variable, hasta que se pulse ENTER. Otra cosa, como se puede ver para la lectura con la instruccion read no es necesario poner el signo $ (dolar), pero si es necesario para la instruccion echo. A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion de script2 para Bash

Ejecucion de script2 para Bash

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script2.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Bash: Utilizar variables de usuario

Para realizar esta prueba, doy por hecho que ya sabes lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script1.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script1.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #1: Script que muestra como como utilizar variables a las que se les puede asignar 
    #            un valor mediante codigo.
    #Author: Gonzalo Silverio -> gonzasilve@gmail.com
    #Archivo: script1.sh
    #inicializar variable1
    var1='Hola '
    #inicializar variable2
    var2='que tal como estas.'
    #Mostrar el contenido de las dos variables
    echo $var1
    echo $var2
    echo
    #Avisar al usuario que se a terminado de ejecutar el script 
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script1.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script1.sh

A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion de script1 para Bash

Ejecucion de script1 para Bash

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script1.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Introduccion a Bash y el Hola Mundo!

Una breve introduccion a Bash.
¿QUE ES Bash?
Es la abreviatura de Bourne-Again Shell, es un shell de Unix. Estaras pensando “¿Y que es un shell?”, te contesto: Un shell es un programa intermediario entre un usuario y el Sistema operativo instalado en su computadora. Es algo asi como una forma de comunicacion, a travez de un shell podemos darle ordenes a nuestro sistema operativo para que las realice (y si es necesario que nos devuelva resultados).

Para poder darle esas ordenes al S.O. debemos hacerlo usando un lenguaje especial (algo asi como en un lenguaje de programacion), la sintaxis de ese lenguaje es lo que me interesa, por que pienso que si uno conoce la sintaxis correcta pues ya tiene una gran parte avanzada en la programacion Bash. pero dejame decirte que en Unix hay infinidad de shells, pero uno de los mas conocidos, usados y probados es el Bash. Cada Shell tiene sus particularidades y caracteristicas que los hacen diferentes a los otros, por supuesto cada quien puede escoger las shell que mas le agrade, en lo particular a mi me gusta mas Bash porque en Linux por lo que veo se usa mucho en los scripts del sistema, en los scripts de instalacion, etc. y ¿por algo sera no?.Bueno sin mas rollo voi a empezar con una introduccion a la programacion Bash.

Ejemplo de un scrip para Bash
Como es tipico vamos a hacer el “Hola mundo”, por tradicion, (sino se pierde, jajajj). Lo vamos a hacer por pasos y con ejemplos; asi aprendemos mas rapido:

RESUMEN CORTO PARA CREAR Y EJECUTAR EL SCRIPT hola_mundo.sh

  1. Crear un archivo.
  2. Escribir el script y guardar el archivo con la extension .sh.
  3. Abrir una terminal.
  4. Entrar a la carpeta donde esta el script y dar permisos de ejecucion.
  5. Ejecutar el archivo.

PASO POR PASO PARA CREAR Y EJECUTAR EL SCRIPT hola_mundo.sh

  1. Crear un archivo. Con el editor que prefieras (gedit por ejemplo) crea un nuevo archivo en el escritorio y agregale lo siguiente:
    #!/bin/bash
    #Descripcion: Clasico script que muestra un saludo en pantalla
    #Author: Gonzalo Silverio -> gonzasilve@gmail.com
    #Archivo: hola_mundo.sh
    echo Hola Mundo bash
    
  2. Si lo deseas puedes quitar los datos de la descripcion, autor y nombre del archivo pues esos son solo comentarios. Pero te aconsejo poner siempre un encabezado tus programas. Lo que realmente importa del script es la primera linea:

    #!/bin/bash
    

    que sirve para indicar donde esta la shell a usar en el script. Y la ultima linea:

    echo Hola Mundo bash
    

    La cual sirve para mostrar un mensaje con el comando echo.

  3. Guardar el archivo con la extension .sh. Ahora guarda el archivo anterior con el nombre hola_mundo.sh en el escritorio (para que sea mas facil encontrarlo).
  4. Abrir una terminal. Ahora abre una terminal, para esto presiona las teclas <ALT>+<F2> y escribe gnome-terminal y pulsa la tecla <ENTER>.
    Ventana Ejecutar... de GNome

    Ventana Ejecutar... de GNome

    Se presenta la terminal (linea de comandos):

    Terminal de GNome

    Terminal de GNome

  5. Entrar a la carpeta donde esta el script y dar permisos de ejecucion. En esta ventana primeramente vamos a entrar en la carpeta del escritorio introduciendo la orden cd Escritorio y ahora vamos a aplicar permisos de ejecucion al archivo creado en el paso 1. En la terminal escribir chmod +x hola_mundo.sh, y presionar la tecla <ENTER>, una imagen dice mas que mil palabras:
  6. Dando permisos de ejecucion a hola_mundo.sh

    Dando permisos de ejecucion a hola_mundo.sh

  7. Ejecutar el script. Ahora vamos a ejecutar el script escribiendo el comando sh hola_mundo.sh o escribiendo ./hola_mundo.sh y pulsa <ENTER>; las dos formas son validas y ejecutan el script, aka el resultado:
    Ejecucion del script HolaMundo.sh

    v

Bueno eso es todo y espero que le hayas entendido algo. Los ejemplos que ire mostrando en otras entradas del blog mostraran cosas basicas de la programacion bash; como usar variables, leer un valor del teclado, etc. cosas muy basicas y al final mostrare un ejemplo mas completo. Hasta pronto y si quieres el script ya sabes, deja tu mail y te lo mando, nos vemos.

A %d blogueros les gusta esto: