Professional Documents
Culture Documents
1
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Libro A
Historia de GNU/Linux
A principios de los años 90 el Sr. Linus Torvalds era estudiante en la universidad de Finlandia que
empezó a hacer algunos experimentos de código con su computadora. Conforme el sistema creció
en complejidad Linus cayó en cuenta de que lo que tenía entre sus manos era un núcleo
rudimentario para un sistema operativo. Sabiendo que el continuar desarrollando este sistema era
una labor de equipo, invitó a través del Internet a quienes desearan participar en mejorar el
sistema.
Años antes, tras ver que el crear una sencilla utilería para compartir impresoras le metía en
problemas legales, Richard Stallman pensó que debería existir la manera de compartir programas y
su código para mejorar algún software entre un grupo de programadores, y estableció la
organización Free Software Foundation, donde se dieron a la tarea de ir creando poco a poco un
sistema operativo al que bautizaron como “GNU”, que quiere decir “GNU is Not Unix”. Ellos fueron
entonces desarrollando el compilador gcc y utilerías tales como el editor de texto EMACS y algunos
otros programas.
Como para entonces la organización Free Software Foundation había empezado a elaborar algunas
herramientas que utilizarían a futuro, se vio que esas herramientas agregadas a lo que había hecho
Linus daban por resultado un sistema operativo completo aunque sencillo en ese punto. Haciendo
un símil, Linus tenía el motor mientras que GNU tenía el resto del automóvil, por lo que el sistema
resultante se debe llamar GNU/Linux, aunque generalmente se le conoce como Linux.
Conforme ha ido pasando el tiempo Linux ha crecido hacia ser el sistema operativo para servidores
e incluso ahora como sustituto de sistemas operativos comerciales de escritorio, tales como
Windows.
Distribuciones de Linux
Una distribución, también llamada comúnmente “distro”, es un conjunto de programas hechos por
diferentes empresas, organizaciones y/o personas para que trabajen con GNU/Linux y de esa
manera tener un sistema operativo completo.
La base de cada distribución incluye el núcleo Linux, con las bibliotecas y herramientas del proyecto
GNU, en conjunto con la plataforma Xfree86 o Xorg para las interfases gráficas (esto se verá a
detalle un poco más adelante).
Las distribuciones se pueden obtener a través de Internet (HTTP y/o FTP), a través de las
comunidades locales (con su respectivo cambio de CD en blanco) o comprando los CDs, los cuales
contendrán sus manuales respectivos que nos facilitarán el proceso de instalación y aprendizaje.
Existen más de 400 distros y un buen lugar para obtener información sobre ellas es
http://www.distrowatch.com. A continuación algunas de las más populares.
2
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Fedora/RedHat Linux
Fedora Core es la distribución libre y gratuita que sustituye a las versiones nuevas de RedHat
Linux. El objetivo del proyecto es conseguir un sistema operativo de propósito general y basado
exclusivamente en software libre con el apoyo de la comunidad Linux. Es un proyecto patrocinado
en su mayoría por RedHat y la comunidad del software libre, en donde los individuos y las
organizaciones tienen la misma oportunidad de colaborar, trabajando en conjunto con el fin de
desarrollar un sistema operativo que provea la última tecnología disponible adoptando y ayudando
a diseñar nuevas características y actualizaciones de aplicaciones, bajo una plataforma robusta
para el desarrollo de programas a su vez.
Características:
• La instalación es en modo gráfico o texto
• Utiliza el sistema de administración de paquetes RPM (RedHat Package Manager)
• Utiliza el sistema Yum para actualizaciones (modo consola)
• Utiliza el sistema up2date para actualizaciones (modo gráfico)
• Es una distribución muy robusta
• Liberan de 2 a 3 versiones por año
• Versión actual: Core 5 (Bordeaux)
Recursos:
• http://fedora.redhat.com
• http://www.fedora-es.com
• http://freshrpms.net
• http://www.redhat.es/fedora
Debian GNU/Linux
Debian GNU/Linux es un sistema operativo libre, desarrollado por más de mil voluntarios de todo el
mundo quienes colaboran vía Internet para su trabajo. La dedicación de Debian al software es de
naturaleza no lucrativa, y su sistema de naturaleza abierta lo hacen único entre los distribuidores
de GNU/Linux. El origen de la palabra “Debian” viene del nombre de su creador Ian Murdock y su
esposa Deborah.
Características:
• La instalación presenta algunas dificultades
• Es muy estable
• Utiliza el sistema Apt-Get para instalar paquetes
• Tarda mucho en liberar versiones nuevas
• Está disponible para varias plataformas de hardware
• Tiene un gran repositorio de software
• Ideal para usuarios avanzados
• Versión actual: 3.1 (“sarge”)
Recursos:
• http://www.debian.org
• http://www.laespiral.org
• http://www.esdebian.org
• http://www.debianmexico.org
3
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Ubuntu Linux
Ubuntu debe su nombre al movimiento homónimo encabezado por el obispo Desmond Tutu, el cual
ganó el Premio Nobel de la Paz en 1984 por su lucha en contra del Apartheid en Sudáfrica. Está
detrás la empresa Canonical Ltd., propiedad de Mark Shuttleworth (millonario australiano que dio
el primer paseo espacial de pago), quien es sudafricano de nacimiento y por lo tanto se
encontraba muy familiarizado con la corriente. Tras ver similitudes entre los ideales de los
proyectos GNU, Debian y en general con el movimiento de software libre, decidió aprovechar la
ocasión para difundir los ideales de ubuntu.
Características:
• Está basada en Debian
• Es absolutamente libre de cargo
• Cuenta con un solo CD para la instalación
• Utiliza por default el entorno gráfico Gnome
• Fácil instalación aun sin tener instalador gráfico
• Utiliza el sistema Apt-Get para actualizaciones e instalación de programas (modo consola)
• Utiliza el programa Synaptic para actualizaciones e instalación de programas (modo
gráfico)
• La idea es liberar una nueva versión cada 6 meses
• Es la distribución de moda
• Ideal para principiantes
Recursos:
• http://www.ubuntulinux.org
• http://www.ubuntu-es.org
• http://www.tod-os.com/ubuntu/phpBB2
Mandriva Linux
Mandriva Linux (antes Mandrake Linux) fue creada en 1998 con el objetivo de hacer Linux más
fácil de utilizar para todo el mundo. En ese tiempo, Linux era ya bastante conocido como un
potente y estable sistema operativo que requería de fuertes conocimientos técnicos y un amplio
uso de la "línea de comando"; Mandriva vió esto como una oportunidad para integrar los mejores
entornos gráficos de escritorio y proveer sus propias utilidades de configuración gráficas y
rápidamente llegó a ser conocida por establecer el estándar en facilidad de uso y funcionalidad.
Características:
• Está basada en RedHat Linux 5.1
• Utiliza por default el entorno gráfico KDE
• El proceso de instalación es gráfico, muy sencillo
• Tiene un avanzado y eficiente sistema de reconocimiento de hardware
• Ofrece varios niveles pre-configurados de seguridad
• Utiliza un sistema de configuración centralizado (Centro de Control Mandriva)
• Incluye una gran cantidad de programas
• Está disponible en 74 idiomas
• Ideal para principiantes sin conocimiento de informática
• Versión actual: Mandriva One
4
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Recursos:
• http://www.mandrivalinux.com
• http://www.mandriva.com
• http://blogdrake.net
Slackware Linux
Características:
• Ideal para usuarios intermedios y avanzados
• Estable y segura
• Interfase de instalación en modo texto muy sencillo
• Distribución de paquetes en archivos comprimidos (TarGZ)
• Utiliza el programa pkgtool (modo texto) para la administración de paquetes
• Las actualizaciones se hacen con los programas Swaret y Slap-Get (línea de comandos)
• Es la distribución más parecida a UNIX
• La mayoría de las configuraciones son a mano
• La curva de aprendizaje es mayor que en otras distribuciones
• "When you know Slackware, you know Linux...when you know RedHat, all you know is Red
Hat." (“Cuando sabes Slackware, sabes Linux...cuando sabes Red Hat, lo único que sabes
es Red Hat.”)
• Versión actual: 10.2
Recursos:
• http://www.slackware.com
• http://www.eslackware.com
• http://www.linuxpackages.net
• http://www.tuxjm.net
Knoppix
KNOPPIX es un sistema que puede iniciar desde el CD o DVD (LiveCD). Consiste en una colección
representativa de software de GNU/Linux, detección automática de hardware y ayuda para
muchas tarjetas de video, tarjetas de sonido, dispositivos de SCSI y de USB y otros periféricos.
KNOPPIX se puede utilizar como sistema productivo de Linux para el CD de escritorio, educativo,
sistema del rescate o adaptar y utilizar como plataforma para los demos comerciales del producto
de software. No es necesario instalar algo en el disco duro, debido a que todo se encuentra
contenido en el CD quien provee los programas a través de la descompresión en marcha. El CD
puede tener hasta 2 GB de software ejecutable instalados en él (el excedente 8GB en la edición de
DVD "Maxi").
Características:
• Está basada en Debian
• Ideal para enseñar y mostrar el sistema Linux
5
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Recursos:
• http://www.knopper.net/knoppix/index-en.html
• http://www.knoppix-es.org
SuSE Linux
Recientemente comprada por Novell, la alemana SuSE es una de las distros más populares. Suse
es el acrónimo del alemán “Software- und Systementwicklung”, que se traduce como “desarrollo
de software y sistemas”.
Características:
• La instalación es en modo gráfico y muy sencilla
• Tiene un diseño atractivo
• KDE es el entorno gráfico por defecto
• Utiliza el sistema de administración y configuración Yast (Yet Another Setup Tool)
• Incluye una gran cantidad de programas
• Utiliza el sistema de paquetes RPM
• Es una distribución comercial
• Es ideal para usuarios principiantes
• Versión actual: 10.0
Recursos:
• http://www.novell.com/products/linuxprofessional
• http://www.forosuse.org
• http://www.suselinuxsupport.de
6
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
A diferencia del sistema operativo comercial más popular, donde existe una sola manera de
manejar las ventanas en la interfase gráfica (la que diga Microsoft) y un escritorio para cada versión
de Windows, en Linux existen dos servidores de X Windows, así como varios manejadores de
ventanas y algunos escritorios, siendo posible que un mismo equipo tenga instalados más de uno
de cada uno de ellos.
Servidores de X Windows:
Escritorios:
• KDE: Este escritorio es la mejor opción para migrar hacia Linux pues es bastante similar a
Windows. Es la interfase gráfica predeterminada de la mayoría de las distribuciones actuales.
7
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
• GNOME: Originalmente desarrollado por el mexicano Miguel De Icaza, este escritorio es más
ligero que KDE, por lo que es una excelente opción para equipos no tan nuevos.
• XFCE: Este escritorio ultra-ligero se utiliza tanto en equipos con capacidades limitadas como
en distribuciones para usarse en CD del tamaño de una tarjeta de presentación, o en discos
portátiles USB.
Sistema de archivos
En Linux los archivos NO están organizados a partir de los discos físicos como en Windows. La
estructura de archivos de Linux es un árbol donde las ramas pueden estar en diferentes discos,
incluso en diferentes computadoras dentro de una red.
8
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Usuarios y permisos
Linux es un sistema operativo de servidores creado para trabajar varias personas simultáneamente
en la misma computadora. Existe un usuario especial llamado “root” o superusuario que tiene
acceso completo a todo el sistema. Los demás usuarios generalmente tienen un directorio dentro
de /home en el cual pueden guardar su información. Al directorio /home/usuario también se le
conoce como ~ (tilde).
id
Entrar: usuario@sistema$ id
date
Entrar: $ date
9
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
su
Uso: $su -l usuario
Opciones comunes Parámetros
--help Mostrar ayuda Sin especificar usuario se cambia al super-usuario
(root)
Cada archivo pertenece a algún usuario o un grupo. Los permisos para cada archivo pueden ser de
lectura, escritura y ejecución, esto aplicando al propietario del archivo, luego al grupo, y por último
a cualquier otra persona que se encuentre en el equipo y que no sea el propietario o miembro del
grupo al que pertenece el archivo.
Existen dos formas de ver los permisos: con letras como en un listado normal dentro de la línea de
comandos, o a través de una clave numérica.
En el caso de los permisos con números, se utiliza una cifra para indicar el tipo de permiso. Estas
cifras se obtienen sumando los códigos correspondientes a cada parte del permiso.
Los valores posibles son 0, 4 para sólo lectura, 5 para lectura/ejecución, 6 para lectura/escritura, y 7
para todos los permisos.
Archivos Ocultos
En Linux se le llama archivo oculto a aquél cuyo nombre empieza con un punto. El ocultarlo del
resto de los usuarios requiere un cambio en los permisos del archivo, lo que es independiente de su
nombre.
10
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Dentro de su propio ~, o home, cada usuario puede grabar archivos, leer (abrir) archivos y ejecutar
programas, así como cambiar los permisos de sus propios archivos.
Por ejemplo, en $ ls -l /home, “ls” es el comando, “-l” la opción y “/home” el parámetro. Las
opciones del tipo “-x” donde X es el parámetro se pueden agregar: “-xyz” donde “y” y “z” son otras
opciones.
$ ls -l /home
*IMPORTANTE: Las opciones con mayúsculas o con minúsculas tienen significados diferentes.
Comando touch
Cambia las fechas de acceso o modificación de un archivo. Si se usa con un nombre de archivo
inexistente lo crea, que es de hecho uno de sus usos más comunes.
touch
Uso: $touch opciones archivo1 archivo2...
Opciones comunes Parámetros
-a Cambia la hora de acceso Archivos o directorios separados por UN espacio
-m Cambia la hora de modificación
-c NO crea un archivo nuevo si el nombre no existe
11
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
touch
-d Ajusta la fecha sin hora
-t Ajusta la fecha con hora
Ejemplo:
Crear un nuevo archivo en blanco, y cambiarle la fecha y hora
$ touch archivoenblanco
$ touch -t “19681002300” archivoenblanco
Comando chmod
Cambia los permisos de un archivo. El archivo tiene que ser de la propiedad de usuario que le
quiere cambiar de permisos, o este usuario debe ser root.
chmod
Uso: $chmod permisos archivo1 archivo2...
Opciones comunes Parámetros
permisos numéricos Número de tres cifras con el Archivos o directorios separados por UN espacio
nuevo permiso a asignar, v.gr. 644, 777, etc.
permisos diferenciales Letras que agregan o
quitan permisos con respecto a los que el archivo ya
tiene, por ejemplo u+x (agregar permiso de ejecución
al usuario), g-w (quitar permiso de escritura al grupo)
o ugo+rwx (agregar todos los permisos para todos).
-c Pedir que el sistema indique qué archivos está
modificando
--help Mostrar un breve recordatorio de las opciones
de este comando
-R Cambio recursivo: modificar también
subdirectorios
Ejemplo:
Darle todos los permisos a un archivo (tres opciones):
$ chmod 777 archivoenblanco
$ chmod ugo+rwx archivoenblanco
$ chmod a+rwx archivoenblanco
Comando chown
Cambia la propiedad (el dueño) de un archivo. El usuario debe ser root.
chown
Uso: #chown opciones nuevopropietario:nuevogrupo archivo1 archivo2...
Opciones comunes Parámetros
-c Pedir que el sistema indique qué archivos está El nuevo propietario y nuevo grupo separados por dos
modificando puntos “:”, y los archivos o directorios sobre los que
se aplicará el cambio separados por UN espacio
--help Mostrar un breve recordatorio de las opciones
de este comando
-R Cambio recursivo: modificar también
subdirectorios
12
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Ejemplo:
Cambiar de propietario un archivo:
# chown nuevousuario:nuevogrupo /tmp/archivoenblanco
Comando cd
El comando cd se utiliza para moverse entre el sistema de archivos, o sea, cambiar de directorio.
cd
Uso: $cd directorio_destino
Opciones comunes Parámetros
Este comando no tiene opciones directorio_destino El directorio de manera absoluta
o relativa (a partir del presente directorio). Omitido
lleva a ~.
Comando pwd
Con pwd (print working directory) se puede saber el directorio en donde se está.
pwd
Uso: $pwd
Ejemplo:
Ver el directorio actual:
$pwd
Comando ls
El comando ls lista el contenido de directorios. De manera predefinida no lista archivos ocultos
(cuyo nombre empieza con un punto). Dentro de un listado extendido nos muestra la siguiente
información:
$ls -l
drwxr-xr-x 2 interco users 88 2005-06-05 14:20 Arachnophilia
drwxr-xr-x 6 interco users 328 2005-06-18 14:03 eclipse
-rwxr-xr-x 1 interco users 5583210 2005-06-18 13:52 GEF-SDK-3.1M6.zip
-rw-r--r-- 1 interco users 26344688 2005-06-18 12:58 wtp-1.0M4.zip
La primer columna contiene los permisos de cada archivo. Los dos primeros son directorios (tipo
“d”). La segunda columna indica el número de links que tiene tal archivo. La tercera y cuarta
indican el usuario y grupo al que pertenece, la quinta es el tamaño en bytes, la sexta y séptima
tienen la fecha y hora de creación, y la última contiene el nombre del archivo.
ls
Uso: $ls opciones directorio1 directorio2...
Opciones comunes Parámetros
-l Listado largo (con tamaños y propiedades) Los directorios a ser listados separados por un
-a Listar todo, incluyendo los archivos ocultos espacio. Si no se define este parámetro se listará el
-h En listados largos, poner el tamaño del archivo en directorio en el que se esté (uso común de este
múltiplos (KB, MB, GB) comando)
-R Listar subdirectorios recursivamente
Ejemplo:
13
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Listado largo de todos los archivos y directorios en el directorio en el que se está, con el tamaño
en múltiplos:
$ls -lah
mkdir
Uso: $mkdir directorio1 directorio2...
Opciones comunes Parámetros
No hay opciones comunes Los nombres de los directorios separados por UN
espacio
Ejemplo:
Crear un directorio:
$mkdir midirectorio
Comando cp (copia)
Uno de los comandos más útiles pues permite copiar archivos y directorios.
cp
Uso: $cp opciones origen destino
Opciones comunes Parámetros
-p Copia manteniendo permisos, fechas, y origen Archivo o directorio a copiar
propietarios
destino Archivo o directorio donde se pondrá la copia
-a Copia todo incluyendo links
-i Modo interactivo: pregunta cada paso
-f Forzado, sobreescribiendo si es necesario
-r Recursivo, copia subdirectorios también
Ejemplo:
Copiar un archivo al directorio /tmp:
$cp archivo1 /tmp
Comando mv (mover)
El comando mv se utiliza tanto para mover archivos o directorios como para renombrarlos.
mv
Uso: $mv opciones origen destino
Opciones comunes Parámetros
-i Modo interactivo: pregunta cada paso origen Archivo o directorio a mover
-f Forzado, sobreescribiendo si es necesario destino Archivo o directorio a donde estará el
archivo o directorio. Si no existe el destino se estará
renombrando.
Ejemplo:
Renombrar un archivo:
$mv archivo1 nuevo_nombre
Comando rm (remover/eliminar)
Para borrar archivos o directorios se usa el comando rm.
14
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
rm
Uso: $rm opciones archivo1 archivo2...
Opciones comunes Parámetros
-i Modo interactivo: pregunta cada paso Nombre de los archivos o directorios a borrar
separados por UN espacio
-f Forzado, ignora advertencias
-r Recursivo, borra directorios y subdirectorios
*IMPORTANTE: No hay manera de “desborrar” cuando se borra en la línea de comandos. ¡Si se es root se puede borrar
todo el sistema operativo! Tenga cuidado.
Ejemplo:
Eliminar todo un directorio y sus subdirectorios sin confirmación de seguridad:
$rm -rf directorio_viejo/
rmdir
Uso: $rmdir directorio1 directorio2
Opciones comunes Parámetros
No hay opciones comunes Nombre de los directorios vacíos a borrar separados
por UN espacio
Ejemplo:
Eliminar un directorio vacío:
$rmdir directorio_vacio/
Comando find
Este comando busca archivos dentro del directorio que se le diga y da de salida los que coincidan
con cierto criterio. Es un comando muy poderoso pero no consistente en cuanto a la sintaxis.
find
Uso: $find directorio opciones de búsqueda
Opciones comunes Parámetros
-type Busca archivos de cierto tipo únicamente. Archivos o directorios separados por UN espacio
Posibles valores son -type f para archivos comunes y
-type d para directorios
-name Establece el nombre del archivo o directorio
que se busca
-iname Igual que name pero sin considerar
mayúsculas o minúsculas
*IMPORTANTE: Se listan dos de las 50 opciones de este comando. Se recomienda ver más documentación al respecto.
Ejemplo:
Buscar el archivo make en /usr:
$find /usr -name make
15
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
base de datos se actualiza automáticamente, generalmente por la noche, o a través del comando
updatedb (como root).
locate
Uso: $locate opciones nombre
Opciones comunes Parámetros
-h Ayuda, despliega la lista de opciones nombre El nombre del archivo o directorio a buscar
--version Despliega la versión del comando
Ejemplo:
Encontrar el archivo “kasteroids.xpm”:
$locate kasteroids.xpm
Comando which
Para encontrar la localización de un archivo ejecutable. Si el programa se encuentra en más de un
lugar, sólo muestra el primero.
which
Uso: $which opciones programa
Opciones comunes Parámetros
-a Mostrar todos los lugares donde se encuentre el Nombre del programa a localizar
programa, no sólo el primero
Ejemplo:
Localizar el comando “ls”:
$which ls
Comando whereis
Este comando encuentra la localización de programas, así como de sus manuales y las fuentes para
compilarlo.
whereis
Uso: $whereis programa
Opciones comunes Parámetros
No hay opciones comunes Nombre del programa a localizar
Ejemplo:
Localizar el comando “ls”:
$whereis ls
El manejo de textos en la línea de comandos es muy útil en Linux, especialmente porque la mayoría
de las configuraciones se encuentran en archivos de texto.
16
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Comando cat
El comando más básico de manejo de textos. Este comando abre un archivo y lo muestra en la
pantalla. Si el archivo es muy largo sólo mostrará la porción inferior del mismo. Si se listan varios
archivos los “concatena”, esto es, los une uno tras otro.
cat
Uso: $cat opciones archivo1 archivo2...
Opciones comunes Parámetros
-n Agrega un número de línea a cada línea de texto Nombre de los archivos a desplegar separados por UN
-s Elimina líneas en blanco duplicadas espacio
Ejemplo:
Abrir un archivo de texto:
$cat archivo.txt
Comando less
Muestra un archivo de texto de manera interactiva, permitiendo el navegar en él y realizar
búsquedas. Es uno de los comandos más utilizados.
less
Uso: $less opciones archivo1
Opciones comunes Parámetros
-c Limpiar la pantalla antes de avanzar Nombre del archivo a desplegar
-m Mostrar información adicional
-N Agregar números de línea
-s Eliminar líneas en blanco duplicadas
-S Recortar líneas al ancho de la pantalla
Ejemplo:
Abrir un archivo de texto y navegar usando las teclas especiales:
$less README
Comando head
Nos despliega las primeras N líneas de un archivo de texto. Si N no se indica, muestra las primeras
10 líneas. Puede usarse como una “vista preliminar” de un archivo sin abrirlo completo.
head
Uso: $head opciones archivo1 archivo2...
Opciones comunes Parámetros
-número Donde número es un entero. Muestra Nombre de los archivos a desplegar separados por UN
“número” de líneas en vez de 10. espacio
17
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Ejemplo:
Mostrar las primeras 3 líneas de dos archivos:
$head -3 README INSTALL
Comando tail
Igual que head pero despliega las últimas N líneas de un archivo de texto. Si N no se indica,
muestra las últimas 10 líneas. Puede usarse para ver los últimos cambios de algunos archivos.
tail
Uso: $tail opciones archivo1 archivo2...
Opciones comunes Parámetros
-número Donde número es un entero. Muestra Nombre de los archivos a desplegar separados por UN
“número” de líneas en vez de 10. espacio
-f Mantener el archivo abierto y mostrar las nuevas
líneas de un archivo cambiante
Ejemplo:
Mostrar las últimas 4 líneas de dos archivos:
$tail -4 README INSTALL
wc
Uso:
$wc opciones archivo1 archivo2...
Opciones comunes Parámetros
-w Sólo muestra el conteo de palabras Nombre de los archivos a desplegar separados por UN
-l Sólo muestra el conteo de líneas espacio
-c Sólo muestra el conteo de letras
Ejemplo:
Ver el número de letras, palabras y líneas de dos archivos:
$ wc README INSTALL
Comando grep
Éste es uno de los comandos más importantes para el manejo de textos. Su función es el mostrar
líneas de un archivo de texto que coincidan con ciertos patrones. Esto sirve para filtrar datos dentro
de archivos largos, tales como bitácoras del sistema y otros.
grep
Uso: $grep opciones patrón archivo1 archivo2...
Opciones comunes Parámetros
-v Mostrar las líneas que NO coincidan Nombre de los archivos o directorios a buscar
-c Contar de líneas que coincidan separados por UN espacio
-i No diferenciar entre mayúsculas y minúsculas
-l Sólo mostrar el nombre del archivo que coincida
con el patrón
-L Sólo mostrar el nombre del archivo que NO
coincida con el patrón
-w Sólo coincidir palabras completas
18
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
grep
-r Buscar recursivamente
*IMPORTANTE: Se listan unas pocas de las 28 opciones de este comando. Se recomienda ver más documentación al
respecto.
Ejemplo:
Contar las líneas donde NO aparece la palabra “ftp” sin diferenciar entre mayúsculas y
minúsculas dentro del archivo README:
$grep -vcwi ftp README
Redireccionar comandos
Dentro de la línea de comandos se puede enviar la salida de un comando a otro comando, y así
realizar diferentes operaciones en secuencia. Para esto utilizamos el símbolo de la barra vertical “|”,
llamada en inglés “pipe”, o sea, tubo. Esto es más fácil de ver con ejemplos.
Ejemplos:
Desplegar las primeras 50 líneas de un archivo, pero verlas de manera interactiva:
$head -50 README | less
Desplegar las primeras 15 líneas de un archivo que contengan la palabra “ftp”, sin diferenciar
entre mayúsculas y minúsculas:
$grep -i ftp README | head -15
Redireccionar salida
Linux nos presenta la salida de cada comando en la pantalla. Sin embargo, también se puede enviar
la salida a un archivo si así se desea. Sólo se necesita agregar al final del comando lo siguiente:
$comandos>archivo_de_salida
Ejemplo:
Guardar en un archivo las primeras 15 líneas que contengan la palabra “ftp”:
$grep -i ftp README | head -15>archivo
Editor Vim
Vim es un flexible y poderoso editor de texto que se encuentra como editor predeterminado en casi
todas las distribuciones GNU/Linux. Su nombre quiere decir Vi iMproved, o Vi mejorado, ya que es
una versión mejorada de su antecesor Vi.
Se puede decir que es la herramienta ideal de cualquier programador (aunque es de uso general)
por las funciones que maneja, como el resaltado de sintaxis, la autocompletación, la identación
automática y la versatilidad de su configuración que lo hacen muy personalizable, entre muchas
otras cosas.
19
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Toda esta potencia y eficiencia tiene su precio, ya que necesitamos acostumbrarnos a su particular
forma de trabajar. La forma en que está diseñado es para utilizar el máximo rendimiento en el
menor tiempo posible. Si está acostumbrado a usar todos los dedos de sus manos, lleva las de
ganar.
Adicionalmente a la versión para línea de comandos, también existe la versión gráfica gVim,
preparada para el entorno Gnome, y Kvim para KDE, así como también la versión para Windows.
Vim es Software Libre y al mismo tiempo también es un software caritativo, ya que promueve la
ayuda por medio de donaciones a niños pobres en Uganda.
Funcionamiento
Vim tiene varios modos de funcionar, los más importantes serían el modo normal y el modo edición.
Al modo edición se accesa pulsando la letra i (insertar) y para usar el modo normal, sólo presione la
tecla ESC.
Moviendo el cursor
Puede mover el cursor con las flechas, pero la forma original, y por lo mismo más rápida, es usando
las teclas h, j, k y l, donde:
• La tecla h mueve hacia la izquierda
• La tecla j mueve hacia abajo
• La tecla k mueve hacia arriba
• La tecla l mueve hacia la derecha
Editando texto
Insertando nuevo texto
• Para empezar a insertar texto sólo tiene que presionar la letra i (insert) y se ubicará en
donde esté posicionado el cursor.
• Si presiona la letra a (append), se ubicará a la derecha del cursor.
Borrando
• Para borrar, o “cortar”, un carácter sólo tiene que presionar la tecla x sobre la letra que
desea borrar.
• Para borrar una palabra, sólo posiciónese y teclee dw (delete word). Borrará la palabra
incluyendo el espacio. Si utiliza de, no incluirá el espacio.
• Para borrar una línea completa, teclee d$ y la línea desaparecerá a partir de donde coloque
el cursor hasta el final.
• Si lo que necesita es borrar una línea completa, sólo tiene que presionar dd. Si antepone un
numero a dd, el número indica la cantidad de líneas que serán borradas. Por ejemplo, 2dd
borrará 2 líneas completas a partir de donde se encuentre el cursor.
20
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
derecho del cursor para el caso de una palabra, o una linea abajo del cursor en el caso de
una línea.
Sustituyendo texto
• Para sustituir una palabra por otra al mismo tiempo, debemos usar :s/palabravieja
/palabranueva. Esto sólo afectará a la primera ocurrencia.
• Si queremos sustituir varias veces en una misma línea, tecleamos :s/palabravieja
/palabranueva/g
• Para sustituir en varias líneas tecleamos :#,#s/palabravieja/palabranueva/g donde # son
los números de línea en los que afectaremos.
• Si queremos hacer el cambio en todo el archivo, usaremos
:%s/palabravieja/palabranueva/g. Si aquí queremos una confirmación por cada cambio,
agregaremos una c al final :%s/palabravieja/palabranueva/gc
Grabando archivos
• Para guardar los cambios hechos a un archivo usaremos el comando :w seguido del nombre
del archivo. Esto funciona como un “Guardar como...”
• Si queremos grabar con el mismo nombre, sólo usaremos :w.
Comprimir y descomprimir
21
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Es muy común en Linux el manejar archivos comprimidos, ya sea al bajar programas en código
fuente para compilar, para hacer respaldos o simplemente para transmitir archivos de tamaños más
pequeños a través de Internet.
Existen dos operaciones distintas pero complementarias: Archivar y comprimir. Archivar es el hecho
de juntar varios archivos en uno solo. Comprimir es el reducir el tamaño de los archivos a archivar.
Para comprimir se utilizan ciertos algoritmos matemáticos, de lo que derivan los diferentes formatos
de archivos comprimidos:
• Zip (archivos .zip): El formato más popular fuera de Linux. Originalmente llamado PKZIP
por su creador Phil Katz. Este sistema de compresión y archivado comprime cada archivo por
separado, lo que permite que se pueda descomprimir en partes. Por otro lado, no es tan
eficiente en reducir el espacio como otros de los algoritmos.
• Compress (archivos .Z): Algoritmo original de compresión en UNIX. Poco usado
actualmente debido a que utiliza el algoritmo propietario LZW (Lempel-Ziv-Welch).
• Gzip (archivos .gz): El nombre viene de GNU Zip. Gzip vino como un reemplazo de
compress de UNIX, el cual fue sustituido por problemas de patente. Gzip sólo comprime, no
archiva. Generalmente se usa en conjunto con un programa de archivo, como TAR (ver más
abajo).
• bzip2 (archivos .bz2): Algoritmo libre de compresión que obtiene una 10-15% mejor
compresión de archivos, aunque comparativamente puede ser más lento debido a que
necesita más tiempo para comprimir mejor. Sin embargo, para los estándares actuales de
velocidad del equipo de cómputo, la diferencia en velocidad no es significativa.
Comando tar
En los antiguos días de UNIX, se utilizaban carretes de cinta magnética para hacer los respaldos.
Este comando toma su nombre de esa operación: Tape ARchive. En GNU/Linux el comando tar
archiva y comprime con los algoritmos compress, Gzip y bz2. Es un comando muy utilizado.
tar
Uso: descomprimir: $tar opcionesf archivo1 archivo2...
comprimir: $tar opcionesf nuevoarchivo.tar.extension directorio_a_comprimir/
Opciones comunes Parámetros
-c Crear nuevo archivo tar Nombre de los archivos a abrir, listar contenidos o
-t Lista los contenidos de un archivo tar crear
-x Descomprime (extrae) un archivo tar
-r Agrega archivos a un archivo tar existente
-A Agrega un archivo tar al final de otro
-v Modo explícito: provee información adicional
-z Utilizar el algoritmo Gzip
-j Utilizar el algoritmo bz2
-Z Utilizar el algoritmo compress
-f Especifica el o los archivos tar
*IMPORTANTE: En la mayoría de los comandos el orden de las opciones no importa, pero en tar la opción “f” debe ir al
final, justo antes de especificar los archivos tar.
Ejemplo:
Descomprimir un archivo con extensión .bz2:
$tar -xjvf gftp-2.0.18.tar.bz2
22
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
zip y unzip
Uso: descomprimir: $unzip opciones archivo1 archivo2... modificadores
comprimir: $zip opciones nuevoarchivo.zip directorio_a_comprimir/
Opciones comunes Parámetros
Descomprimir Nombre de los archivos a abrir, listar contenidos o
-l Lista los contenidos de un archivo zip comprimir
Comprimir
-r Comprimir directorios recursivamente
Modificadores
-d Especificar directorio dónde descomprimir
Ejemplo:
Descomprimir dentro de un nuevo directorio:
$unzip nuevo.zip -d nuevodirectorio/
Procesos
Dentro de Linux cada programa que se corre genera uno o más procesos. Los procesos son la
unidad básica de trabajo dentro del sistema. Los procesos constan de:
Comando ps
Este comando nos reporta los procesos que se encuentran corriendo (process status). Es un
comando que cuenta con más de 80 opciones, pero sólo veremos unas cuantas. Uno de sus
principales usos es el encontrar el identificador de proceso (PID) de un proceso en particular para
detenerlo. Un listado de ps en su forma más básica cuenta con los siguientes datos:
de donde se puede ver que el comando bash tiene el PID número 8495. También existe un listado
largo:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
interco 7025 0.0 0.1 3836 1332 ? Ss 07:29 0:00 /bin/sh /usr/X11R6/bin/kde
interco 7214 0.0 0.1 3252 844 ? Ss 07:29 0:00 /usr/bin/gpg-agent --sh --daemon
interco 7261 0.0 0.1 4184 1416 ? Ss 07:29 0:00 ssh-agent /etc/X11/xinit/xinitrc
interco 1576 0.0 0.1 2692 812 pts/ R+ 12:26 0:00 ps -ux
donde se puede ver el usuario, el PID, datos de uso de recursos, status y otros datos.
23
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
ps
Uso: $ps opciones [usuario]
Opciones comunes Parámetros
-e Lista todos los procesos principales Para la opción -U especificar el nombre del usuario
-U Seguido de un nombre de usuario lista los
procesos de ese usuario
ux (note que no usa “-”) Lista los procesos del
usuario actual
-fH Lista los procesos con sus subprocesos
organizados con identación
Ejemplo:
Listar todos los procesos propios:
$ps ux
Comando kill
Este comando se utiliza para enviar señales al proceso para detenerle o eliminarle. Para identificar
unos procesos de otros utilizamos el comando ps para encontrar el PID, pues es la única manera de
referirnos a ese proceso.
kill
Uso: $kill opciones PID
Opciones comunes Parámetros
-l Listar todas las señales El número de PID a detener
-1 Terminar el proceso
-2 Interrumpir el proceso
-9 Detener el proceso INMEDIATAMENTE
-KILL Utilizar esta opción como último recurso si
algún proceso es “duro de matar”
Ejemplo:
Eliminar el proceso que tiene PID 9090:
$kill -9 9090
Comando w
Es un comando muy sencillo que nos dice los usuarios en el sistema y sus procesos actuales.
w
Uso: $w
Opciones comunes Parámetros
No hay opciones comunes No usa parámetros
Ejemplo:
$w
Comando top
Éste es un comando activo que nos muestra los procesos que se están corriendo. Este comando no
nos da una lista estática, sino que los datos se actualizan en la pantalla con una frecuencia
determinada. Este proceso se termina presionando la tecla Q.
24
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
top
Uso: $top opciones
Opciones comunes Parámetros
-dN Refresca la pantalla cada N segundos No usa parámetros
Ejemplo:
$top
Discos y particiones
Por varias razones es conveniente tener a Linux instalado en varias particiones o incluso varios
discos duros, con cada uno de ellos asignados a un directorio principal. Al proceso de asignación se
le llama “montar”. Las especificaciones de estas particiones, sus tamaños y proporciones quedan
fuera del alcance de este curso. Es importante notar la forma en que están designadas las unidades
de disco en Linux para computadoras x86 (también llamadas PC o compatibles IBM):
• Particiones: Cada uno de los dispositivos anteriores se puede particionar en hasta cuatro
particiones primarias, o 4 primarias y una extendida, la cual se puede particionar a su vez
hasta en 16 discos llamados lógicos. Para Linux las particiones se designan con un número,
empezando desde 1: hda1, hdb3, hdc9, etc.
Los comandos que se presentan a continuación son para uso informativo solamente. El uso del
comando cfdisk está restringido casi exclusivamente a la instalación de Linux.
Comando df
Este comando nos lista las particiones, sus asignaciones y el espacio ocupado y libre que tiene cada
una de ellas.
df
Uso: $df opciones
Opciones comunes Parámetros
-a Mostrar todas las particiones, así como los No usa parámetros
directorios virtuales (v. gr. /proc)
-h Mostrar el espacio de los discos en múltiplos como
KB, MG, GB, etc.
Ejemplo:
$df -h
25
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Comando du
Con du vemos el uso de disco de cada directorio.
du
Uso: $du opciones Archivo1, Archivo2...
Opciones comunes Parámetros
-b Desplegar los tamaños en bytes en lugar de en Archivos o directorios a evaluar
bloques
-h Mostrar el espacio en múltiplos como KB, MG, GB,
etc.
-s Desplegar sólo un sumario de lo contenido en el
directorio
Ejemplo:
Ver el sumario del tamaño del directorio /etc:.
$du -sh /etc
Comando cfdisk
Este comando debe ejecutarse como usuario root para funcionar. Realizar modificaciones con este
comando puede dejar a un sistema inestable en el mejor de los casos, y en el peor puede borrarle el
disco duro.
cfdisk
Uso:
# cfdisk [dispositivo]
Opciones comunes Parámetros
No tiene opciones comunes El dispositivo a particionar. Si es omitido use /hda.
Ejemplo:
# cfdisk
Al instalar una distro para su uso personal, prácticamente todos los usuarios pueden apagar la
computadora. Sin embargo, éste es un privilegio que puede ser omitido y que en servidores se
encuentra restringido exclusivamente a root.
Comando shutdown
Este comando de root sirve para apagar un sistema. Puede programarse que se apague o reinicie
hasta dentro de cierto tiempo, o inmediatamente.
shutdown
Uso: #shutdown opciones [+tiempo] [“mensaje”]
Opciones comunes Parámetros
-r Reinicia la computadora +tiempo: En cuántos minutos apagar. Use now para
-h Apaga la computadora apagar inmediatamente.
-k Modo de ensayo, para simulacros de apagado mensaje: El mensaje a enviar a los usuarios que se
encuentran en el sistema.
26
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Ejemplo:
Reiniciar el sistema en 2 minutos:
# shutdown -r +2 “Esto no es un simulacro”
Instalación de programas
Existen varias maneras de instalar programas en Linux. Dependiendo del programa en cuestión y
del método de instalación será el tipo de permisos que se requieran. Se pueden identificar varios
tipos de métodos de instalación:
Instaladores binarios
Algunos programas comerciales han creado archivos binarios ejecutables que permiten la
instalación de paquetes con simplemente correrlos.
Generalmente los programas en código fuente requieren que se realicen los siguientes pasos:
Correr un archivo de autoconfiguración:
$./configure
27
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Dependiendo de los permisos requeridos por el programa, instalar ya sea como root o como
usuario:
# make install
*IMPORTANTE: Los pasos anteriores son una referencia general, los pasos precisos deben estar
definidos dentro de los archivos README e INSTALL.
rpm
Uso: #rpm opciones programa
Opciones comunes Parámetros
-i Instalar Al instalar, el nombre del archivo .rpm. Al desinstalar
-v Modo explícito (opción -e) solamente el nombre del programa,
-h Genera una barra de avance en modo texto omitiendo su versión.
-U Actualizar paquete. Instala sobre una versión
anterior
-qa Consultar la base de datos de rpm instalados
-e Eliminar (desinstalar) un paquete
Operaciones comunes:
Instalar o actualizar un programa:
# rpm -Uvh archivo.rpm
Desinstalar:
# rpm -e programa
dpkg
Uso: #dpkg opciones programa
Opciones comunes Parámetros
-i Instalar Al instalar, el nombre del archivo .deb. Al desinstalar
-l listar paquetes instalados (opción -r) solamente el nombre del programa,
-r Remover paquetes omitiendo su versión.
-s Información sobre un paquete instalado
28
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Operaciones comunes:
Instalar o actualizar un programa:
# dpkg -i paquete.deb
Desinstalar:
# dpkg -r paquete
apt-get
Uso: # apt-get opciones programa
Opciones comunes Parámetros
install Instalar paquete y sus dependencias Sólo el nombre del paquete a instalar.
update Actualizar paquetes disponibles en el
repositorio
upgrade Actualizar paquetes
remove Remover paquetes
NOTA: Apt-get tiene muchas opciones más, recomendamos documentarse más respecto a este
comando.
Operaciones comunes:
Instalar un programa con todas sus dependencias:
# apt-get install programa
Remover un programa
# apt-get remove programa
29
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Este libro fue elaborado con el apoyo voluntario de otros miembros de LinuxBaja (ver siguiente
página), y fue creado con el propósito expreso de auxiliar en el aprendizaje de este sistema
operativo. El contenido del mismo fue recopilado del Internet, libros y experiencias personales. La
intención del mismo es auxiliar a la comprensión y el uso de Linux.
Es liberado bajo la licencia Creative Commons By -> Non Commercial -> Share Alike, lo que
quiere decir que lo puedes usar para aprender o hacer una obra derivada de éste, pero no lo puedes
vender. La intención es que sirva para aprender Linux, pero que no lo tome alguien para venderlo
como un producto separado, aunque no es problema si se utiliza en clases privadas mientras no lo
vendas. En todos los casos debe permanecer bajo la misma licencia con que está siendo liberado, y
se debe reconocer que fue originalmente elaborado en LinuxBaja.org.
Reconocimiento-NoComercial-CompartirIgual 2.5
Usted es libre de:
• copiar, distribuir y comunicar públicamente la obra
• hacer obras derivadas
Bajo las condiciones siguientes:
• Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta
obra.
• Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los
derechos de autor
Los derechos derivados de usos legítimos u otras limitaciones reconocidas por ley
no se ven afectados por lo anterior.
30
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California
Agradecimientos
31