You are on page 1of 71

Introduccin a GNU/Linux

2011-07-14 (v1.0)

Fabian Portantier

Consultor en Seguridad Informtica Fantico de GNU/Linux (Debian) Mail: fabian@portantier.com Web: www.portantier.com

Linux Professional Institute

Organizacin sin fines de lucro Creador de las certificaciones LPIC Fundado en 1999 www.lpi.org

Certificaciones LPI

LPIC-1

Junior

LPIC-2

Profesional

LPIC-3

Avanzado

Objetivos LPIC-1

Trabajar en la lnea de comandos Mantenimiento de usuarios Copias de seguridad Instalacin de equipos de trabajo

Objetivos LPIC-2

Administrar sitios pequeos o medianos Planificar y mantener redes mixtas Servicios de firewall, proxy y correo Aconsejar en automatizacin y compras

Objetivos LPIC-3

Planeamiento avanzado de arquitecturas Rendir alguna de las especializaciones:


Entorno mixto Seguridad Alta disponibilidad y virtualziacin Web e intranet Correo y mensajera

Un poco de historia

MULTICS, UNICS, UNIX (60's) UNIX, reescritura en el lenguaje C (1971) Berkeley Software Distribution, BSD (1975) Aprox. 600 mquinas usaban Unix (1978) Unix System V r2 (1983) Richard Stallman funda el proyecto GNU (1985) Linux 0.0.1 (1991) GNU/Linux (1992) http://es.wikipedia.org/wiki/Unix

Software Libre (Libertades)

Usar el programa, con cualquier propsito. Estudiar cmo funciona el programa y modificarlo. Distribuir copias del programa. Mejorar el programa y compartir las mejoras.

Distribuciones GNU/Linux

Bsicamente, un conjunto de software Ncleo (Linux) Aplicaciones (GNU) Ms aplicaciones

Tipos de distribuciones
Comerciales 100% Libres Hogareas Escritorio Generales vs vs vs vs vs No-Comerciales Privativas Empresariales Servidores Especializadas

Distribuciones Populares

Debian RedHat Slackware Gentoo Suse

Laboratorio de Instalacin

Login

Permite el acceso a la terminal

Solicita credenciales de acceso

Usuarios

Usuarios para personas

Usuarios de sistema

Usuario 'root'

Usuarios
Quines estn dentro del sistema? who Quin soy yo? whoami En qu terminal estoy trabajando? tty

Prompt

A la izquierda del cursor de la terminal

Personalizable para cada usuario

Nos avisa si somos usuario 'root'

Sistema de Archivos

Directorios estndar
/ /bin /sbin /dev /etc /lib /boot /home /tmp /var /usr Raz del sistema Ejecutables Ejecutables de root Dispositivos Archivos de configuracin Libreras Archivos de arranque Directorios de usuarios Archivos temporales Archivos variables Archivos ajenos al core del sistema

Path absoluto
/ |---usr/ |---bin/ |---firefox Path absoluto del archivo 'firefox': /usr/bin/firefox

Path relativo

El punto (.) representa el directorio actual

Dos puntos (..) representan el directorio anterior

Path relativo
./firefox (ejecuta el archivo 'firefox' del directorio actual) ../firefox (ejecuta el archivo 'firefox' del directorio superior) ./bin/firefox (ejecuta el archivo 'firefox' de ./bin/firefox)

Moverse entre directorios

cd directorio Ejemplos: cd /usr/bin cd / cd usr

Tipos de archivo

Texto plano Binario Directorio Dispositivo de carcter Dispositivo de bloque Tubera Enlace Socket local

Comando 'file'

Permite determinar el tipo de un archivo Uso file [opciones] archivo

Uso de 'file'
file /bin/ls ELF 32-bit LSB executable, Intel 80386 file /usr/share/images/image.svg SVG Scalable Vector Graphics image file /home Directory file /home/fabian/archivo.txt ASCII text

Comandos 'cp'

Copia archivos y directorios Uso: cp [opciones ] origen destino Ejemplo: cp /hom/fabian/archivo.txt ../

Comando 'mkdir'

Crea directorios Uso: mkdir [opciones] directorio [dir2 dir3 dirx]

Comando 'mkdir'

Opciones comunes: p Crea todos los directorios del path

Comando 'cp'
Opciones comunes: r i f n Recursivo Interactivo Sobreescribir existentes No sobreescribir existentes

Ejemplo: cp -rf /usr/directorio1 /usr/directorio2

Comando 'mv'

Mueve archivos y directorios Uso: mv [opciones] origen destino Ejemplo: mv /usr/archivo1 /home/fabian/

Comando 'mv'

Opciones comunes: f i n Sobreescribe existentes Interactivo No sobreescribe existentes

Comando 'rm'
Elimina archivos y directorios Uso: rm [opciones] archivo1 [archivo2 archivo3 etc] Ejemplos rm /home/fabian/archivo1 rm archivo1 archivo2

Comando 'rm'

Opciones comunes: f No hace preguntas y omite errores i Pregunta antes de cada accin r Recursivo (para eliminar directorios)

Comodines
* ? [A-Z] [a-Z] [0-5] [a,f] [!a,f] [!a-f] Cualquier cosa Cualquier carcter (slo 1) Letras, de la 'A' a la 'Z' Letras, de la 'a' a la 'Z' Nmeros, del '0' al '5' Letras 'a' y 'f' Excluye las letras 'a' y 'f' Excluye las letras, desde la 'a' a la 'f'

Comodines (ejemplos)

ls *.txt ls [a-z].txt rm archivo?.txt

Empaquetamiento de archivos

Permite agrupar archivos y directorios Genera un nico archivo con todo el contenido til para comprimir y transportar datos Muy utilizado para copias de seguridad

Comando 'tar'
Genera paquetes de archivos y directorios Uso: tar -cf paquete.tar archivo1 archivo2 archivox (genera 'paquete.tar') tar -xf paquete.tar (extrae el contenido de 'paquete.tar')

Comando 'tar'

Opciones comunes: c Crea un paquete x Extrae el contenido de un paquete t Lista el contenido de un archivo r Agrega al contenido de un archivo v Muestra el detalle de las tareas realizadas

Compresin de archivos

Utilizan algoritmos de compresin Reducen el tamao de los archivos til para transferir archivos por una red til para copias de seguridad

Comando 'gzip'

Comprime utilizando el algoritmo LZ77 Uso: gzip [opciones] archivo.gz

Comando 'gzip'

Opciones comunes: d l v Descomprime (igual que 'gunzip') Lista los archivos de un paquete Muestra el detalle de las tareas realizadas

Comando 'bzip2'

Comprime utilizando Burrows-Wheeler y Huffman Uso: bzip2 [opciones] archivo.bz2

Comando 'bzip2'

Opciones comunes: d v Descomprime (igual que 'bunzip2') Muestra el detalle de las tareas realizadas

Encontrando archivos

Comando 'which'

Determina la ubicacin de comandos (deben estar dentro del PATH del usuario) Uso: which comando

Comando 'find'

Busca archivos que concuerdan con la expresin (busca recursivamente) Uso: find [directorio] expresin

Comando 'find'
Opciones comunes: xdev executable user 'u' group 'g' name iname perm 'p' Limitarse al FS del directorio inicial Busca archivos ejecutables Busca archivos del usuario 'u' Busca archivos del grupo 'g' Busca archivos por nombre Igual a 'name' pero sin may/min Busca por permisos (octal/simbolico)

Comando 'locate'

Encuentra archivos buscando en un ndice Uso: locate patrn

Comando 'locate'

Opciones comunes: b w e i S Busca slo en el nombre del archivo Busca en el nombre y la direccin (default) Muestra slo archivos existentes Ignora maysculas y minsculas Muestra estadsticas del ndice

Comando 'updatedb'

Actualiza el ndice utilizado por 'locate' Uso: updatedb [opciones]

Comando 'whereis'

Busca comandos y manuales Uso: whereis [opciones] archivo

Editores de texto

Muchas herramientas disponibles

Curva de aprendizaje compleja

Populares: vi, vim, nano, emacs

El editor vi

Uso: vi [archivo] Ejemplos: vi archivo1 vi archivo1 archivo2 vi

El editor vi (modos)

Modo de ejecucin

Ejecuta comandos y acciones

Modo de insercin

Permite insertar o eliminar texto

El editor vi (comandos)
:w :q ! i ESC dd dXd yy yXy Guardar Salir Forzar la accin Modo insercin Modo ejecucin Corta la lnea actual Corta 'X' cantidad de lneas Copia la lnea actual Copia 'X' cantidad de lneas

El editor vi (comandos)
p . u /expr n N :n :f Pega las lneas cortadas/copiadas Repite el ltimo comando Deshace el ltimo comando Busca por la expresin 'expr' Repite la ltima bsqueda Repite la ltima bsqueda hacia atrs Pasa al siguiente archivo Define el nombre del archivo

vi improved (vim)

Corrector ortogrfico integrado Autocompletado de texto Navegacin por pestaas Ventanas mltiples Resaltado de sintaxis rdenes deshacer y rehacer Lenguaje de scripting para extensiones

vi improved (vim)

Completado de rdenes, palabras y archivos Compresin y descompresin de ficheros Reconocimiento y conversin de formatos Historial de rdenes ejecutadas Grabacin y reproduccin de macros Guardado de la configuracin entre sesiones Interfaz grfica opcional

El intrprete de comandos (shell)

Interfaz entre el kernel y el usuario

'sh' fue escrita por Stephen Bourne

BASH (Bourne Again Shell)

Variable PS1
Prompt String 1 Valores posibles: \u \h \W \$ Nombre del usuario Nombre del host Path relativo al directorio actual Si es usuario '$', es es root '#'

Variable PATH

Lista los directorios en los que buscar ejecutables Cada directorio separado por ':' Ejemplo: /usr/local/bin:/usr/bin:/bin

Exportar variables

export MYVAR=valor echo $MYVAR env env | grep MYVAR

Secuencias de comandos

comando1 ; comando2 Ejemplo: who; tty

Historial de comandos

echo $HISTSIZE (Tamao del historial de comandos) echo $HISTFILE (Archivo en el que se guarda el historial)

Comando 'history'

Muestra el historial de comandos

Expansin del historial

!! !n !-n !s !?s

El comando ms reciente El comando nmero 'n' del historial El comando actual menos 'n' El ms reciente que empiece con 's' El ms reciente que contenga 's'

Sustitucin de comandos

Dos formas: $(comando) `comando` Ejemplo: export MYVAR=$(uname)

Salida del ltimo comando


echo hola echo $? rm noexisto.txt echo $? echo $?

Ejecuciones condicionales

cmd1 && cmd2 (cmd2 se ejecuta slo si cmd1 devuelve 0) cmd1 || cmd2 (cmd2 se ejecuta slo si cmd1 no devuelve 0)

You might also like