Linux LPI1 – Apuntes I

Bueno, necesitaba un poco de tiempo, algo de lo que ando bastante escaso últimamente, para poder empezar a escribir sobre Linux en este blog. Nada más alejado de mi intención que, dármelas de experto en la materia. El motivo es otro y muy sencillo, utilizar el blog como mi “libreta de apuntes” online. Apuntes que voy tomando en cada clase del curso Linux para la certificación LPI 1, en la PUE. Aprovecho para saludar a mis profesores Zeus Gómez y Carlos Campderrós, auténticos cracks de Linux. Estos apuntes sufrirán una continua revisión por mi parte, debido a los numerosos errores(:S) que inicialmente es posible que contengan además de que, iré añadiendo información a preguntas o dudas sobre conceptos que ahora mismo no tenga claros. Invito a los interesados a emitir sus comentarios con preguntas, dudas o sugerencias :). Empiezo ya, sin perder más tiempo, a pasar los apuntes al wordpress(manos en teclado, libreta en rodillas).

En la primera clase del LPI1, iniciamos una instalación de Linux con Fedora 7. Nos entregaron un libro de Linux y el DVD de Fedora 7. Algunos alumnos tenían sistemas 64 bits que experimentaron algún que otro problema, la mayoría teníamos sistemas de 32 bits y la instalación funcionó bien. Sobre la instalación, podemos decir que recomendaron instalar el SWAP en una partición independiente, separada de la de datos. Una recomendación para SWAP sería que, como tamaño adecuado, utilizar el doble del tamaño físico. La instalación de Fedora 7 es muy sencilla, basta con unos clicks y lo tendremos todo instalado. Otro comentario interesante fue el referido al UTC, el sistema de tiempo que utiliza UNIX, similar al GMT de Windows. Es posible que en Pcs con sistemas Windows, la instalación de Fedora pueda crear problemas debido al UTC.

Rápidamente, nos ponemos a probar el sistema operativo Fedora 7(lo tengo también instalado en el portátil y sólo necesito tiempo para traspasar todo a el). Ya de primeras, vemos un par de funcionalidades que son muy útiles. Cambio de Pantalla: en Linux tenemos no sólo un escritorio, tenemos varios escritorios. ¿Por qué es útil? Podemos estar trabajando en el escritorio 1, mientras que en el escritorio 2 estamos descargando información o haciendo cualquier otra actividad.

CTRL+ALT+F[1-6]

Del mismo modo, tenemos también varias pantallas de shell, y podemos desplazarnos por ellas con el mismo comando, pero diferentes números

CTRL+ALT+F[7-12]

History
Aprendimos un par de comando que hasta ahora no conocía, como el history: muestra una lista ordenada por tiempo de los comando utilizados en el shell de sistema. Podemos ejecutar un comando anterior con ![número], donde número es el ID de comando que muestra history. Una manera rápida de ejecutar el último comando introducido es !!. Otras formas de utilizar la información de history:

# !!
# !n
# !-n
# !str

Toda la información que muestra el comando la extrae de la variable $HISTFILE. ¿Pero que es realmente HISTFILE?Podemos averiguarlo con:

#echo $HISTFILE

esto nos mostrará por pantalla una ruta hacia un directorio del home directory del usuario: /home/[usuario]/.bash_history
Otra manera de conocer el contenido guardado en .bas_history($HISTFILE) es:

#ls $HISTFILE

El $ delante de la variable coloca el resultado en línea de comandos. Más adelante explicaré detalladamente que implica el $ delante de la variable respecto a como el shell lo interpreta y expande.
Pueden haber equivalencias entre los diferentes comandos que tenemos a nuestra disposición:

CTRL+P = !!! = [flecha arriba]+INTRO

Hablando sobre RPM, el sistema de paquetes de Red Hat y Fedora, conocemos el comando rpm -qf [directorio paquete] : este comando muestra la correspondencia paquete-fichero en el sistema.

Pasamos a comentar el shell, la pantalla o consola de comandos principal de Linux. El proceso que crea el shell tiene como nombre bash. Podemos ver el concepto padre-hijo si ejecutamos un bash, dentro de una misma terminal, donde podemos ver todos los procesos de sistema como si fuera un árbol.

bash (padre)
\ _ bash (hijo)

Hay tipos de shell, siendo bash uno de ellos, pero existen otros como tcsh. Si ejecutamos $SHELL, vemos el valor de la variable SHELL y obtendremos la ruta al proceso: /bin/bash. Si queremos ver toda la lista de variables de sistema ejecutaremos set.

Hay 2 tipos de variables, internas o de shell(propias del bash) y de entorno. Comentamos también ciertos directorios del sistema algo especiales. Es el caso de proc. proc es un directorio que no existe como tal en el disco duro, está vacío. Los procesos extraen información de ese directorio. Su contenido es dinámico. Para ver el entorno de cada proceso, podemos mirarlo en el directorio proc, conociendo el ID del proceso. Con ps axuf, veremos el PID del proceso y podremos acceder a el con cd /proc/[PID].

Otra variable:

#echo $PS1 [\u@\h\w] ; muestra la forma en que se representa nuestro entorno de trabajo dentro de shell, básicamente el prompt. Eso mostrará que usuario, hostname y el directorio de trabajo. Podemos modificar esa variable y que contenga los datos que necesitemos:

#PS1 = [modificadores] ;cambiaremos el prompt del shell.

Hemos comentado que hay 2 tipos de variables, de entorno y internas. ¿Se pueden relacionar estas 2 variables?¿Podemos pasar una variable interna de shell a una variable de entorno? Sí, utilizando el comando EXPORT. Ejemplo:

#export PS1

Acabamos de añadir la variable PS1 al conjunto de variables de entorno, que, recordemos, se puede examinar con SET. Podemos ver las rutas completas hacia los diversos proceso, con

#echo $PATH; $PATH contiene la ruta física del disco duro al directorio donde están todos los procesos.

Sobre los comandos, diremos que hay 2 formas de ejecutarlos: de forma explícita (/bin/ls, que siempre funcionan)y los built-in. Y se pueden ejecutar de forma individual o múltiple. Los comandos aceptan en su mayoría la forma nombre opción argumento, aunque algunos sólo aceptan opciones. Podemos ejecutar varios comandos secuencialmente, por ejemplo:

#ls;ls /.

Jugando un poco dentro del shell, podemos ejecutar pequeños scripts que ejecuten diversas funciones. Hay 2 ejemplos:

a) #for i in /bin /var /usr
#do ls $i
#done

este script ejecutaría 3 ls, a diferentes directorios. Que sería lo mismo que escribir en el shell:

#ls /bin;ls /var; ls /usr

b) #for i in /bin /var /usr
#do ps axuf;
#sleep 1;
#done

Fin Apuntes LPI1 – Apuntes 1

One thought on “Linux LPI1 – Apuntes I

  1. Hola, andaba buscando en la red información para examenes LPI y me he topado con tus estupendos apuntes.
    Gracias por compartirlos
    Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *