Manual Linux práctico
CONTENIDO
1. INTRODUCCION
1.1. HISTORIA
2. CONCEPTOS BASICOS
3. INSTALACION DE LINUX
4. CONCEPTOS BASICOS DE TERMINAL.
5. COMANDOS DEL SHELL
5.1. COMANDOS DE MANIPULACION DE DIRECTORIOS
5.2. COMANDOS DE MANEJO DE ARCHIVOS
5.3. COMANDOS DE VISUALIZACION DE ARCHIVOS Y OTROS COMANDOS
En esta parte te ponemos al día sobre qué es GNU/Linux y algunos pequeños detalles que hay que
conocer acerca de él antes de comenzar a instalarlo o usarlo.
INTRODUCCION
Las características más notables son:
• Proviene de UNIX, con características similares, y es casi un derivado de él.
• Es parte del proyecto GNU, lo que significa, entre otras muchas cosas, que es libre y que
muchas veces no estás obligado a pagar por él. Puedes usarlo de modo gratuito y además
puedes modificar su código fuente, para adaptarlo a tus propias necesidades o para
contribuir en su continuo desarrollo, en el que toman parte programadores de todo el
mundo.
• Es potente, seguro y estable. Debido a ello resulta un sistema operativo ideal para
servidores ya que cumple muy bien esta función aunque como sistema operativo de
oficina, de escritorio o de publicación también es excelente.
• Es un sistema multiusuario real, multitarea y funciona de manera muy productiva en
redes.
• Forma de trabajo. Kernel o núcleo del SO realiza las tareas de más bajo nivel como acceso
a la maquina, manejo de memoria, etc. Interprete de comandos: BOURNE SHELL SH,
REDUCED SHELL , CSHEL y otros.
HISTORIA
El creador de Linux. Su nombre es Linus Torvalds. Puede decirse que Linus Trovalds creó este
sistema operativo en 1991. Escribió un KERNEL (parte principal de un sistema operativo) y lo dejó
a disposición de sus amigos y luego de toda la Internet para que cualquiera pudiese mejorarlo.
Algún tiempo más tarde, para adaptar el sistema operativo y facilitar la instalación, nacieron las
compañías distribuidoras de Linux. Entre ellas destacan RedHat, Debian, Caldera, SuSE,
Mandrake... Estas distribuidoras pueden cobrar por ofrecer sus productos en CD o en algún otro
soporte, pero deben poner su código a disposición del público. Actualmente Linus Torvalds sigue
coordinando el trabajo de los programadores de todo el mundo en el núcleo del sistema operativo
para mejorarlo y adaptarlo al nuevo hardware.
¿Cabe la posibilidad de preguntarse cuál es la mejor distribución de Linux? GNU/Linux tiene
muchas distribuciones, y por lo general, no existe una distribución mejor que las demás, cada una
de ellas tiene sus puntos a favor en determinados aspectos. Así, Debian es una distribución que no
es realmente comercial en sí como lo son la mayoría de las otras. Mandrake, tiene una máquina
con recursos suficientes, ofrece una instalación y configuración sencilla y un entorno gráfico
personalizado ideal para no perderse al principio.
¿Puedo tener Windows y Linux en la misma máquina? ¡Claro! Como veremos más adelante la
clave está en particionar el disco duro, para que Windows use una parte y Linux use otra, de
manera que no interfieran. También como veremos después, el cargador de arranque de Linux te
permitirá elegir qué sistema operativo iniciar.
CONCEPTOS BASICOS
El arranque.- Es lo que pasa cuando nuestra máquina arranca y tenemos que elegir un sistema
operativo. En el principio del disco duro o MBR o en una partición queda instalado con Linux un
cargador de arranque. Los dos más usados son LILO (LInux LOader) y GRUB, que nos permite
escoger cualquiera de los sistemas operativos que se encuentren instalados en nuestro equipo.
Sistema de archivos.- forma de escribir los datos en el disco duro. El sistema de archivos nativo de
Linux es el EXT2. Otros más conocidos son EXT3, ReiserFS y XFS.
Estructura de directorios en Linux
Directorio Descripción
/ Es la raíz del sistema de directorios. Aquí se monta la partición principal Linux EXT.
/etc Contiene los archivos de configuración de la mayoría de los programas.
/home Contiene los archivos personales de los usuarios.
/bin Contiene comandos básicos y muchos programas.
Contiene archivos simbólicos que representan partes del hardware, tales como discos
/dev
duros, memoria...
Contiene subdirectorios donde se montan (se enlaza con) otras particiones de disco
/mnt
duro, CDROMs, etc.
/tmp Ficheros temporales o de recursos de programas.
/usr Programas y librerías instalados con la distribución
Directorio Descripción
/usr/local Programas y librerías instalados por el administrador
/sbin Comandos administrativos
/lib Librerías varias y módulos ("trozos") del kernel
Datos varios como archivos de log (registro de actividad) de programas, bases de datos,
/var
contenidos del servidor web, copias de seguridad...
Información temporal sobre los procesos del sistema (explicaremos esto más en
/proc
profundidad posteriormente).
Nombres de archivos
Los nombres de archivos en Linux (como en todos los UNIX) distinguen mayúsculas de minúsculas.
En Linux los archivos no tienen por qué tener una extensión. La suelen tener a modo orientativo,
pero no es en absoluto necesario. Linux sabe qué contiene cada archivo independientemente de
cuál sea su extensión. Pueden tener hasta más de 200 caracteres. Los ficheros y directorios
ocultos en Linux comienzan su nombre por un punto (.)
Software adicional para linux
El software para Linux lo podemos encontrar de dos formas: en un paquete binario o en un
paquete con su código fuente.
Los paquetes binarios
Existen varios tipos de paquetes binarios. Todos tienen una característica en común, y es que
contienen código de máquina, no código fuente, por eso cada tipo de procesador necesita su
propia versión de cada paquete. Al haber varias distribuciones de Linux existen varios tipos de
paquetes binarios, habiendo varias distribuciones que comparten sistema de paquetes. Los más
comunes son:
o Los paquetes RPM: Los usan las distribuciones RedHat, Caldera, Madrake, SuSE y
TurboLinux entre otras. Su uso está muy extendido y es posible instalar este tipo de
paquetes mediante la aplicación rpm. El nombre de los paquetes rpm es del tipo
nombredelpaquete_version_plataforma.rpm
o Los paquetes Debian (deb): Los usa la distribución Debian y sus derivadas. Los paquetes
Debian se suelen nombrar de la forma nombredelpaquete_version_plataforma.deb
o Los paquetes tgz de Slackware los usa la distribución del mismo nombre, y siguen los
principios de los dos anteriores.
Los paquetes de código fuente
Estos paquetes contienen los archivos que salen del ordenador del programador o programadores,
lo que quiere decir que ya hay que aportar algo de nuestra parte para utilizar los programas que
contienen. El proceso de instalación de este tipo de paquetes implica también una COMPILACIÓN.
Son también de amplio uso los Source RPM, que son paquetes RPM pero que en vez de ser
binarios, llevan código fuente.
Meta-Paquetes
Conocemos por meta-paquete a aquellos paquetes en los cuales no hay código fuente, o binarios,
sino reglas sobre CÓMO construir e instalar dicho paquete. Estos paquetes los usan distribuciones
como Gentoo Linux (http://www.gentoo.org), Linux From Scratch
(http://www.linuxfromscratch.com) y algunos otros sistemas operativos como FreeBSD
(http://www.freebsd.org).
Los usuarios y los permisos de archivos
Linux es un sistema operativo multiusuario. Cada usuario generalmente tiene su carpeta de
usuario en /home/usuario. Por defecto sólo puede escribir, modificar y borrar archivos
dentro de esta carpeta. Ningún otro usuario (excepto root) puede acceder a los archivos que
hay en este directorio, ni si quiera puede ver cuáles son. Este usuario -por defecto- puede
leer en el resto de las carpetas que hay en el sistema de archivos excepto en la de root y las
de otros usuarios. ¿Y quién es ese tal root? En cualquier sistema UNIX, root es "el que todo
lo puede". Es la excepción que confirma la regla, es el superusuario todopoderoso de estos
sistemas. Cuando hagas login como root en una máquina GNU/Linux, siente el poder bajo
tus teclas. Recuerda que tu máquina Linux es tan segura como segura sea tu contraseña de
root.
¿Qué son los permisos? Todos y cada uno de los archivos y directorios del árbol jerárquico
que monta nuestro sistema Linux tienen permisos. Estos permisos dicen, para cada usuario
del sistema, si puede ejecutarlo, si puede ver su contenido o si puede borrarlo o modificarlo.
El arranque de Linux II
Cuando el kernel ya ha montado el sistema de archivos, comienzan a inicializarse algunos
procesos llamados "daemons" (demonios). Cada uno de estos demonios se inicia cuando el
sistema arranca y durante su vida va a controlar un proceso determinado, y va a permanecer en
segundo plano (transparente para el usuario), no vamos a notar que se está ejecutando a menos
que pidamos información a este proceso, lo detengamos o lo reiniciemos. Algunos de estos
demonios son, por ejemplo, el servidor web, el servidor de correo, el cortafuegos, el servidor de
nombres DNS... y muchos otros que gestionan varias tareas, en su mayoría servicios de servidor de
red para servir de host a otras máquinas. Cuando todos esos demonios se hayan cargado,
aparecerá ante nosotros una línea de texto de login (autentificación en un sistema) o bien una
ventana de login gráfico.
Nombramiento de dispositivos y particiones
Debemos saber de qué manera nombra Linux a los discos duros que tenemos conectados a
nuestra máquina y sobre todo a sus particiones. Todos los discos duros (IDE) comienzan su
nombre como hd. Un ejemplo de nombre completo de disco duro sería hda y de la primera
partición de ese disco duro sería hda1.
La 'a' significa que ese disco duro está conecatdo al IDE1 como maestro. Si fuera esclavo tendría la
'b', y si estuviera conectado al IDE2 como maestro, la 'c', y si estuviera al IDE2 como esclavo, la 'd'.
El número 1 indica que es la primera partición (primaria y no lógica) del disco duro en cuestión. La
segunda geométricamente hablando (primaria) sería la 2 y así sucesivamente. La primera partición
lógica de un disco duro se nombra con el número 5, independientemente de si pertenece a la
primaria 1, 2, 3 ó 4. La segunda se nombraría con un 6 y así sucesivamente.
Por el momento es suficiente saber lo que significa hda1 o hdd2 o hdc5.
Elegir la distribución que instalaremos
En la primera instalación de Linux, tendrás que elegir una distribución que no sea demasiado
avanzada y te permita instalar sin grandes dificultades. Hoy esto no es dificíl, puesto que la
mayoría de distribuciones se instalan de manera muy sencilla. Podríamos elegir entre una de las
siguientes:
o Mandrake Linux: Esta distribución de Linux es de las más amigables si nos estamos
acercando a Linux la primera vez, calificada por muchos (y creemos que acertadamente)
como la más sencilla para iniciarnos. La única "pega" (que no lo es realmente) de esta
distribución es que instalará un montón de cosas que puede que no necesitemos, pero es
el precio de una instalación sencilla. Es por esto por lo que deberíamos tener una máquina
potente para instalar esta distribución sin que se nos vaya arrastrando. Ofrece un
escritorio muy agradable y completo, además de varios asistentes sencillos para cambiar
la configuración del hardware.
La web oficial de Mandrake nos permite descargarnos su paquete. Deberemos buscar las
imágenes ISO (archivos .iso) y descargarlas.
o RedHat/Fedora Linux: Fedora es la distribución libre (gratuita) de la compañía RedHat, y
RedHat Linux es su distribución comercial. Ambas son similares, sobre todo dedicada al
usuario medio. Podrían ser la segunda distribución más sencilla.
INSTALACION DE LINUX
Situaciones importantes dentro de la instalación:
- Verificar el hardware básico, DD 8GB, 800 MHZ, RAM 128, CDROM, otros.
-Instalación en una nueva partición. Opcional con arranque dual.
- Instalación mediante el uso de una maquina virtual.
- Particionamiento del sistema. Particionamiento automatico o manual con DISK DRUID: /HOME, /,
SWAP, /boot
- Nivel de seguridad: alto, intermedio, ningún firewall
- contraseña del root
- paquetes a instalar. Editores, interfaz grafica KDE o GNOME, lenguajes, etc.
- Servicios luego de la instalación pueden configurarse. ftp, http, etc
TERMINAL O SHELL
Primero haremos un estudio de los comandos mas usados en Linux en modo texto es decir
utilizando un terminal.
Una TERMINAL (o un SHELL, o un INTÉRPRETE DE COMANDOS, ambos casi sinónimos de
TERMINAL) es una ventana que nos permite digitar comandos.
La manera más habitual de administrar una máquina Linux (instalar paquetes, ver los registros de
actividad, crear o modificar usuarios...) suele hacerse desde un terminal o intérprete de
comandos, que es en modo texto, y generalmente nos muestra un PROMPT. Un prompt es lo que
el intérprete de comandos escribe automáticamente en cada línea antes de que nosotros
podamos darle instrucciones mediante COMANDOS.
Aparte de dar instrucciones a nuestra máquina, desde una terminal podremos editar textos,
archivos de configuración, apagar y reiniciar el sistema, instalar nuevos programas, leer el correo y
muchas cosas más. Aprenderemos que los sistemas gráficos no son imprescindibles.
Conceptos básicos de la terminal BASH
Cuando arranquemos nuestra máquina con Linux y termine de cargar todos los procesos iníciales,
o bien veremos una pantalla gráfica de login o una de texto. Es posible que no podamos acceder a
la primera terminal porque quizás esté siendo utilizada por los procesos de login gráfico si es que
ya hemos ingresado desde allí. Las terminales se suelen nombrar tty0 para la primera, tty1 para la
segunda, y así sucesivamente.
Consideraciones sobre:
-Directorio padre ..
-Directorio raíz /
-Directorio actual .
-Directorio casa HOME
COMANDOS cmd opc path/archivos
Ls listan los contenidos de directorio. Dir, vdir
Opciones -l formato ampliado
-a ocultos
-t clasifica por hora
Ejemplos ls, ls a*, ls /home/*
Mkdir crea directorios
Ejemplos mkdir programas
Mkdir programas/java programas/visual
Ejercicio: crear una estructura jerárquica de directorios
rmdir borra directorios vacios
ejemplo rmdir programas
cd cambia de directorios
sintaxis cd path/directorio
ejemplo cd /home
cd ..
cd .
cd
cd $HOME
pwd imprime el nombre del directorio actual y su ruta completa
cp copia ficheros y directorios
sintaxis cp path/origen/archivo path/destino
ejemplos cp /bin/úname /home/usuario
ejercicios: planteada la estructura de directorios copiar archivos de diferentes ubicaciones
rm borra ficheros o directorios
sintaxis rm –opciones fichero…
-i pide confirmación
-f no pide confirmación
-r borra recursivamente arboles de directorio
ejemplo rm –f programas/*
mv mueve renombra ficheros
sintaxis cp -opciones path/origen/archivo path/destino/archivo
-f no pide confirmación
-i pide confirmación cuando destino existe
Ln crea enlaces entre ficheros (accesos directos)
Sintaxis ln –opcion archivo archivo_nuevo
-f omite los mensajes del sistema
Ejemplo cp /bin/tar .
mv tar hola
ln hola enlace
find sirve para buscar archivos
sintaxis find [path …] -opciones [expresiones]
-name el archivo a buscar
-perm ficheros con tales permisos
-type ficheros de tal tipo
Ejemplos find -name hola
find / -name hola
Find -perm 777
cat visualiza archivos
sintaxis cat -opciones archive
-u salida sin buffer
-v imprime los caracteres
Ejemplo cat archive
Cat archivo1 archivo2
redireccionamiento
Cat –u ) nombres .- escribir el contenido del archivo
more se utiliza para filtrar archivos un número determinado en pantalla
ejemplo ls /bin | more
cat archivoLargo |more
OTROS COMANDOS
Date despliega la fecha
nl numero de líneas de un archivo
wc cuenta el número de líneas, palabras y caracteres de un archivo
ls > listado
wc -c listado
wc -l listado
echo saca un mensaje en pantalla
clear borra pantalla
sort ordena archivos de texto
sort -n archivo
sort -r archivo
grep busca cadena en un archivo
grep juan nombres
man ayuda
mail despliega mensajes del usuario
write escrib un mensaje a un usuario
ps lista los procesos actuales
-a todos
-all listado largo
-e información de todos los procesos que se ejecutan ahora
-ef formato largo
-eA formato largo
-x presenta el estado de cada proceso
pstree presenta los procesos en forma de arbol
Kill mata procesos
Kill -9 pid
Cal calendario
Who indica el o los usuarios conectados
passwd cambiar clave
mesg autoriza o no recibir mensajes -n -y
sleep suspende la ejecución en segundos