Monografias.com > Computación > Sistemas Operativos
Descargar Imprimir Comentar Ver trabajos relacionados

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

    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.

    Categorias
    Newsletter