LINUX
[Link]
Indice:
1. Moviendonos por el disco: archivos y directorios
2. Otros comandos de disco: uso, espacio libre ...
3. Procesos: gestion y control
4. Informacion del sistema: Que maquina tenemos?
5. Las ayudas: donde buscarla?
6. Empaquetadores y Compresores: tar/gzip/bzip
7. Grupos y usuarios (I): gestion
8. Grupos y usuarios (II): permisos
9. Variables de entorno: los malditos PATHs
10. El entorno grafico: las bases
11. Compilar: por que? para que? con que?
12. Paquetes (I): RPM
13. El teclado: funciones avanzadas con el teclado
14. Montando unidades: Floppy, CD, NFS ...
1. Moviendonos por el disco:
[Link]
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 habiamos creado de linux.
La pregunta es: y ahora que?
Vamos por partes:
Listando archivos: la orden basica es ls aunque es posible que al escribirlo
no pase nada, ya que el directorio donde estamos esta vacio. ls tiene
opciones muy interesantes, aunque las mas utiles 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 segun sean
ejecutables, directorios, archivos comprimidos ...)
Cambiando de directorio: la orden basica 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 raiz de cada usuario, cd .. baja un directorio, cd / te situa en el
archivo raiz del sistema, cd (sin parametros) es equivalente a cd ~. La
orden pwd nos indica en ke 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
ATENCION! este es uno de los comandos mas peligrosos para el sitema,
piensa bien lo ke 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 accion. Recomiendo
el uso de -i siempre.
Identificando archivos: estamos acostumbrados a distinguir los archivos
por su extension, pero Linux no impone ninguna restriccion a los nombres
de los archivos por lo ke el archivo pepito podria 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 ke
determinan su tipo y por tanto el tratamiento ke 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
[Link] 1998, max compression, os: Unix
Ahora ya sabemos ke 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 difernetes puntos del arbol de directorios, algo parecido
a un acceso directo, la orden basica es ln origen destino, se pueden
linkar tanto archivos como directorios y principalmente con las opciones
-s (solo crea un puntero ke apunta al origen) y -h (crea imagenes totales
del origen).
Por ejemplo, tenemos el directorio /usr/src/linux-2.2.0/ y keremos ke el
sistema tambien 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 ke pasan por buscar
con comodines, por permisos, por fechas de modificacion, por
propietario ...
Viendo archivos: las ordenes basicas son cat archivo, more archivo,
less archivo y algunos otros, recomiendo ke proveis los tres y veais 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 aunke 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 mayoria de editores se lanzan con la orden editor archivo.
2. Otros comandos de disco:
[Link]
A parte de archivos y directorios, hay mas cosas en el disco ke debemos
conocer, estado del sistema de archivos, espacio libre ...
Espacio disponible: df, nos da informacion sobre la unidad actual, el
nombre de la unidad, la capacidad total, el uso, el espacio libre ... la opcion
mas importante es -h ke hace ke la salida sea mas legible (usa unidades
faciles de leer).
Espacio usdado: du, indica cuanto espacio usa el directorio actual y todos
sus subdirectorios. De nuevo una buena opcion es -h (mas legible) y -s
para hacer solo un sumario y no dar informacion de todos los
subdirectotios.
Sistema de archivos: ATENCION! estos comandos son peligrosos, solo
puede realizarlos root. fsck /dev/dispositivo chekea 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:
[Link]
Un proceso es cualkier programa ejecutandose, son procesos todos los
programas ke lancemos, las consolas, los demonios de sitema ...
La multitarea real de Linux unido al gran numero de procesos (mas de 20)
ke pueden estar corriendo a la vez en un sistema "normal" hacen ke
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, aunke sean de otro usuario), u
(informacion adicional del usuario y del proceso).
Ademas de ps, podemos usar la orden top, ke nos informa de los
procesos actuales y aparte indica los recuros ke consumen, la memoria
libre, la hora y otros datos de interes.
El PID: es el numero con el ke 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 envia 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 ke se encuentra en
primer plano, Ctrl+z envia el proceso actual a segundo plano y para su
ejecucion, aunke 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 parametro ke jobs asigna a cada proceso.
4. Informacion del sistema:
[Link]
Linux informa de practicamente todo lo relacionado consigo mismo y con
los progrmas ke esta ejecutando, solo hay ke saber donde mirar.
Informacion basica sobre nuestra makina: uname -a, nos informa sobre el
sistema operativo, la version del kernel, el nombre asignado a la makina, el
tipo de procesador instalado ...
El arranke: durante el arranke el kernel detecta gran cantidad de hardware
de nuestro sistema, aportando informacion importante, como nombre de
las unidades detectadas, puertos, protocolos de red activados,
perifericos ... esta informacion suele salir muy rapido, para verla con mas
trankilidad solo hay ke 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 fisica, asi
como de la swap, el parametro -m muestra los datos en megas. top
ademas indica lo ke esta consumiendo cada porceso activo y el estado
global de la CPU.
El directorio /proc: es una imagen de la memoria, y en ella hay gran
cantidad de informacion valiosa, la mayoria de los archivos ke contiene son
de texto, muy informativos y su nombre es autodescriptivo, por ejemplo el
archivo /prot/interrupts muestra informacion 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:
[Link]
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 ke se
puede hacer cuando todo parece perdido.
Ayudas de comando: muchos comandos incluyen pantallas de ayuda
cuando son lanzados sin parametros (si los rekieren) o con la opcion -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 ke se le pasa como
parametro, para saber ke comados conoce help, lanzalo sin parametros.
Por ejemplo: help jobs
El comando man: es la ayuda mas usada, muestra un manual sobre el
comando ke se le pasa como parametro, estos manuales son muy
completos y es el primer lugar donde se debe acudir para solucionar
cualkier problema. Hay una version para las X un poco mas intuitiva
llamada xman.
Por ejemplo: man bash
El comando info: con una finalidad similar a la de man aunke 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 documentacion sobre la mayoria de
paketes instalados en el sistema. Es una base de datos muy amplia y
ke puede ser muy util para akellas cosas ke el man no acaba de
aclararnos.
Internet: el volumen de informacion sobre linux en internet es inmenso,
solo teneis ke pasaros por SLUG o LUCAS (ambas con informacion
integramnete en castellano!) para haceros una idea. Podreis encontrar
manuales, libros electronicos, FAQs (respuestas a las preguntas mas
comunes), HOWTOs (COMO hacer cualkier cosa), webs, ftp, news,
irc ...
6. Empaketadores y Compresores:
[Link]
Linux entiende todos los formatos de compresion mas extendidos, como
son ZIP, RAR, TAR ... y tiene herramientas para su gestion, pero aki voy a
centrarme en los mas usados: tar, gzip y bzip2.
Tar: es el empaketador estandar de linux, empaketador significa ke no
comprime, si no ke junta un grupo de arhivos en un solo archivo con
extension .tar, ke es mas facil de transportar o intercambiar entre sistemas
o por la red. Es la herramienta ideal para las copias de seguridad. Tiene
multitud de modificadores aunke los usos mas frecuentes son: tar cvf
[Link] archivos_a_comprimir (para crear archivos tar) y tar xvf
[Link] (para desempaketar un tar).
Generalmente se usa junto a gzip con la orden: tar xvfz [Link] ,
(la z indica a tar ke use compresion zip). Tambien se puede usar junto a
bzip2 con la orden: bzip2 -d [Link].bz2 | tar xfv -.
Gzip: es el compresor estandar de linux, en general se usa junto a tar,
para comprimir un grupo de archivos empaketados. La extension de los
archivos comprimidos con gzip es .gz, y la de los empaketados y
comprimidos es .[Link] o .tgz. Gzip solo puede comprimir los archivos
de uno en uno por lo ke no es adecuado para compactar grupos de
archivos. La orden es gzip -c archivo (para comprimirlo) y gzip -d
[Link] (para descomprimirlo).
Bzip2: es el nuevo compresor sucesor del gzip, con ratios de
compresion ke lo superan en un 10% aproximadamente. La extension
es .bz2, y los comandos ekivalentes al gzip, bzip2 -c archivo y bzip -d
archivo.bz2.
7. Grupos y usuarios (I):
[Link]
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 minimo 2, root y otro mas, root ya existe y lo
usaremos SOLAMENTE! para las tareas de mantenimiento del sistema,
nunca para leer documentacion, jugar, navegar por internet, experimentar
comandos ... para todo esto se usan los demas usuarios.
Creando usuarios: hay varios comandos, el mas sencillo es useradd
nombre_de_usuario ; passwd nombre_de_usuario, ke crea un nuevo
usuario con una serie de opciones predefinidas, estas opciones pueden
cambiarse manualmente editando el archivo /etc/passwd (ATENCION! 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 ke estan, el tiempo ke 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 ke hayamos creado, el
sistema tiene un grupo de usuarios ke 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 ke puedan trabajar en grupo. Por defecto
se crea un grupo por cada usuario, y esa politica es la mejor en la mayoria
de los casos, ademas existen grupos de sistema como: lp, mem, ftp ...
8. Grupos y usuarios (II):
[Link]
Los permisos son necesarios para saber ke usuarios pueden hacer ciertas
cosas y cuales no. Por ejemplo, no es normal ke dejemos entrar alguien
por telnet y ke nos modifike el /etc/passwd, por ejemplo.
NOTA: el permiso de ejecucion para un directorio significa ke se puede
acceder al contenido de ese directorio.
NOTA: los permisos de un link son los del archivo al ke 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 demas letras se leen de tres en tres, des esta
manera: d/rwx/r-x/r-x. El primer trio se refiere al propieario del archivo, el
segundo a los demas miembros del grupo del propietario y el tercero al
resto. Las letras son: r (permiso de lectura), w (permiso de escritura), x
(permiso de ejecucion).
Despues los dos nombres se refieren al nombre del propietario y
nombre del grupo al ke pertenece el archivo, de esta manera nustro
archivo docs del ejemplo kedaria asi:
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/ejecucion para el grupo
r-x: permiso de lectura/ejecucion para el resto
2: numero de inodos
dani: nombre del propietario
dani: nombre del grupo
1024: bytes
Dec 27 [Link] fecha de creacion o de ultima modificacion
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
kien se le kieren cambiar los permisos ("a" todos, "u" propietario, "g"
grupo, "o" otros) despues se pone un simbolo + (para dar el permiso) o -
(para kitarlo) y finalmente se pone el permiso o los permisos ke
keremos cambiar ("r" lectura, "w" escritura, "x" ejecucion).
Un ejemplo sencillo seria dar permiso de ejecucion 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 basicos existen otros dos
permisos, el sticky bit (completamente desfasado) y el SUID o SETUID.
El SUID es un permiso ke da permisos de root a un proceso aunke haya
sido lanzado por un usuario, esto es necesario, por ejemplo para ke
usuarios normales puedan arrancar el entorno grafico, puedan
conectarse a internet ... este permiso se simboliza con la letra "s" y se
aplica asi: chmod a+s archivo.
9. Variables de entorno:
[Link]
En ocasiones es necesario cambiar los parametros del sistema, ya sea
para adecuarlos a nuestro lenguaje, a nuestras necesidades, para acceder
a nuevo software, localizar librerias ...
Ke variables tengo definidas?: con el comando env veremos un listado de
todas las variables ke usa el sistema.
Donde se definen?: esto ya no es tan sencillo, hemos de plantearnos si
keremos 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 algun archivo de
inicio, en uno global si es para todos (por ejemplo en /etc/bashrc) o dentro
del directorio del usuario para el ke keremos definirla (por en ~/.bashrc)
NOTA: los cambios en archivos de inicio no se reflejan hasta ke se haga
un nuevo login o con la orden source archivo_de_inicio.
Como se definen?: tanto si lo ponemos en algun guion de inicio, como
desde la linea de comandos la sintaxis es la siguiente: export
VARIABLE="valor".
Modificando el PATH: si keremos añadir una entrada al PATH no nos
basta con la orden export PATH="/home/dani/bin", pues esto elimina del
PATH todas las demas entradas como /bin, /usr/bin ... la orden correcta
seria: export PATH="$PATH:/home/dani/bin", ke indica al sistema ke
mantenga el PATH y añada la nueva entrada.
10. El entorno grafico:
[Link]
El entorno grafico (tambien llamado X o X-window) es una potente
herramienta ke facilita el control de tareas de una manera mucho mas
sencilla, a parte de permitirnos ejecutar gran cantidad de software ke no se
ejecuta en consola. Usarlo no es dificil, 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 targeta, para eso esta la
documentacion. Tampoco voy a recomendar un gestor de ventanas pues
eso keda a eleccion de cada uno.
Rekerimientos: sencillo, un raton bien configurado, una distribucion mas o
menos reciente de X (en este momento 3.3.3 es la ultima) y una tarjeta
grafica soportada por las X. ATENCION! Este ultimo punto es muy
importante, la gran velocidad con la ke aparecen nuevos modelos y las
dificultades ke ponen los fabricantes hacen muy dificil el soporte de nuevo
hardware por parte de X, lee toda la documentacion disponible en
[Link] para saber si tu targeta esta soportada.
Servidores: el servidor es la parte de las X encargada de comunicarse con
la targeta, hay muchos y es importante ke uses el mas adecuado para tu
tarjeta (de nuevo lee toda la documentacion para esto). Ademas de los
servidores aportados por XFree86 algunas compañias como SUSE o
RedHat tambien tienen los suyos.
Configuracion: hay varias utilidades para hacer esto, os sugiero ke las
useis todas y ke os kedeis con la ke os de mejores resultados.
XF86Setup: aplicacion grafica muy intuitiva, viene con las versiones
mas modernas de X.
Xconfigurator: aplicacion basada en ncurses, sencilla, pero solo
configura video/monitor, viene con las distribuciones ke usan paketes
RPM (Red Hat, Eurielec, Caldera y SuSE)
xf86config: la mas austera, a veces es la mas efectiva, viene con todas
las distribuciones de X.
Configuracion manual: una vez acabado puede ser necesario editar a
mano el archivo XF86Config ke 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 ke keramos 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 grafico 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 ke dan las X a la hora de
pedir ayuda. Si startx no funciona puede ser problema de algun
programa y no del propio entorno grafico, para distinguir esta situacion
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 ke las X
estan bien y lo ke falla es algun programa ke intenta ejecutarse durante
el inicio (seguramente algun fallo en el gestor de ventanas).
11. Compilar:
[Link]
En pocas palabras compilar es pasar de las fuentes del programa a un
fichero ejecutable. Este proceso no es ni sencillo ni facil, por lo ke es
frecuente ke aparezcan fallos. Por suerte existen algunas herramientas
(Makefiles, configures ...) ke nos van a facilitar la vida.
Rekisitos: la verdad es ke los rekisitos para compilar son bastante altos,
hay ke tener instalados el gcc, el make, las libc-devel, libg++-devel,
libstdc++-devel, todas las versiones de desarrollo de las librerias ke usa el
programa ke vayamos a compilar, las X-devel si el programa va ejecutarse
bajo el entorno grafico, opcionalmente otros paketes de control, revision de
versiones, comandos especiales ... y todo lo ke nos pida la documentacion
del programa ke vayamos a compilar.
Como se hace?: despues de descomprimir el pakete lo primero ke hay ke
hacer es leer la documentacion (casi siempre hay algun README o
INSTALL) y asegurarnos de ke tenemos todo lo ke necesitamos para
compilar y ke nuestro sistema esta soportado por las fuentes, es decir de
nada nos sirve tener las fuentes de un programa ke usa unas librerias ke
no tenemos o ke no compila en Linux. Un proceso semi-estandar entre el
software mas reciente es tener ke poner solo esto para conseguir compilar
e instalar el programa:
./configure
make
make install
Todo esto dentro del directorio donde se encuentran las fuentes. Aunke
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 ke keremos 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. Paketes (I): RPM
[Link]
Los paketes son formas de distribuir software para facilitar su instalacion y
mantenimiento. En general se distributen en forma de binarios por lo ke no
hace falta compilarlos. Hay Principalmente tres tipos RPM, DEB y TGZ. Es
muy recomendable instalarlo todo de esta manera, pues asi nos
evitaremos preocuparnos por donde dejan los programs cada archivo, ya
ke el gestor sabe en todo momento donde estan facilitando su eliminacion
o localizacion.
RPM: Es el tipo de paketes binarios mas extendido y en el ke se basan las
distribuciones Red Hat (y Eurielec), Caldera Open Linux y SuSE.
Hay ke remarcar ke aunke el formato de paketes sea el mismo, no significa
ke los paketes de una distribucion vayan a funcionar en otra, hay ke tener
en cuenta las librerias instaladas, el software adicional, las
incompatibilidades ...
Gestion: existen varios programas para la gestion de RPMs, voy a
comentar algunos.
rpm: este comando es el basico para la gestion de RPMs y es en el ke se
basan las demas utilidades. La sintaxis es muy sencilla: rpm -i [Link]
para instalarlos, rpm -U [Link] para actualizarlos, y rpm -e pakete
para eliminarlos (ojo! los paketes se eliminan por su nombre, no por el
nombre de archivo, en general el nombre del pakete es el mismo ke el del
archivo sin la extension .rpm)
Otras funciones interesantes son: rpm -qa para ver un listado de todos
los paketes instalados, rpm -qlip [Link] para ver informacion y el
listado de archivos de un pakete ... mas informacion en man rpm y rpm
sin parametros.
purp: es un intento de facilitar el uso de rpm, con menus e informacion
grafica. Para mi es el mejor. Necesita la libreria ncurses-4.2 o superior.
Funciona en modo consola por lo ke no hace falta tener las X instaladas
para usarlo.
Se puede arrancar como purp sin parametros, para gestionar solo los
paketes instalados en el sistema o purp /directorio_de_rpms para
gestionar los paketes instalados mas los disponibles en el directorio ke
se le pasa como parametro (ideal para examinar CDs llenos de RPMs).
Lo puedes encontrar en [Link]
glint: es un frontend grafico para rpm desarrollado por Red Hat, necesita
tener instaladas y configuradas las X, a primera vista parece muy bueno
e intuitivo, pero rapidamente se echan en falta opciones e informacion
adicional. Recomendado para los ke 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 ke el glint pero rekiere tener instalado GNOME.
Las dependencias: para el usuario novato esta palabra es un dolor de
cabeza constante, los paketes no kieren instalarse por errores de
dependencias. Ke son?
La mayoria de los programas necesitan de otros componentes software
para funcionar, en su mayoria son librerias necesarias para el programa,
pero tambien pueden ser otros programas, documentacion, la existencia
de algun directorio ... los errores de dependencias lejos de ser un
problema son una gran ventaja, pues nos evita estar instalando software
ke luego no funciona y no sabemos por ke.
A veces ocurre ke el gestor de RPMs da como error de dependencias un
pakete ke sabemos seguro ke tenemos instalado. Esto puede deberse a
varias cosas: a ke realmente no lo hemos instalado correctamente, a ke
tenemos una version diferente a la ke necesitamos o ke hayamos instalado
el programa usando otro metodo (el gestor es incapaz de saber ke paketes
hemos instalado en el sistema si no lo hemos usado a el para hacerlo).
Si estamos seguros de cumplir los rekisitos y ke el programa funcionara
aunke el gestor crea ke no, la orden es: rpm -i --nodeps [Link] esto
se salta el chekeo de dependencias, si aun asi no kiere instalarse
podemos usar la orden: rpm -i --nodeps --force [Link], aunke en este
caso lo mas seguro es ke el programa acabe por no funcionar.
RPMs en Debian/Slackware: Debian tiene herramientas para la gestion de
RPMs por lo ke 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 pakete. Alien es una utilidad
ke 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 paketes de diferentes distribuciones.
13. El teclado: funciones avanzadas con el teclado
[Link]
Podemos usar el teclado para mucho mas ke para escribir, hay funciones
complejas ke podemos hacer facilmente pulsando un par de teclas.
Cambiando de consola: Una consola es un terminal en el ke pueden
escribirse ordenes, por defecto la mayoria 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 combinacion Alt+FX donde X es
el numero de la consola a la ke keremos movernos (FX son las teclas de
funcion!)
Algunos programas "atrapan" esta combinacion de teclas asignandoles
otra funcion, es el caso de las X, el DOSEmu, el DOOM ... la
combinacion de teclas para cambiar de consola en estos casos es
Ctrl+Alt+FX.
Nota: la consola en la ke se proyectan las X es la primera libre, en la
mayoria de los casos la 7.
Reiniciar/cerrar: la combinacion Ctrl+Alt+Supr provoca un reinicio del
ordenador, aunke este comportamiento se puede modificar llegando a
realizar cualkier accion tras esta combinacion 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 accion a realizar. Podemos substituir -r por -h
para ke cuakier usuario pueda cerrar la makina.
Completado: podemos usar la tecla TAB (tabulador, la tecla sobre el
Bloq Mayus) para completar comandos y nombres de archivos, tan solo
hay ke teclear las primeras letras de la orden y pulsar TAB para ke el
sistema intente completarla. Por ejemplo, podemos pulsar:
da'TAB'
Para ke 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 ke el sistema no sabe
cual keremos completar, nos avisa parandose en el punto en el ke 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 ke coinciden con el patron 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 ke borra los
caracteres por los ke pasa el cursor.
Historial: Con las teclas de cursor de Arriba y Abajo podemos movernos
por el historial de los ultimos comandos tecleados. Muy util para tareas
repetitivas de sintaxis compleja.
14. Montando unidades:
[Link]
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 asi con todas las ke 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 asi con todos los ke haya)
Ademas, los discos duros (tanto IDE como SCSI) tienen particiones, a
las ke llamamos:
/dev/hda1 -> Primera particion del primer disco del primer canal IDE
/dev/hda2 -> Segunda ...
/dev/hdb1 -> Primera particion del segundo disco ...
Para saber ke unidades i particiones reconoce el sitema haremos
dmesg fijandonos especialmente en las lineas ke 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
Partition 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 ke contiene la unidad: MS-DOS, ext2,
iso9660 ...
opciones: son parametros como lectura/escritura, montar automaticamente
...
dispositivo: es el nombre ke da linux a la unidad (hda1, hdb, fd0 ...)
directorio_de_montaje: es el directorio desde donde sera accesible el
sistema de archivos montado, debe existir antes de intentar montarlo y
debe estar vacio, ademas ningun usuario debe estar en el momento de
montaje en ese directorio.
El comando mount sin parametros nos da una lista de las unidades
montadas.
Las unidades montadas no pueden extraerse (ojo con los diskets!), antes
hay ke desmontarlas. Y para montar un sistema de archivos antes hay ke
tener un disco dentro (recordad ke se montan los discos, no las unidades
lectoras). Mas informacion en man mount, man umount y man fstab
En todos los casos (menos ext2) es rekisito indispensable haber
recompilado el kernel con soporte para el sistema de ficheros ke keremos
montar.
Montar un disket: mount -t tipo /dev/fd0 /mnt/floppy, el tipo generalmente
es ext2 (disco linux) o vfat (disco DOS/WIN). No rekiere mas parametros.
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 ke identifike el sistema
montado, por ejemplo, para montar una unidad Windows ke se
encuentra en la primera particion del primer disco:
mount -t vfat /dev/hda1 /mnt/win
Y para montar un segundo disco con linux instalado en la primera
particion:
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 makina remota y
directorio es el nombre del directorio de la makina remota ke keremos (y
se nos permite) montar. De manera ke para montar el directorio /usr de
la makina 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 mayoria de estos comandos para
no tener ke teclearlos cada vez.
El archivo /etc/fstab: este archivo contiene una lista de unidades y todos
los parametros 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 arranke a
menos ke pongamos como opcion noauto (muy aconsejable en CDs y
floppys). Si keremos poner mas de una opcion estas se separan por
comas sin espacios entre ellas.