introduccion a la linea de comandos de linux - gnu

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

Upload: api-26907686

Post on 07-Jun-2015

6.302 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 2: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 3: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 4: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 5: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 6: Introduccion a La Linea de Comandos de Linux - GNU

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• Fácil de usar• Productivo

• Eficiente• Funciona todo el tiempo• Permite acceso remoto fácil• Poderosa = acceso total

Desventajas: • Requiere más equipo• Más complejo = más fallos

• Compleja de usar• No intuitiva

6

Page 7: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 8: Introduccion a La Linea de Comandos de Linux - GNU

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 superusuario

Contiene programas intrínsecos de Linux a usarse por el superusuario, también llamado “root”

8

Page 9: Introduccion a La Linea de Comandos de Linux - GNU

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 usuarios

Este directorio contiene un directorio por cada usuario. Es el lugar donde 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 programa

En este directorio se encuentran archivos de los programas tales como 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 (no estándar)

En algunas distros modernas (SuSE, Ubuntu) se instala el servidor de 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/var/www

bitácoraspá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

Page 10: Introduccion a La Linea de Comandos de Linux - GNU

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 --help Mostrar ayuda

Parámetros 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“l” =link“-” = archivo“s” = socket“b” = bloque

“r” = lectura (“read” en inglés)“w” = escritura (“write” en inglés)“x” = ejecución (“execute” en inglés)

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 permisos4 = permiso de lectura2 = permiso de escritura1 = permiso de ejecución

Archivos OcultosEn 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

Page 11: Introduccion a La Linea de Comandos de Linux - GNU

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 touchCambia 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-a Cambia la hora de acceso

-m Cambia la hora de modificación

-c NO crea un archivo nuevo si el nombre no existe

ParámetrosArchivos o directorios separados por UN espacio

11

Page 12: Introduccion a La Linea de Comandos de Linux - GNU

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 chmodCambia 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 comunespermisos numéricos Número de tres cifras con el 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

ParámetrosArchivos o directorios separados por UN espacio

Ejemplo:Darle todos los permisos a un archivo (tres opciones):$ chmod 777 archivoenblanco$ chmod ugo+rwx archivoenblanco$ chmod a+rwx archivoenblanco

Comando chownCambia la propiedad (el dueño) de un archivo. El usuario debe ser root.

chown

Uso: #chown opciones nuevopropietario:nuevogrupo archivo1 archivo2...

Opciones comunes-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

ParámetrosEl nuevo propietario y nuevo grupo separados por dos puntos “:”, y los archivos o directorios sobre los que se aplicará el cambio separados por UN espacio

12

Page 13: Introduccion a La Linea de Comandos de Linux - GNU

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

Ejemplo:Cambiar de propietario un archivo:# chown nuevousuario:nuevogrupo /tmp/archivoenblanco

Comando cdEl comando cd se utiliza para moverse entre el sistema de archivos, o sea, cambiar de directorio.

cd

Uso: $cd directorio_destino

Opciones comunesEste comando no tiene opciones

Parámetrosdirectorio_destino El directorio de manera absoluta o relativa (a partir del presente directorio). Omitido lleva a ~.

Comando pwdCon pwd (print working directory) se puede saber el directorio en donde se está.

pwd

Uso: $pwd

Opciones comunesEste comando no tiene opciones

ParámetrosEste comando no tiene parámetros

Ejemplo:Ver el directorio actual:$pwd

Comando lsEl 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 -ldrwxr-xr-x 2 interco users 88 2005-06-05 14:20 Arachnophiliadrwxr-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-l Listado largo (con tamaños y propiedades)-a Listar todo, incluyendo los archivos ocultos -h En listados largos, poner el tamaño del archivo en múltiplos (KB, MB, GB)-R Listar subdirectorios recursivamente

ParámetrosLos directorios a ser listados separados por un espacio. Si no se define este parámetro se listará el directorio en el que se esté (uso común de este comando)

Ejemplo:

13

Page 14: Introduccion a La Linea de Comandos de Linux - GNU

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 comunesNo hay opciones comunes

ParámetrosLos 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-p Copia manteniendo permisos, fechas, y propietarios

-a Copia todo incluyendo links

-i Modo interactivo: pregunta cada paso

-f Forzado, sobreescribiendo si es necesario

-r Recursivo, copia subdirectorios también

Parámetrosorigen Archivo o directorio a copiar

destino Archivo o directorio donde se pondrá la copia

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-i Modo interactivo: pregunta cada paso

-f Forzado, sobreescribiendo si es necesario

Parámetrosorigen Archivo o directorio a mover

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

Page 15: Introduccion a La Linea de Comandos de Linux - GNU

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

rm

Uso: $rm opciones archivo1 archivo2...

Opciones comunes-i Modo interactivo: pregunta cada paso

-f Forzado, ignora advertencias

-r Recursivo, borra directorios y subdirectorios

ParámetrosNombre de los archivos o directorios a borrar separados por UN espacio

*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 comunesNo hay opciones comunes

ParámetrosNombre de los directorios vacíos a borrar separados por UN espacio

Ejemplo:Eliminar un directorio vacío:$rmdir directorio_vacio/

Comando findEste 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-type Busca archivos de cierto tipo únicamente. 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

ParámetrosArchivos o directorios separados por UN espacio

*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

Page 16: Introduccion a La Linea de Comandos de Linux - GNU

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-h Ayuda, despliega la lista de opciones

--version Despliega la versión del comando

Parámetrosnombre El nombre del archivo o directorio a buscar

Ejemplo:Encontrar el archivo “kasteroids.xpm”:$locate kasteroids.xpm

Comando whichPara 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-a Mostrar todos los lugares donde se encuentre el programa, no sólo el primero

ParámetrosNombre del programa a localizar

Ejemplo:Localizar el comando “ls”:$which ls

Comando whereisEste comando encuentra la localización de programas, así como de sus manuales y las fuentes para compilarlo.

whereis

Uso: $whereis programa

Opciones comunesNo hay opciones comunes

ParámetrosNombre 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

Page 17: Introduccion a La Linea de Comandos de Linux - GNU

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

Comando catEl 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-n Agrega un número de línea a cada línea de texto -s Elimina líneas en blanco duplicadas

ParámetrosNombre de los archivos a desplegar separados por UN espacio

Ejemplo:Abrir un archivo de texto:$cat archivo.txt

Comando lessMuestra 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-c Limpiar la pantalla antes de avanzar -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

ParámetrosNombre del archivo a desplegar

Comando less - Opciones de NavegaciónCuando 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 headNos 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-número Donde número es un entero. Muestra “número” de líneas en vez de 10.

ParámetrosNombre de los archivos a desplegar separados por UN espacio

17

Page 18: Introduccion a La Linea de Comandos de Linux - GNU

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 tailIgual 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-número Donde número es un entero. Muestra “número” de líneas en vez de 10.-f Mantener el archivo abierto y mostrar las nuevas líneas de un archivo cambiante

ParámetrosNombre de los archivos a desplegar separados por UN espacio

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-w Sólo muestra el conteo de palabras-l Sólo muestra el conteo de líneas-c Sólo muestra el conteo de letras

ParámetrosNombre de los archivos a desplegar separados por UN espacio

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-v Mostrar las líneas que NO coincidan -c Contar de líneas que coincidan -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

ParámetrosNombre de los archivos o directorios a buscar separados por UN espacio

18

Page 19: Introduccion a La Linea de Comandos de Linux - GNU

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 comandosDentro 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 salidaLinux 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

Page 20: Introduccion a La Linea de Comandos de Linux - GNU

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.

FuncionamientoVim 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 cursorPuede 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 textoInsertando 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

Page 21: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 22: Introduccion a La Linea de Comandos de Linux - GNU

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 tarEn 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-c Crear nuevo archivo tar-t Lista los contenidos de un archivo tar -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

ParámetrosNombre de los archivos a abrir, listar contenidos o crear

*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

Page 23: Introduccion a La Linea de Comandos de Linux - GNU

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

Comandos zip y unzipDentro 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 comunesDescomprimir-l Lista los contenidos de un archivo zip Comprimir-r Comprimir directorios recursivamente Modificadores-d Especificar directorio dónde descomprimir

ParámetrosNombre de los archivos a abrir, listar contenidos o comprimir

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 psEste 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 COMMANDinterco 7025 0.0 0.1 3836 1332 ? Ss 07:29 0:00 /bin/sh /usr/X11R6/bin/kdeinterco 7214 0.0 0.1 3252 844 ? Ss 07:29 0:00 /usr/bin/gpg-agent --sh --daemoninterco 7261 0.0 0.1 4184 1416 ? Ss 07:29 0:00 ssh-agent /etc/X11/xinit/xinitrcinterco 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

Page 24: Introduccion a La Linea de Comandos de Linux - GNU

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

ps

Uso: $ps opciones [usuario]

Opciones comunes-e Lista todos los procesos principales -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

ParámetrosPara la opción -U especificar el nombre del usuario

Ejemplo:Listar todos los procesos propios:$ps ux

Comando killEste 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-l Listar todas las señales-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”

ParámetrosEl número de PID a detener

Ejemplo : Eliminar el proceso que tiene PID 9090:

$kill -9 9090

Comando wEs un comando muy sencillo que nos dice los usuarios en el sistema y sus procesos actuales.

w

Uso: $w

Opciones comunesNo hay opciones comunes

ParámetrosNo 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

Page 25: Introduccion a La Linea de Comandos de Linux - GNU

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

top

Uso: $top opciones

Opciones comunes-dN Refresca la pantalla cada N segundos

ParámetrosNo 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 dfEste 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-a Mostrar todas las particiones, así como los directorios virtuales (v. gr. /proc)-h Mostrar el espacio de los discos en múltiplos como KB, MG, GB, etc.

ParámetrosNo usa parámetros

Ejemplo:$df -h

25

Page 26: Introduccion a La Linea de Comandos de Linux - GNU

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

Comando duCon du vemos el uso de disco de cada directorio.

du

Uso: $du opciones Archivo1, Archivo2...

Opciones comunes-b Desplegar los tamaños en bytes en lugar de en 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

ParámetrosArchivos o directorios a evaluar

Ejemplo:Ver el sumario del tamaño del directorio /etc:.$du -sh /etc

Comando cfdiskEste 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 comunesNo tiene opciones comunes

ParámetrosEl 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 shutdownEste 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-r Reinicia la computadora -h Apaga la computadora-k Modo de ensayo, para simulacros de apagado

Parámetros+tiempo: En cuántos minutos apagar. Use now para apagar inmediatamente.mensaje: El mensaje a enviar a los usuarios que se encuentran en el sistema.

26

Page 27: Introduccion a La Linea de Comandos de Linux - GNU

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 fuenteEste 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 paquetesDebido 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ónPara 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 binariosAlgunos programas comerciales han creado archivos binarios ejecutables que permiten la instalación de paquetes con simplemente correrlos.

Compilando código fuenteLos 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

Page 28: Introduccion a La Linea de Comandos de Linux - GNU

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 RPMUna 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-i Instalar -v Modo explícito -h Genera una barra de avance en modo texto -U Actualizar paquete. Instala sobre una versión anterior-qa Consultar la base de datos de rpm instalados-e Eliminar (desinstalar) un paquete

ParámetrosAl instalar, el nombre del archivo .rpm. Al desinstalar (opción -e) solamente el nombre del programa, omitiendo su versión.

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 DEBDebian 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-i Instalar -l listar paquetes instalados -r Remover paquetes-s Información sobre un paquete instalado

ParámetrosAl instalar, el nombre del archivo .deb. Al desinstalar (opción -r) solamente el nombre del programa, omitiendo su versión.

28

Page 29: Introduccion a La Linea de Comandos de Linux - GNU

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-GETEste 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 comunesinstall Instalar paquete y sus dependencias update Actualizar paquetes disponibles en el repositorio upgrade Actualizar paquetesremove Remover paquetes

ParámetrosSólo el nombre del paquete a instalar.

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

Page 30: Introduccion a La Linea de Comandos de Linux - GNU

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

Page 31: Introduccion a La Linea de Comandos de Linux - GNU

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 [email protected] ● Vladimir Hernández [email protected] ● Serena Ruíz [email protected] ● Arturo Vázquez [email protected]

31