Está en la página 1de 31

Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California

Introducción a la línea de comandos de Linux

Comunidad de Usuarios de GNU/Linux


y Software Libre en Baja California

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

El creador de Slackware Linux es Patrick Volkerding, y lo define como un avanzado sistema


operativo Linux, diseñado con dos objetivos: facilidad para usar y estabilidad como meta
prioritaria. Incluyendo el más popular software reciente mientras guarda un sentido de tradición
proporcionando simplicidad y facilidad de uso, junto al poder y la flexibilidad, Slackware trae lo
mejor de todos los mundos a la mesa. Desde su primer lanzamiento en abril de 1993, el Proyecto
Slackware Linux se ha esmerado en producir la distribución de Linux más profesional posible.
Slackware obedece a los estándares de Linux publicados, como el Linux File System Standard.

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

• Tiene herramientas para rescate de datos y reparación del sistema


• Utiliza el entorno gráfico KDE
• Tiene una gran cantidad de software
• Se puede instalar en el disco duro
• Versión actual: 4.0.2 en CD, versión 5 en DVD

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

Ambiente gráfico vs. línea de comandos

Se le llama ambiente gráfico o interfase gráfica al manejo de la computadora a través de iconos,


ventanas y un apuntador o mouse. Se le llama línea de comandos a una interfase de manejo de la
computadora donde se le escriben comandos de texto simple a través del teclado.

Ambiente gráfico Línea de comandos


Ventajas: • Intuitivo • Eficiente
• Fácil de usar • Funciona todo el tiempo
• Productivo • Permite acceso remoto fácil
• Poderosa = acceso total

Desventajas: • Requiere más equipo • Compleja de usar


• Más complejo = más fallos • No intuitiva

6
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California

Diferentes servidores de X Windows, manejadores de ventanas y


escritorios

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:

• Xfree86: Es el servidor gráfico más antiguo, y que se encuentra instalado en las


distribuciones que tengan entre dos y tres años o más.
• Xorg: Debido a lo libre del código, Xorg es prácticamente igual a Xfree86 en cuanto a lo
técnico. La diferencia está en cuestiones de licencia y organización humana. Por otra parte,
cada vez cuenta con más apoyo empresarial lo que le hace estar instalada en la mayoría de
las distribuciones nuevas.

Recursos: http://xfree86.org, http://x.org.

Manejadores de ventanas (algunos):

• IceWM: Este manejador de ventanas es bastante completo y provee de una interfase


ligeramente similar a la de Windows 95, incluso tiene un tema que lo simula. Se puede utilizar
completamente con el teclado, y maneja múltiples áreas de trabajo en la misma pantalla
• FluxBox: Este manejador es ligero pero cuenta con muchos elementos, incluyendo temas
estéticos y menús a los que se accede a través del botón izquierdo del mouse. Es el
manejador estándar de algunas distribuciones pequeñas
• BlackBox: Sencillo y elegante, para quienes no quieren complicarse la vida. Definitivamente
NO para migrar hacia Linux pues es bastante diferente de Windows.
• TWM: Uno de los antecesores de los actuales sistemas. Sencillo en demasía hoy en día, pero
eficiente y fácil de usar
• FVWM: Sucesor de TWM, con un aspecto pulido tridimensional. Se enfoca a hacer un uso
mínimo del RAM.

Recursos: http://xwinman.org/ (compendio)

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.

La estructura básica de directorios y su contenido convencional dentro de un sistema Linux puede


ser la siguiente:

Sistema de archivos en Linux y sus contenidos


Dirección Nombre Contenido
/ raíz Directorio principal que contiene los demás directorios
/boot inicio Archivos de arranque de Linux
/dev dispositivos Directorio virtual creado al arranque de la máquina. Contiene acceso a
todos los dispositivos físicos existentes en la computadora. Para Linux,
cada dispositivo es representado como un archivo al cual se puede
escribir y del cual se puede leer.
/proc procesos Directorio virtual creado al arranque de la máquina. Contiene información
sobre los procesos y equipo que se encuentran corriendo
/etc configuración Directorio que contiene la configuración del sistema. La mayoría de las
configuraciones en Linux se encuentran en archivos de texto, los que
generalmente están en este directorio.
/lib librerías Aquí se encuentran las librerías que son compartidas por varios
programas, así como módulos del kernel
/opt optativos Directorio donde se instalan programas locales
/bin binarios Lugar donde se encuentran los programas intrínsecos de Linux
disponibles a todos los usuarios
/sbin binarios del Contiene programas intrínsecos de Linux a usarse por el superusuario,
superusuario también llamado “root”

8
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California

Sistema de archivos en Linux y sus contenidos


/root directorio de root Directorio donde el superusuario puede guardar sus propios archivos
/home archivos de Este directorio contiene un directorio por cada usuario. Es el lugar donde
usuarios se encuentran los archivos de uso, así como las configuraciones
individuales de cada usuario.
/tmp temporal Directorio donde el sistema guarda archivos temporalmente. Estos
archivos son creados para almacenar información temporalmente.
/usr programas Directorio que contiene la mayoría de los programas de cualquier tipo. En
/usr/bin se encuentran la mayoría de los programas, y en /usr/lib se
encuentran la mayoría de las librerías de estos programas.
/var archivos de En este directorio se encuentran archivos de los programas tales como
programa bases de datos. También se encuentran las bitácoras que registran las
actividades del sistema. También es el lugar predefinido para las páginas
Web (/var/www).
/srv servidor de Web En algunas distros modernas (SuSE, Ubuntu) se instala el servidor de
(no estándar) Web en este directorio
/mnt montajes Lugar donde se montan sistemas de archivos y otros dispositivos, como
CDs y discos USB. En algunas distros esto se hace en /media.

Un ejemplo supersimplificado del sistema de archivos sería:


/ /boot arranque del sistema
/var /var/log bitácoras
/var/www páginas de internet
/tmp archivos temporales
/bin archivos intrínsecos del sistema operativo
/home /home/usuario archivos del usuario usuario
/usr /usr/bin archivos de programas

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

Comando Date: para conocer la fecha del sistema

date
Entrar: $ date

9
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California

Para cambiar de usuario utilizamos el comando su (switch user).

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.

Permisos con Letras


Tipo Propietario Grupo Otros Secuencia
Ejemplo: d rwx rwx rwx drwxrwxrwx

Valores: “d” = directorio “r” = lectura (“read” en inglés)


“l” =link “w” = escritura (“write” en inglés)
“-” = archivo “x” = ejecución (“execute” en inglés)
“s” = socket
“b” = bloque

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.

Permisos con Números


Propietario Grupo Otros Secuencia
Ejemplo: 7 7 7 777

Valores: 0 = sin permisos


4 = permiso de lectura
2 = permiso de escritura
1 = permiso de ejecución

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.

Ejemplos Comunes de Permisos


Uso Propietario Grupo Otros Letras Números
privado individual sólo lectura ninguno ninguno r-------- 400
privado de grupo sólo lectura sólo lectura ninguno r--r----- 440

10
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California

Ejemplos Comunes de Permisos


sólo lectura sólo lectura sólo lectura sólo lectura r--r--r-- 444
estándar archivos lect/escr sólo lectura sólo lectura rw-r--r-- 644
estándar programas lect/escr/ejec lect/ejec lect/ejec rwxr-xr-x 755
todos los permisos lect/escr/ejec lect/escr/ejec lect/escr/ejec rwxrwxrwx 777

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.

Comandos: conceptos y sintaxis

Un comando es una instrucción escrita que se le da a la computadora en la línea de comandos. El


comando consta del comando en sí, sus opciones y sus parámetros. En la línea de comandos
podemos ver dos tipos de símbolos:

Para usuarios normales: usuario@sistema$

Para el superusuario: root@sistema#

Entonces, un comando para un usuario normal tiene en general la siguiente sintaxis:


usuario@sistema$ comando opciones parámetros

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

comando opción parámetro

*IMPORTANTE: Las opciones con mayúsculas o con minúsculas tienen significados diferentes.

Comandos de manejo y localización de archivos y directorios

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

Opciones comunes Parámetros


Este comando no tiene opciones Este comando no tiene parámetros

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

Comando mkdir (crear directorio)


Con este comando se crean directorios. En algunas distros se puede abreviar como md.

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/

Comando rmdir (eliminar directorio)


Este comando elimina directorios vacíos. Es una mejor opción pues se asegura uno de no eliminar
directorios que puedan contener información valiosa.

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

Comando locate (localizar)


El comando locate busca archivos o directorios dentro de una base de datos generada por el
sistema. Es muy rápido pues busca sólo en la base de datos, no en el sistema de archivos en sí. La

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

Comandos de manejo de textos

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

Comando less - Opciones de Navegación


Cuando less muestra un archivo en pantalla se puede navegar con las siguientes teclas:

• Enter: avanzar una línea


• Espacio, f: avanzar una página
• Flecha arriba: retroceder una línea
• b: retroceder una página
• /: Buscar hacia enfrente. Introducir el término a buscar y less lo marcará en pantalla.
• ?: Buscar hacia atrás. Igual que “/” pero en reversa.

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

Comando wc (contar palabras)


Con este comando se puede saber el número de letras, palabras y líneas para un archivo.

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

Hacer un conteo de palabras del ejemplo anterior:


$grep -i ftp README | head -15 | wc -w

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

*IMPORTANTE: Busque un nombre de archivo inexistente o de lo contrario su información puede


ser borrada.

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.

Entrando y saliendo de Vim


• Para iniciar haremos lo siguiente desde la consola: $ vim
• Para salir sin guardar los cambios: :q!
• Para salir guardando cambios: :wq

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.

Comando deshacer (undo) y rehacer (redo)


• Para deshacer el último comando, presione u.
• Si lo que quiere es arreglar una línea entera, presione U (mayúscula).
• Presionando CTRL + r deshace lo deshecho (redo).

Copiar y pegar (put)


• Para copiar utilizamos la secuencia yy, lo que nos copiará una línea completa.
• Para pegar utilizaremos la letra p. Un uso práctico para esta opción sería usar el comando d
para “cortar” ya sea una palabra o una línea, y pegarla después con p, ya sea al lado

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.

Comando reemplazar (replace)


• Para reemplazar un carácter basta con presionar la letra r seguida de la letra que la
reemplazará.

Comando cambiar (change)


• Para reemplazar parte de o toda una palabra, presione cw y podrá modificar la palabra a
partir de donde se encuentre el cursor.
• Para reemplazar una línea, tiene que presionar c$.
• Es importante que al terminar de usar este comando presionemos ESC para volver al modo
normal, de lo contrario seguiremos en el modo edición.

Localización de archivos y estatus


• Para saber donde se encuentra posicionado dentro de una archivo, tiene que presionar CTRL
+ g, lo cual le mostrará en la parte de abajo la línea y la columna donde está ubicado, así
como también el estatus del archivo.
• Para posicionarse en una línea en particular, teclee el número de línea a la que se quiere
mover seguido de SHIFT + G .
• La sola combinación de teclas SHIFT + G le posiciona al final del archivo.

Comando buscar (search)


• Para buscar una frase, sólo tiene que presionar / seguido de la frase y presionar Enter.
Empezará a hacer la búsqueda a partir de donde se encuentre el cursor en adelante.
• Si lo que quiere es buscar una frase hacia atrás de donde está el cursor, presione ? seguido
de la frase y presione Enter.

Buscando la pareja (matching parenthesis)


• El comando % es muy útil al buscar en construcciones anidadas. Por ejemplo, si está
posicionado en un “ ( “, al presionar % se moverá al “ ) “ de cierre . También funciona con
{ } y [ ].

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.

En Linux se sigue la convención de nombrar archivos comprimidos indicando lo que contienen y la


versión de estos archivos, así como el formato de compresión. Por ejemplo, en el archivo tar “pspp-
0.3.0.tar.gz”, tenemos que “pspp” es el programa comprimido, que es la versión 0.3.0 de este
programa y que es un archivo tar comprimido con el algoritmo Gzip.

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

Comandos zip y unzip


Dentro de Windows es muy común el formato PKZIP (archivos con extensión .zip). Para manejar
estos archivos en Linux utilizamos los comandos complementarios zip y unzip.

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:

• Estado: Un proceso puede tener los estados de:


➢ corriendo (R de running): El proceso está usando el CPU o espera en fila para usarlo
➢ esperando (W de waiting): El proceso espera ya sea un evento o que se desocupe un
recurso de hardware
➢ detenido (S de stopped): El proceso ha recibido la señal de detenerse
➢ zombie (Z): Es un proceso muerto pero que sigue por alguna razón listado
• Identificador (PID, o process ID): Todos los procesos tienen asignado un número que les
identifica. El número no implica importancia, es sólo un número individual.

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:

PID TTY TIME CMD


8495 pts/1 00:00:00 bash
1317 pts/1 00:00:00 ps

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):

• Dispositivos: Se mencionó que en Linux todos los dispositivos físicos se encuentran


listados como archivos dentro de /dev. En una tarjeta madre de una x86 pueden haber hasta
cuatro dispositivos IDE (tales como discos duros, CD-ROM o DVD):
➢ hda: Primer disco de la primer interfase IDE. Equivalente a C: en Windows.
➢ hdb: Segundo disco de la primer interfase IDE. Equivalente a D: en Windows.
➢ hdc: Primer disco de la segunda interfase IDE. Equivalente a E: en Windows.
➢ hdd: Segundo disco de la segunda interfase IDE. Equivalente a F: en Windows.
➢ sda, sdb, etc.: Discos USB.

• 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

Apagado del sistema

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:

Compilación de código fuente


Este es el método esencial de instalación de paquetes en Linux, sin embargo es lento y puede ser
dificultado por varios factores. En contraparte, un programa compilado desde código fuente
idealmente debe ser más eficiente. Dependiendo del programa, será si puede realizarse la
instalación por root o por un usuario.

Instalación de archivos de manejadores de paquetes


Debido a lo lento e ineficiente de la compilación, se han creado diferentes métodos de instalación a
través de programas manejadores de paquetes. Estos manejadores “definen” algunas distros, pues
son precisamente lo que las diferencia unas de otras. Los principales son:
• dpkg: Manejador de paquetes utilizado en los sistemas basados en Debian. Muy eficiente y
estable, instala el programa así como sus dependencias si hace falta.
• rpm: Manejador de paquetes creado por Red Hat y muy ampliamente utilizado. Es rápido de
usar y existen muchos programas disponibles en este formato, sin embargo en ocasiones
puede ser complicado el buscar los paquetes dependientes.

Instalación de archivos con programas de actualización


Para evitar el problema de las dependencias, se han creado programas que buscan a través de
Internet en servidores preestablecidos tanto el paquete a instalar como sus dependencias. Existen
muchos programas de este tipo, diferenciando también unas distros de otras. Algunos son:
• apt: Sistema utilizado en Debian para la instalación de paquetes, su descarga del Internet y
la búsqueda y descarga de dependencias
• urpmi: Este sistema se utiliza en Mandrake/Mandriva para la descarga e instalación de
paquetes y sus dependencias
• yum: La distro Yellowdog ha creado un sistema que puede ser instalado en otras distros y
que permite la búsqueda e instalación de paquetes y dependencias. Ahora RedHat utiliza
este sistema

Instaladores binarios
Algunos programas comerciales han creado archivos binarios ejecutables que permiten la
instalación de paquetes con simplemente correrlos.

Compilando código fuente


Los programas en código fuente generalmente vienen en un archivo tar comprimido. Los pasos a
seguir varían de un programa a otro, pero los pasos generales de instalación son:
1. Descomprimir el archivo TAR que contiene el código fuente.
2. Buscar los archivos README e INSTALL, y leerlos cuidadosamente. No exageramos.
3. Seguir las instrucciones de instalación del programa.

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

Si no hay errores, correr el comando make sin parámetros:


$ make

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.

Instalando un programa en RPM


Una gran parte de las distros utilizan el sistema RPM para la instalación de programas. Esto es más
fácil que compilar. Sin embargo, cada archivo RPM debe corresponder exactamente a la versión de
la distro donde se instalará, además de que para instalar un RPM se requiere de ser root. El
comando rpm tiene muchas opciones, sólo cubriremos algunas operaciones comunes.

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

Buscar si está instalado un programa:


$rpm -qa | grep -i programa

Desinstalar:
# rpm -e programa

Instalando un programa en DEB


Debian es una de las distribuciones más usadas, ya sea directamente o en sus derivaciones. El
sistema de instalación de paquetes de Debian es dpkg, el cual es bastante fácil de utilizar. Sin
embargo, en el caso de las distros basaras en Debian, es más común utilizar el administrador de
actualizaciones apt-get.

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

Buscar si está instalado un programa:


# dpkg -l | grep -i paquete

Desinstalar:
# dpkg -r paquete

Instalando un programa con APT-GET


Este administrador de actualizaciones puede tanto actualizar programas individuales, instalar
programas y sus dependencias, o incluso bajarlos de Internet si se encuentra correctamente
configurado. De hecho, puede actualizar una distribución de una versión a otra. Este sistema se
encuentra disponible en Debian, Ubuntu, y derivaciones. Los repositorios se encuentran listados en
/etc/apt/sources.list

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

Actualizar la lista de programas en el repositorio


# apt-get update

Actualizar todos los programas en el sistema


# apt-get upgrade

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:

Reconocimiento. Debe reconocer los créditos de la obra de la manera


especificada por el autor o el licenciador.

No comercial. No puede utilizar esta obra para fines comerciales.

Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera


una obra derivada, sólo puede distribuir la obra generada bajo una licencia
idéntica a ésta.

• 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.

Última revisión: Abril 2006

Editado por Vladimir Hernández y Serena Ruíz

30
Comunidad de Usuarios de GNU/Linux y Software Libre en Baja California

Agradecimientos

Agradecemos a los siguientes miembros de LinuxBaja.org por su apoyo en la elaboración de este


libro (en orden alfabético de apellido):

● Alejandro Agudo maac@linuxbaja.org


● Vladimir Hernández interco@linuxbaja.org
● Serena Ruíz serena@linuxbaja.org
● Arturo Vázquez alas@linuxbaja.org

31