Monografías Plus      Agregar a favoritos      Ayuda      Português      Ingles     

Primeros pasos por Linux




Muchas veces me escribe gente diciéndome que los tutoriales en http://www.adictosaltrabajo.com/ son muy avanzados. Todo esto tiene una explicación: En mi empresa, http://www.autentia.com/ nos dedicamos a dar formación y soporte de desarrollo a otras empresas de desarrollo de Software o a grandes empresas finales. Como podréis entender, no nos contactan para cosas triviales sino que, bien porque su gente cualificada está muy ocupada o porque acaban de llegar a estas tecnologías (Java / J2EE / C++ / Linux / OpenSource), nos hacen encargos avanzados: Arquitectura J2EE, auditorias de código, desarrollo de componentes a medida, subcontratación de pequeños proyectos completos, etc.. Los conocimiento que tenemos que manejar son avanzados ....

Hoy, que he empezado a repasar Linux (también impartimos cursos "básicos"), voy a aprovechar para capturar unas pantallas que os puedan ayudar a repasar conceptos básicos en Linux (para los que lo tengáis oxidado). No tienen muchas explicaciones porque son muy visuales los ejemplos ... simplemente os invito a reproducirlos ...

Voy a usar la distribución Debian que viene como imagen en el emulador Qemu (visitad el tutorial anterior http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=qemuwin ).... espero que os sea útil.

 

Arranque y primeros comandos

Una vez logados en Linux, como root (ya que lo acabamos de instalar) vamos ha hacer unas primeras comprobaciones

Como sabréis, en Linux hay varios shell y vamos a repasar algunos conceptos en este sentido.

Para saber el tipo de shell en uso, echo $SHELL

No debemos usar el usuario root como norma (por seguridad al igual que no debemos usar el usuario administrador en Windows) por lo que debemos aprender crear uno.

Creación de usuarios, usamos los comandos useradd y passwd

Una vez creado un usuario, para configurarle sus parámetros particulares, usaremos el comando usermod. Recordar que con man usermod nos aparece la ayuda.

Asignamos el directorio de arranque con la opción -d. Aunque os funcione un trayecto relativo, aseguraos de usar un absoluto (el que no lea los texto que pongo, se equivocará):

Lo suyo es que el directorio de usuario colgase de /home

No debemos olvidar que debemos asignar la propiedad de ese directorio al usuario: usaremos el comando chown (cambiar propietario).

 

 

Jugar con el Shell

En Linux hay varios shell, recordamos conceptos básicos

Bourne Shell = sh es el shell original

bash es el shell por defecto en Linux

En linux hay muchas variable de entorno pre-establecidas, debemos aprender a manejarnos.

 

Si ejecutamos el comando env, las veremos todas las variables de entorno en nuestro Linux

 

Los comandos más básicos a usar serán ls, cd, find ... que combinados con las variables de entorno nos darán mucho juego,

 

 

Peculiaridades

Estemos donde estemos, si usamos cd ~ (AltGr + 4) volveremos al directorio $HOME

Con el comando alias podemos crear nuestros propios comandos. Siempre me ha gustado asignar alias ll="ls -lF --color". Así se puede ver de un modo fácil los datos más importantes de un directorio.

 

Los comandos que vamos escribiendo los podemos recordar ... o bien pulsando la fecha superior del cursos (como en Windows). Usando history podemos ver la lista de comandos. Con el signo de admiración y el número de orden invocaremos directamente al comando deseado.

 

. Hay otros comandos como sort, que nos pueden se muy útiles. Vemos en el ejemplo como ordenar el fichero de contraseñas solo por el primer parámetro identificando el separador.

 

El comando awk es un comando curioso, que nos permite extraer una columna concreta de un fichero (puede ser la entrada que le llega por una tubería).

awk ’{ print $2 }’ < fichero

ls -lF | grep m | awk ’{ print $2 }’ < fichero

Si queremos ver los nombres de los usuarios datos de alta en el sistema, podríamos ejecutar un comando como este (indicando el carácter separador):

cat passwd | awk -F':' ' {printf $1}'

 

Comando de Disco

Para ver los discos montados podemos usar el comando df y para que sea legible por humanos, usaremos el comando -fu

 

Si queremos saber el espacio usado en disco por distintos ficheros/directorio usaremos du -ha

 

Links a ficheros

Podemos establecer links a fichero y/o directorios (solo débiles). Hay dos tipos de links, los fuertes y los débiles.

En los links fuertes, enganchamos con el identificador interno del elemento apuntado (identificador de nodo). Esto significa que aunque se cambie el nombre de recurso ligado, el link sigue siendo válido (evito ser más técnico aposta) .

Los links fuertes se hacen con el comando ln nodoexistente nombredellink (no se puede hacer entre distintos sistemas de ficheros).

En la siguiente captura solo se trata de representar que cuando realizamos un ls podemos ver que aumenta el contador de links al nodo enlazado (obviamente se borrara el fichero cuando demos la orden y el contador sea cero),

 

Si cambiamos de nombre el fichero original, no pasa nada porque realmente se está enlazando al nodo interno.

 

Los enlaces débiles vienen a ser como los accesos directos en Windows, enlazamos a un nombre. si cambiamos el nombre del fichero enlazado, perdemos el link (además esto no incrementa el contador de referencia a un nodo).

Para hacer links débiles se usa el comando ln -s nodoexistente nombredellink

 

Si reestablecemos el nombre del fichero, el link vuelve a funcionar

 

Copiar y mover directorios y ficheros

Para el que trabaje en entornos Windows, el sistema de ficheros de Linux puede ser un poco complejo.

Hay que diferenciar que en Windows tenemos distintas árboles (uno por cada unidad física o lógica). En Linux tenemos un solo árbol sobre el que montamos los distintos discos.

Si queremos copiar y/o mover los datos de un disco físico a otro ... no es tan sencillo como en Windows (estos son temas avanzados).

Os invito a que investiguéis en este aspecto ... aunque os dejo un par de comando a investigar

cp -a /directorio/origen /directorio/destino (en caso de no existir enlaces)

find . -depth -print0 | afio -p -xv -0a (en caso de existir links)

También investigar el comando cpio

 

Programación con shell-script

Una de las cosas más agradecidas que tiene Unix, es que con el Shell se pueden hacer verdaderos programas avanzados con unos conocimientos relativamente básicos.

Con el editor vi (o vim en la actualidad) podemos escribir un pequeño script.

Con chmod +x podemos asignar privilegios de ejecución al fichero. Os recomiendo que uséis ls -F para ver fácilmente los ficheros ejecutables.

 

Los comentarios en los Shell-scritps se hacen con #

 

Dentro de un Scritp, la tilde invertida nos sirve para indicar que queremos obtener el resultado de la ejecución de un comando.

 

Éste es el conjunto de variables disponibles dentro de nuestros scripts:

$# - Cantidad de parámetros que el script recibe.

$ - Todos los parámetros recibidos separados por $IFS (espacio por defecto).

$- Opciones que se pasaron al script durante su ejecución.

$$ - Identificación del proceso del intérprete de comandos.

$? - Código de retorno del último programa ejecutado

$! - Identificación del proceso del último comando que se ejecutó en segundo plano.

$0 - Nombre del script.

Hacer un menú con un Shell es trivial con las instrucciones case ..

 

Como en cualquier lenguaje disponemos de un if y podemos hacer comprobaciones con las opciones:

-b fichero = Comprueba si fichero es un dispositivo orientado a bloques

-c fichero = Comprueba si fichero es un dispositivo orientado a caracteres

-d fichero = Comprueba si fichero es un directorio

-f fichero = Comprueba si fichero es un fichero normal

-r fichero = Comprueba si fichero es legible por el proceso

-w fichero = Comprueba si fichero es escribible por el proceso

-x fichero = Comprueba si fichero es ejecutable

Con el comando read podemos leer lo que el usuario nos escriba. Podemos usar las redirecciones para procesar el contenido de un fichero.

 

Como en casi todos los lenguajes, disponemos de arrays ..

 

Podemos inicializar variables y operar con ellas de un modo numérico con los dobles paréntesis (si le echamos un poco de imaginación, veremos los bucles for desde otra perspectiva en los shell de Unix)

 

Con echo -e activamos el procesamiento de las secuencias de escape como \n para una nueva línea

 

Procesos

Con el comando ps podemos ver los procesos activos. Podemos ver el árbol de procesos activos con pstree.

 

Ver estado de la memoria con el comando top

 

Programación de tareas en Linux

Un comando o conjunto de comando se puede ejecutar de un modo inmediato o de un modo diferido.

Con el comando at, podemos definir cuando queremos que se ejecute un comando

 

Si queremos que se ejecuten comandos de un modo periódico, podemos usar el cron, a través del comando crontab

No olvidar que es muy posible que no se ejecuten los comandos si se han configurados opciones de seguridad (el usuario debe estar en el fichero /etc/crontab.r/cron.allow, si este existe)

 

Otras configuraciones

¿De donde sale la variable PATH en Linux?

more /etc/profile

 

Definición del prompt /etc/bash.bashrc

 

Salir ordenadamente de Linux

# shutdown -h now

# poweroff -i -f

 

Conclusiones

En Internet hay miles de manuales y tutoriales .... os indico algunos de ellos para que sigáis investigando...

Links Interesantes

http://www.europe.redhat.com/documentation/rhl6.2/gsg-es/index.php3

http://www.sinuh.org/content/view/94/27/

http://www.adictosaltrabajo.com/indexg.php?noimages=SI&pagina=listacat&id=20
(en http://www.adictosaltrabajo.com/ )

http://www.wernitz.net/docs_debian/

http://www.tldp.org/LDP/abs/html/

 

Ricardo Lomoro

www.realidadeconomica.com


Comentarios


Trabajos relacionados

  • Sistemas operativos - Componentes de una PC

    La Tarjeta Madre. El Procesador. Tipos de procesadores. Memoria Cache. Partes de la Tarjeta Madre. El Disco Duro. La Mem...

  • Windows 98

    Conocimiento del Escritorio de Windows 98. ¿Cómo trabajar con una ventana?. ¿Cómo utilizar las Barras de desplazamiento?...

  • Sistemas Operativos I (Netware - Novell)

    Concepto y definición de Sistemas operativos. Características de los Sistemas Operativos. Clasificación de los sistemas ...

Ver mas trabajos de Sistemas Operativos

 
 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.


Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Iniciar sesión

Ingrese el e-mail y contraseña con el que está registrado en Monografias.com

   
 

Regístrese gratis

¿Olvidó su contraseña?

Ayuda