Curso Basico de Linux


CURSO BASICO DE LINUX

Introducción

Siendo Linux una pieza importante de software libre, lo primero que debe saberse
es la filosofía del software libre.

¿Qué NO es el Software Libre?

Gratuito La confusión viene del inglés free, con las acepciones libre y gratuito.
En español no debería haber tal confusión.
Dominio público Para poder hacer uso de software libre es preciso aceptar los
términos de una licencia que garantice que se mantendrán ciertas reglas y
principios.
Anónimo Se reconoce a los autores y encargados de mantenimiento del software
libre por medio de un concepto de derechos de autor (copyright) compatible
con sus principios. A veces se le llama copyleft.

¿Qué SÍ es el Software Libre?

No propietario no hay que tener autorización ni contrato para poder adquirirlo o
usarlo.
Distribuible puedes hacer tantas copias como quieras, incluso venderlas. Pero
no se puede impedir que alguien más, a su vez, lo redistribuya.
Accesible el código fuente está disponible. Se promueve la conveniencia de distribuir
el código fuente para el desarrollo de software.
Modificable puedes mejorar el programa, incluso redistribuir la modificación. La
depuración se paraleliza: rapidez en el desarrollo y calidad del resultado son
compatibles.
Reusable puedes aprovechar código ya escrito, siempre y cuando tu nuevo código
mantenga las mismas libertades del software libre.
Sin garantías nadie te asegura que funcionará, nadie se hace cargo de ningún
daño. No estás desamparado: el soporte sigue otros cauces distintos a los
tradicionales.
Hereditario cualquier programa derivado de software libre es también libre. Se
prohibe prohibir.

Free Software Fundation (FSF)

Fundada en 1985 por Richard Stallman para promover el derecho a usar,
estudiar, copiar modificar y redistribuir programas.
La FSF se concentra en el desarrollo de software libre nuevo, y en hacerlo
coeherente de modo que se elimine la necesidad de usar software propietario.
Además de desarrollar software, la FSF protege, promueve y preserva software
libre.
Los fondos de la FSF provienen de la distribución de CDs y manuales de
software GNU, además de donaciones deducibles de impuestos (en EU).


GNU’s Not Unix

Proyecto iniciado en 1984 por Richard Stallman para obtener un sistema
operativo completo, totalmente libre, compatible con el sistema operativo
Unix.
La idea original del proyecto era preservar el espíritu colaborativo que había
existido antes de que se impusieran los obstáculos del software propietario.

Un sistema operativo incluye ambientes de trabajo (shells) compiladores,
editores, formateadores de texto, correo, etc. Con el tiempo el proyecto
GNU tenía una colección impresionante de estos programas. Solo faltaba el
núcleo.

¿Qué es Linux?

Estrictamente hablando, Linux es sólo el núcleo (kernel) de un sistema operativo
tipo Unix.
Fue desarrollado por el finlandés Linus Torvalds en 1991 a partir de Minix,
un sistema Unix mínimo, desarrollado con fines didácticos por A. Tanenbaum.
El anuncio se hizo en el grupo de noticias comp.os.minix y permitió la
participación de numerosos usuarios y programadores de todo el mundo a
través de Internet.
El kernel alcanzó una estabilidad a nivel de usable en 1994. A partir de
entonces Linux se convierte en el complemento ideal del proyecto GNU, al
que solo le faltaba un núcleo estable.

Características y virtudes del GNU/Linux

GNU hereda todas las características vistas en la sección sobre software libre.
Estable meses (inclusive años) de funcionamiento ininterrumpido.
Seguro prácticamente sin virus, un proceso no puede acceder a áreas de memoria
ajenas, etc.
Multitarea (de verdad).
Multiusuario (de verdad).
Compatible cumple el estándar POSIX como otros muchos UNIX, lo que facilita
la migración entre plataformas.
Multi-arquitectura disponible para Intel y compatibles, PowerPC, Macintosh,
Amiga, Atari, DEC Alpha, Sun Sparc, ARM.. .
Rápido maneja eficientemente los recursos: memoria, disco duro, CPU, etc.
Capacidad en red excepcional; fue desarrollado desde un principio para la conexión
en red.
Elegante es un modelo de programación: pequeño, extensible, modular.

¿Que falta?

Aparte del núcleo y los programas que conforman el sistema operativo, hacen falta
más cosas para que el sistema sea útil.
Estructura de directorios.
Archivos de configuración.
Programas de instalación y configuración de partes del sistema.
Aplicaciones para el usuario final.
Sistemas de actualización de paquetes.
Todas estas cosas juntas y bien organizadas son las cosas que debe proporcionar
una distribución.

Distribuciones

Para poder usar un programa GNU hay que localizarlo, descargarlo, desempaquetarlo,
compilarlo (con todas las herramientas y librerías que pueda necesitar),
instalarlo y configurarlo…es un trabajo pesado y difícil.
Una distribución es una recopilación de software ya compilado y empaquetado
para facilitar su instalación y configuración.
El gestor de paquetes permite ver una breve descripción, registra qué programas
están instalados, verifica las dependencias y conflictos (al instalar o al desinstalar)
para que todo funcione siempre. Incluso actualiza a las nuevas versiones a
través de la red de manera transparente.
Estas distribuciones permiten instalar un sistema GNU/Linux completo.
Slackware Una de las primeras distribuciones organizadas. Muy sencilla y primitiva
comparada con sus sucesoras.
Redhat Una de las distribuciones comerciales más difundidas, de instalación gráfica
relativamente amigable. Sistema de paquetes RPM adoptado por otras
distribuciones.
Suse Distribución comercial alemana de buena calidad. Usa el mismo sistema de
paquetes RPM.
Debian Distribución libre desarrollada por un grupo muy numeroso de colaboradores
a través de Internet, de calidad extraordinaria. La seguridad y detección
rápida de errores es uno de sus puntos fuertes. Su sistema de paquetes
es de lo mejor.

Fuentes de documentación

GNU/Linux se distingue por la calidad y cantidad de documentación que incluye.
Desde manuales, “COMOs”, guías, libros, el usuario tiene todo a su disposición
para informarse de cada detalle del sistema.
Existe un manual por casi cada comando del sistema. La forma de consultar
esta documentación (en una terminal de texto) es mediante el comando man
seguido del comando del que se quiere obtener información. Ejemplo: man
mount.
El comando info es similar, pero en general es más completo y tiene un
formato hipertexto (más sencillo que el html).
Los Howtos (“COMOs”) son una especie de recetas donde se explican paso
a paso diversas tareas del sistema.

Filosofía RTFM

RTFM: Read The Fucking Manual que en español se diría Lea el Jodido
Manual. Se espera que todo usuario de Linux se moleste en leer la documentación
que acompaña a las distribuciones, antes de hacer preguntas
tontas.
Al existir toda clase de información sobre el sistema, uno debe informarse
lo más posible por su cuenta antes de pedir ayuda, esta es una forma de
cortesía ante los demás, y es la forma en que se comporta la gente de la
“comunidad GNU/Linux”.

¿Por qué Debian?

Es libre. Los paquetes aceptados en la distribución oficial de son 100%
libres (bajo licencia GPL o similar) así como todas sus herramientas de
instalación y administración y toda la documentación.
Es de gran calidad. Debian tiene la fase de pruebas más prolongada de
todas. Miles de usuarios prueban el software y reportan defectos antes de
liberar una nueva versión.
Increíble cantidad de software: más de 4000 paquetes y cerca de 1000
desarrolladores en casi todo el mundo .
El mejor sistema de empaquetamiento de software en el mundo, con excelente
control de dependencias y conflictos. La actualización es muy fácil
por diferentes medios (CD, FTP, HTML, etc.).

Tutorial de instalación

Averigua tu hardware

Hacemos acopio de todos los manuales. Al menos deberemos identificar:
Tarjeta de red.
Tarjeta de vídeo.
Monitor: frecuencias de refresco y resolución máxima.
Otras tarjetas: sonido, sintonizadora de TV, etc.
Puede ser útil tomar esta información de otro sistema operativo.

Arrancar la instalación

Disponemos de diferentes “sabores” para el kernel de arranque, que será el que
quede instalado luego:
vainilla la que se arranca por defecto. Admite gran cantidad de hardware.
udma66 soporte para los discos duros UDMA66; puede dar problemas en equipos
antiguos.
compact sin algunos controladores.
idepci mínimo.
bf24 con el kernel más reciente (recomendado).

Tres posibles medios de arranque:

1. CDROM: Es la forma más cómoda y la que recomendamos.

2. Disquetes: si no podemos arrancar desde CDROM o si el equipo tiene problemas
al arrancar: poca memoria, equipos portátiles, conflictos hardware,
etc. Según el sabor del kernel podemos necesitar entre 3 y 16 discos. Es
una opción engorrosa, lenta y los disquetes pueden dar problemas.

3. Desde MSDOS: arrancando con boot.bat o los diversos install.bat.
Necesita los archivos linux y drivers.tgz (en el CDROM o copiados
en el disco duro). Es una opción más cómoda y segura que empleando
los disquetes. Es necesario arrancar MSDOS con los controladores del
CDROM.

Una vez arrancado el programa de instalación de GNU/Linux es posible copiar
los archivos necesarios de diversas fuentes:

cdrom: si no se tiene acceso a la red.

disco duro: si se tiene una copia de la distribución en un disco duro local.

nfs: accediendo al disco duro o cdrom de otro equipo a través de la red.

ftp: a través de la red, con el protocolo FTP.

http: a través de la red, con el protocolo HTTP.

ppp: a través del módem.

Particionar el disco

¿Por qué hacer particiones?

Para poder instalar diferentes sistemas operativos (con diferentes sistemas
de archivos) en un mismo disco duro.
Por seguridad: un defecto en el disco o en el sistema de archivos de una
partición no suele afectar a las otras.
Algunos archivos casi nunca se modifican y otros se modifican constantemente.
Los segundos ocuparán zonas físicas del disco dispersas, lo que
ralentiza su lectura. Por eso nos interesa que los primeros se mantengan
aparte.
Ciertos archivos pueden ser útiles para varios SO o distribuciones. No es
preciso tenerlos por duplicado.
Además, la memoria virtual en disco necesita una partición especial.

Los dispositivos en GNU/Linux

En Unix los dispositivos se accesan por medio de una ruta en disco, como si fueran
archivos:
/dev/hda disco duro maestro del canal IDE primario, en MSDOS es C:
/dev/hdb disco duro esclavo del canal IDE primario, en MSDOS puede ser D:
/dev/hdc disco duro maestro del canal IDE secundario.
/dev/hdd disco duro esclavo del canal IDE secundario.
/dev/sda primer disco duro SCSI.
/dev/cdrom normalmente una liga a alguno de los anteriores.
/dev/fd0 disquetera A:
/dev/ttyS0 primer puerto serie, en MSDOS es COM1:
/dev/ttyS1 segundo puerto serie, en MSDOS es COM2:
/dev/lp0 puerto paralelo.
/dev/psaux ratón PS/2.
/dev/mouse liga al puerto del ratón.

En GNU/Linux las particiones se numeran:
hda1–hda4 primarias.

Por limitaciones ajenas a GNU/Linux no se permitían más particiones. La
solución fue nombrar a una de ellas (tradicionalmente hda4) como extendida.
Esta partición contiene en realidad a todas las demás; de hecho algunos
programas (como el cfdisk que usaremos) no se molestan en mostrarla.
hda5–hda63 lógicas. Contenidas en la partición extendida.

ArrinconemosWindows

Es habitual que, por falta de previsión, un equipo tenga todo su disco duro ocupado
con alguna mutación de Windows, sin espacio para instalar otros SO. Para
redimensionar su partición, sin perder nada, se usa tradicionalmente el programa
para DOS fips. Está incluido en todas las distribuciones de GNU/Linux.
En Debian se encuentra en el directorio tools del disco de distribución. Es recomendable
leer la documentación incluida, antes de intentar usar este programa.
Siempre hay el riesgo de que se pierdan los datos de la partición que se va a compactar,
así que se recomienda respaldar primero. Se recomienda defragmentar la
partición para ganar más espacio, pero no es imprescindible.

Particiones en GNU/Linux

Puede consultarse el Linux Partition HOWTO1. Actualmente se recomiendan particiones
sencillas (una de swap y otra normal). Para decidir cuántas particiones haremos
y de qué tamaño conviene conocer la estructura de archivos de GNU/Linux:

swap partición especial cuyo tamaño se añadirá a nuestra RAM para formar la
memoria virtual. Conviene crearla por si hace falta.No más de 128 MB.

/ directorio raíz. Contendrá los archivos esenciales para el arranque y configuración
de todo el sistema. Si el disco duro es grande y la BIOS antigua
es importante que su partición esté entre los primeros 1024 cilindros (suele
corresponder con los primeros 8 GB ).

/var contiene las colas de impresión y de correo, el registro de mensajes y bases
de datos de varios programas, además de los archivos temporales. Entre
100–300 MB para uso personal.

/home todos los archivos personales de los usuarios. Del orden de 100 MB por
usuario, según sus necesidades.

/usr todos los ejecutables, documentación, etc. Podría ser suficiente con 100 MB,
y suele sobrar con 1 GB.

/usr/local deberá contener todo lo que instalemos por nuestra cuenta, fuera de la
distribución de Debian. Sólo nos interesará hacer una partición aparte si
queremos usar ciertas aplicaciones entre distintos SO o distribuciones.

Instalación paso a paso

Seguiremos Instalación de Debian GNU/Linux 3.0 para Intel x863. El resto del
capítulo sólo complementa esta guía. Algunas anotaciones:

Introducimos el medio elegido para arrancar. Puede ser necesario cambiar
la opción de arranque en la BIOS.

Ojear la ayuda con Fn antes de arrancar la instalación. Sugieren soluciones
en caso de problemas.

Una vez arrancada la instalación pulsar alt+F2 para disponer de otro terminal,
alt+F3 y alt+F4 para ver errores y mensajes de instalación, respectivamente.

Reparticionamos el disco duro con la información de los puntos anteriores.
En un equipo con una sola partición ocupada y unos 2 GB libres podría
valer:

DIRECTORIO
PARTICIÓN
TAMAÑO
/
/dev/hda2
100 MB
/var
/dev/hda3
300 MB
/home
/dev/hda5
100 MB
(swap)
/dev/hda6
64 MB
/usr
/dev/hda7
>1500 MB

Notar que la partición de /home es muy pequeña porque estos equipos la
tendrán luego montada en un servidor. De no ser así, no escatimes: 500
MB/usuario es un tamaño más real.
Sin embargo, lo mínimo aceptable son dos particiones. Una para la memoria
virtual (swap) de no más de 128MB, y el resto para la raiz del árbol de
directorios /.

Elejir preferiblemente un sistema de archivos transaciconal, como ext3 o
XFS. Eso evitará problemas cuando se apague la máquina accidentalmente
o por un apagón.

Al inicializar (formatear) conviene verificar la superficie, aunque tarda más.
No es necesario mantener compatibilidad con los kerneles viejos.

En la configuración de red DHCP es el método que suelen usar los proveedores
por cable. Usarlo si ese servicio está disponible en su red local.

Módulos de drivers de dispositivos: si queremos que algún driver se cargue
al arrancar Linux. Todos los que hay en la lista estarán en el disco duro, y
se supone que se cargan en memoria cuando son requeridos.
Si se va ahacer la instalación por medio de la red, es preciso instalar el
modulo de la tarjeta de red. Sin embargo, las versiones actuales muchas
veces son capaces de reconocer automáticamente la tarjeta de red y cargar
el módulo.
En cualquier caso, los modulos pueden instalarse más tarde con el comando
modconf.

Consultar la configuración de red: dirección IP (en caso de no usar DHCP),
nombre del equipo, nombre de dominio, máscara de red, gateway y DNS.

Zona horaria: Si el equipo se va a compartir con
otro sistema operativo, se recomienda usar hora local, de otro modo usar
GMT.

Crear un disquete de arranque. Por el momento es la forma más segura; en
breve haremos que Linux arranque desde el disco duro, instalando LILO en
el MBR.

Activar passwords md5 (permite claves sin límite en el número de caracteres)
y shadow (oculta el archivo de claves cifradas al usuario normal).

Eliminamos PCMCIA salvo si tenemos una portátil.

Elegimos el sistema de instalación simple. Por el momento no elegimos
ninguna tarea. Lo haremos luego con el comando tasksel.


Sistema gráfico

El sistema X Window es un sistema de ventanas transparente a la red (estructura
cliente-servidor). Viene a ser una parte auxiliar del sistema operativo que controla
la representación gráfica y el acceso al terminal.
Tradicionalmente es uno de los obstáculos más difíciles de saltar para un principiante
al instalar GNU/Linux: información de los dispositivos difícil de conseguir,
hardware no admitido, etc. . .

Teclado de 105 teclas internacional, lenguaje spanish.

Tarjeta gráfica necesitaremos saber qué servidor admite nuestra tarjeta. En general,
basta instalar el paquete xserver-xfree86 y seleccionar la tarjeta.

Monitor frecuencia de sincronización horizontal y frecuencia de refresco vertical.
Si le damos valores más bajos de los que admite el monitor, la imagen
parpadeará más de lo necesario. ¡Valores más altos pueden averiar algunos
monitores! También necesitamos la resolución máxima.
Para reconfigurar X después de la instalación, ejecutar el comando
dpkg-reconfigure xserver-xfree86

No es necesario dar de nuevo los datos que se dieron en la configuración.
Aparecerán como parámetros por omisión.

Algo de nomenclatura

X-terminal máquina que usará los recursos de otra y contiene el servidor X.
X display manager o xdm arranca el login gráfico.Nosotros instalremos el gdm de GNOME. Hasta entonces entraremos en modo modo texto y arrancaremos
X con:
startx
Desktop environment o entorno de escritorio. Lo componen un conjunto de
aplicaciones y utilidades gráficas con un aspecto común. Nosotros usamos
GNOME. KDE también goza de gran popularidad.
Window manager es el programa que dibuja los marcos de las ventanas y nos
permite hacer diversas operaciones con ellas.

Conceptos generales

El teclado

Algunas teclas imprescindibles en modo texto:

ctrl+alt+Fn pasa al terminal virtual n. X suele estar en el 7.

ctrl+alt+(num+) cambia la resolución de X.

ctrl+alt+(retroceso) aborta la sesión X y todos los programas en
ella. Puede salvarnos de un congelamiento de X sin perder información.

ctrl+C interrumpe un programa (en terminal).

ctrl+S congela un programa. Se descongela con ctrl+Q.

ctrl+Z suspende un programa. Se reanuda su ejecución con fg (foreground)
o con bg (background).

(flecha arriba) recuperas los comandos anteriormente escritos en la
línea de comandos.

tab puede ayudarte a completar un comando o el nombre de un archivo.

shift+RePág permite hacer un scroll de la pantalla del terminal.

ctrl+R hace una búsqueda hacia atrás entre los comandos escritos en el
terminal.

ctrl+L limpia la pantalla.

alt+. repite el último argumento del comando anterior.

ctrl+alt+supr reinicializa ordenadamente el ordenador.

AltGr+4 caracter ˜, que no aparece en el teclado español (pero sí en el
latinoamericano).

Reinicializar y parar

Como casi todos los SO en GNU/Linux necesita cierto tiempo para parar servicios
y descargar información en el disco duro. De no hacerlo así en el próximo
arranque hará una lenta verificación del sistema de archivos. Este es un problema
menor si se instaló un sistema de archivos transacional, como XFS o ext3.
shutdown equivale a pulsar ctrl+alt+supr.
halt para el sistema. Lo apaga si tenemos APM activo en el kernel.
En la pantalla de arranque de GNOME o KDE tenemos las opciones equivalentes
a estos comandos.

Comandos del terminal

Un breve recordatorio de comandos básicos y algunos más no tan básicos:
Ayuda:

man muestra el manual de un comando.
man -k printf
man 3 printf

info documentación en hipertexto de algunos comandos.

help información de los comandos internos del shell.
help if

Manejo de archivos y directorios:

ls lista archivos.
ls -laF

cd cambia de directorio.

cd /usr/share/doc/lilo/
cd
cd –

pwd muestra el directorio actual.

mkdir crea un directorio.

rmdir borra un directorio vacío.

touch crea un archivo vacío, o actualiza su fecha si ya existía.

cp copia archivos.
cp -au /tmp/ ̃/tmp/
mv mueve o renombra archivos y directorios.

rm borra archivos.
rm -Rf / # mejor no lo hagas

ln enlaza un archivo.
ln -s /var/tmp /tmp

Edición de archivos:

file intenta adivinar el tipo de un archivo.

cat muestra un archivo.
cat hola adios

less muestra un archivo sin “escurrirse”.

grep lineas que contienen un patrón.
grep -i hola despedida.txt

wc cuenta palabras.

vi clásico editor de textos.

joe otro clásico editor de textos.

ae otro clásico y minúsculo editor de textos.

cmp compara archivos.

diff diferencias entre archivos.
diff -c archivo.txt archivo2.txt

Sistema de archivos:

df o disk free, muestra la ocupación de disco.

du o disk usage, muestra la ocupación de archivos.
du -sc

mount monta un dispositivo o sistema de archivos.
mount -t vfat /dev/fd1 /mnt/floppy2

umount desmonta.

eject desmonta y expulsa.

Usuarios, grupos y permisos:

w muestra quienes están conectados y qué están haciendo.

su para ser otra persona.
su –

adduser crea un usuario o le añade a un grupo.

addgroup crea un nuevo grupo.

groups muestra los grupos a los que perteneces.

passwd cambia la clave de acceso.

chmod cambia los permisos de un archivo.
chmod o-r secreto.txt

umask cambia los permisos por defecto al crear un archivo.
umask 002

chown cambia el propietario
chown root:floppy /dev/fd0

Procesos, CPU y memoria:

free memoria libre.

top información de los recursos consumidos por los procesos.

ps muestra los procesos.
ps auxw

nice establece la prioridad de un programa.
nice -19 yes

kill mata un proceso.
kill -9 1 # mejor no lo hagas
killall -9 communicator

Multitarea en modo texto:

jobs muestra los procesos que estamos ejecutando en backgroud o segundo pla-
no. Un comando se arranca en segundo plano añadiéndole & al final. Si se
está ejecutando lo interrumpimos pulsando ctrl-Z.

fg pasa un proceso interrumpido a primer plano y toma el control del teclado.
fg %1

bg pasa un proceso interrumpido a segundo plano y pierde el control del teclado.
bg %2

Tiempo al tiempo:

at ejecuta comandos a cierta hora.
echo konqueror | at 13:40

crontab programa hora y frecuencia de ciertas tareas. Consultar sintaxis de la
tabla de tareas con man 5 crontab
crontab -e
crontab -l

time muestra el uso de CPU de un programa.
time ls -R /etc/

sleep duerme un rato.
sleep 2h ; knotes

Inclasificados:

reset reconfigura el terminal. Útil si se han corrompido el color o los caracte-
res.

history listado de los comandos escritos en el terminal. Puedes repetir el n-
ésimo si tecleas !n.

find busca archivos.
find /cdrom -noleaf -type f -name “*.deb” -exec dpkg -I {} \;

locate busca archivos en la base de datos local2 .
locate Ether

talk habla con otros usuarios.
talk josfer@robo4.cartif.es

Tuberías y redirecciones:

| tubería (o pipe).
history | less
> redireccionamiento.
echo mal > bien
echo fatal > > bien
ls -R /etc/ 2>/dev/null

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: