jueves, 21 de agosto de 2008
Instalación y configuración de vsftpd (Very Secure FTP Daemon)
Procedimientos
1) Descargar el paquete RPM
Puedes bajar la última versión RPM de vsftpd de la colección rpm de Red Hat/Fedora o de rpmfind.net. Para tu comodidad, te recomiendo que lo bajes vía APT
Puedes descargar una copia usando de la siguiente manera:apt-get install vsftpdEso es todo, Vsftpd esta oficialmente instalado. Ahora hagamos que funcione.
2) Inicio y prueba en modo "standalone"vi /etc/vsftpd/vsftpd.conf
Agrega la siguiente línea, o si la línea ya existe asegurate que contenga lo siguiente:listen=YES
Salva y cierra el archivo de configuración vsftpd.conf.
Ahora iniciemos vsftpd.../usr/sbin/vsftpd
Si al intentar inciar el servicio, la pantalla te arroja el siguiente error:# /usr/sbin/vsftpd500 OOPS: vsftpd: does not run standalone, must be started from inetd
Tienes que configurar vsftpd para que corra con inetd/xinetd, si es el caso, ve directamente al paso 3)
Ahora intenta usar el servicio ftp de tu servidor. Una sesión ftp exitosa debe parecerse a ésta:# ftp localhostConnected to localhost (127.0.0.1).220 (vsFTPd 1.2.1)Name (localhost:root): alopez # (tendrás que usar un usuario de sistema para iniciar sesión)331 Please specify the password.Password:230 Login successful. Have fun.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 Entering Passive Mode (127,0,0,1,47,193)150 Here comes the directory listing.drwxr-xr-x 21 501 501 4096 Feb 20 18:00 ulfix226 Directory send OK.ftp> quit221 Goodbye.
Debes obtener una respuesta similar a la de arriba. Si prefieres correr tu servidor ftp con inetd o xinetd, entonces continua con la siguiente prueba. Personalmente recomiendo correr vsftpd con inetd o xinetd.
3) Configuración para hacer operar vsftpd con inetd/xinetd:
Para configurar vsftpd para que opere con inetd o xinetd, haz lo siguiente:
Primero, vamos a editar archivo /etc/vsftpd/vsftpd.conf y establecer que vsftpd no corra en modo "standalone":vi /etc/vsftpd/vsftpd.conf
Asegurate de que la siguiente directiva exista y este establecida a "NO":listen=NO
Si estas corriendo inetd, haz lo siguiente:vi /etc/inetd.conf
Si hay algunas lineas del servico ftp activas, comentalas o borralas y agrega la siguiente línea:ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
Guarda y cierra el archivo.
Ahora reinicia inetd:/etc/rc.d/init.d/inetd restart
Si utilizas xinetd, haz lo siguiente:
Usuarios de Red Hat/Fedora:vi /etc/xinetd.d/vsftpd# default: off# description: The vsftpd FTP server serves FTP connections. It uses # normal, unencrypted usernames and passwords for authentication.service ftp{disable = nosocket_type = streamwait = nouser = rootserver = /usr/sbin/vsftpdnice = 10}
Guarda y cierra el archivo.
Ahora detén y inicia xinetd.../etc/rc.d/init.d/xinetd restart
Ahora probemos el servidor ftp con inetd/xinetd:# ftp localhostConnected to localhost (127.0.0.1).220 (vsFTPd 1.2.1)Name (localhost:root): alopez # (tendrás que usar un usuario de sistema para iniciar sesión)331 Please specify the password.Password:230 Login successful. Have fun.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 Entering Passive Mode (127,0,0,1,47,193)150 Here comes the directory listing.drwxr-xr-x 21 501 501 4096 Feb 20 18:00 ulfix226 Directory send OK.ftp> quit221 Goodbye.
Si obtienes una respuesta similar a la de arriba, felicidades, tu servidor FTP esta vivo!. En los siguientes pasos cambiaremos la configuración del servidor vsftpd para tener un mejor desempeño.
4) El archivo de configuración de vsftpd
El archivo de configuración debe estar localizado en /etc/vsftpd/vsftpd.conf. Este archivo va a determinar como tu servidor FTP va a operar. Notarás que el archivo vsftpd.conf contiene muchas opciones de configuración, no voy a cubrir cada una de ellas, pero si las más importantes:anonymous_enable=NO/YES
Activa o desactiva el acceso FTP anónimo. Si no estas seguro de lo que es un servidor FTP anónimo, lo mejor es establecer esta opción a "NO".local_enable=NO/YES
Esta opción activa o desactiva la caracteristica de que los usuarios locales puedan acceder al servidor FTP, normalmente los servidores FTP tendrán esta opción establecida a "YES". Se me ocurre que puedes establecer esta opción a "NO" en el caso de que tengas un servidor FTP estrictamente anónimo donde no requieres de sesiones de usuarios del sistema.write_enable=NO/YES
Activa o desactiva la opción para escribir en el servidor FTP. En la mayoria de los casos, tendrás esta opcipon establecida a "YES".local_umask=022 # O lo como quieras establecerla
La umask por defecto es 077. Aquí puedes establecer una umask personalizada si asi lo deseas.xferlog_enable=YES
Esta opción activa el registro de los archivos se suben al servidor y las descargas realizadas.ftpd_banner=Bienvenido al servidor FTP de ulfiX
Permite establecer un mensaje de bienvenida personalizado a los usuarios cuando se conectan al servidor.chroot_list_enable=NO/YESchroot_list_file=/etc/vsftpd.chroot_list
Esta directiva habilita la función "chroot" o jaulas de vsftpd. Con "chroot_list_enable" establecida a "YES", vsftpd entonces busca un archivo "chroot_list_file", del cual su ubicación es espeficicada en la siguiente línea. Cualquier usuario que este listado en el archivo /etc/vsftpd.chroot_list es automaticamente "enjaulado" a su directorio home. Esto prohibe al usuario ir a un directorio fuera de su directorio home FTP. Esto es muy útil en entornos FTP compartidos o como una politica de privacidad y seguridad.userlist_enable=NO/YESuserlist_deny=NO/YES
La opción "userlist_enable" le indica a vsftpd si consultará o no consultará 2 archivos: vsftpd.ftpusers y vsftpd.user_list. Si está opción es establecida a "YES", los 2 archivos funcionan como una lista de usuarios que estan autorizados a conectarse al servidor FTP. Sin embargo, cuando es usada en combinación con la opción "userlist_deny=YES", los 2 archivos funcionan como una lista de usuarios que NO están autorizados a conectarse al servidor FTP. Esta opción es muy útil para negar completamente el acceso FTP a usuarios criticos del sistema como "root", "apache" o "www". Una muy buena capa de seguridad para tu servidor FTP.
5) Los archivos de configuración vsftpd.ftpusers y vsftpd.user_list
Estos dos archivos se enlazan dentro de las opciones "userlist_enable" y "userlist_deny" en el archivo de configuración /etc/vsftpd/vsftpd.conf. Cuando la opción "userlist_enable" es establecida a "YES", estos 2 archivos funcionan como una lista de usuarios que estan autorizados a conectarse al servidor FTP. Sin embargo, cuando se combina con la opción "userlist_deny=YES" estos 2 archivos funcionan como una lista de usuarios que NO están autorizados a conectarse al servidor FTP. Cuando la opción "userlist_deny" es utilizada, la naturaleza de la denegacion de servicio FTP que un usuario prohibido recibe difiere dependiendo de en cual de los 2 archivos este listado.
Si un usuario esta listado en el archivo "vsftpd.user_list" y la opción "userlist_deny" está activada, a los usuarios ni siquiera se les preguntará por una contraseña cuando intenten conectarse al servidor FTP. Son rechazados desde el principio.
Si un usuario es listado dentro de el archivo "vsftpd.ftpusers" y la opción "userlist_deny" esta activada, a los usuarios se les preguntará por una contraseña, pero nunca podrán iniciar sesión.
6) El archivo de configuración vsftpd.chroot_list
Cuando este achivo es usado con la opción "chroot_list" habilitada, establece una lista de usuarios que serán enjaulados a su directorio home. Estos usuaro no podrán cambiar de directorios fuera de su directorio home. Esta es una buena opción cuando se trabaja en un entorno FTP compartido donde se requiere de privacidad.
Cada vez que hagas cambios a los archivos de configuración, debes reiniciar vsftpd
Eso es todo. Existen muchas más opciones de configuración que puedes agregar si así lo deseas, pero hasta este punto debes tener un servidor FTP seguro y funcional.
Manejo Básico de la SHELL

Manejo Básico de
--------------------------------------------------------------------------------
Tabla de contenidos
1. Introducción
1.1. Linux como sistema operativo multiusuario y multitarea
2. Login
3. Arbol de directorios en Linux
3.1. Ubicación de los distintos archivos en un sistema Unix/Linux
3.2. Descripción
4. Variables de entorno y ficheros relevantes
4.1. ¿Cómo definir variables de entorno?
4.2. Ficheros .bashrc, .bash_profile y .bash_logout
4.3. Uso del comando "alias"
4.4. Concepto de variable PATH
5. Comandos básicos
5.1. El comando "mount" y "umount"
5.2. El comando "ls"
5.3. El comando "pwd"
5.4. El comando "cd"
5.5. El comando "cp"
5.6. El comando "mv"
5.7. El comando "mkdir"
5.8. El comando "rmdir"
5.9. El comando "rm"
5.10. El comando "whoami"
5.11. El comando "who"
5.12. El comando "finger"
5.13. El comando "df"
5.14. El comando "du"
5.15. El comando "cat"
5.16. El comando "echo"
5.17. El comando "date"
5.18. El comando gzip
5.19. El comando gunzip
5.20. El comando bzip2
5.21. El comando tar
5.22. El comando unzip
6. Comandos básicos de administración
6.1. El fichero /etc/fstab y su importancia a la hora de montar sistemas de archivos
6.2. Añadiendo usuario en el sistema: el comando "adduser"
6.3. El comando "userdel"
6.4. Los comandos "addgroup" y "delgroup"
6.5. Otros comandos similares
6.6. Un tema muy importante: los permisos de ficheros
6.6.1. El comando "chmod"
6.6.2. El comando "chown"
6.7. Control muy básico de procesos
6.7.1. ¿Qué es exactamente un proceso?
6.7.2. El comando "ps"
6.7.3. El comando "top"
6.7.4. Como matar procesos. El comando "kill"
6.8. Compilando un paquete fuente.
6.9. Gestores de paquetes: DPKG y RPM
6.9.1. Instalando binarios.
6.9.2. Eliminado binarios.
6.9.3. Listando paquetes instalados
7. Filtrando y redireccionando comandos
7.1. Redirección entrada-salida
7.2. Tuberias o pipes
7.3. Algunos comandos para filtrar información.
7.3.1. El comando "grep"
7.3.2. El comando "wc"
8. Uso muy básico del editor vi
8.1. Modos de vi
8.2. Algunos comandos de vi
9. Man
10. Referencia de programas Shell
10.1. BitchX
10.2. irssi
10.3. Lynx
10.4. Links
10.5. wget
10.6. ftp
10.7. telnet
10.8. ssh
10.9. pine
10.10. ari-yahoo
10.11. zgv
10.12. mplayer
10.13. mpg321
10.14. mp3blaster
10.15. cdplay
10.16. aumix
10.17. cdrecord
10.18. cdparanoia
10.19. lame
10.20. gpm
10.21. Herramientas de desarrollo
11. Otras fuentes: bibliografía
1. Introducción
1.1. Linux como sistema operativo multiusuario y multitarea
En nuestra opinión estas son dos de las características que hacen fuerte a linux:
Linux es Multitarea: La multitarea no consiste en hacer que el procesador realice más de un trabajo al mismo tiempo (un solo procesador no tiene esa capacidad), lo único que realiza es presentar las tareas de forma intercalada para que se ejecuten varias simultáneamente. Por lo tanto en Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación.
Linux es Multiusuario: Para que pueda desarrollar esta labor (de compartir los recursos de un ordenador) es necesario un sistema operativo que permita a varios usuarios acceder al mismo tiempo a través de terminales, y que distribuya los recursos disponibles entre todos. Así mismo, el sistema debería proporcionar la posibilidad de que más de un usuario pudiera trabajar con la misma versión de un mismo programa al mismo tiempo, y actualizar inmediatamente cualquier cambio que se produjese en la base de datos, quedando reflejado para todos. En conclusión, en el sistema multiusuario, varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea).
--------------------------------------------------------------------------------
2. Login
Para entrar a un sistema Unix/Linux hay que disponer de una cuenta (ser reconocido en el sistema). A la espera de la entrada de un usuario al sistema se le llama login. El ordenador muestra :
Debian GNU/Linux testing/unstable par tty3
par login:
--------------------------------------------------------------------------------
3. Arbol de directorios en Linux
En linux no existen unidades como en windows. En este sistema todo son ficheros de diferentes tipos y cada uno tiene una "labor específica".
--------------------------------------------------------------------------------
3.1. Ubicación de los distintos archivos en un sistema Unix/Linux
Tendremos la siguiente clasificación:
/ (Directorio Raiz)
_____________________________________________________________________________
/ / / / / / / \ \ \ \ \ \ \ \
bin boot home dev etc lib usr mnt root sbin var tmp cdrom floppy proc
/ | \ / | \
kaipy par astable bin src share
--------------------------------------------------------------------------------
3.2. Descripción
/bin Comandos básicos disponibles en el arranque y funcionamiento del sistema (ls, pwd, mount, umount,...)
/boot Ficheros estáticos para el arranque del sistema
/home Directorios de todos los usuarios
/dev Ficheros de interface de dispositivos
/etc Ficheros de configuración y arranque del sistema (init.d, passwd, skel, /etc/hosts, /etc/X11,..)
/lib Librerias compartidas esenciales. Módulos del núcleo
/usr Datos, programas y librerias accesibles por el usuario
/usr/bin -- Herramientas de uso general (editores, correo, compiladores..)
/usr/sbin -- Utilizado para herramientas de administración que no sean esenciales (cron, lpd...)
/usr/local -- Contiene la mayor parte de elementos de software que se añade de forma no estándar (bin, lib, etc, man..)
/usr/share/man y /usr/share/doc -- Páginas man y documentos variados sobre el software instalado.
/mnt Punto de montaje temporal de dispositivos
/root Directorio de la cuenta de root
/sbin Comandos básicos para la administración del sistema (adduser, shutdown, init,...) Accesible únicamente para root
/var Datos volátiles y directorios de spooling
/tmp Directorio temporal
/cdrom Punto de montaje del CDROM
/floppy Punto de montaje de disquete
/proc Información asociada con el núcleo que se está ejecutando, para obtener información de recursos utilizados en el sistema (CPU, memoria, swap, dispositivos..)
--------------------------------------------------------------------------------
4. Variables de entorno y ficheros relevantes
4.1. ¿Cómo definir variables de entorno?
Dentro de nuestro sistema hay infinidad de estas variables cuya finalidad es configurar de alguna manera el entorno de nuestra shell, como pueden ser marcar rutas de acceso para algunos programas. Podemos asignarles valores de la siguiente forma:
kaipy@kaipy:~$ export IRCNICK=Kaipy2
Al referirse al contenido de una variable en Unix es necesario anteponer el símbolo $ al nombre de la variable. Para conocer el contenido de una variable en concreto se usará el comando 'echo':
kaipy@kaipy:~$ echo $IRCNICK
Kaipy2
kaipy@kaipy:~$
Para ver el contenido de las variables de entorno de nuestro sistema Linux en un momento determinado podremos usar el comando set. Obtendremos un listado de todas las variables y sus valores. Cuidado porque la lista es larga y fácilmente ocupará más de una pantalla asi que os recomendamos usar: set | more para controlar el flujo de datos.
--------------------------------------------------------------------------------
4.2. Ficheros .bashrc, .bash_profile y .bash_logout
Estos ficheros nos los encontramos en cada cuenta o directorio de usuario de cualquier sistema Linux. Son los ficheros que nos permiten personalizar nuestra sesión en el sistema. El fichero .bash_profile se ejecuta al inicio de cada sesión y el fichero .bash_logout se ejecuta al final de la misma. Por tanto, podemos editarlo a nuestro gusto según queramos que se realicen unas tareas al iniciar o al finalizar nuestra sesión. El fichero .bashrc es el fichero que nuestra shell usará cuando iniciemos en sesión y donde podemos crear nuestros alias o exportar nuestras variables de entorno, entre otras cosas.Asi pues, su finalidad es parecida a la del .bash_profile.
Como ejemplo, el contenido de este fichero en esta máquina como usuario kaipy es:
.....
eval `dircolors`
alias ls='ls --color=auto '
alias l='ls -la'
alias cp='cp -i'
alias rm='rm -i'
alias mv='mv -i'
alias startx='startx 2>/dev/null &'
#Variables del BitchX
export IRCNAME=Rubia
export IRCSERVER=carme.irc-hispano.org
export IRCNICK=Kaipy
export IRCUSER=Kaipy
alias validarSGML='nsgmls -s'
......
Algo común es llamar al fichero .bashrc desde el .bash_profile de la siguiente forma
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Además, en este fichero tambien se declaran variables propias del usuario, como las vistas en el apartado anterior referentes al BitchX o cualquier otro programa.
--------------------------------------------------------------------------------
4.3. Uso del comando "alias"
Usar el comando "alias" es una forma de definir sinónimos a los comandos del sistema o incluso redefinir los existentes con alguna forma más complicada.
Si queremos definir un nuevo comando que borre archivos, lo podemos hacer de la siguiente forma:
kaipy@kaipy:~$ alias borrar='rm'
Donde rm es el comando de Unix para borrar archivos.
Para eliminar alguna definición de alias, se deberá de utilizar el comando "unalias", especificando el alias que deseamos eliminar:
kaipy@kaipy:~$ unalias borrar
--------------------------------------------------------------------------------
4.4. Concepto de variable PATH
La variable PATH guarda las direcciones o rutas de directorios donde buscar un programa ejecutable.
Por ello, no es necesario situarse en una determinada ruta donde se encuentra el comando de dicho programa, sino que dentro de todo nuestro sistema podremos ejecutarlo sin ningún tipo de confusión. El fichero en donde el sistema guarda todos los valores asignados a la variable PATH es /etc/profile.
Recordar que los archivos binarios que son compilados e instalados se asignarán directamente al PATH cuando se instalen, pero por el contrario, hay programas que no aparecen en el PATH, su ejecución debera realizarse de la siguiente forma:
kaipy@kaipy:~$ ./nombre_programa
--------------------------------------------------------------------------------
5. Comandos básicos
Veremos a continuación una lista de comandos básicos para defenderse cómodamente en la shell de cualquier sistema Unix/linux:
--------------------------------------------------------------------------------
5.1. El comando "mount" y "umount"
Para acceder a dispositivos como el disco duro, cdrom, floppy y otros debemos montar la unidad. Para ello usamos el comando mount. Su sintaxis es la siguiente:
mount -t tipo dispositivo directorio de montaje
"tipo" será el sistema de archivos que usa, es decir, fat32(vfat),iso9660(cdrom)...
"dispositivo" será el dispositivo en cuestion. Estará en el /dev.
"directorio de montaje".Necesitamos de un directorio con el que accederemos a todo lo que haya en el dispositivo montado.
Por ejemplo para montar una partición de windows que se encuentra en el ide primario hariamos:
mount -t vfat /dev/hda2 /w98
Para desmontar los dispositivos usaremos el comando umount.
--------------------------------------------------------------------------------
5.2. El comando "ls"
Éste puede que sea uno de los comandos más utilizados. Se usa para listar archivos. Su sintaxis es:
ls [opciones] [archivo]
Si ejecutamos "ls" sin argumentos obtendremos un listado de todos los archivos incluidos directorios del directorio en que el usuario está posicionado. Sus opciones más usadas son:
-a : Mostrará también los archivos ocultos (los que empiezan por .)
-l : Hará un listado mas detallado, especificando para cada archivo sus permisos, el número de enlaces rígidos,el nombre del propietario, el nombre del grupo al que pertenece, el tamaño en bytes y la fecha de modificación.
Por ejemplo haciendo un ls -la tendremos algo similar a lo siguiente:
sergio@par:~/Seminario$ ls -la
total 56
drwxr-sr-x 3 sergio sergio 4096 may 4 16:33 .
drwxr-s--- 94 sergio sergio 8192 may 4 16:31 ..
drwxr-sr-x 2 sergio sergio 4096 may 4 16:32 Shell
-rw-r--r-- 1 sergio sergio 5888 may 4 16:31 Shell.sgml
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.3. El comando "pwd"
Es un comando muy útil pese a su simplicidad. Su función es la de imprimir en pantalla el directorio donde esta trabajando el usuario. Por ejemplo:
sergio@par:~/Seminario$ pwd
/home/sergio/Seminario
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.4. El comando "cd"
Este comando lo usamos para cambiar de directorio.
sergio@par:~/Seminario$ cd Shell
sergio@par:~/Seminario/Shell$ pwd
/home/sergio/Seminario/Shell
sergio@par:~/Seminario/Shell$
--------------------------------------------------------------------------------
5.5. El comando "cp"
Este comando sirve para copiar archivos. Su sintaxis es la siguiente:
cp [opciones] archivo_origen camino_destino
Las opciones mas comunes son:
-f: Borrar los archivos de destino ya existentes.
-p: preservar permisos usuario y grupo de archivo a copiar.
-R: copiar recursivamente.
-v: da información en pantalla sobre archivos que se van copiando.
sergio@par:~$ cd CVS/Seminario/
sergio@par:~/CVS/Seminario$ ls
CVS shell.sgml
sergio@par:~/CVS/Seminario$ cp shell.sgml co.sgml
sergio@par:~/CVS/Seminario$ ls
co.sgml CVS shell.sgml
sergio@par:~/CVS/Seminario$
--------------------------------------------------------------------------------
5.6. El comando "mv"
Este comando tiene dos funciones: mover archivos y renombrarlos. Su sintaxis es la siguiente:
mv [opciones] archivo_origen archivo_destino
Sus opciones principales son:
-f: Borra losa rchivos de destino existentes sin preguntar al usuario.
-i: Lo contrario que -f. Pregunta al usuario.
sergio@par:~/Seminario$ ls
ejemplo1 Shell Shell.sgml
sergio@par:~/Seminario$ mv ejemplo1 prueba_el_mv
sergio@par:~/Seminario$ ls
prueba_el_mv Shell Shell.sgml
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.7. El comando "mkdir"
Su finalidad es la creación de directorios. Se usaría así:
sergio@par:~/Seminario$ mkdir ejemplo
sergio@par:~/Seminario$ ls
ejemplo Shell Shell.sgml
sergio@par:~/Seminario$ cd ejemplo/
sergio@par:~/Seminario/ejemplo$ pwd
/home/sergio/Seminario/ejemplo
sergio@par:~/Seminario/ejemplo$
--------------------------------------------------------------------------------
5.8. El comando "rmdir"
Se usa para borrar directorios vacíos. Esto sería:
sergio@par:~/Seminario/ejemplo$ cd ..
sergio@par:~/Seminario$ rmdir ejemplo/
sergio@par:~/Seminario$ ls
Shell Shell.sgml
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.9. El comando "rm"
Hay que tener cuidado con este comando. Se usa para borrar archivos o directorios. Su sintaxis es la siguiente:
rm [opciones] archivo
Las opciones mas comunes son:
-f: No imprimirá mensajes de error, ni preguntará al usuario confirmación de cada archivo borrado.
-r: Borra los contenidos de directorios recursivamente.
Ejemplo de utilizacion sería:
sergio@par:~/Seminario$ rm -rf prueba/
sergio@par:~/Seminario$ ls
Shell Shell.sgml
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.10. El comando "whoami"
Este comando representa en pantalla el nombre de usuario que lo ejecuta. Parecerá una tontería pero cuando estas en varias máquinas diferentes y con distintos usuarios...
sergio@par:~/Seminario$ whoami
sergio
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.11. El comando "who"
Representa quien esta "logueado" en el sistema. Su uso es muy sencillo:
sergio@par:~/Seminario$ who
sergio tty1 May 4 14:43
sergio tty2 May 4 15:50
sergio :0 May 4 14:43
sergio pts/0 May 4 14:53 (:0)
sergio pts/1 May 4 14:55 (:0)
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.12. El comando "finger"
Este comando nos proporciona información sobre los usuarios del sistema.Algunas de sus opciones son:
-s: Proporciona informacion sobre el login, nombre real, nombre de la terminal en la que se encuentra y estado en el que se encuentra.
-l: Proporciona en forma de lista información de ultimos logins, si tiene correo y otros temas interesantes.
sergio@par:~$ finger -s
Login Name Tty Idle Login Time Office Office Phone
sergio el par *tty1 1:01 May 13 19:17
sergio el par *:0 May 13 19:09
sergio@par:~$
--------------------------------------------------------------------------------
5.13. El comando "df"
Provee información sobre la utilización del espacio en disco en los diferentes sistemas de archivos montados en el sistema. Para un sistema GNU/Linux, quedarse sin espacio libre es algo bastante grave, ya que muchos demonios y programas en general utilizan el directorio /tmp para guardar información mientras se ejecutan. La sintaxis de df es la siguiente:
df [opciones] [sistema de archivos]
Si no se provee del argumento sistema-de-archivo, df informará acerca de todos los sistemas de archivos montados y en funcionamiento. Las opciones de df mas relevantes son:
-h: Imprime la información de modo bastante más claro.
-i: Informar sobre la utilización de los nodos-i. Los nodos-i son estructuras internas del sistema de archivos, cuando éste se queda sin nodos-i libres, por mas que haya espacio libre en disco, no se podrán crear nuevos archivos hasta que se liberen nodos-i, generalmente esto no pasa a menos que se generen una enorme cantidad de archivos muy pequeños.
-k: Mostrar los tamaños en bloques de 1024 bytes.
-m: Mostrará los tamaños en bloques de mega bytes.
Un ejemplo de salida de este comando sería:
sergio@par:~/Seminario$ df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/hda6 5.5G 2.2G 3.0G 42% /
/dev/hda1 15M 14M 792k 95% /boot
/dev/hda5 1.8G 1015M 766M 57% /home
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.14. El comando "du"
du informa de la cantidad de espacio de disco usada por los ficheros especificados, y por cada directorio en las jerarquías cuyas raíces estén en los ficheros especificados. Su sintaxis es la siguiente:
du [opciones] archivo_o_ruta
Sus opciones más comunes son:
-a: Muestra números para todos los ficheros, no sólo directorios.
-b: muestra los tamaños en bytes.
-k: muestra los tamañs en kilobytes.
-h: un poco más amigable. Añade letra del tamaño.
sergio@par:~$ du -h /home/sergio/CVS/Seminario/
16k /home/sergio/CVS/Seminario/CVS
116k /home/sergio/CVS/Seminario
sergio@par:~$
--------------------------------------------------------------------------------
5.15. El comando "cat"
Muestra el contenido de un fichero. Veremos su gran utilidad en el tema de redirecciones.
sergio@par:~/Seminario$ cat ../firma.txt
Sergio Paracuellos
smpara@telefonica.net
sergio.paracuellos@hispalinux.es
GRupo de Usuarios Linux de
http://grulla.hispalinux.es
OpenRabbit License Power!
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.16. El comando "echo"
Su finalidad es mostrar mensajes, es decir, presenta un eco de sus argumentos en pantalla. Es muy util para mostrar valores de variables. Por ejemplo:
sergio@par:~/Seminario$ echo $DISPLAY
:0
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.17. El comando "date"
Mostrará la hora y fecha del sistema. Su sintaxis es la siguiente:
date [opcion] [+FORMAT]
FORMAT controla el formato con que se mostrará la fecha, alguna de las opciones de este argumento son:
%a: Día de la semana abreviado.
%A: Día de la semana completo.
%b: Nombre del mes abreviado.
%B: Nombre del mes completo.
%d: Día del mes.
%m: Número del mes.
%H: Hora en formato 24 horas.
%M: Minutos
%S: Segundos
Un ejemplo práctico sería:
sergio@par:~/Seminario$ date +"%A %d %B"
sábado 04 mayo
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
5.18. El comando gzip
Utilidad de compresión de ficheros. El archivo comprimido tendrá la extensión .gz. A diferencia de lo que estamos acostumbrados a ver en windows con este comando sólo no podemos realizar la compresión de varios ficheros en un solo, para eso necesitaremos la ayuda de un segundo comando de concatenación de ficheros que un poco más adelante trataremos.
astable@astable:~/seminario$ gzip ultimo.sgml
Si por el contrario queremos descomprimir un fichero comprimido anteriormente con este comando lo haremos de la siguiente manera:
astable@astable:~/seminario$ gzip -d ultimo.sgml.gz
--------------------------------------------------------------------------------
5.19. El comando gunzip
Utilidad para descompresión de ficheros. Realiza la acción contraria que gzip. Descomprime archivos .gz devolviendolos a su tamaño original. Equivale a ejecutar gzip -d 'fichero'.
astable@astable:~/seminario$ gunzip ultimo.sgml.gz
astable@astable:~/seminario$ gzip -d ultimo.sgml.gz
--------------------------------------------------------------------------------
5.20. El comando bzip2
Utilidad de compresión de archivos más potente que gzip. El modo de funcionamiento es el mismo. bzip2 'fichero' para comprimir y bzip2 -d 'fichero' para descomprimir. Los ficheros comprimidos con este comando tendrán la extensión .bz2.
astable@astable:~/seminario$ bzip2 ultimo.sgml
astable@astable:~/seminario$ bzip2 -d ultimo.sgml.bz2
--------------------------------------------------------------------------------
5.21. El comando tar
Comando para concatenar archivos en uno solo. Con este comando podemos crear un fichero que contenga una lista de ficheros concatenados, sin realizar ningún tipo de compresión. Pero podemos pasarle una serie de parámetros para que realice una compresión tanto de tipo gzip como bzip2.
tar -cf files.tar 'file1' 'file2' : Crea el archivo files.tar concatenando los archivos 'file1', 'file2', .. que le hemos pasado.
tar -xvf files.tar : Extrae los archivos que se encontraban concatenados dentro de files.tar.
tar -czf files.tar.gz 'file1' 'file2' : Crear el archivo files.tar concatenando los archivos 'file1', 'file2', .. que le hemos pasado y aplica una compresión de tipo gzip creando asi un fichero de salida files.tar.gz.
tar -cjf files.tar.bz2 'file1' 'file2' : Crear el archivo files.tar concatenando los archivos 'file1', 'file2', .. que le hemos pasado y aplica una compresión de tipo bzip2 creando asi un fichero de salida files.tar.bz2.
tar -xvzf files.tar.gz : Realiza una descompresión de tipo gunzip para después extraer los archivos que se encontraban concatenados dentro de files.tar.
tar -xvjf files.tar.bz2 : Realiza una descompresión de tipo bz2 para después extraer los archivos que se encontraban concatenados dentro de files.tar.
--------------------------------------------------------------------------------
5.22. El comando unzip
Otro comando de descompresión que resulta muy útil es unzip ya que nos permite descomprimir todos aquellos .zip que los amigos de windows nos envían a través de su winzip.
astable@astable:~/seminario$ unzip pantallazul.zip
Existe un comando de compresión zip, pero no resulta útil ya que con los formatos de compresión .gz y .bz2 nos basta incluso si queremos mandárselo a algún amigo de windows ya que se podrán abrir sin problemas con cualquier tipo de utilidad de compresión como puede ser el winzip o winrar.
--------------------------------------------------------------------------------
6. Comandos básicos de administración
A parte de todos los comandos vistos en la sección anterior, existen otros comandos que se usan ,mas a nivel de administración del sistema, ya sea para añadir eliminar usuarios y operaciones similares. Así pues veremos lo principal:
--------------------------------------------------------------------------------
6.1. El fichero /etc/fstab y su importancia a la hora de montar sistemas de archivos
En la sección anterior hemos visto como montar sistemas de archivos. El fichero fstab contiene información que describe los diversos sistemas de ficheros. Los programas sólo pueden leer fstab; el administrador del sistema es responsable de la creación y mantenimiento de este fichero. Cada línea describe un sistema de ficheros; los campos en cada línea están separados por tabs o espacios.
/etc/fstab: static file system information.
file system mount point type options dump pass
/dev/hda6 / ext2 defaults,errors=remount-ro 0 1
/dev/hda8 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto defaults,user,noauto 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0
/dev/hda1 /boot ext2 rw 0 2
/dev/hda5 /home ext2 rw 0 2
/dev/scd0 /grab iso9660 defaults,ro,user,noauto 0 0
La primera columna describe el dispositivo especial de bloque o sistema de ficheros remoto a ser montado.
La segunda columna describe el punto de montaje para el sistema de ficheros. Para particiones de intercambio (swap), este campo debe decir ``none''.
La tercera columna describe el tipo del sistema de ficheros. Actualmente, el sistema soporta nueve tipos de sistemas diferentes (minix,ext,ext2,iso9660,vfat,nfs...)
La cuarta columna describe las opciones de montaje asociadas con el sistema de ficheros.
La quinta columna lo utiliza el comando dump para determinar que sistemas de ficheros necesitan ser volcados (dumped). Si el quinto campo está vacío, dump asume que el sistema de ficheros no necesita ser volcado.
La sexta columna lo usa el programa fsck para determinar el orden en elm cual se van a chequear los sistemas de ficheros cuando el sistema arranca.
Así pues y con este fichero correctamente configurado por el administrador un usuario solo tendrá que hacer un mount /cdrom para acceder al mismo.
--------------------------------------------------------------------------------
6.2. Añadiendo usuario en el sistema: el comando "adduser"
Este comando se usa para añadir usuarios que puedan acceder al sistema. Podemos ver que esto es bastante sencillo:
par:/home/sergio/Seminario# adduser ejemplo
Adding user ejemplo...
Adding new group ejemplo (1002).
Adding new user ejemplo (1002) with group ejemplo.
Creating home directory /home/ejemplo.
Copying files from /etc/skel
Enter new UNIX password:
Ahora deberemos meter una contraseña para el usuario y luego repetirla apra su confirmación. Nos pedirá informacion afcerca del usuario pero es opcional.
Un usuario puede cambiar su contraseña en cualquier momento. sto lo haría con el comando "passwd". Este comando pedirá la contraseña actual, la nueva y que sea confirmada.
--------------------------------------------------------------------------------
6.3. El comando "userdel"
Este comando, como se puede apreciar, borra un usuario existente en el sistema. Podemos hacerlo así:
par:/home/sergio/Seminario# userdel -r ejemplo
par:/home/sergio/Seminario#
Con la opción -r le estamos diciendo que borre tanto el directorio home de este usuario como su directorio de mail.
--------------------------------------------------------------------------------
6.4. Los comandos "addgroup" y "delgroup"
De manera análoga a los usuarios operariamos con los grupos. El control de grupos en un sistema Linux está en el /etc/group.
--------------------------------------------------------------------------------
6.5. Otros comandos similares
Otros comandos de los que recomiendo se mire el manual y que no vamos a tratar son:
usermod: modifica una cuenta de usuario.
groupmod: modifica un grupo.
--------------------------------------------------------------------------------
6.6. Un tema muy importante: los permisos de ficheros
Al ser Linux un sistema multiusuario aparece el problema de la privacidad de información. Así cada fichero posee un codigo de 9 bits para regular su acceso. El esquema empleado consiste en dividir el universo de usuarios que ve cada fichero en tres clases:
La clase u (user), formada sólo por el dueño del fichero.
La clase g (group), formada por todos los usuarios que pertenecen al mismo grupo del dueño.
La clase o (others), formada por el resto del universo.
Existen tres formas de acceder a un fichero: lectura, escritura y ejecución. Así los 9 bits de protección de acceso de cada fichero se encuentran divididos en 3 grupos de 3 bits. Cada grupo de 3 bits indica acceso a u,g,o, respectivamente y cada bit de cada grupo indica:
bit 1 (r), permiso de lectura.
bit 2 (w), permiso de escritura.
bit 3 (x), permiso de ejecución.
Si hacemos un ls -l en algún directorio, podremos ver que permisos tienen los ficheros contenidos en dicho directorio. Así, si vemos:
sergio@par:~/Seminario$ ls -l
total 20
-rw-r--r-- 1 sergio sergio 18074 may 4 19:15 Shell.sgml
sergio@par:~/Seminario$
Entonces el fichero Shell.sgml puede ser leido y escrito por el usuario sergio, pero simplemente leido por su grupo y resto de usuarios.
--------------------------------------------------------------------------------
6.6.1. El comando "chmod"
Podemos establecer permisos a cualquier fichero o directorio nuestros mediante este comando. Esto lo haremos poniendo el bit de quien queremos que puede hacer algo nuevo (o deje de hacerlo) en el fichero(r,w,x) mediante los signos + y -. Esto es:
sergio@par:~/Seminario$ chmod go+w Shell.sgml
sergio@par:~/Seminario$ ls -l
total 20
-rw-rw-rw- 1 sergio sergio 18074 may 4 19:15 Shell.sgml
sergio@par:~/Seminario$
Si queremos hacerlo de todos (u,g,o) usaremos "a".
Otra forma de hacer esto mismo es mediante numeros, pero no la voy a tratar, pues con esto considero que sobra.
--------------------------------------------------------------------------------
6.6.2. El comando "chown"
Para establecer quién es el propietario y a que grupo pertenece un determinado fichero. Esto lo haremos de la siguiente forma:
chown [-R] usuario:grupo fichero
Ejemplo de esto sería:
par:/home/sergio/Seminario# chown root:root Shell.sgml
par:/home/sergio/Seminario# ls -l
total 20
-rw-rw-rw- 1 root root 18074 may 4 19:15 Shell.sgml
par:/home/sergio/Seminario#
Ahora el root es el dueño del fichero. También pertenece al grupo root.
--------------------------------------------------------------------------------
6.7. Control muy básico de procesos
En esta sección veremos que es un proceso asi como ver como controlarlos a pequeña escala.
--------------------------------------------------------------------------------
6.7.1. ¿Qué es exactamente un proceso?
Un proceso es una instancia de un programa en ejecución y también la unidad básica de planificación en linux.Lo consideraremos como un programa en ejecución.
--------------------------------------------------------------------------------
6.7.2. El comando "ps"
Es un comando para visializar el estado de un proceso. Sin argumentos muestra el identificador de proceso (PID) de la bash sobre la que se esta ejecutando así como el propio PID del comando ps lanzado:
sergio@par:~$ ps
PID TTY TIME CMD
591 pts/1 00:00:00 bash
594 pts/1 00:00:00 ps
sergio@par:~$
Tiene multiples opciones, las mas usadas son:
-A: Mostrará todos los procesos en ejecución.
-a: bash en las que se ejecutan incluidos otros usuarios.
Veremos que tambien podemos fitrar los procesos.
--------------------------------------------------------------------------------
6.7.3. El comando "top"
Este comando nos permite una vision en tiempo real de lon que esta ocurriendo con los procesos que hay en ejecución, diciendono la cpu que usan asi como la memoria y otros datos muy interesantes.
10:25:45 up 44 min, 5 users, load average: 0.06, 0.01, 0.02
91 processes: 90 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 1.8% user, 2.8% system, 0.0% nice, 95.5% idle
Mem: 255816K total, 248560K used, 7256K free, 6872K buffers
Swap: 96352K total, 0K used, 96352K free, 164400K cached
...
--------------------------------------------------------------------------------
6.7.4. Como matar procesos. El comando "kill"
A este comando se le pasa una señal. Si no se hace la señal por defecto es "TERM".Para ver las señales de las que disponemos lo haremos cpn el flag -l:
sergio@par:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
...
62) SIGRTMAX-1 63) SIGRTMAX
sergio@par:~$
Para terminar completamente con la ejecucion de un proceso lo haremos con kill -9 PID.
--------------------------------------------------------------------------------
6.8. Compilando un paquete fuente.
En linux podemos obtener paquetes de software de dos formas diferentes: o bien con el código fuente sin compilar, o bien paquetes precompilados a los que llamamos binarios. En este tema nos ocupa como compilar un paquete fuente. Pues bien para ellos una vez que tenemos el paquete fuente bajado lo descomprimimos como hemos aprendido anteriormente. Un vez hecho esto debemos leernos siempre el README o el INSTALL que vienen habitualmente con los fuentes. Allí viene claramente explicado cómo se compila. En general esta compilación la hacemos en 3 fases:
./Configure: Chequea en busca de librerias y cosas necesarias para construir el Makefile que nos permitirá compilar el paquete. Con --prefix=/directorio le diremos donde queremos que deje el resultado de la operación.
make: Compilación en si del paquete en nuestra máquina. Utiliza el Makefile creado.
make install: Esto se debe hacer como root, ya que es la instalación del paquete en nuestra máquina.
--------------------------------------------------------------------------------
6.9. Gestores de paquetes: DPKG y RPM
Si en vez de paquetes fuentes lo que tenemos en mano es un paquete precompilado o binario utilizaremos los gestores de paquetes. Existen principalmente dos claramente diferenciados: El DPKG (Debian Package) que es el gestor de paquetes de debian, y el RMP (RedHat Packet Manager) que han adoptado muchas distribuciones y está muy extendido.
--------------------------------------------------------------------------------
6.9.1. Instalando binarios.
Tanto en debian como en red hat y sus derivadas esto lo haremos con el flag -i:
dpkg -i paquete.deb
rpm -i paquete.rpm
--------------------------------------------------------------------------------
6.9.2. Eliminado binarios.
También en este caso lo hacemos del mismo modo en ambas: con el flag -r
dpkg -r paquete.deb
rpm -r paquete.rpm
--------------------------------------------------------------------------------
6.9.3. Listando paquetes instalados
En debian lo haríamos con el flag -l mientras que en red hat lo hacemos con el flag -qa (que recuerde).
dpkg -l
rpm -qa
--------------------------------------------------------------------------------
7. Filtrando y redireccionando comandos
7.1. Redirección entrada-salida
En linux la forma de realizar redirecciones es fuertemente dependiente de la shell utilizada; pero, para se pueden destacar las características comunes a todas ella que son, ala vez, las más utilizadas. En principio, cada proceso tiene asociadas 3 vias de entrada/salida estándares:
Una salida estándar (STDOUT) que se encuentra por defecto conectada al terminal (pantalla) asociado al proceso
Una entrada estándar (STDIN), que por defecto se encuentra asociada al mismo terminal (teclado).
Una salida de error (STDERR), que por defecto se encuentra conectada con
Es posible modificar el comportamiento de las entradas y salidas estándares. Por ejmplo podemos hacer que el resultado de un ls no se muestre por pantalla sino que se guarde en un archivo, que examinaremos mñás tarde. Esto se consigue mediante la redirección de entrada-salida. Para ello disponemos de los siguientes operadores: > y <
sergio@par:~/Seminario$ ls > fich
sergio@par:~/Seminario$ ls
fich Shell shell.html Shell.sgml
sergio@par:~/Seminario$ cat fich
fich
Shell
shell.html
Shell.sgml
sergio@par:~/Seminario$
El comando "cat" puede ser muy útil para estas cosas.
A la hora de redirigir la salida de un comando a un fichero puede ser de gran utilidad no sobreescribir dicho fichero, sino concatenar el resultado del comando a continuación del contenido del fichero. Para ello tenemos el operador >>.
--------------------------------------------------------------------------------
7.2. Tuberias o pipes
Una vez conocemos el concepto de entrada-salida, inmediatamente se nos vienen a la cabeza cómo enlazar comandos uno tras otro. Por ejemplo, si queremos ver cuantos archivos hay en nuestra cuenta, con lo explicado hasta ahora tendríamos que hacer lo siguiente:
sergio@par:~/Seminario$ ls -la > fich
sergio@par:~/Seminario$ wc -l <>
8
sergio@par:~/Seminario$
Esto mismo se puede conseguir sin mas que redirigir la salida del primer comando a la entrada del segundo, ahorrandonos la creación del fichero fich. Para ello usamos el operador | :
sergio@par:~/Seminario$ ls -la | wc -l
8
sergio@par:~/Seminario$
Esto, como se puede apreciar es una forma muy potente de comunicación entre procesos y se le conoce con el nombre de pipe. La forma de ejecución de ambos procesos será concurrente (en paralelo).
--------------------------------------------------------------------------------
7.3. Algunos comandos para filtrar información.
Vamos a ver a que clase de comandos nos referimos
--------------------------------------------------------------------------------
7.3.1. El comando "grep"
Escribe en la salida estándar aquellas líneas que concuerden con un patrón. Es muy utilizado para filtrar el resultado de comandos mediante una pipe.
Algunos de los parámetros mas utilizados son:
-c: numero de lineas capturadas.
-l: visualizar solo nombres de ficheros solo con lineas capturadas.
-v: extraer todas las lineas menos las que corresponden con el patrón.
-w: búsqueda de expresiones como una palabra.
Por ejemplo si queremos ver cuantas veces esta logueado sergio en nuestra máquina haremos:
sergio@par:~/Seminario$ who | grep sergio | wc -l
6
sergio@par:~/Seminario$
--------------------------------------------------------------------------------
7.3.2. El comando "wc"
Este comando sirve para contar. Lo añado porque he hecho uso de él en otras secciones.
--------------------------------------------------------------------------------
8. Uso muy básico del editor vi
El uso de vi es más tema del seminario de scripting pero como tenemos que editar algun que otro fichero es bueno conocer un poco como funciona.
--------------------------------------------------------------------------------
8.1. Modos de vi
En vi podemos distinguir dos modos: el modo comando, donde vi atiende a toda clase de comandos conocidos por el; y el modo edición que sería el propio modo de escribir.
Abrimos vi y se abre en modo comando. Introducimos la letra i (INSERT) y podremos empezar a escribir. Para volver al modo comando pulsaremos la tecla "Esc".
--------------------------------------------------------------------------------
8.2. Algunos comandos de vi
Cabe destacar:
i: Empezar a insertar en esa posición.
a: Empezar a insertar una posición mas adelante.
x: Borrar una letra.
dd: Borrar una linea.
dw: Borrar una palabra.
Y: copiar una linea.
p: pegar lo copiado.
:q!: Salir sin guardar los cambios.
:x ó :wq ó ZZ: Salir guardando los cambios.
Con esto sobra para empezar.
--------------------------------------------------------------------------------
9. Man
En cualquier distribución de Linux nos encontraremos con las páginas man. En estas páginas se encuentra la ayuda on-line en forma de manual para todos los comandos de Linux que tengamos disponibles desde nuestra máquina y son accesibles a través del comando man. Es una ayuda muy completa donde se nos explica que hace el comando, sus diferentes parámetros a la hora de ejecutarlo, algunos ejemplos y comandos y archivos relacionados. Para acceder a la página de ayuda del comando que queramos, por ejemplo del comando ls, no tendremos mas que ejecutar el ejemplo de abajo desde la shell en cualquier instante y desde donde estemos. El siguiente ejemplo nos muestra la página man del comando ls:
astable@astable:~$ man ls
Alguna vez nos puede pasar que queremos buscar algo que no es exactamente un comando pero tiene que ver con algún otro comando o fichero de configuración relevante en nuestro sistema. Podremos realizar una búsqueda algo más detallada a lo largo de todas las páginas man.
man -k 'cadena' : Nos dará una lista de las páginas man que contienen la cadena especificada.
astable@astable:~$ man -k printf
--------------------------------------------------------------------------------
10. Referencia de programas Shell
10.1. BitchX
El mejor cliente de IRC en modo texto para Linux. Tiene soporte para múltiples ventanas de entre las cuales puedes cambiar lo que te permite estar conectado en varios canales a la vez e incluso en más de un servidor diferente simultáneamente, además es infinitamente configurable. Se pueden definir libremente una serie de variables de entorno para fijar algunos parámetros por defecto como son tu nick, el servidor a conectar y algun otro dato más asociado a ti.
IRCNICK : El nick que usarás mientras estés conectado.
IRCSERVER : El servidor al que conectará al ejecutarlo.
IRCUSER y IRCNAME : Datos asociados a tu nick.
--------------------------------------------------------------------------------
10.2. irssi
Cliente de IRC en modo texto muy parecido al BitchX.
--------------------------------------------------------------------------------
10.3. Lynx
Navegador de internet en modo texto. Más rápido que cualquier navegador gráfico con el incoveniente de que no se cargan las imágenes mientras visitas la página.
--------------------------------------------------------------------------------
10.4. Links
Navegador de internet en modo texto parecido al lynx. Soporta tablas, frames y descarga de ficheros en segundo plano.
--------------------------------------------------------------------------------
10.5. wget
Gestor de descargas en modo texto. Soporta resume y listas de ficheros a descargar además de muchas más cosas.
--------------------------------------------------------------------------------
10.6. ftp
Cliente ftp en modo texto. Su uso es el de cualquier cliente ftp.
--------------------------------------------------------------------------------
10.7. telnet
Programa para conexiones remotas a máquinas que tengan funcionando un servidor telnet.
--------------------------------------------------------------------------------
10.8. ssh
Programa para conexiones remotas a otros hosts que tengan funcionando un servidor ssh. Como el telnet pero con envío cifrado de datos para proporcionar una mayor seguridad.
--------------------------------------------------------------------------------
10.9. pine
Programa de correo basado en las librerias ncurses. Con bandeja de entrada y de mensajes enviados entre otros.
--------------------------------------------------------------------------------
10.10. ari-yahoo
Yahoo! messenger para Linux en modo texto. Necesitas tener una cuenta Yahoo! para poder empezar a usarlo.
--------------------------------------------------------------------------------
10.11. zgv
Visor de imágenes para la shell. Te permite navegar entre tus directorios y poder visualizar perfectamente cualquier imagen.
--------------------------------------------------------------------------------
10.12. mplayer
Te permite ver tus películas divx desde la línea de comandos perfectamente a la vez que realizas cualquier otra tarea. Es necesaria una configuración previa a nivel de kernel además de su correcta instalación poder empezar a visualizar las películas. Si quieres saber como poder ver divx con mplayer visita la sección de documentación de GrULLA donde puedes encontrar un artículo de uno de los autores de este seminario.
--------------------------------------------------------------------------------
10.13. mpg321
Reproductor libre de mp3 para la línea de comandos. Se trata de un clon libre del mpg123, que es otro reproductor también disponible para Linux.
Estas son algunas de las opciones más usadas:
-@ 'lista' : Reproduce una lista de canciones. 'lista' es el listado de los ficheros de las canciones.
-Z : Reproducción aleatoria para la lista o secuencia de ficheros a reproducir.
--------------------------------------------------------------------------------
10.14. mp3blaster
Reproductor de mp3 con un interface en modo texto muy completo al estilo de cualquier reproductor gráfico que exista pudiendo manejar listas de canciones, crear nuevas listas, botones de play, stop, next,... y muchas opciones para controlar la música.
No incluimos ningún parámetro de ejecución ya que el programa dispone de menú propio desde donde se pueden realizar todo tipo de acciones.
--------------------------------------------------------------------------------
10.15. cdplay
Con cdplay puedes escuchar tus cd's de música desde la línea de comandos. Este comando pertenece al paquete cdtools el cual incluye además de este comando, otros tantos para manejo de cd's de música como pueden ser cdstop, cdeject, cdinfo y alguno más.
Para su ejecución deberemos indicar el dispositivo de cdrom donde se encuentra el cd que queremos escuchar. Para que su uso no sea pesado, es común crearse el siguiente alias para que su ejecución sea más sencilla:
astable@astable:~$ alias cdplay='cdplay -d /dev/cdrom'
Siendo /dev/cdrom el dispositivo de cdrom que usaremos para escuchar los cd's.
--------------------------------------------------------------------------------
10.16. aumix
Con este comando podrás ajustar los valores para tu dispositivo de audio desde la línea de comandos. Volumen general, volumen de grabación, volumen de micrófono, balance, etc... Lo puedes manejar tanto con el teclado como con el ratón si tienes funcionando gpm.
--------------------------------------------------------------------------------
10.17. cdrecord
La mejor utilidad para grabar cd's que he visto hasta ahora. Te permite crear cd's de datos y de música a partir de los .wav. En GrULLA puedes encontrar un artículo muy bueno donde se explica con detalle como configurar tu Linux y como manejar cdrecord para copiar tus cd's.
--------------------------------------------------------------------------------
10.18. cdparanoia
Utilidad de extracción de canciones de los cd's de música. Con esta utilidad podrás extraer cada una de las canciones de un cd de música para pasarlas a tu disco duro en formato .wav.
Estas son las opciones más comunes para un uso básico de cdparanoia
-vsQ : Realiza un escaneo de tus unidades y te muestra un listado de las canciones encontradas.
-vsBZ 'n-m' : Extrae todas las canciones una a una (B) sin realizar ningún chequeo (Z) para mayor velocidad. Donde n y m son el número de las canciones entre las que queremos extraer, incluidas éstas.
Por ejemplo, si queremos extraer todas las canciones de un cd que contiene 17 canciones y queremos guardarlas cada una en un .wav diferente, haremos:
astable@astable:~/disco1$ cdparanoia -vsBZ 1-17
--------------------------------------------------------------------------------
10.19. lame
Utilidad para pasar tus .wav a mp3 o viceversa, desde la línea de comandos.
Estas son las opciones más comunes para un uso básico de lame:
-h input.wav : Convertirá el fichero .wav a otro fichero .mp3.
-h --decode input.mp3 : Pasará el fichero de entrada .mp3 a otro fichero de salida .wav.
Supongamos que queremos pasar a mp3 un fichero .wav extraído de nuestro cd con el cdparanoia:
astable@astable:~/disco1$ lame -h track01.wav
Ahora lo que queremos es pasar un .mp3 a .wav para luego pasarlo a cd con el cdrecord:
astable@astable:~/disco1$ lame -h --decode herewego.mp3
--------------------------------------------------------------------------------
10.20. gpm
Pequeño programa que te permite el uso de ratón en la consola de tu sistema Linux. Te proporciona un cursor con el que podrás copiar y pegar cualquier texto que tu enmarques a tu consola e incluso a otras consolas que tengas activas. Antes de comenzar a usarlo se te pedirá la configuración por lo que tendrás que saberte bastante bien la configuración para tu ratón. También deberías saber que en algunos casos te puede causar problemas con el ratón funcionando en tus X y debe ser desactivado.
El comando para la configuración una vez instalado es: gpmconfig. Te puede ser útil si alguna vez decides cambiarla.
--------------------------------------------------------------------------------
10.21. Herramientas de desarrollo
Además de todos los programas que hemos citado en esta sección, podemos encontrar todo tipo de herramientas de desarrollo. Podemos encontrar compiladores de los lenguajes más extendidos: java, C, C++, Pascal, ensamblador, ...
javac : Compilador de java.
gcc : Compilador de C.
g++ : Compilador de C++.
--------------------------------------------------------------------------------
11. Otras fuentes: bibliografía
http://lucas.hispalinux.es/Cursos/distro/intermedio/html/node1.html