Guía práctica del Sistema Operativo Debian
Guía práctica del Sistema Operativo Debian
Qué hacer después de la primera instalación de Debian.
Instrucciones concretas y resumidas
Traducida por Efraín Maximiliano Palermo
Esta guía supone que ha logrado
instalar Debian y arrancó con su nuevo sistema.
Lo que traté aquí es brindarle un
comienzo rápido con Debian respondiendo la mayoría de las
preguntas de novato y mostrándole algunos trucos de los maestros
:). Toda la magnífica información presentada aquí
también puede encontrarse en la documentación de los paquetes
respectivos (y es más detallada y exhaustiva). Así que jamás
use esta guía como una excusa para evitar la verdadera documentación
del sistema. Se encuentran buenos recursos en www.debian.org y www.linuxdoc.org,
en los directorios /usr/doc/ y /usr/share/doc , y en las páginas
man e info de su sistema.
Tabla de contenidos:
Teoría que
debe saber
Unix, Debian y lo
básico de GNU. Quién es quién ... términos
que resultan familiares
Administración
de cuentas del sistema e ideas generalmente buenas para nuevas instalaciones
Estoy
en mi
prompt del shell (# ). Introducción a apt y dpkg
Usando
consolas
múltiples - pantallas virtuales a la vez, y cómo cambiar
el tamaño de la fuente
Cómo
ser más productivo y tipear sólo lo necesario
Procesos en Unix.
Cómo se inician los programas, donde puedo ver su lista y cómo
controlar procesos
¿Cómo
configurar una conexión de marcado manual por módem a
su Proveedor de Servicios Internet local?
Configurando las pantallas
gráficas X (Xfree86)
Personalizando su
entorno
Familiarizándose con los mensajes del
sistema
Activando el mouse en las consolas de texto
Obteniendo acceso a las particiones y datos
de MS Windows desde Linux en configuraciones de booteo doble
+@ Teoría
que debe saber
- Cuando sea apropiado, utilizo los valores
por defecto de Debian y la información específica de Debian.
Por eso esta es una guía sobre Debian, pero una buena parte de esto
se aplica a otras distribuciones de GNU/Linux y también es bastante
estándar en Unix.
- Lea, lea siempre, lea mucho. La Documentación
es la referencia fundamental. La documentación de Linux no fue escrita
por tarados después de haber terminado el programa, pero fue escrita
por los propios desarrolladores y durante el desarrollo. Así que,
es reconfortante, muy informativa y va directamente al grano.
- Su sistema GNU Debian consta de:
El kernel (muy probablemente este usando el kernel \"Linux\", pero hay otros
soportados por el Proyecto Debian, tal como El Hurd)
Conjunto de aplicaciones (la mayoría de aquellas provienen del proyecto
GNU, particularmente las esenciales), y
mucho esfuerzo y energía puesto en la distribución de Debian
por los desarrolladores de Debian, porters y mantenedores (a menudo voluntarios)
- La diferencia entre \"Software libre (free
software)\" (como en Habla Libre (free speech), no Cerveza Gratis (free
beer)) y \"Fuente Abierta (open source)\": Software Libre fue una iniciativa
comenzada por Richard M. Stallman para crear un sistema operativo completamente
libre. En el preciso momento cuando ellos tenían la mayoría
de las aplicaciones reescritas (bajo GPL - la licencia que le da la libertad),
Linus Torvalds anunció su liberación del kernel Linux. Combinando
el kernel Linux y las aplicaciones GNU, el sueño del \'sistema libre\'
se hizo realidad (Además, GNU está trabajando en su propia
versión del kernel llamada The Hurd). GNU no es solo una licencia
GPL, GNU es toda una filosofía, y le aconsejo visitar www.gnu.org
para más información. Por otro lado, Fuente Abierta es un
término un tanto estricto que solo difunde las ventajas directas
del software libre (código fuente disponible, estabilidad, fiabilidad,
etc...) - no tiene mayor filosofía detrás.
- Cuando dice \"Linux\", muy probablemente
piensa en el sistema completo, no solo el kernel, así que debería
llamarlo \"GNU/Linux\" en su lugar (para demostrar que reconoce y aprecia
los esfuerzos de la comunidad GNU (www.gnu.org))
- ¿Qué es exactamente UNIX
y qué es Linux? UNIX representa un grupo de S.O. superiores y es
un nombre genérico para una variedad de sistemas operativos (tales
como Solaris, Digital UNIX, SCO, BSD, etc.. y hay muchas otras variantes
(vea www.ugu.com - Unix Guru Universe)). La gran mayoría de aquellos
son sistemas propietarios que pertenecen a sus respectivas compañias
comerciales (tales como Sun, Hewlett Packard etc... ). Lo que todas ellas
tienen en común es el código base de UNIX original con copyright
que tiene su origen en AT&T. Linux fue escrito desde cero por Linus
Torvalds y fue uno de los primeros sistemas tipo Unix libres (hoy en día
también hay tres variantes populares de Unix BSD libres (después
ellos se deshicieron del código con copyright de AT&T): NetBSD,
FreeBSD y OpenBSD)) .
- Unix no es en realidad un S.O. que instala
y luego lo tiene solo por placer. Se parece más a una estructura
que le permite personalizarlo a su entorno y hacerlo funcionar como quiere
de verdad. Ya que Linux es un sistema operativo tipo UNIX (con *muchas*
de las ventajas para el usuario final sobre las máquinas Unix ortodoxas),
debería recordar que absolutamente nada es imposible en GNU/Linux
- es solo una pregunta sobre si tiene aptitudes o no.
+@ Unix, Debian
y lo básico de GNU. Quién es quién ... términos
con los que debe estar familiarizado
APT: Debian tiene un gestor de paquetes
que se llama dpkg. apt es un frontend para dpkg y es de verdad una pieza
poderosa de software. Más comúnmente, usará el comando
apt-get para instalar software, y apt-cache para buscar la lista de paquetes
disponibles. Así que, dejemos clara esta lección: cuando
lee algo como \"instale el paquete de nombre vim\", significa que tiene que
tipear \"apt-get install vim\". Hay una oportunidad para evaluar su conocimiento
en el párrafo siguiente.
dselect: dselect es otra herramienta
para administrar paquetes para Debian, la cuál usa apt cómo
backend. Sin duda tiene sus ventajas (y la usé por mucho tiempo
antes de cambiarme a apt), aunque apt es una herramienta un tanto más
común (debido en parte a que dselect parece \'extraño\' para
el ojo de quién no es experto, y debido en parte a que es más
fácil responder una pregunta con \'type: apt-get install ....\' ).
Man, manpages: las páginas
del manual ofrecen una interface uniforme para la documentación
bajo Unix, y están divididas en categorías (1-9). Por ejemplo,
si el programa se llama \"mkdir\" y lo escuché nombrar en algun lugar
pero no se que hace, tipeo \'man mkdir\' y me entero. De nuevo: supongo que,
si no le digo explícitamente mire también en la página
del manual.
superusuario, root, admin: estos
términos hacen referencia a la cuenta administrativa, que tiene
los privilegios para hacer todo lo que guste (sí, eso incluye eliminar
todos sus archivos, quedarse afuera del sistema e informando sus verdaderos
ingresos al IRS :). No se confunda con el \'directorio root\' de más
abajo.
home directory,home,~: cuando entra a un sistema Unix, lo pone
en algún directorio - casi siempre es su directorio home - bajo
el cual tiene control completo (para leer, escribir y eliminar archivos
- no tiene estos permisos en el resto del sistema). Para ver en que directorio
está , tipee \'pwd\' (podría ver algo como \"/home/your_name\").Este
donde este, solo tipee \'cd\' para regresar a su directorio home. El caracter
\'tilde\' (~) automáticamente se expande a su directorio home. Veamos:
si su directorio home es \"/home/user\" y creo el directorio \"test\", cuando
tipee (desde cualquier ubicación) \"cd ~/test\", irá a \"/home/user/test\".
¿Entiendes?
directorio root: En Unix, las particiones de disco son visibles
(decimos que están \"montadas\") en directorios normales, y el directorio
base siempre es \"/\", llamado el \"directorio raíz\". Así que,
en Windows tendría discos como C:, D: etc.. pero en Unix (y Linux),
los conecta a directorios, entonces su disco D: podría estar montado
en /mnt/windisk-D bajo Linux (la ubicación es arbitraria, claro).
/etc: el directorio /etc contiene casi todos los archivos de
configuración. Así que, si alguien le dice \"edite el archivo
de configuración syslog\", quiere decir vaya al directorio /etc,
y edite el archivo syslog.conf (la mayoría de los paquetes tiene
el archivo config que se nombra binario: binario es un nombe común
para cualquier archivo o datos en formato binario (2 dígitos). Sin
embargo, a menudo es un sinónimo de \"ejecutable\" - un archivo que
puede ser ejecutado (como file.exe en Windows). Podría decir algo
como \"¿donde está el binario ttysnoop?\" o \"el binario está
ubicado en el directorio /usr/sbin\".
imagen: este término principalmente
no hace referencia a una imagen o un dibujo, sino a datos raw (bajo nivel).
Vealo como una cadena de bytes que solo tiene sentido para las máquinas.
X, Xfree, X11: nombres que hacen
referencia al Sistema XWindow (nuevamente: \"XWindow System\"), el cuál
le permite abrir pantallas gráficas (tanto en sus máquinas
locales como remotas).
RMS: Richard Matthew Stallman, hacker
as del MIT, fundador de la Free Software Foundation.
+@ gestión
de las cuentas del sistema e ideas generalmente buenas para nuevas instalaciones
Bien. Probablemente ya a entrado como root
(tipee \'id\' para enterarse). Cree un nuevo usuario (con el comando \'adduser\'),
que será regular, una cuenta del sistema sin privilegios, y vuelva
a abrir esta guía con él. La cuenta del superusuario (root)
solo debe usarse para propósitos administrativos (entonces, no para
el trabajo cotidiano) y aún así solo comando por comando.
. Por ejemplo, si visita #debian en irc.openprojects.net, y la gente vee
que ha entrado como root, ellos a) pensarán que es un usuario irresponsable
de computadoras, o b) le advertirán y pensarán que es un
usuario irresponsable de computadoras.
Eso significa que siempre debería
ingresar como un usuario regular, y cambiar el ID de usuario actual (a
root) solo cuando sea necesario, utilizando el comando \'su\' (vea la página
del manual). Sin embargo, el problema es que siempre tiene que tipear la
contraseña de root cuando necesita hacer \'su\' a root. Para evitar
esto (es decir, para permitir hacer \'su\' a root sin una contraseña),
edite el archivo /etc/group, e inserte esta linea (en cualquier parte):
wheel:x:28:username1,username2
y en /etc/pam.d/su, descomente esta linea
(quite el signo # al principio, o copie esta linea aqui si no la tiene):
auth sufficient pam_wheel.so
trust
Eso permitirá a los usuarios llamados
\'username1\' y \'username2\' tipear \'su\' y llegar a ser root sin una contraseña
(para probarlo la primera vez, salga completamente y luego vuelva a entrar
para volver a inicializar los grupos). También, esta es una buena
opción (solo ejecutar un comando como root): su -c \'/ruta/al/comando
a ejecutar como root\'.
Ya que la mayoría de las cuentas
de su máquina las usará localmente, si no quiere que la gente
entre remotamente, ¿que hace? (primeron necesitan la contraseña
de una cuenta para eso, pero podrían conseguirla más fácil
de lo que piensa). Edite el archivo /etc/security/access.conf, lea el resumen
y entonces agregue algo como esto al archivo:
-:username1 username2:ALL EXCEPT LOCAL
Esto niega la entrada a las cuentas username1
y username2 desde todas las ubicaciones exceptuando su propia máquina.
NOTE: Si le digo tipee algo, y obtiene
\"Comando no encontrado\" o \"Permiso negado\", entonces intente ejecutarlo
como root.
+@ Estoy en mi
prompt del shell (# ). Introducción a apt y dpkg
Quiero darle unos ejemplos sobre como usar
apt (es decir, cómo funciona en conjunto con el sistema de gestión
de paquetes Debian).(haga lo que he dicho, \'lea la página del manual
para cada herramienta\' ..). Así que, uno a uno (usaremos el paquete
\'vim\' (editor de texto profesional) como ejemplo):
apt-get install vim
# instala el paquete
vim (apt-get incluirá las dependencias (otros paquetes que debe
instalar para que vim funcione))
apt-get remove vim
# quita el paquete vim
apt-cache search vim
# busca la lista de
paquetes disponibles y visualiza los paquetes que de algún modo
están relacionados con palabra clave \'vim\'
apt-cache show vim
# muestra los detalles
sobre el paquete vim (versión, mantenedor, dependencias, descripción,
tamaño)
dpkg -L vim
# lista cuáles
archivos fueron instalados por el paquete vim
dpkg -S /usr/bin/vim
# dice a que paquete
pertenece el archivo /bin/ls
man vim
# obtiene ayuda sobre
vim
(y una notita: toda la información sobre dpkg está ubicada
en /var/lib/dpkg, y cosas interesantes son los archivos \'available\' y \'status\'
(y también el directorio info/). Es muy fácil de entender,
solo abra los archivos y entenderá).
Si está instalando paquetes de la red, entonces el archivo de
paquete .deb descargado (siempre y cuando usó apt-get para instalarlos)
estará en /var/cache/apt/archives/.
Los nombres de paquetes y las descripciones
de paquetes útiles son:
less
La utilidad \'pager\' (le permite ver la salida de un programa pantalla
a pantalla). Conviene mucho más usarlo que el \'more\' por defecto.
Pruébelo así: \"find / | less\" (ese comando encontrará
todos los archivos de su disco e imprimirá sus nombres, deteniéndose
después de cada pantalla de salida)
man-db, manpages, manpages-dev
La utilidad de Unix \'man\' y la colección de las páginas
de manual de Unix.
gcc, g++, cpp, bin86, libncurses5-dev, make, patch, rcs, cvs
Herramientas de desarrollo estándar. Son necesarias aunque quiera
esperimentar solo un poco.
vim, vimtutor
Editor de texto profesional de Unix (www.vim.org, incluso se ha portado
a windows, si está interesado ;p). La mayoría de la gente
que le desean lo mejor dirán yo no debería haberlo dicho,
pero tarde o temprano tendrá que aprenderlo. Así que, tipee
\'vimtutor\' y aprenda cómo usar este editor (Advertencia: tiene de
verdad un comportamiento distinto a lo que está acostumbrado). Lo
bueno de \'vi\' es que es estándar en todos los Unices y nunca se
sentirá solo una vez que aprenda cómo usarlo.
ircii
Cliente de IRC en modo texto (Internet Relay Chat) que puede usar para
visitar el servidor IRC irc.openprojects.net, y hacer sus preguntas en
el canal #debian. (si no sabe de que estoy hablando, conéctese a
internet, luego haga \"irc your_nickname irc.openprojects.net\".
Cuando se haya conectado haga, \"/join #debian\", y todo lo que tipee será
visto por ~300 personas que podrán ayudarlo).
ssh
protocolo de shell seguro. Es un reemplazo
para telnet, rlogin, rsh etc... ¡Este es imprescindible!
gpm
controlador del mouse para la consola
de Linux
Bueno. Ahora tiene los nombres de los paquetes
que necesita instalar así que inténtelo con \'apt-get install
+@ Comandos de
Unix Básicos
Debe ser introducido a algunos comandos
básicos de Unix que le permitirán averiguar quien es, que
está haciendo y adónde está:
df, du
tipee \'df\' para ver las particiones del disco rígido e información
relacionada con el espacio en disco. Use \'du\' para obtener los tamaños
de los archivos y/o directorios.
ls
El comando principal listará los archivos en un directorio.
Podría usarlo como \'dir\' bajo Dos. La manera común de llamarlo
es \'ls -al\', que lista todos los archivos detalladamente.
mkdir, mv, rm, cp
comandos para crear directorios, mover, eliminar y copiar archivos
logout, Ctrl+D
lo saca del sistema. Para usar Ctrl+D, la linea de comandos debe estar
vacía.
reboot, Ctrl+Alt+Del, halt
reboot reinicia la máquina, halt la prepara para apagarla
tar
viene de \'tape archive\'. Usado para juntar múltiples archivos
en uno (sin compresión). Supongase que quiere comprimir un directorio;
podría hacer esto:
tar -c dir dir.tar
gzip dir.tar
y podría terminar con dir.tar.gz, el cuál se puede desempaquetar
de nuevo con:
gunzip dir.tar.gz
tar xf dir.tar
gzip
GNU zip (¡no Winzip!). comprime *un* archivo y lo renombra a
file.gz (si desea crear archivos (como .zip), use este en combinación
con \'tar\').
cat
viene de \'concatenate\' - imprime el contenido del archivo en la pantalla.
Es parecido al comando \'type\' de Dos.
pwd
muestra el directorio de trabajo actual
cd
\'change directory\'. Pruebe \'cd /etc; pwd; cd /bin; pwd\'
date
muestra la fecha y hora actual
uptime
información sobre el tiempo que lleva el sistema encendido y
la carga del sistema (cantidad de trabajo) en los últimos 15 minutos
uname -a
información sobre el sistema: tipo
de SO (linux), nombre del SO, versión del kernel y fecha de compilación,
tipo de máquina (el último campo siempre es \"desconocido\"
en Linux, no importa).
bc, dc
calculadoras
clear, Ctrl+l
limpia la pantalla
+@Usando múltiples
consolas - pantallas virtuales a la vez, y cómo cambiar el tamaño
de la fuente
Ve delante suyo una pantalla de texto negra/blanca,
pero las distribuciones de GNU/Linux vienen con \'terminales virtuales\'
predefinidas. Para comprobar lo que estoy hablando, sostenga la tecla Alt
izquierda y presione las teclas desde F1 a F6. Veerá como cambia
entre las consolas virtuales.
Consejo: sólo 6 consolas están
activadas por defecto. Para agregar más, edite (como usuario root)
el archivo /etc/inittab y agregue más lineas como estas:
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
(claro, verá que campos tendrá
que incrementar)...
Para que los cambios en ese archivo surtan
efecto, salga del editor de texto y tipee \"init q\".
Si crea más de 12 consolas y no
puede accederlas con el Alt izquierdo (porque la última tecla F
que tiene es la 12), use la tecla Alt derecha para alcanzar las consolas
13 - 24. También, puede usar Alt + flecha izquierda o flecha derecha
para ciclar por las consolas abiertas. La tecla Alt+print_screen cambia
a la última consola virtual donde estuvo.
Si no le gustan las letras tan grandes
de la consola, ejecute esto:
lilo -R \'linux vga=ask\' ; lilo ; reboot
(Después de rebootear, detectará
los modos de consola posibles y le pedirá que elija uno). Note:
debe ejecutar los dos comandos lilo cada vez antes de rebootear, si desea
tenerlo la siguiente vez (vea man lilo.conf para obtener información
sobre como hacerlo permanente).
+@ Cómo
ser más productivo, tipear solo lo necesario, aprender comandos
y obtener más información
Use las teclas flecha arriba y flecha abajo
para ver los comandos tipeados anteriormente. Use las teclas flecha izquierda,
flecha derecha, Inicio y Fin para mover la posición del cursor dentro
de la linea.
tipee \'history\' para ver una lista de los
comandos tipeados anteriormente (esta lista es permanente, permanece aún
depués de que salga del sistema).
Tipee esto: \'cat /etc/syslog.\' y presione
la tecla TAB - verá lo que hace.
Luego, tipee algo (este comando desde la
linea anterior, por ejemplo), y presione ENTER (claro). Ahora tipee Alt+\".\"
(Alt+punto). ¿Vee? repitió el último argumento de
la linea anterior.
Tipee \'!!\' o \'!-1\' para repetir el último
comando.
Tipee \'!algún_texto\' para ejecutar
el último comando que comenzó con \'algún_texto\'
Tipee \'!número\' para ejecutar algún
comando desde el historial (use \'history\' para ver que número se
asignó a un comando particular)
Tipee \'!-3\' para ejecutar el comando que
fue ejecutado antes que el anterior
Presione Ctrl+R, luego comience tipeando
un comando hasta que vea la linea que desea. (Esta \"búsqueda invertida\"
busca un comando en el búfer del historial que se parece más
al fragmento de texto que tipeó).
Note: el historial está almacenado
en su archivo ~/.bash_history. Los nuevos comandos serán añadidos
al archivo después que cierre una sesión de terminal. Si
quiere salir sin grabar el historial, puede cerrar el shell con kill -9
$$ o kill -9 0 (sin embargo, esta no es la manera habitual - la manera
habitual es leer todo sobre las caracteristicas del historial en la página
del manual de \'bash\' (la página del manual de bash es grande, cuando
la abra, tipee \'/hist\' para buscar las secciones de lo hablado)).
Al cambiar directorios, hay pocos consejos:
puede regresar al directorio anterior en donde estubo tipeando \'cd -\'.
Puede conseguir lo mismo (aunque puede colocar más nombres de directorios
en la lista) con pushd y popd (es decir, \'cd /bin; pushd /etc/; popd\')
Podría entonces muy probablemente
querer averiguar los nombre de los programas que puede iniciar desde la
linea de comandos. Este es un buen truquito:
Tipee \'a\' y presione la tecla TAB dos
veces. Le mostrará todos los comandos disponibles que comienzan
con \'a\' (pero esto no es nada muy especial, puede ver la misma información
solo tipeando \'ls\' en los directorios /bin, /usr/bin y /usr/local/bin).
Para averiguar más sobre un comando
en particular, use \'man\' (Espero que dejemos en claro esto, ¿bien?
Man es su amigo).
También, aparte de man, averigüe
donde se ubica el comando (tipee \'which
Por último, use Shift + las teclas
PageUp/PageDown para hacer avanzar el texto que quedó fuera del
area visible de la pantalla.
Y uno más: Ctrl+s detiene la salida
del terminal (pruebe \'find /\' y presione Ctrl+s mientras está trabajando),
y Ctrl+q reanuda.
Para buscar parámetros del terminal,
vea: setterm, reset, tput, tset.
+@ Procesos en
Unix. Cómo se inician los programas, dónde puede ver su lista
y cómo controlar procesos.
Los procesos (aplicaciones activas) en
Linux trabajan en áreas de memoria aisladas y no hay peligro de
que el sistema se cuelgue - si el proceso se cuelga, no se propaga el problema
a todo el sistema.
Para ver el listado actual de procesos,
tipee \'ps aux\' (es decir, el comando \'ps\' con los argumentos \'aux\'). Esta
es una salida de ejemplo:
USER PID %CPU %MEM
VSZ RSS TTY STAT START
TIME COMMAND
root 1 0.1
0.8 1304 532 ? S
15:19 0:05 init
root 2 0.0
0.0 0 0 ?
SW 15:19 0:00 [kflushd]
root 3 0.0
0.0 0 0 ?
SW 15:19 0:00 [kupdate]
root 4 0.0
0.0 0 0 ?
SW 15:19 0:00 [kpiod]
root 5 0.0
0.0 0 0 ?
SW 15:19 0:00 [kswapd]
daemon 82 0.0 0.7
1412 460 ? S
15:19 0:00 /sbin/portmap
root 218 0.0 2.0
2444 1276 ? S
15:19 0:00 /usr/sbin/named
root 222 0.0 0.7
1336 488 ? S
15:19 0:00 /usr/sbin/gpm -m /dev/psaux -t imps2
Las descripciones de cada columna están
en la primera fila. Algunas explicaciones:
La columna USER lista los propietarios,
es decir los privilegios bajo los cuáles los procesos se ejecutan.
PID == ID único de procesos.
%CPU y %MEM le dicen cuanto tiempo de
la CPU y memoria del sistema esta tomando la tarea.
TTY lista la terminal de control (el lugar
desde donde fue iniciado el proceso) - en este ejemplo todos los campos
son \"?\", porque todos los procesos listados se están ejecutando
en background y se han separado de su terminal.
STAT le dice el estado actual del proceso
- SW = swapped (en swap), S = sleeping (durmiendo), R = running (ejecutando).
Pruebe también el comando \'top\'.
Es un monitor de procesos interactivo (salga de top con \'q\').
Asegúrese de familiarisarse con
el comando \'free\' . Le dice el estado actual de la memoria (aunque una
parte de este también se muestra en la cabecera de \'top\').
Iniciando, matando, deteniendo y controlando
procesos:
Maneras de iniciar un proceso
- Tipee el nombre del
programa en el prompt de comandos. Por ejemplo, \'ps\'.
- Tipee el nombre del
programa seguido de \'&\', por ejemplo: \'tee&\'. (Pruebe \'tee\' (terminelo
con ctrl+c), luego \'tee&\' y notará la diferencia)
Note: si tiene algún
programa en un directorio, y tipea su nombre para ejecutarlo obtendrá
error \'Comando no encontrado\', entonces necesita una lesión sobre
PATH: PATH es una variable que guarda los nombres de los directorios para
buscar ejecutables. Como ejemplo, tipee \'ls\', pero el comando ls se ubica
en el directorio /bin/. Afortunadamente, hay PATH (que contiene /bin) y
encuentra su archivo. En este caso (Comando no encontrado), su directorio
actual probablemente no está en el PATH (¡y no intente agregarlo!),
solo ejecute el comando como \'./cmdname\' (así, anteponiéndole
./) - que le dice al sistema no busques el comando en el PATH, pero lo
ejecuta desde el directorio actual (de trabajo).
Maneras de dar fin a un proceso
- espere que el proceso
termine normalmente (cuando termine su tarea).
- registrese en otra
consola virtual, use \'ps aux\' para hallar el PID, y mátelo. Para
dar fin/matar un proceso tipee \"kill
- si el proceso es
interactivo (lo inicia, y no lo regresa a la linea de comandos), use Ctrl+C
o Ctrl+D (la diferencia es que Ctrl+C tiene el propósito de interrumpir
el proceso, mientras que Ctrl+D señala \'final de la entrada\', así
que Ctrl+D se usa algunas veces para decirle al programa que pare de leer
la entrada, y que siga con el procesamiento. it).
- si inicio un proceso
con \'&\' al final (y aun está en el mismo terminal,o no se donde
no lo cierre), tipee \'jobs\' para ver un listado de procesos en background
. Luego solo tipee \'kill %JOB_ID\' para matarlo. Bien, ¿heh? :)
Cuando el proceso sale
(es decir, lo regresa al prompt de comandos), puede ver su estado de salida
tipeando: \'echo $?\'. 0 (cero) indica éxito, si no fracaso.
¿Cómo detener/pausar un proceso?
- tipee \'kill -STOP
Prioridades de los procesos
Linux (y otros Unices)
tienen una forma de especificar la prioridad de los procesos, que está
comprendida entre -20 (prioridad absoluta) a 19 (que se ejecuta cuando
no hay nada más para ejecutar:). El planificador de procesos del
kernel es una pieza seria de software y funciona como es de esperar, se
encuentran planificadores distintos en algunos sistemas no Unix, concretamente
MS Windows.
Los usuarios regulares
solo pueden utilizar valores desde 0 a 20 (y 0 es el defecto). Para ejecutar
un programa con la prioridad modificada (por ejemplo, \'top\'), haga:
nice -n 10 top
Para volver a darle
un valor nice a un proceso existente, use el comando \'renice\'.
Cuando inicie un proceso sin el caracter
& , y quite su prompt, puede presionar \'Ctrl+z\' para colocarlo en background
Y detenerlo. Para volver a reanudarlo *en background*, tipee \'bg\', o \'fg\'
para reanudarlo en primer plano. Aunque puede ponerlo a bg, y posteriormente,
use \'fg\' para regresarlo (pero no después de cerrar la terminal
de control, claro)..
Los procesos y su entrada/salida
En general, cada procesos
abre 3 canales de comunicación: STDIN (La Entrada Estandar, 0) para
recuperar datos de entrada, STDOUT (Salida Estandar, 1) para los datos
de salida y STDERR (Error Estandar, 2) para imprimir los mensajes de error.
En una sesión de usuario típica (por ejemplo, sólo
tipea \'ls\'), los tres están asociados a su terminal - es el lugar
donde su información de entrada, y el lugar donde la aplicación
le saca cualquier información. Sin embargo, se pueden asociar a
un archivo, un socket, una tubería, o ¡incluso a la salida/entrada
de otro programa!
Veamos un ejemplo (\'grep\' buscará
todos los archivos e imprimirá las lineas del archivo que contiene
la cadena \'/var/log/messages\'):
cd /etc
grep \'/var/log/messages\' *
¿Qué obtuvo? Algo como esto
(variará, pero igual obtendrá algunas lineas OK, y unos informes
de error):
grep: shadow: Permiso denegado
grep: shadow-: Permiso denegado
grep: skel: Es un directorio
grep: sound: Es un directorio
grep: ssh: Es un directorio
grep: syslog-ng: Es un directorio
syslog.conf:*.warn;mark.*;auth,authpriv.none
/var/log/messages
syslog.conf,old: mail,news.none
-/var/log/messages
syslog.conf.syslog-facility-old:*.=info;*.=notice;*.=warn
%classic /var/log/messages
syslog.conf.syslog-facility-old:auth,authpriv.none
%classic /var/log/messages
syslog.conf.syslog-facility-old:cron,daemon.none
%classic /var/log/messages
syslog.conf.syslog-facility-old:mail,news.none
%classic /var/log/messages
grep: t1lib: Es un directorio
grep: terminfo: Es un directorio
grep: texmf: Es un directorio
Obviamente, parte son datos buenos (syslog.conf),
y parte son mensajes de error (mensajes \'Es un directorio\' y \'Permiso denegado\').
Ahora tipee el comando ligeramente modificado:
grep \'/var/log/messages\' * 2 /tmp/errdata
Utilizando el conocimiento que ya tiene
(stdout(número 1) y stderr(número 2)), debería saber
que sucedió - se redirigió el canal del error estándar
desde su terminal a un archivo /tmp/errdata. Ábralo con su editor
y vea. (Note: también hay un archivo especial /dev/null. /dev/null
es un agujero negro, redirija algo ahí y nunca más escuchará
algo de él.
Para alimentar un programa con algo (es
decir, redirigir su STDIN), haga \'/algún/programa
Y por último, puede \"conectar\" la
salida de un programa con la entrada de otro. Vea estos ejemplos:
ps aux | cut -d\" \" -f 1 # imprime solo la primer
columna de la salida de \'ps aux\'
ls -al | less
# lista el contenido del directorio y hace una pausa despues de cada pantalla
ls -al | grep root
# vea más abajo
enviará la salida completa del comando
\'ls -al\' como entrada del comando \'grep\' (así, no lo verá
en su pantalla). La utilidad grep entonces solo imprimirá aquellas
lineas que contienen la cadena \'root\' (posiblemente ninguna).
+@ ¿Cómo
configurar una conexión de discado manual por módem a su
Provedor de Servicios Internet local?
Sólo una nota: no cargue ningún
controlador para soportar su modem. Esto es hecho automáticamente
(el controlador \'serial.o\' se encarga del puerto serie comm, y todos los
módems normales entienden el conjunto de comandos AT).
Tipee \'pppconfig\' para crear una nueva
conexión y definir los parámetros de configuración.
Probablemente lo hará bien solo siguiendo los menus, pero dejeme
darle pautas:
- Lea cuidadosamente lo que le indico
- Deje \"provider\" como el nombre de la
primera conexión que hace (así se vuelve el defecto).
- Seleccione DNS Dinámico cuando
se lo pida (pantalla siguiente)
- Método de autenticación:
averigüe que método usa su ISP. Hoy en día, PAP es casi
siempre lo más seguro.
- Tipee el nombre de registro y la contraseña
para crear la conexión
- Velocidad del puerto del módem,
déjela en 115200 si si utiliza un módem externo, o defina
otro valor si es interno (tal como 57600)
- Seleccione el Tono de discado (todos
nosotros ya tenemos tono, ¿bien?)
- Tipee número
- Seleccione \'Yes\' para detectar automáticamente
el puerto del módem y luego acepte el puerto que encontró
(vea más abajo para saber que hacer si no encontró ninguno).
- Ya está en la pantalla principal
donde puede modificar las opciones seleccionadas antes de guardarlas a
disco. Elija \'Advanced options\'. Si está en Europe probablemente
tendrá que cambiar el campo Modeminit de \'ATZ\' a \'ATx3l1m1\' (use
l0m0 si no desea que se escuche el parlante del módem) - el \'x3\'
es importante aquí: si no lo define, obtendrá el error \'NO
DIALTONE\'. Ok, elija Terminar y es de esperar que su conexion haya quedado
configurada.
Ahora, salga de la utilidad pppconfig (regrese
al prompt de comandos), y tipee: \'pon\'. Vea destellar las luces de su módem,
debería estar conectado :). Para terminar la conexión, tipee
\'poff\'.
(Una nota: pppconfig no es más que
una interface conveniente para crear archivos /etc/chatscripts/provider
y /etc/ppp/peers/provider. Si quiere podria tambien crearlos a mano. Heh,
y abra el script /usr/bin/pon (es decir lo que ejecutó cuando tipeó
\'pon\'), incluso es más trivial).
Problemas
si pppconfig no detectó su modem:
- asegúrese que en verdad sea un
módem compatible Hayes/Rockwell que entienda el conjunto de los
comandos AT (\"winmodems\" no son, y si tiene un winmódem, sólo
olvídelo).
- asegúrese que el módem
este bien conectado a la máquina, intente apagarlo/prenderlo para
resetearlo.
- intente especificar manualmente los
puertos desde /dev/ttyS0 a /dev/ttyS3 (puertos com 1 a 4) e siga intentando,
tal vez tenga suerte.
\'ping 161.53.2.66\' funciona, pero \'ping
www.google.com\' no:
- si la conexion parece funcionar (las
luces del módem están encendidas, etc..) pero no puede hacer
ping a los hosts (man ping) como www.google.com (pero si dice que \'ping
161.53.2.66\' funciona) - significa que la configuración automatica
del DNS falló. En este caso, averigüe cuál es el IP
del DNS (Domain Name Service) de su ISP y edite el archivo /etc/resolv.conf.
Hágalo parecido a esto (dónde
your.dns.server.ip será una dirección IP (dado con números,
no letras, tal como 161.53.2.112):
nameserver your.dns.server.ip
Alternativas a pppconfig:
pppconfig/pon/poff
son herramientas de gran calidad.
Sin embargo, podría
probar otro programa, wvdial (¿recuerda? apt-get install wvdial)
y depués edite el archivo de configuración (tambien, ¿se
acuerda? /etc/wvdial.conf). La ventaja de wvdial es que puede detectar
automaticamente que tipo de autenticación acepta su ISP (y si no
surte efecto, prueba definir Stupid Mode =1 en /etc/wvdial.conf).
Estoy conectado, ¿ahora qué?
Asegurese de tener
instalado el paquete ircii, lea la breve ayuda que escribí en la
tabla anterior (cómo conectarse al servidor IRC y unirse al canal
#debian), y cuéntenos que es un usuario nuevo de Debian :)
+@ Configurando las pantallas gráficas
(Xfree86)
X11 es un estándar de la industria para las aplicaciones en ventanas.
Esta guía abarca Xfree86 versión 4, que no se encuentra
en Debian Potato (necesita por lo menos Debian woody).
Sin embargo, la única diferencia es que Debian Potato tiene
Xfree86 version 3, el cuál tiene menos controladores y debe instalar
controladores especificos para grupos especificos de tarjetas graficas
(por ejemplo, xserver-rage128, mach32, mach64, i128, 3dlabs, agx, 8514,
s3v etc...). En X4, solucionamos esto solo instalando xserver-xfree86,
que es modular y carga los módulos adecuados en tiempo de ejecución.
También, el archivo de configuración es /etc/X11/XF86Config-4
para X4, y sólo /etc/X11/XF86Config para el antigüo X3.
Para instalar soporte para las X bajo debian, haga:
apt-get install xfree86-common xserver-common xfonts-base
xserver-xfree86 xf86setup icewm icewm-themes
apt-get calculará las dependencias
(tal como fuentes, aplicaciones básicas etc..), y le dará
una lista completa, esperando que la acepte. Después que instale
esos paquetes, apt le pedirá automáticamente que configure
X. Intente responder bien esas preguntas, y cuando termine, tipee \'startx\'.
Si la pantalla aparece, ¡listo!
En caso de problemas:
- edite /etc/X11/XF86Config[-4] y busque
la linea
Option \"UseFBDev\" \"true\"
y cambie \'true\' a \'false\'
- Si aún no funciona, edite el
parámetro de configuración Driver= (estos son algunos nombres
de controladores: ati, nv, cirrus, mga,). [alguien me envió la lista
completa de estos]
- Despues que se asegure que la opcion
driver está ok, pero todavía no funciona, intente cambiar
los valores HorizSync y VertRefresh . Pruebe con esto:
HorizSync 30-80
VertRefresh 40-90
Ok, supongase que lo hizo funcionar:
Ya tiene ejecutando el sistema X window. Dejemos esto en claro:
Necesita el servidor X porque sabe como comunicarse
con su hardware y en realidad muestra los gráficos. Y eso es todo
lo que hace. La apariencia de su interface en verdad depende estrictamente
del \'gestor de ventanas\' que use. Si me estuvo escuchando, probablemente
este ejecutando icewm, pero hay otros (cuando los instale, se volverán
el defecto). Pruebe wmaker, blackbox, afterstep, xfce o enlightenment.
Pruebe también twm, pero solo por motivos historicos, para comprender
el folklore de Unix ;)
Para instalar el programa que le muestra la pantalla de registración
gráfica (así no tiene que entrar siempre a la consola y tipear
\'startx\'), instale el paquete wdm. También, podrá seleccionar
que gestor de ventanas usar desde el menu.
Para salir de una sesión X, elija Logout desde el menú
del gestor de ventanas, o presione Ctrl+Alt+Backspace.
Programas extra que podria gustarle tener en X son:
gnumeric, gnotepad+
buena planilla de cálculo y editor
de texto
xchat, irssi, bitchx
xchat es un cliente de IRC gráfico.
irssi y bitchx son clientes de IRC en modo texto avanzados.
communicator
Netscape Communicator
lyx
Procesador de documentos basado en TeX
vim-gtk o vim-perl
le da el comando \'gvim\', editor vim en
X
gimp1.2 or gimp
GNU Image Manipulation Program
gv
Visualizador PostScript
icepref, icewm
Herramientas de configuración para
icewm
Supongamos que le gusta como funciona \'ls -al\', y le gustaría
solo tipear \'L\', pero eso en realidad significa \'ls -al\'. Aquí está
como:
edite ~/.bash_profile. Coloque aquí algo como:
alias L=\'ls -al\'
Ahora tipee \'source ~/.bash_profile\' o presione Ctrl+x Ctrl+r (para
volver a leer el archivo), y tipee \'L\'. ¿Funciona según lo
esperado? Heh, cool.
Como pudiera haber notado, el formato de los archivos .bash_profile
y .bashrc es muy simple, coloque los mismos comandos que podria tipear
en la linea de comandos.
(ejemplo: ejecute \'echo SIMPLE MESSAGE\' y observe lo que hace.
Luego edite .bash_profile (en su directorio home, claro), y agregue ese
mismo comando al final del archivo. Salga y vuelva a entrar al sistema.
Lo recibirá con \'SIMPLE MESSAGE\'.
+@ Familiarizandose
con los mensajes del sistema
Las máquinas Unix tienen una manera
estandarizada para que los programas, aplicaciones y demonios envien mensages
al registrador del sistema. Hay unas pocas implementaciones del registrador
del sistema, de las cuales las tres mas populares son: el BSD sysklogd
tradicional (por defecto en debian ), syslog-ng y msyslog.
Cada mensaje consta de Servicio (indica el origen del mensaje) y Severidad
(nivel de importancia). la Fecha, hora y alguna otra información
se genera automaticamente por syslog, y no deberia ser parte del mensaje
en si mismo.
Todos los registros en sistemas Debian son escritos al directorio /var/log/
(pero ese es solo el valor por defecto, puede hacerlo parecido a todo lo
que quiera, claro). El demonio syslog (demonio = proceso que se ejecuta
en background, normalmente por un largo periodo de tiempo, y se dedica
a atender las peticiones del usuario) distribuye mensajes a archivos, tuberías,
destinos remotos o usuarios, utilizando el esquema especificado en /etc/syslog.conf
(usa BSD sysklogd tradicional). Es un archivo muy simple, abralo y vea
que tal esta.
Para recopilar y estudiar los mensajes del sistema (para propositos
estrictamente educativos:), agregue una linea como esta en /etc/syslog.conf:
*.* TAB /var/log/allmessages
Cree el archivo /var/log/allmessages vacio:
touch /var/log/allmessages
(se pone TAB para avisarle que de verdad tiene que presionar la tecla
TAB, los espacios no estan bien). Y solo recargue la configuración
del demonio sysklogd:
/etc/init.d/sysklogd reload
Ahora vaya a alguna consola virtual no utilizada, y tipee (vea \'man
tail\' para aprender lo que hace):
tail -f /var/log/allmessages
Eso es todo.. haga algo a su sistema (por ejemplo, logout/login o use
\'su\' en otra consola, y ¡mire los mensajes entrando!). Esta es una
excelente forma de aprender más sobre el sistema y cómo funciona.
También, puede detectar cualquier anomalía e informes de
errores que de lo contrario podrian pasar desapercibidos.
Si está escribiendo scripts de shell, o modificando su .bash_profile,
puede utilizar el comando \'logger\' para registrar sus mensajes mediante
syslog.
Cuando su máquina estaba booteando, imprimió mucha información
interesante. Puede recuperarla toda después, ya que está
guardada en /var/log/dmesg. Si tipea el comando \'dmesg\', le imprimirá
información que esencialmente viene de la misma fuente, pero contiene
nuevos mensajes, no solo los producidos durante el booteo.
Y un consejo: es bueno tener todos los registros de ppp (dialup) en
/var/log/ppp.log (y el comando \'plog\' entonces funcionará como se
espera). Agregue esto a /etc/syslog.conf (y vuelva a cargar sysklogd):
local2.* TAB /var/log/ppp.log
+@ Activando el mouse en las consolas de texto
¡Es bueno tener funcionando el mouse! Copie solo selecionando
el texto, y pegue con el botón 2 o 3. Instale el paquete \'gpm\',
y le pedirá automáticamente la configuración. Si quiere
retrasarlo, o no lo hizo bien la primera vez, siempre puede volver a ejecutar
la herramienta de configuración (se llama \'gpmconfig\')).
Aquí tiene un ejempo: para mi mouse wheel, respondí estas
preguntas a gpmconfig:
¿Dónde está su mouse? /dev/psaux
(este usa el puerto PS2, use /dev/ttyS0 o /dev/ttyS1 para los puertos serie
1 y 2).
¿De qué tipo es su mouse? imps2
(la mayoría de los mouse funcionan con imps2 o ps2. Pruebe \'ms\'
o \'bare\' para mouse serie)
¿Respuesta? *deje vacio*
¿repetir protocolo? use \'ninguno\'
¿argumentos extra? *dejelo vacio*
Ok, ahora pruebe la configuración y disfrute.
+@ Accediendo a los datos de particiones MS
Windows en configuraciones de doble booteo
Esto es simple. Tipee \'fdisk -l\' y verá la lista de las particiones
de todos los discos que tiene en la máquina. Ignore todo (incluyendo
los errores) exceptuando las particiones que son del tipo FAT16 (para Windows
más antigüos) o NTFS (win2k y aquellos Neandertal Technology(tm)
esa cosa). Así que, vea esta salida de ejemplo:
Disk /dev/hda: 255 heads, 63 sectors, 1027 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start
End Blocks Id System
/dev/hda1
1 1
8001 83 Linux
/dev/hda2 *
2 123 979965
6 FAT16
/dev/hda3
124 840 5759302+
5 Extended
/dev/hda5
124 366 1951866
6 NTFS
/dev/hda6 * 367
670 2441848+ 83 Linux
/dev/hda7
671 792 979933+
83 Linux
/dev/hda8
793 808 128488+
82 Linux swap
/dev/hda9
809 824 128488+
82 Linux swap
/dev/hda10
825 840 128488+
82 Linux swap
Disk /dev/hdc: 64 heads, 63 sectors, 827 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Start
End Blocks Id System
/dev/hdc1 *
1 24
48352+ 82 Linux swap
/dev/hdc2
25 827 1618848
5 Extended
/dev/hdc5
25 827 1618816+ 83
Linux
Tenemos dos discos físicos, que se llaman /dev/hda y /dev/hdc.
Las particiones Windows que estamos buscando se llaman /dev/hda2 y /dev/hda5
(¿ve? dice FAT16 y NTFS aquí).
Ahora cree los directorios /mnt/hda2 y /mnt/hda5 (use \'mkdir\' ¿
recuerda ?). Y edite /etc/fstab agregando esto:
/dev/hda2 /mnt/hda2 vfat
defaults,ro 0 0
/dev/hda5 /mnt/hda5 ntfs
defaults,ro 0 0
Como root, ahora tipee \'mount /mnt/hda2\'
y ¡hey! los datos de windows están aquí, ¡en
/mnt/hda2!
Unas notas: agregando esto a /etc/fstab
nos aseguramos de que se monte automaticamente cada vez que bootea, si
no quiere eso, agregue \'noauto\' en \'defaults,ro\'. Reemplace \'ro\' con \'rw\'
si quiere acceso completo de lectura/escritura, no solo lectura.
También, para montar las particiones
MS windows, necesita el soporte adecuado para el modulo del kernel, pero
Linux lo carga automaticamente. Vea la salida de \'lsmod\', debería
ver \'vfat\' o \'nfts\' aquí, después que monte alguna partición
windows.
Bien, espero que
le haya sido instructivo. Comentarios, preguntas y actualizaciones (en
texto plano) siempre son bienvenidas, docelic@teleport.medri.hr.
TODO (voluntarios bienvenidos):
archivo de configuración tipo para xf86 para
640x480,8 con vga antigüo
isdn, cable modems, pppoe y cómo configurar
el enlace a internet
compilación del kernel
controladores de dispositivo
descripción de init.d (+ update-rc.d y niveles
de ejecución)
lilo
- Inicie sesión o regístrese para enviar comentarios
- 31306 lecturas
