Aprende
a usar y sacar el máximo partido a tu Linux recién instalado
1. Moviendonos
por el disco:
Una vez introducido
el login y pass nos veremos inmersos en un austero sistema basado en linea
de comandos, que difiere mucho de la imagen que nos habíamos creado
de linux.
La pregunta
es: y ahora que?
Vamos por
partes:
-
Listando archivos:
la orden básica es ls aunque es posible que al escribirlo
no pase nada, ya que el directorio donde estamos esta vacío.
ls
tiene opciones muy interesantes, aunque las mas útiles son -a (para
ver los archivos ocultos), -l (para ver los datos de los archivos, tamaño,
permisos ...) y --color (para ver los archivos en colores según
sean ejecutables, directorios, archivos comprimidos ...)
-
Cambiando de
directorio: la orden básica es cd directorio, los directorios
se referencian con "/" y no con "\" como pasa en MS-DOS. Existen una serie
de palabras clave para acelerar el uso del comando cd: cd ~ nos
lleva al directorio raíz de cada usuario, cd .. baja un directorio,
cd / te sitúa en el archivo raíz del sistema, cd
(sin parámetros) es equivalente a cd ~. La orden pwd
nos indica en que directorio estamos actualmente.
-
Creando y eliminado
directorios: mkdir directorio crea un directorio, rmdir directorio
lo elimina solo si el directorio no contiene nada. Para eliminar directorios
enteros se usa el comando rm -rf directorio
ATENCIÓN!
este es uno de los comandos mas peligrosos para el sistema, piensa bien
lo que haces antes de ejecutarlo.
-
Copiar/mover/eliminar
archivos: cp archivo destino copia archivo en destino, destino puede
ser un directorio u otro archivo.
mv archivo destino mueve archivo
a destino, el efecto es igual al anterior pero eliminando el archivo de
origen. rm archivo elimina archivo. Opciones interesantes para los
tres es -i para confirmar siempre, y -f para forzar la acción. Recomiendo
el uso de -i siempre.
-
Identificando
archivos: estamos acostumbrados a distinguir los archivos por su extensión,
pero Linux no impone ninguna restricción a los nombres de los archivos
por lo que el archivo pepito podría ser tanto un ejecutanle,
como un fichero de texto, como una foto ... para averiguarlo usaremos file,
este comando busca cadenas especificas dentro de los archivos que determinan
su tipo y por tanto el tratamiento que les vamos a dar. Por ejemplo el
archivo:
-rw-r--r--
1 root root 6842843 Jan 16 16:20 linux-2.0.34
no
parece tener un formato conocido, aplicamos file:
[root:/usr/src]#
file linux-2.0.34
linux-2.0.34:
gzip compressed data, deflated, last modified: Thu Jun 4 06:44:55 1998,
max compression, os: Unix
Ahora
ya sabemos que se trata de un archivo comprimido con gzip y como tratarlo.
-
Links: un link
es una imagen de un archivo o directorio en otra parte del disco, la ventaja
de esto es tener accesible un mismo archivo o directorio desde diferentes
puntos del árbol de directorios, algo parecido a un acceso directo,
la orden básica es ln origen destino, se pueden linkar tanto
archivos como directorios y principalmente con las opciones -s (solo crea
un puntero que apunta al origen) y -h (crea imágenes totales del
origen).
Por ejemplo,
tenemos el directorio /usr/src/linux-2.2.0/ y queremos que el sistema también
lo vea como /usr/src/linux/, en este caso el comando seria:
ln -s /usr/src/linux-2.2.0
/usr/src/linux
-
Buscar archivos:
find -name archivo busca recursivamente el archivo desde el directorio
actual. Tiene muchas opciones que pasan por buscar con comodines, por permisos,
por fechas de modificación, por propietario ...
-
Viendo archivos:
las ordenes básicas son cat archivo, more archivo,
less archivo y algunos otros, recomiendo que proveis los tres y
veáis cual os gusta mas.
-
Editando archivos:
esta es una de las operaciones mas comunes dentro del mundo linux, pues
casi todo se configura a partir de archivos de texto modificables por el
usuario. Hay muchos editores de texto, el mas extendido es vi aunque
recomiendo encarecidamente el uso de joe por su facilidad de uso
(la orden Ctrl+K+H activa la ayuda) y relativa potencia. En general la
mayoría de editores se lanzan con la orden editor archivo.
2. Otros
comandos de disco:
A parte de
archivos y directorios, hay mas cosas en el disco que debemos conocer,
estado del sistema de archivos, espacio libre ...
-
Espacio disponible:
df, nos da información sobre la unidad actual, el nombre
de la unidad, la capacidad total, el uso, el espacio libre ... la opción
mas importante es -h que hace que la salida sea mas legible (usa unidades
fáciles de leer).
-
Espacio usado:
du, indica cuanto espacio usa el directorio actual y todos sus subdirectorios.
De nuevo una buena opción es -h (mas legible) y -s para hacer solo
un sumario y no dar información de todos los subdirectorios.
-
Sistema de archivos:
ATENCIÓN! estos comandos son peligrosos, solo puede realizarlos
root. fsck /dev/dispositivo chequea la integridad del sistema de
archivos del dispositivo. mkfs -t tipo /dev/dispositivo crea un
sistema de archivos del tipo especificado en el dispositivo. Por ejemplo:
mkfs -t ext2 /dev/fd0 formatea un disket con el sistema de archivos
de linux.
3. Procesos:
Un proceso
es cualquier programa ejecutandose, son procesos todos los programas que
lancemos, las consolas, los demonios de sistema ...
La multitarea
real de Linux unido al gran numero de procesos (mas de 20) que pueden estar
corriendo a la vez en un sistema "normal" hacen que conocer el control
de procesos (o tareas) sea importante.
-
Listando procesos:
ps lista procesos. Opciones interesantes son (no llevan "-" delante!)
a (muestra todos los procesos, aunque sean de otro usuario), u (información
adicional del usuario y del proceso).
Ademas de
ps, podemos usar la orden top, que nos informa de los procesos actuales
y aparte indica los recursos que consumen, la memoria libre, la hora y
otros datos de interés.
-
El PID: es el
numero con el que el sistema identifica un proceso. Es muy importante conocerlo,
pues se usa para referenciar procesos en multitud de comandos. Es la primera
columna del comando ps au.
-
Controlando
procesos: kill SIGNAL PID o killall SIGNAL nombre_de_proceso
envía la señal SIGNAL al proceso, SIGNAL puede ser -9 (matar
proceso), -1 (reiniciar proceso) ...
Por ejemplo
killall -9 sendmail elimina el programa sendmail de la memoria.
-
Interrumpir
procesos: Ctrl+c mata el proceso actual que se encuentra en primer
plano, Ctrl+z envía el proceso actual a segundo plano y para
su ejecución, aunque no lo elimina de la memoria.
-
Moviendo procesos:
los procesos lanzados por el usuario pueden moverse de primer a segundo
plano, para permitir seguir usando la consola aun cuando el proceso no
ha acabado. La manera mas sencilla de lanzar un proceso a segundo plano
es lanzandolo como proceso &.
Para listar
los procesos en segundo plano usamos la orden jobs, para devolver
un proceso en segundo plano a primer plano se usa la orden
fg numero,
numero es el primer parámetro que jobs asigna a cada proceso.
4. Información
del sistema:
Linux informa
de prácticamente todo lo relacionado consigo mismo y con los programas
que esta ejecutando, solo hay que saber donde mirar.
-
Información
básica sobre nuestra máquina: uname -a, nos informa
sobre el sistema operativo, la versión del kernel, el nombre asignado
a la máquina, el tipo de procesador instalado ...
-
El arranque:
durante el arranque el kernel detecta gran cantidad de hardware de nuestro
sistema, aportando información importante, como nombre de las unidades
detectadas, puertos, protocolos de red activados, periféricos ...
esta información suele salir muy rápido, para verla con mas
tranquilidad solo hay que teclear dmesg | more.
-
El entorno:
env nos muestra todas las variables de entorno definidas y sus valores.
-
Memoria: free
nos da un informe sobre el estado de la RAM física, así como
de la swap, el parámetro -m muestra los datos en megas.
top
ademas indica lo que esta consumiendo cada proceso activo y el estado global
de la CPU.
-
El directorio
/proc: es una imagen de la memoria, y en ella hay gran cantidad de información
valiosa, la mayoría de los archivos que contiene son de texto, muy
informativos y su nombre es autodescriptivo, por ejemplo el archivo /prot/interrupts
muestra información muy valiosa sobre las IRQs, para ver el contenido
de estos archivos basta con usar cat /proc/archivo, por ejemplo
este es el aspecto de mi /proc/mounts:
[root:/proc]#
cat mounts
/dev/root
/ ext2 rw 0 0
none
/proc proc rw 0 0
/dev/hda1
/mnt/dos msdos rw 0 0
/dev/cdrom
/mnt/cdrom iso9660 ro 0 0
5. Las
ayudas:
Hasta ahora
todo parece bastante complicado y si no te lo has tomado con mucha calma
seguramente no te has enterado de nada. Vamos a ver que se puede hacer
cuando todo parece perdido.
-
Ayudas de comando:
muchos comandos incluyen pantallas de ayuda cuando son lanzados sin parámetros
(si los requieren) o con la opción -h o --help. Si la pantalla de
ayuda es demasiado larga puedes usar Shift+RePag Shift+AvPag
para
moverte por el buffer de pantalla.
Por ejemplo:
cp --help
-
El comando help:
muestra ayuda sobre el comando que se le pasa como parámetro, para
saber que comandos conoce help, lanzalo sin parámetros.
Por ejemplo:
help jobs
-
El comando man:
es la ayuda mas usada, muestra un manual sobre el comando que se le pasa
como parámetro, estos manuales son muy completos y es el primer
lugar donde se debe acudir para solucionar cualquier problema. Hay una
versión para las X un poco mas intuitiva llamada xman.
Por ejemplo:
man bash
-
El comando info:
con una finalidad similar a la de man aunque algo menos estandarizado,
teclea info o info comando. Puede leer archivos man, y tiene
multitud de opciones.
Por ejemplo:
info syslog
-
El directorio
/usr/doc: contiene documentación sobre la mayoría de paquetes
instalados en el sistema. Es una base de datos muy amplia y que puede ser
muy útil para aquellas cosas que el man no acaba de aclararnos.
-
Internet: el
volumen de información sobre linux en internet es inmenso, solo
tenéis que pasaros por SLUG o
LUCAS
(ambas con información íntegramente en castellano!) para
haceros una idea. Podréis encontrar manuales, libros electrónicos,
FAQs (respuestas a las preguntas mas comunes), HOWTOs (COMO hacer cualquier
cosa), webs, ftp, news, irc ...
6. Empaquetadores
y Compresores:
Linux entiende
todos los formatos de compresión mas extendidos, como son ZIP, RAR,
TAR ... y tiene herramientas para su gestión, pero aquí voy
a centrarme en los mas usados: tar, gzip y bzip2.
-
Tar: es el empaquetador
estándar de linux, empaquetador significa que no comprime, si no
que junta un grupo de archivos en un solo archivo con extensión
.tar, que es mas fácil de transportar o intercambiar entre sistemas
o por la red. Es la herramienta ideal para las copias de seguridad. Tiene
multitud de modificadores aunque los usos mas frecuentes son: tar cvf
archivo.tar archivos_a_comprimir (para crear archivos tar) y tar
xvf archivo.tar (para desempaquetar un tar).
Generalmente
se usa junto a gzip con la orden: tar xvfz archivo.tar.gz
, (la
z indica a tar que use compresión zip). También se puede
usar junto a bzip2 con la orden: bzip2 -d archivo.tar.bz2 | tar xfv
-.
-
Gzip: es el
compresor estándar de linux, en general se usa junto a tar, para
comprimir un grupo de archivos empaquetados. La extensión de los
archivos comprimidos con gzip es .gz, y la de los empaquetados y comprimidos
es .tar.gz o .tgz. Gzip solo puede comprimir los archivos de uno en uno
por lo que no es adecuado para compactar grupos de archivos. La orden es
gzip -c archivo (para comprimirlo) y gzip -d archivo.gz (para
descomprimirlo).
-
Bzip2: es el
nuevo compresor sucesor del gzip, con ratios de compresión que lo
superan en un 10% aproximadamente. La extensión es .bz2, y los comandos
equivalentes al gzip, bzip2 -c archivo y bzip -d archivo.bz2.
7. Grupos
y usuarios (I):
Todo sistema
linux permite el uso del mismo ordenador por diferentes usuarios. Para
mantener una cierta seguridad de los datos de cada uno se asignan una serie
de permisos y grupos.
-
Ke usuarios
necesito?: como mínimo 2, root y otro mas, root ya existe y lo usaremos
SOLAMENTE! para las tareas de mantenimiento del sistema, nunca para leer
documentación, jugar, navegar por internet, experimentar comandos
... para todo esto se usan los demás usuarios.
-
Creando usuarios:
hay varios comandos, el mas sencillo es useradd nombre_de_usuario ;
passwd nombre_de_usuario, que crea un nuevo usuario con una serie de
opciones predefinidas, estas opciones pueden cambiarse manualmente editando
el archivo /etc/passwd (ATENCIÓN! un mal uso de este archivo puede
llevar a la imposibilidad total de hacer un login en el sistema).
-
Comandos relacionados:
users lista los nombres de los usuarios conectados al sistema, w
y who lista los usuarios e informa sobre la consola en la que están,
el tiempo que llevan conectados y mas,
userdel nombre_de_usuario
elimina un usuario, su salta de modo usuario a modo root.
-
Usuarios de
sistema: ademas de root y los usuarios que hayamos creado, el sistema tiene
un grupo de usuarios que son necesarios y no debemos eliminar, son por
ejemplo: bin, mail, news, operator, games ...
-
Grupos: los
grupos son una forma de dar los mismos permisos a un conjunto de usuarios,
de manera que puedan trabajar en grupo. Por defecto se crea un grupo por
cada usuario, y esa política es la mejor en la mayoría de
los casos, ademas existen grupos de sistema como: lp, mem, ftp ...
8. Grupos
y usuarios (II):
Los permisos
son necesarios para saber que usuarios pueden hacer ciertas cosas y cuales
no. Por ejemplo, no es normal que dejemos entrar alguien por telnet y que
nos modifique el /etc/passwd, por ejemplo.
NOTA: el
permiso de ejecución para un directorio significa que se puede acceder
al contenido de ese directorio.
NOTA: los
permisos de un link son los del archivo al que apunta.
-
Viendo y reconociendo
permisos: los permisos de un archivo se ven con la orden ls -l,
el formato de salida se parece a esto:
drwx------
5 dani dani 1024 Jan 5 00:54 Desktop
drwx------
2 dani dani 1024 Jan 2 19:48 Mail
drwxr-xr-x
2 dani dani 1024 Dec 27 16:27 docs
Lo mas importante
son esas primeras letras ilegibles de cada linea. La primera letra indica
el tipo de archivo (- archivo normal, d directorio, l link, b dispositivo
...). Las demás letras se leen de tres en tres, des esta manera:
d/rwx/r-x/r-x. El primer trío se refiere al propietario del archivo,
el segundo a los demás miembros del grupo del propietario y el tercero
al resto. Las letras son: r (permiso de lectura), w (permiso de escritura),
x (permiso de ejecución).
Después
los dos nombres se refieren al nombre del propietario y nombre del grupo
al que pertenece el archivo, de esta manera nuestro archivo docs del ejemplo
quedaría así:
drwxr-xr-x
2 dani dani 1024 Dec 27 16:27 docs
Ke significa:
d: se trata
de un directorio
rwx: permiso
de lectura/escritura/ejecucion para el propietario
r-x: permiso
de lectura/ejecución para el grupo
r-x: permiso
de lectura/ejecución para el resto
2: numero
de inodos
dani: nombre
del propietario
dani: nombre
del grupo
1024: bytes
Dec 27 16:27:
fecha de creación o de ultima modificación
docs: nombre
-
Cambiando permisos:el
comando es chmod permisos fichero, la forma de indicar los permisos
es sencilla, se usa una letra para designar a quien se le quieren cambiar
los permisos ("a" todos, "u" propietario, "g" grupo, "o" otros) después
se pone un símbolo + (para dar el permiso) o - (para quitarlo) y
finalmente se pone el permiso o los permisos que queremos cambiar ("r"
lectura, "w" escritura, "x" ejecución).
Un ejemplo
sencillo seria dar permiso de ejecución para todos a un fichero,
la orden seria: chmod a+x archivo
-
Cambiando grupo
y propietario: las ordenes son chown usuario archivo para cambiar
el propietario y chgrp grupo archivo para cambiar el grupo.
-
Permisos especiales:
a parte de los permisos básicos existen otros dos permisos, el sticky
bit (completamente desfasado) y el SUID o SETUID. El SUID es un permiso
que da permisos de root a un proceso aunque haya sido lanzado por un usuario,
esto es necesario, por ejemplo para que usuarios normales puedan arrancar
el entorno gráfico, puedan conectarse a internet ... este permiso
se simboliza con la letra "s" y se aplica así: chmod a+s archivo.
9. Variables
de entorno:
En ocasiones
es necesario cambiar los parámetros del sistema, ya sea para adecuarlos
a nuestro lenguaje, a nuestras necesidades, para acceder a nuevo software,
localizar librerías ...
-
Ke variables
tengo definidas?: con el comando env veremos un listado de todas
las variables que usa el sistema.
-
Donde se definen?:
esto ya no es tan sencillo, hemos de plantearnos si queremos hacer cambios
permanentes o temporales, para un usuario o para todos ... los cambios
temporales podemos hacerlos directamente en la linea de comandos, los permanentes
los haremos en algún archivo de inicio, en uno global si es para
todos (por ejemplo en /etc/bashrc) o dentro del directorio del usuario
para el que queremos definirla (por en ~/.bashrc)
NOTA: los
cambios en archivos de inicio no se reflejan hasta que se haga un nuevo
login o con la orden source archivo_de_inicio.
-
Como se definen?:
tanto si lo ponemos en algún guión de inicio, como desde
la linea de comandos la sintaxis es la siguiente: export VARIABLE="valor".
-
Modificando
el PATH: si queremos añadir una entrada al PATH no nos basta con
la orden export PATH="/home/dani/bin", pues esto elimina del PATH
todas las demás entradas como /bin, /usr/bin ... la orden correcta
seria: export PATH="$PATH:/home/dani/bin", que indica al sistema
que mantenga el PATH y añada la nueva entrada.
10. El
entorno gráfico:
El entorno
gráfico (también llamado X o X-window) es una potente herramienta
que facilita el control de tareas de una manera mucho mas sencilla, a parte
de permitirnos ejecutar gran cantidad de software que no se ejecuta en
consola. Usarlo no es difícil,
los problemas surgen al intentar
ponerlo en marcha. No voy a intentar resolver todos los problemas de las
X, ni explicar como se usan las X con tal o cual tarjeta, para eso esta
la documentación. Tampoco voy a recomendar un gestor de ventanas
pues eso queda a elección de cada uno.
-
Requerimientos:
sencillo, un ratón bien configurado, una distribución mas
o menos reciente de X (en este momento 3.3.3 es la ultima) y una tarjeta
gráfica soportada por las X. ATENCIÓN! Este ultimo punto
es muy importante, la gran velocidad con la que aparecen nuevos modelos
y las dificultades que ponen los fabricantes hacen muy difícil el
soporte de nuevo hardware por parte de X, lee toda la documentación
disponible en http://www.xfree86.org
para saber si tu tarjeta esta soportada.
-
Servidores:
el servidor es la parte de las X encargada de comunicarse con la tarjeta,
hay muchos y es importante que uses el mas adecuado para tu tarjeta (de
nuevo lee toda la documentación para esto). Ademas de los servidores
aportados por XFree86 algunas compañias como SUSE
o RedHat también tienen los suyos.
-
Configuración:
hay varias utilidades para hacer esto, os sugiero que las uséis
todas y que os kedeis con la que os de mejores resultados.
XF86Setup:
aplicación gráfica muy intuitiva, viene con las versiones
mas modernas de X.
Xconfigurator:
aplicación basada en ncurses, sencilla, pero solo configura video/monitor,
viene con las distribuciones que usan paquetes RPM (Red Hat, Eurielec,
Caldera y SuSE)
xf86config:
la mas austera, a veces es la mas efectiva, viene con todas las distribuciones
de X.
Configuración
manual: una vez acabado puede ser necesario editar a mano el archivo XF86Config
que generan las aplicaciones anteriores para acabar de pulir fallos. Este
archivo puede estar en varios sitios del disco, yo recomiendo tener una
sola copia y dentro de /etc.
-
El archivo X:
Ha de ser un link al servidor X que queramos usar, puede estar en varios
sitios del disco, recomiendo tener una sola copia dentro de /usr/X11R6/bin.
Por ejemplo,
para arrancar las X usando el servidor gráfico SVGA, haremos este
link: ln -s /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X.
-
Arrancando las
X: el comando base es startx, si surgen problemas es muy importante
leer los mensajes de error que dan las X a la hora de pedir ayuda. Si startx
no funciona puede ser problema de algún programa y no del propio
entorno gráfico, para distinguir esta situación intentaremos
arrancar las X con el comando xinit, si el resultado es una pantalla
gris con el cursor en forma de cruz en el centro es que las X están
bien y lo que falla es algún programa que intenta ejecutarse durante
el inicio (seguramente algún fallo en el gestor de ventanas).
11. Compilar:
En pocas
palabras compilar es pasar de las fuentes del programa a un fichero ejecutable.
Este proceso no es ni sencillo ni fácil, por lo que es frecuente
que aparezcan fallos. Por suerte existen algunas herramientas (Makefiles,
configures ...) que nos van a facilitar la vida.
-
Requisitos:
la verdad es que los requisitos para compilar son bastante altos, hay que
tener instalados el gcc, el make, las libc-devel, libg++-devel, libstdc++-devel,
todas las versiones de desarrollo de las librerías que usa el programa
que vayamos a compilar, las X-devel si el programa va ejecutarse bajo el
entorno gráfico, opcionalmente otros paquetes de control, revisión
de versiones, comandos especiales ... y todo lo que nos pida la documentación
del programa que vayamos a compilar.
-
Como se hace?:
después de descomprimir el paquete lo primero que hay que hacer
es leer la documentación (casi siempre hay algún README o
INSTALL) y asegurarnos de que tenemos todo lo que necesitamos para compilar
y que nuestro sistema esta soportado por las fuentes, es decir de nada
nos sirve tener las fuentes de un programa que usa unas librerías
que no tenemos o que no compila en Linux. Un proceso semi-estandar entre
el software mas reciente es tener que poner solo esto para conseguir compilar
e instalar el programa:
./configure
make
make
install
Todo esto
dentro del directorio donde se encuentran las fuentes. Aunque en muchos
casos no existe el "configure" y deberemos editar a mano el archivo Makefile
para adecuarlo a nuestro sistema (definir PATHs, comandos, opciones especificas
de plataforma ...)
-
Compilar un
solo archivo (*.c): si lo que queremos compilar es un solo archivo el proceso
es mucho mas sencillo, basta con la orden: gcc -O2 -Wall -o nombre_del_ejecutable
archivo.c.
12. paquetes
(I): RPM
Los paquetes
son formas de distribuir software para facilitar su instalación
y mantenimiento. En general se distribuyen en forma de binarios por lo
que no hace falta compilarlos. Hay Principalmente tres tipos RPM, DEB y
TGZ. Es muy recomendable instalarlo todo de esta manera, pues así
nos evitaremos preocuparnos por donde dejan los programas cada archivo,
ya que el gestor sabe en todo momento donde están facilitando su
eliminación o localización.
RPM: Es el
tipo de paquetes binarios mas extendido y en el que se basan las distribuciones
Red Hat (y Eurielec), Caldera Open Linux y SuSE.
Hay que
remarcar que aunque el formato de paquetes sea el mismo, no significa que
los paquetes de una distribución vayan a funcionar en otra, hay
que tener en cuenta las librerías instaladas, el software adicional,
las incompatibilidades ...
Gestión:
existen varios programas para la gestión de RPMs, voy a comentar
algunos.
-
rpm: este comando
es el básico para la gestión de RPMs y es en el que se basan
las demás utilidades. La sintaxis es muy sencilla: rpm -i archivo.rpm
para instalarlos, rpm -U archivo.rpm para actualizarlos, y rpm
-e paquete para eliminarlos (ojo! los paquetes se eliminan por su nombre,
no por el nombre de archivo, en general el nombre del paquete es el mismo
que el del archivo sin la extensión .rpm)
Otras funciones
interesantes son: rpm -qa para ver un listado de todos los paquetes
instalados, rpm -qlip archivo.rpm para ver información y
el listado de archivos de un paquete ... mas información en
man
rpm y rpm sin parámetros.
-
purp: es un
intento de facilitar el uso de rpm, con menús e información
gráfica. Para mi es el mejor. Necesita la librería ncurses-4.2
o superior. Funciona en modo consola por lo que no hace falta tener las
X instaladas para usarlo.
Se puede
arrancar como purp sin parámetros, para gestionar solo los
paquetes instalados en el sistema o purp /directorio_de_rpms para
gestionar los paquetes instalados mas los disponibles en el directorio
que se le pasa como parámetro (ideal para examinar CDs llenos de
RPMs).
Lo puedes
encontrar en http://www.lysator.liu.se/purp/
-
glint: es un
frontend gráfico para rpm desarrollado por Red Hat, necesita tener
instaladas y configuradas las X, a primera vista parece muy bueno e intuitivo,
pero rápidamente se echan en falta opciones e información
adicional. Recomendado para los que no tienen purp y no se aclaran con
las opciones de rpm.
-
grpm: Simple
GNOME RPM Tool. Otro frontend para rpm, este de mejor calidad que el glint
pero requiere tener instalado GNOME.
Las dependencias:
para el usuario novato esta palabra es un dolor de cabeza constante, los
paquetes no quieren instalarse por errores de dependencias. Ke son?
La mayoría
de los programas necesitan de otros componentes software para funcionar,
en su mayoría son librerías necesarias para el programa,
pero también pueden ser otros programas, documentación, la
existencia de algún directorio ... los errores de dependencias lejos
de ser un problema son una gran ventaja, pues nos evita estar instalando
software que luego no funciona y no sabemos por que.
A veces
ocurre que el gestor de RPMs da como error de dependencias un paquete que
sabemos seguro que tenemos instalado. Esto puede deberse a varias
cosas:
a que realmente no lo hemos instalado correctamente, a que tenemos una
versión diferente a la que necesitamos o que hayamos instalado el
programa usando otro método (el gestor es incapaz de saber que paquetes
hemos instalado en el sistema si no lo hemos usado a el para hacerlo).
Si estamos
seguros de cumplir los requisitos y que el programa funcionara aunque el
gestor crea que no, la orden es: rpm -i --nodeps archivo.rpm esto
se salta el chekeo de dependencias, si aun así no quiere instalarse
podemos usar la orden: rpm -i --nodeps --force archivo.rpm, aunque
en este caso lo mas seguro es que el programa acabe por no funcionar.
RPMs en Debian/Slackware:
Debian tiene herramientas para la gestión de RPMs por lo que no
hay problemas en usarlos. De todas maneras, si no tenemos esas herramientas
instaladas o usamos Slackware podemos usar el programa alien para convertir
el formato del paquete. Alien es una utilidad que convierte RPM/DEB/TGZ
a RPM/DEB/TGZ, y puede hacer todas las transformaciones posibles. De todas
maneras este sistema debe usarse con cuidado, pueden aparecer problemas
de dependencias y de incompatibilidades entre paquetes de diferentes distribuciones.
13. El
teclado: funciones avanzadas con el teclado
Podemos usar
el teclado para mucho mas que para escribir, hay funciones complejas que
podemos hacer fácilmente pulsando un par de teclas.
-
Cambiando de
consola: Una consola es un terminal en el que pueden escribirse ordenes,
por defecto la mayoría de distribuciones incluyen 6 consolas (tty)
mas todas las sesiones telnet (ttyp) mas todos los emuladores de terminal
para las X (xterm, rxvt, eterm ...). Para cambiar de consola en modo local
basta con pulsar la combinación Alt+FX donde X es el numero de la
consola a la que queremos movernos (FX son las teclas de función!)
Algunos
programas "atrapan" esta combinación de teclas asignandoles otra
función, es el caso de las X, el DOSEmu, el DOOM ... la combinación
de teclas para cambiar de consola en estos casos es Ctrl+Alt+FX.
Nota: la
consola en la que se proyectan las X es la primera libre, en la mayoría
de los casos la 7.
-
Reiniciar/cerrar:
la combinación Ctrl+Alt+Supr provoca un reinicio del ordenador,
aunque este comportamiento se puede modificar llegando a realizar cualquier
acción tras esta combinación simplemente editando el archivo
/etc/inittab, buscaremos unas lineas como estas:
#
Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown
-t3 -r now
El
ultimo campo es la acción a realizar. Podemos substituir -r por
-h para que cualquier usuario pueda cerrar la máquina.
-
Completado:
podemos usar la tecla TAB (tabulador, la tecla sobre el Bloq Mayus) para
completar comandos y nombres de archivos, tan solo hay que teclear las
primeras letras de la orden y pulsar TAB para que el sistema intente completarla.
Por ejemplo, podemos pulsar:
da'TAB'
Para
que en la linea aparezca:
date
Lo
mismo pasa con los nombres de archivos, por ejemplo, desde / podemos hacer:
cd r'TAB'
El
resultado es:
cd root/
Si
existen coincidencias de nombres, de manera que el sistema no sabe cual
queremos completar, nos avisa parándose en el punto en el que las
dos o mas ordenes empiezan a diferenciarse y emite un pitido. En este caso
si volvemos a pulsar TAB se nos muestra una lista de todas las ordenes
que coinciden con el patrón dado.
Por ejemplo,
si pulsamos:
mak'TAB'
Veremos
en el terminal:
make
Si
volvemos a pulsar TAB:
make
makedepend
makewhatis
make-ssh-known-hosts
makeg
makedb
makeinfo
-
Editar la linea
de comandos: puede editarse la linea de comandos como si de un editor normal
se tratase, a diferencia de MS-DOS que borra los caracteres por los que
pasa el cursor.
-
Historial: Con
las teclas de cursor de Arriba y Abajo podemos movernos por el historial
de los últimos comandos tecleados. Muy útil para tareas repetitivas
de sintaxis compleja.
14. Montando
unidades:
NOTA: las
unidades en linux.
Las unidades
en linux son tratadas como ficheros, concretamente como ficheros de dispositivo
y se encuentran dentro del directorio /dev.
Los nombres
son:
/dev/fd0
-> Primera disketera
/dev/fd1
-> Segunda disketera ( ... y así con todas las que haya)
/dev/hda
-> Primer disco del primer canal IDE
/dev/hdb
-> Segundo disco del primer canal IDE
/dev/hdc
-> Primer disco del segundo canal IDE
/dev/hdd
-> Segundo disco del segundo canal IDE
/dev/sda
-> Primer disco SCSI
/dev/sdb
-> Segundo disco SCSI ( ... y así con todos los que haya)
Ademas, los
discos duros (tanto IDE como SCSI) tienen particiones, a las que llamamos:
/dev/hda1
-> Primera partición del primer disco del primer canal IDE
/dev/hda2
-> Segunda ...
/dev/hdb1
-> Primera partición del segundo disco ...
Para saber
que unidades i particiones reconoce el sistema haremos
dmesg fijandonos
especialmente en las lineas que definen las unidades, por ejemplo, en mi
sistema:
[root:/]#
dmesg
...
hda: ST33210A,
ATA DISK drive
hdb: ACER
CD-910E/JAS, ATAPI CDROM drive
hda: ST33210A,
3098MB w/256kB Cache, CHS=787/128/63, (U)DMA
Partición
check:
hda: hda1
hda2 hda3
...
Podemos ver
como el sistema reconoce un disco duro (hda) con tres particiones (hda1,
hda2 y hda3) y un CD-ROM (hdb)
Vamos a ver
como acceder a las unidades de almacenamiento, ya sean floppys, CDs, otros
HDDs o unidades de red.
Los comandos
son mount y umount para montar y desmontar unidades. La sintaxis
general es:
mount
-t tipo -o opciones /dev/dispositivo /directorio_de_montaje
umount
/directorio_de_montaje
tipo: es
el sistema de ficheros que contiene la unidad: MS-DOS, ext2, iso9660 ...
opciones:
son parámetros como lectura/escritura, montar automáticamente
...
dispositivo:
es el nombre que da linux a la unidad (hda1, hdb, fd0 ...)
directorio_de_montaje:
es el directorio desde donde será accesible el sistema de archivos
montado, debe existir antes de intentar montarlo y debe estar vacío,
ademas ningún usuario debe estar en el momento de montaje en ese
directorio.
El comando
mount sin parámetros nos da una lista de las unidades montadas.
Las unidades
montadas no pueden extraerse (ojo con los diskette!), antes hay que desmontarlas.
Y para montar un sistema de archivos antes hay que tener un disco dentro
(recordad que se montan los discos, no las unidades lectoras). Mas información
en man mount, man umount y man fstab
En todos
los casos (menos ext2) es requisito indispensable haber recompilado el
kernel con soporte para el sistema de ficheros que queremos montar.
-
Montar un disket:
mount -t tipo /dev/fd0 /mnt/floppy, el tipo generalmente es ext2
(disco linux) o vfat (disco DOS/WIN). No requiere mas parámetros.
-
Montar un CD-ROM:
mount -t iso9660 /dev/XXX /mnt/cdrom, el dispositivo depende de
donde tengamos instalado el CD-ROM, puede ser hda, hdb ... el comando dmesg
| grep CD nos informa de eso:
[root:~]#
dmesg | grep CD
hdb:
ACER CD-910E/JAS, ATAPI CDROM drive
En
este caso el CD esta en /dev/hdb.
-
Montar otras
unidades de disco: mount -t tipo /dev/XXX /mnt/directorio, de nuevo
el tipo y la unidad dependen de nuestro sistema y para el directorio de
montaje se suele usar un nombre que identifique el sistema montado, por
ejemplo, para montar una unidad Windows que se encuentra en la primera
partición del primer disco:
mount
-t vfat /dev/hda1 /mnt/win
Y para
montar un segundo disco con linux instalado en la primera partición:
mount
-t ext2 /dev/hdb1 /mnt/linux
-
Montar unidades
de red: mount -t nfs host:/directorio /mnt/host, este caso es un
poco diferente, host es el nombre de la máquina remota y directorio
es el nombre del directorio de la máquina remota que queremos (y
se nos permite) montar. De manera que para montar el directorio /usr de
la máquina Storm en nuestro sistema haremos:
mount
-t nfs Storm:/usr /mnt/Storm
En
este caso puede ser necesario especificar algunas opciones.
Ahora vamos
a ver como automatizar la mayoría de estos comandos para no tener
que teclearlos cada vez.
El archivo
/etc/fstab: este archivo contiene una lista de unidades y todos los parámetros
necesarios para su montaje, la sintaxis es sencilla:
# Unidad
Punto de montaje Tipo Opciones
Un ejemplo:
/dev/hda1
/mnt/dos vfat defaults 0 0
Para montar
una unidad definida en el fstab basta con la orden mount /directorio_de_montaje,
para montar a la vez todas las unidades mount -a.
Las unidades
definidas en el fstab intentan montarse durante el arranque a menos que
pongamos como opción noauto (muy aconsejable en CDs y floppys).
Si queremos poner mas de una opción estas se separan por comas sin
espacios entre ellas.
Volver
a la pagina principal