Revalora Mod. 1

Page 1

Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1

Administración de Servidores Linux Primera Unidad: Instalación y Configuración de Linux

Sesión 1 – Historia de Linux – Dispositivos, particionamiento – Instalación de Linux Sesión 2 – Identificación de Usuarios – El árbol principal (/) – Usuario normal y superusuario Sesión 3 – Comandos básicos – Personalización del Bash Sesión 4 – Configuración y uso del entorno gráfico – La Suite OpenOffice Sesión 5 – Programación en Shell Script – Automatización de Tareas Sesión 6 – Herramientas de administración – Administración de permisos y propiedad

Universidad Nacional de Ingeniería – Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI REVALORA - Perú

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

2

Administración de Servidores Linux Primera Unidad: Instalación y Configuración de Linux

R. Pfuyo Docente L. Muga Docente Linux Registered User # 487284

Software: Debian 5 Linux, CentOS 5.5 Composición: OpenOffice Versiones: Versión 1.0 : Publicación del manual.

Copyright (c) 2010 Centro de Cómputo INFOUNI. Permission is granted to copy, distribute and/or modify this document under the terms of the * GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

3

Indice General 1. Primera Unidad: Sesión 1

4

1.1 Historia de los Sistemas GNU/Linux

5

1.2 El Sistema de Archivos y Particionamiento

9

1.3 Instalación del Sistema Operativo Linux

14

2. Primera Unidad: Sesión 2

44

2.1 Configuración Postinstalación

44

2.1.1 Debian Lenny

44

2.1.2 CentOS 5.5

46

3. Primera Unidad: Sesión 3

49

3.1 Comandos Básicos

49

4. Primera Unidad: Sesión 4

68

4.1 La Suite OpenOffice

68

4.1.1 OpenOffice Writer

69

4.1.2 OpenOffice Calc

71

4.1.3 OpenOffice Impress

74

4.1.4 OpenOffice Draw

77

5. Primera Unidad: Sesión 5

78

5.1 Programación en BASH y Automatización de Tareas

78

* Licencia de Publicación

90

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

4

Primera Unidad Sesión 1 1.1 Historia de los Sistemas GNU/Linux Hace unos veinte años los usuarios de los primeros ordenadores personales no disponían de muchos sistemas operativos donde elegir. El mercado de los ordenadores personales lo dominaba un DOS de Microsoft. Otra posibilidad era los MAC de Apple, pero a unos precios desorbitados (en comparación) con el resto. La otra opción importante, aunque reservada a grandes (y caras) máquinas, era UNIX. Una primera opción que apareció fue MINIX (1984), creado desde cero por Andrew Tanenbaum, con el objetivo de usarlo para la educación, para enseñar diseño e implementación de sistemas operativos. MINIX fue pensado para ejecutarse sobre una plataforma Intel 8086, muy popular en la época porque era la base de los primeros IBM PC. La principal ventaja de este operativo radicaba en su código fuente, accesible a cualquiera (doce mil líneas de código entre ensamblador y C), ya que estaba incluido en el libro docente de sistemas operativos de Tanenbaum. Pero MINIX era más una herramienta de enseñanza que un sistema eficaz pensado para el rendimiento o para actividades profesionales. En los noventa, la FSF (Free Software Foundation) y su proyecto GNU, motivó a muchos programadores para promover el software de calidad y de distribución libre. Y apart e de softw are de utilidades, se trabajaba en un núcleo (kernel) de operativo denominado HURD, que llevaría varios años de desarrollo. Mientras, en octubre de 1991, un estudiante finlandés llamado Linus Torvalds presentaría la versión 0.0.1 de su kernel de sistema operativo, que denominó Linux, orientado a máquinas Intel con 386, y lo ofreció bajo licencia GPL a foros de programadores y a la comunidad de Internet para que lo probaran y, si les gustaba, le ayudaran a su desarrollo. El entusiasmo fue tal, que en poco Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

5

tiempo había un gran número de programadores trabajan do en el núcleo o en aplicaciones para él. Algunas de las características que diferenciaron a Linux de los sistemas de su tiempo y que siguen siendo aplicables, y otras heredadas de UNIX podrían ser: a) Sistema operativo de código abierto, cualquiera puede disponer de sus fuentes, modificarlas y crear nuevas versiones que poder compartir bajo la licencia GPL (que, de hecho, lo convierte en un software libre). b) Portabilidad: tal como el UNIX original, Linux está pensado para depender muy poco de una arquitectura concreta de máquina; consecuentemente, Linux es, en su mayor parte, independiente de la máquina de destino y puede portarse a prácticamente cualquier arquitectura que disponga de un compilador C como el GNU gcc. Sólo restan algunas pequeñas partes de código ensamblador y de algunos dispositivos dependientes de la máquina, que tienen que ser rescritas en cada puerto a una nueva arquitectura. Gracias a esto, GNU/Li nux es uno de los sistemas operativos que corre en mayor número de arquitecturas: Intel x86 y IA64, AMD x86 y x8664, Sparc de Sun, MIPS de Silicon, PowerPC (Apple), IBM S390, Alpha de Compaq, m68k Motorola, Vax, ARM, HPPArisc. c) Kernel de tipo monolítico: el diseño del kernel está unido en una sola pieza, pero es conceptualmente modular en las diferentes tareas. Otra escuela de diseño de operativos propone los microkernel (un ejemplo es Mach), donde los servicios se implementan como procesos aparte, comunicados por un (micro) kernel más básico. Linux se decidió como monolítico, porque es difícil extraer buen rendimiento de los microkernels (es un trabajo bastante duro y complejo). Por otra parte, el problema de los monolíticos es el crecimiento, cuando se vuelven muy grandes se vuelven intratables en el desarrollo, esto se intentó solucionar con los módulos de carga dinámica. d) Módulos dinámicamente cargables: permiten poner partes del sistema operativo, como filesystems, o controladores de dispositivos, como porciones externas que se cargan (o enlazan) con el kernel en tiempo de ejecución bajo demanda. Esto permite simplificar el kernel y ofrecer estas funcionalidades como elementos que se pueden programar por separado. Con este uso de Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

6

módulos, se podría considerar a Linux como un kernel mixto, ya que es monolítico, pero ofrece una serie de módulos que complementan el kernel (aproximación parecida al microkernel). e) Desarrollo del sistema por una comunidad vinculada por Internet: los sistemas operativos nunca habían tenido un desarrollo tan amplio y disperso, no suelen salir de la compañía que los elabora (en el caso propietario) o de un pequeño conjunto de instituciones académicas y laboratorios que colaboran para crear uno. El fenómeno de la comunidad Linux permite que cada uno colabore en la medida en que el tiempo y sus propios conocimientos se lo permitan. El resultado es: de cientos a miles de desarrolladores para Linux. Además, por su naturaleza de sistema de código fuente abierto, Linux es un laboratorio ideal para probar ideas de sistemas operativos al mínimo coste; se puede implementar, probar, tomar medidas y, si funciona, añadir la idea al kernel. Los proyectos se sucedieron y –en el inicio de Linus con el kernel– a la gente de la FSF, con el software de utilidad GNU y, sobre todo, con su compilador de C (GCC), se les unieron otros proyectos importantes como las XFree (una versión PC de las X Window), los proyectos de escritorio como KDE y Gnome. Y el desarrollo de Internet con proyectos como el servidor web Apache, el navegador Mozilla, o las bases de datos MySQL y PostgreSQL, acabaron por dar al kernel inicial Linux el recubrimiento de aplicaciones suficiente para construir los sistemas GNU/Linux y competir en igualdad de condiciones con los sistemas propietarios. Y convertir a los sistemas GNU/Linux en el paradigma del software de fuente abierta (Open Source). Los sistemas GNU/Linux se han convertido en la punta de lanza de la comunidad Open Source, por la cantidad de proyectos que se han podido aglutinar y llevar a buen término. El nacimiento de nuevas empresas, que crearon distribuciones GNU/Linux (empaquetamientos de kernel + aplicaciones) y le dieron apoyo, como Red Hat, Mandrake, SuSe, contribuyó a introducir GNU/Linux en las empresas reacias y a comenzar el imparable crecimiento que vivimos actualmente. Comentaremos también la discusión sobre la denominación de los sistemas como GNU/Linux. El término Linux para identificar el sistema operativo con que se trabaja es de común uso (para Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

7

simplificar el nombre), aunque en opinión de algunos desmerece el trabajo de la FSF con el proyecto GNU, el cual ha proporcionado las principales herramientas del sistema. Aun así, el término Linux, para referirse al sistema operativo completo es ampliamente usado comercialmente. En general, para seguir una denominación más ajustada a la participación de la comunidad, se utiliza el termino Linux, cuando nos estamos refiriendo sólo al núcleo (kernel) del sistema operativo. Esto crea cierta confusión, ya que hay gente que habla de “sistemas” o del “sistema operativo Linux” para abreviar. Cuando se trabaja con un sistema operativo GNU/Linux, se está trabajando sobre una serie de software de utilidades, en gran parte fruto del proyecto GNU, sobre el núcleo Linux. Por lo tanto, el sistema es básicamente GNU con un núcleo Linux. El proyecto GNU de la FSF tenía por objetivo crear un sistema operativo de software libre al estilo UNIX denominado GNU. Linus Torvalds consiguió en 1991 juntar su kernel Linux con las utilidades GNU cuando la FSF todavía no disponía de kernel. El kernel de GNU se denomina HURD, y hoy en día se trabaja bastante en él, y ya existen algunas versiones beta de distribuciones de GNU/HURD (ver más en el apartado dedicado a la administración del kernel). Se calcula que en una distribución GNU/Linux hay un 28% de código GNU y un 3% que corresponde al código del kernel Lin ux; el porcentaje restante corresponde a código de terceros, ya sea de aplicaciones o de utilidades. Para destacar la contribución de GNU [FSF], podemos ver algunas de sus aportaciones incluidas en los sistemas GNU/Linux: - El compilador de C y C++ (GCC) - El shell bash - El editor Emacs (GNU Emacs) - El intérprete postscript (ghostscript) - La biblioteca C estándar (GNU C library, o también glibc) - El depurador (GNU gdb) - Makefile (GNU make) Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

8

- El ensamblador (GNU assembler o gas) - El linker (GNU linker o gld) Los sistemas GNU/Linux no son los únicos en utilizar software GNU; por ejemplo, los sistemas BSD incorporan también utilidades GNU. Y algunos operativos propietarios como MacOS X (de Apple) también usan software GNU. El proyecto GNU ha producido software de alta calidad, que se ha ido incorporando a la mayor parte de las distribuciones de sistemas basadas en UNIX, tanto libres como propietarias. Es justo para todo el mundo reconocer el trabajo de cada uno denominando GNU/Linux a los sistemas que trataremos. Referencia: Introducción al sistema operativo GNU/Linux www.uoc.edu

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

9

1.2 El Sistema de Archivos y Particionamiento La mayoría de los sistema Unix tienen una distribución estándar de ficheros, de esta forma los recursos que el sistema posee y los archivos, serán fácilmente localizados. Esta distribución forma el árbol de directorios, el cual comienza con /, también conocido como directorio raíz. Directamente por debajo de este hay algunos subdirectorios muy importantes para el sistema: Estos son /bin, /etc, /dev y /usr, entre otros. Estos a su vez contienen otros directorios con archivos de configuración del sistema, programas, etc. Cada usuario posee un directorio en el /home que usualmente tienen el nombre del usuario que es su dueño. En algunas distribuciones puede ser encontrado en /usr/home. Veamos una pequeña descripción de cada uno de los directorios: - /bin: Es la abreviación de binaries, o ejecutables. Es donde residen la mayoría de los programas esenciales del sistema. Use la orden ls -F /bin para listar los ficheros. Podrá ver algunas órdenes que reconocerá, como cp, ls y mv. Estos son los programas para estas órdenes. Cuando usa la orden cp está ejecutando el programa /bin/cp. Usando ls -F se verá que la mayoría (si no todos) los ficheros de /bin tienen un asterisco añadido al final de sus nombres. Esto indica que son ficheros ejecutables. - /dev: El siguiente es /dev. Veamos de nuevo con ls -F. Los archivos en /dev son conocidos como controladores de dispositivo (device drivers) son usados para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc. Por ejemplo, de la misma forma que puede leer datos de un fichero, puede leerla desde la entrada del ratón leyendo /dev/mouse. Los ficheros que comienzan su nombre con fd son controladores de disqueteras. fd0: es la primera disquetera, fd1 la segunda. Ahora, alguien astuto se dará cuenta de que hay más controladores de dispositivo para disqueteras de los que hemos mencionado. Estos representan tipos específicos de discos. Por ejemplo, fd1H1440 accederá a discos de 3.5" de alta densidad en la disquetera 1. Aquí tenemos una lista de algunos de los controladores de dispositivo más usados. Nótese que incluso aunque puede que no tenga alguno de los dispositivos listados, tendrá entradas en dev de cualquier forma. • /dev/console hace referencia a la consola del sistema, es decir, al monitor conectado directamente a su sistema.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

10

• Los dispositivos /dev/ttyS* y /dev/cua* son usados para acceder a los puertos serie. Por ejemplo, /dev/ttyS0 hace referencia a "COM1" bajo MS-DOS. Los dispositivos /dev/cua son "callout", los cuales son usados en conjunción con un modem. • Los nombres de dispositivo que comienzan por hd acceden a discos duros. /dev/hda hace referencia a la totalidad del primer disco duro, mientras que /dev/hda1 hace referencia a la primera partición en /dev/hda. • Los nombres de dispositivo que comienzan con sd son dispositivos SCSI. Si tiene un disco duro SCSI, en lugar de acceder a él mediante /dev/hda, deberá acceder a /dev/sda. Las cintas SCSI son accedidas vía dispositivos st y los CD-ROM SCSI vía sr. • Los nombres que comienzan por lp acceden a los puertos paralelo. /dev/lp0 hace referencia a "LPT1" en el mundo MS-DOS. • /dev/null es usado como "agujero negro", cualquier dato enviado a este dispositivo desaparece. ¿Para qué puede ser útil esto? Bien, si desea suprimir la salida por pantalla de una orden, podría enviar la salida a /dev/null. Hablaremos más sobre esto después. • Los nombres que comienzan por /dev/tty[0-9]* hacen referencia a "consolas_virtuales" de su sistema (accesibles mediante las teclas Alt-F1, Alt-F2, etc). /dev/tty1 hace referencia a la primera VC, /dev/tty2 a la segunda, etc. • Los nombres de dispositivo que comienzan con /dev/pty* son "pseudo-terminales". Estos son usados para proporcionar un "terminal" a sesiones remotas. Por ejemplo, si su máquina está en una red, telnet de entrada usará uno de los dispositivos /dev/pty. - /etc: Contiene una serie de ficheros de configuración del sistema. Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicialización del sistema), etc. - /sbin: Se usa para almacenar programas esenciales del sistema, que usará el administrador del sistema. - /home: Contiene los directorios "home" de los usuarios. Por ejemplo, /home/infouni es el Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

11

directorio del usuario infouni. En un sistema recién instalado, no habrá ningún usuario en este directorio. - /lib: Contiene las imágenes de las librerías compartidas. Estos ficheros contienen código que compartirán muchos programas. En lugar de que cada programa contenga una copia propia de las rutinas compartidas, estas son guardadas en un lugar común, en /lib. Esto hace que los programas ejecutables sean menores y reduce el espacio usado en disco. - /proc: Es un "sistema de ficheros virtual". Los ficheros que contiene realmente residen en memoria, no en un disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener información acerca de que programas y procesos están corriendo en un momento dado. - /tmp: Muchos programas tienen la necesidad de generar cierta información temporal y guardarla en un fichero temporal. El lugar habitual para esos ficheros es en /tmp. - /usr: Es un directorio muy importante. Contienen una serie de subdirectorios que contienen a su vez algunos de los más importantes y útiles programas y ficheros de configuración usados en el sistema. Los directorios descritos son esenciales para que el sistema esté operativo, pero la mayoría de las cosas que se encuentran en /usr son opcionales para el sistema. De cualquier forma, son estas cosas opcionales las que hacen que el sistema sea útil e interesante. Sin /usr, tendría un sistema aburrido, solo con programas como cp y ls. /usr contiene la mayoría de los paquetes grandes de programas y sus ficheros de configuración. - /usr/bin: Es el almacén real de programas del sistema Unix. Contiene la mayoría de los programas que no se encuentran en otras partes como /bin. - /usr/etc: Como /etc contiene diferentes ficheros de configuración y programas del sistema, /usr/etc contiene incluso más que el anterior. En general, los ficheros que se encuentran aquí no son esenciales para el sistema, a diferencia de los que se encuentran en /etc, que si lo son. - /usr/include: Contiene los ficheros de cabacera para el compilador de C. Estos ficheros (la Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

12

mayoría de los cuales terminan en .h, de "header") declaran estructuras de datos, subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programación de en Unix a nivel de sistema. Si se está familiarizado con el lenguaje de programación C, aquí encontrarán los ficheros de cabecera , como por ejemplo stdio.h, el cual declara funciones como printf(). - /usr/lib: Contiene las librerías equivalentes "stub" y "static" a los ficheros encontrados en /lib. Al compilar un programa, este es "enlazado" con las librerías que se encuentran en aquí, las cuales dirigen al programa a buscar en /lib cuando necesita el código de la librería. Además, varios programas guardan ficheros de configuración en /usr/lib. - /usr/local: Es muy parecido a /usr contiene programas y ficheros no esenciales para el sistema, pero que hacen el sistema más divertido y excitante. En general, los programas que se encuentran en /usr/local son específicos de su sistema esto es, el directorio /usr/local difiere bastante entre sistemas Unix. Aquí encontrará programas grandes como TeX (sistema de formateo de documentos) y Emacs (gran y potente editor), si se los instala. - /usr/man: Este directorio contiene las páginas de manual. Hay dos subdirectorios para cada página "sección" de las páginas (use la orden man man para más detalles). Por ejemplo, /usr/man/man1 contiene los fuentes (es decir, los originales por formatear) de las páginas de manual de la sección 1, y /usr/man/cat1 las páginas ya formateadas de la sección 1. - /usr/src: Contiene el código fuente (programas por compilar) de varios programas de su sistema. El más importante es /usr/src/linux, el cual contiene el código fuente del Núcleo de Linux. - /var: Contiene directorios que a menudo cambian su tamaño o tienden a crecer. Muchos de estos directorios solían residir en /usr, pero desde que estamos tratando de dejarlo relativamente inalterable, los directorios que cambian a menudo han sido llevados a /var. Algunos de estos directorios son: • /var/log contiene varios ficheros de interés para el administrador del sistema, específicamente históricos del sistema, los cuales recogen errores o problemas con el sistema. Otros ficheros guardan las sesiones de presentación en el sistema, así como los Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

13

intentos fallidos. • /var/spool contiene ficheros van a ser pasados a otro programa. Por ejemplo, si su máquina está conectada a una red, el correo de llegada será almacenado en /var/spool/mail hasta que lo lea o lo borre. Artículos nuevos de las "news" tanto salientes como entrantes pueden encontrarse en /var/spool/news, etc. • /var/mail en algunas distribuciones como la RedHat, es donde se guardaran los emails que nos lleguen y mandemos. Referencia: Curso de Introducción a GNU/Linux: Historia, Filosofía, Instalación y Conceptos Básicos www.ant.org.ar

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

14

1.3 Instalación del Sistema Operativo Linux El presente documento se basa en dos de las distribuciones con excelente desempeño tanto en sistemas escritorio como en servidores; Debian Linux y CentOS Linux.

1.3.1 Requisitos de Hardware 1.3.1.1 Requisitos de Hardware para Debian Linux Una vez que haya reunido información sobre el hardware de su ordenador debe verificar que su hardware le permita realizar el tipo de instalación que desea efectuar. Dependiendo de sus necesidades, podría arreglarse con menos del hardware recomendado listado más abajo. Sin embargo, la mayoría de usuarios se arriesgan a terminar frustrados si ignoran estas sugerencias. Se recomienda como mínimo un Pentium 4, a 1 GHz para un sistema de escritorio. Sin escritorio: - 64 Megabytes (RAM mínimo), 256 Megabytes (RAM recomendado). - 1 Gigabyte de disco duro. Con escritorio: - 64 Megabytes (RAM mínimo), 512 Megabytes (RAM recomendado). - 5 Gigabytes de disco duro. Los requisitos de memoria mínimos necesarios son en realidad inferiores a los indicados arriba. En función de la arquitectura, es posible instalar Debian en sistemas con tan sólo 20 MB (en el caso de s390) a 48 MB (para i386 y amd64). Lo mismo se puede decir del espacio necesario en disco, especialmente

si

escoge

las

aplicaciones

que

se

van

a

instalar

manualmente.

Es posible ejecutar un entorno de escritorio gráfico en sistemas antiguos o de gama baja. En este caso es recomendable instalar un gestor de ventanas que consuma menos recursos que los utilizados en los entornos de escritorio de GNOME o KDE. Algunas alternativas para estos casos son

xfce4,

icewm

y

wmaker,

aunque

hay

más

entre

los

que

puede

elegir.

Es prácticamente imposible dar requisitos generales de memoria y espacio en disco para Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

15

instalaciones de servidores ya que éstos dependerán en gran medida de aquello para lo que se utilice el servidor. Recuerde que estos tamaños no incluyen todos los otros materiales que se encuentran habitualmente, como puedan ser los ficheros de usuarios, el correo y otros datos. Siempre es mejor ser generoso cuando uno está pensando qué espacio destinar a sus propios ficheros y datos. Una instalación estándar para i386, incluyendo todos los paquetes estándar y el núcleo 2.6 utilizado por omisión, ocupa 397 MB de espacio en disco. Una instalación mínima base sin seleccionar la tarea Sistema estándar ocupará 250 MB. Importante: En ambos casos es importante tener en cuenta que este es el espacio después de haber terminado la instalación y de que se hayan borrado todos los ficheros temporales. Tampoco tiene en cuenta la cantidad utilizada por el propio sistema de ficheros, por ejemplo por los ficheros de journal. Esto significa que hace falta bastante más disco durante la instalación y durante el uso habitual del sistema. Se listan los tamaños indicados por aptitude para las tareas listadas en tasksel. Tenga en cuenta que algunas tareas tienen componentes comunes, de modo que el tamaño total instalado para dos tareas juntas podría ser inferior al total obtenido al sumar sus tamaños individualmente. Tenga en cuenta que tendrá que añadir los tamaños que se indican en la tabla al tamaño de la instalación estándar para poder determinar el tamaño de sus particiones. La mayoría del espacio en disco que se indica en Tamaño instalado acabará utilizándose de /usr y en /lib. Por otro lado, el tamaño que se indica en Tamaño de descarga será necesario (temporalmente) en /var. Entorno de escritorio: - 1830 Tamaño instalado (MB) - 703 Tamaño de descarga (MB) - 2533 Espacio necesario para instalar (MB)

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

16

Portátil: - 26 Tamaño instalado (MB) - 9 Tamaño de descarga (MB) - 35 Espacio necesario para instalar (MB) Servidor Web: - 42 Tamaño instalado (MB) - 13 Tamaño de descarga (MB) - 55 Espacio necesario para instalar (MB) Servidor de impresoras: - 215 Tamaño instalado (MB) - 84 Tamaño de descarga (MB) - 299 Espacio necesario para instalar (MB) Servidor de DNS: - 3 Tamaño instalado (MB) - 1 Tamaño de descarga (MB) - 4 Espacio necesario para instalar (MB) Servidor de ficheros: - 74 Tamaño instalado (MB) - 29 Tamaño de descarga (MB) - 103 Espacio necesario para instalar (MB) Servidor de correo: - 14 Tamaño instalado (MB) - 5 Tamaño de descarga (MB) - 19 Espacio necesario para instalar (MB)

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

17

Base de datos SQL: - 50 Tamaño instalado (MB) - 18 Tamaño de descarga (MB) - 68 Espacio necesario para instalar (MB) Referencia: www.debian.org

1.3.1.2 Requisitos de Hardware para CentOS Linux Hardware recomendado para operar: - Memoria RAM: 64 MB (mínimo). - Espacio en Disco Duro: 1024 MB (mínimo) - 2 GB (recomendado). Arquitectura Soportadas: CentOS soporta casi las mismas arquitecturas que Red Hat Enterprise Linux: - Intel x86-compatible (32 bit) (Intel Pentium I/II/III/IV/Celeron/Xeon, AMD K6/II/III, AMD Duron, Athlon/XP/MP). - Advanced Micro Devices AMD64(Athlon 64, etc) e Intel EM64T (64 bit). Las versiones 3.x y 4.x (pero no la 5.0 y posteriores) además soportaron: - Intel Itanium (64 bit). - PowerPC/32 (Apple Macintosh PowerMac corriendo sobre procesadores G3 o G4 PowerPC). - IBM Mainframe (eServer zSeries y S/390). También se tuvo soporte para dos arquitecturas no soportadas por Red Hat Enterprise Linux. - Alpha procesador (DEC Alpha) (sólo en CentOS 4) - SPARC (beta en CentOS 4)

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

18

1.3.2 Instalando Linux 1.3.2.1 Instalando Debian Lenny

Figura 01: Una vez cargado el DVD de Debian Linux se nos muestra la ventana de instalación. Donde seleccionaremos Graphical install y Enter.

Figura 02: Seleccionamos nuestro idioma (Spanish – Español). Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

19

Figura 03: Seleccionamos nuestro país (Perú). Clic en Continuar.

Figura 04: Seleccionamos la distribución de nuestro teclado (Latinoamericano). Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

20

Figura 05: En la ventana de configuración de la red, hacemos clic en el botón Cancelar.

Figura 06: Seleccionamos No configurar la red en este momento, para realizar dicha configuración desde nuestro sistema operativo ya instalado. Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

21

Figura 07: Ingresamos el nombre de nuestro equipo que será visible desde la red, luego clic en Continuar.

Figura 08: Para el particionamiento de nuestro sistema seleccionamos Guiado – utilizar todo el disco, para que el asistente cree las particiones por nosotros. Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

22

Figura 09: Seleciconamos nuestro disco y clic en Continuar.

Figura 10: Seleccionamos el primer esquema de particionamiento, Todos los ficheros en una partición (recomendado para novatos). Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

23

Figura 11: Seleccionamos Finalizar el particionamiento y escribir los cambios en el disco. Clic en Continuar.

Figura 12: Las nuevas particiones deben ser creadas en el disco, seleccionamos Sí y luego clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

24

Figura 13: Se procede a la instalación del sistema base.

Figura 14: Ingresmos la contraseña de superusuario (root) de nuestro sistema y la confirmamos. Luego clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

25

Figura 15: Se procede a la creación de una cuenta no privilegiada, ingresamos el nombre de nuestro nuevo usuario y luego clic en Continuar.

Figura 16: Introducimos el nombre de la cuenta. Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

26

Figura 17: Ahora la contraseña para el usuario nuevo. Clic en Continuar.

Figura 18: Si deseamos agregar más Cds, DVDs a nuestro repositorio, insertamos los otro medios. En este caso seleccionamos No. Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

27

Figura 19: En la encuesta de paquetes seleccionamos No. Clic en Continuar.

Figura 20: Seleccionamos las colecciones de programas predefinidos para Entorno de escritorio y para un Sistema estándar. Clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

28

Figura 21: Se procede a la selección, descarga e instalaión de los paquetes.

Figura 22: Instalamos el cargador de arranque GRUB, seleccionando Si. Luego clic en Continuar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

29

Figura 23: Ya finalizada la instalación hacemos clic en Continuar.

Figura 24: Una vez reiniciado nuestro equipo se nos muestra el cargador GRUB de nuestro sistema.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

30

Figura 25: Se nos muestra la pantalla de bienvenida de Debian, ingresamos nuestro usuario no privilegiado que creamos a la hora de instalar el sistema operativo y luego la clave.

Figura 26: El escritorio de Debian.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

31

1.3.2.2 Instalando CentOS 5.5

Figura 01: Una vez cargado el DVD de CentOS se nos muestra la ventana de instalación. Donde damos Enter.

Figura 02: Se nos pide que hagamos una verificación a nuestro medio óptico, en caso de que se encuentre con fallas puede la instalación puede fallar. Seleccionamos OK y Enter.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

32

Figura 03: Ventana de Instalación de CentOS. Clic en Siguiente.

Figura 04: Seleccionamos el idioma (Spanish – Español). Clic en Siguiente.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

33

Figura 05: Seleciconamos la distribución de nuestro teclado (Latinoamericano). Clic en Siguiente.

Figura 06: Se nos muestra una ventana donde se inicializará nuestro disco duro. Clic en Si.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

34

Figura 07: Seleccionamos Usar espacio disponible en dispositivos seleccionados y crear diseño predeterminado. Clic en Siguiente.

Figura 08: En la ventana de dispositivos de red dejamos la configuración por defecto y clic en Siguiente.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

35

Figura 09: Escogemos la región en la que nos encontramos (América – Lima). Clic en Siguiente.

Figura 10: Ingresamos la contraseña de root. Clic en Siguiente.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

36

Figura 11: Seleccionamos el grupo de aplicaciones Desktop – Gnome. Clic en Siguiente.

Figura 12: Se procede a la comprobación de las dependencias.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

37

Figura 13: Hacemos clic en Siguiente para empezar con la instalación de CentOS.

Figura 14: Se procede a la instalación del sistema operativo.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

38

Figura 15: Una vez terminada la instalación. Clic en Reiniciar.

Figura 16: Ventana del cargador del sistema operativo.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

39

Figura 17: Carga del sistema operativo CentOS.

Figura 18: Ventana de configuración de CentOS. Clic en Adelante.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

40

Figura 19: Configuración del Cortafuegos (firewall) de CentOS. Configuramos como servicio confiable a SSH. Clic en Adelante.

Figura 20: Configuramos SELinux como Obediente. Clic en Adelante.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

41

Figura 21: Configuramos la fecha y hora de nuestro sistema. Clic en Adelante.

Figura 22: Creamos un usuario no privilegiado e ingresamos su clave. Clic en Adelante.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

42

Figura 23: Ventana de detección de dispositivos. Clic en Adelante.

Figura 24: Si contamos con software adicional que deseemos instalar, ingresamos los discos correspondientes. Luego clic en Finalizar.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

43

Figura 25: Ventana de inicio de sesión. Ingresamos nuestro usuario no provilegiado y su clave.

Figura 26: El escritorio de CentOS.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

44

Primera Unidad Sesión 2 2.1 Configuración Postinstalación 2.1.1 Debian Lenny Es una buena práctica realizar una copia de respaldo de todos los archivos de configuración que edite. Simplemente copiaremos el archivo original y le agregaremos la extensión .old para su rápida diferenciación: 1. cp /ruta/configuración.conf /ruta/configuración.conf.old

2.1.1.1 Configuración de red Respaldamos y abrimos el archivo: 1. cp /etc/network/interfaces /etc/network/interfaces.old 2. vim /etc/network/interfaces Podemos configurar nuestro interfaz para la obtención de una dirección IP mediante un servidor DHCP o configurarla de manera estática: Obtención de IP mediante servidor DHCP: auto eth0 iface eth0 inet dhcp 1. auto eth0: Instruye que el interfaz será levantado automáticamente cuando el sistema arranque, equivalente a ifup eth0 una vez iniciado el sistema. 2. iface eth0 inet dhcp: Indica que el primer interfaz de red (eth0) será configurado usando un servidor DHCP. Configuración IP estática: auto eth0 iface eth0 inet static address 192.168.50.xxx netmask 255.255.255.0 network 192.168.50.0 gateway 192.168.50.1 broadcast 192.168.50.255

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

45

1. auto eth0: Instruye que el interfaz será levantado automáticamente cuando el sistema arranque, equivalente a ifup eth0 una vez iniciado el sistema. 2. iface eth0 inet static: Indica que el primer interfaz de red (eth0) será configurado manualmente con los parámetros definidos. 3. address: cada interfaz de red conectada a una red IP es identificada por una IP única de cuatro bytes (32 bits). 4. netmask: es un número que establece qué parte de la IP de un host corresponde a la red y qué parte corresponde a la máquina. 5. network: IP que define el identificador de red. 6. broadcast : es la IP a la que se mandan los paquetes que deben recibir todas las máquinas de la red 7. gateway: es la IP de la máquina de nuestra LAN a través de la cual salimos hacia el exterior. Configuramos los servidores DNS en nuestro sistema. Creamos un respaldo del archivo (si es que existe) y abrimos/creamos el archivo: 1. cp /etc/resolv.conf /etc/resolv.conf.old 2. vim /etc/resolv.conf Insertamos las direcciones correspondientes a OpenDNS: nameserver 208.67.222.222 nameserver 208.67.220.220 Levantamos/activamos el adapatador de red: 1. ifup eth0 Es recomendable realizar las pruebas de conectividad correspondientes, con la puerta de enlace: 1. ping 192.168.50.1 Ahora con los servidores DNS o cualquier dominio de Internet: 1. ping 208.67.222.222 2. ping www.google.com

2.1.1.2 Configuración básica de repositorios Para la selección, descarga e instalación de paquetes para nuestro sistema, tendremos que hacer uso de los repositorios que tiene Debian publicados. Respaldamos y abrimos nuestro archivo de configuración de repositorios: 1.cp /etc/apt/sources.list /etc/apt/sources.list.old 2. vim /etc/apt/sources.list Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

46

Y agregamos/descomentamos las siguientes lineas. deb http://security.debian.org/ lenny/updates main contrib deb-src http://security.debian.org/ lenny/updates main contrib deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib deb ftp://ftp.debian.org/debian/ stable main contrib non-free Finalmente ejecutamos los comandos para la actualización de la lista de paquetes y del sistema: 1. apt-get update 2. apt-get upgrade

2.1.1.3 Instalación de paquetes Para la instalación de paquetería desde los repositorios usamos el comando: apt-get install nombre.del.paquete nombre.del.paquete2 1. apt: APT son las siglas de Advanced Package Tool. Es un sistema de gestión de paquetes de software desarrollado por el Proyecto Debian 2. apt-get: es la utilidad desde línea de comando para el uso de APT. 3. apt-get install nombre.de.paquete: Con nuestra lista de repositorios correctamente configurada, ahora se procederá a la búsqueda, descarga e instalación del paquete seleccionado (nombre.del.paquete).

2.1.2 CentOS 5.5 s una buena práctica realizar una copia de respaldo de todos los archivos de configuración que edite. Simplemente copiaremos el archivo original y le agregaremos la extensión .old para su rápida diferenciación: 1. cp /ruta/configuración.conf /ruta/configuración.conf.old

2.1.2.1 Configuración del equipo y red Configuramos el nombre del equipo: 1. hostname cliente Ahora el dominio del entorno de trabajo (si es que pertenecemos a uno): 1. domainname infouni.com

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

47

Configuramos los parámetros anteriores en el archivo network: 1. vim /etc/sysconfig/network HOSTNAME=cliente.infouni.com Configuramos ahora sudo, que permitirá realizar tareas administrativas sin estar logueado como root: 1. /usr/sbin/visudo 2. ##Allows people in group wheel to run all commands %wheel

ALL=(ALL) NOPASSWD: ALL

Ahora creamos un usuario que sustituya a root en las tareas de administración y mantenimiento (por seguridad): 1. /usr/sbin/useradd -u 1000 -G wheel -m admin Verificamos la creación del usuario con el comando id: 1. id admin Creamos una nueva clave para admin: 1. passwd admin Ahora la persona que recibirá los mensajes de root (admin): 1. vim /etc/aliases 2. #Person who should get root's mail root: admin Configuramos nuestra tarjeta de red: 1. system-config-network Dirección: 192.168.50.xxx Máscara: 255.255.255.0 Puerta de Enlace: 192.168.50.1 DNS Primario: 208.67.220.220 DNS Secundario: 208.67.222.222 Abrimos el archivo hosts y realizamos los siguientes cambios: Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

48

1. vim /etc/hosts 2. 192.168.50.xxx cliente cliente.infouni.com Como paso final es recomendable reiniciar el equipo: 1. reboot

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

49

Primera Unidad Sesión 3 3.1 Comandos Básicos Linux es un sistema operativo multitarea y multiusuario. Esto significa que puede haber más de una persona usando un ordenador a la vez, cada uno de ellos ejecutando a su vez diferentes aplicaciones. Bajo Linux, para que los usuarios puedan identificarse en el sistema, deben presentarse (log in), proceso que consta de dos pasos: Introducir el nombre de usuario (login) (el nombre con que será identificado por el sistema), y una contraseña (password), la cual es su llave personal secreta para entrar en la cuenta. En los sistemas UNIX tradicionales, el administrador del sistema asignará el nombre de usuario y una palabra de paso inicial en el momento de crear la cuenta de usuario. Como usted es el administrador del sistema, debe configurar su propia cuenta antes de poder presentarse. Para el resto de las discusiones, usaremos el nombre de usuario "no privilegiado". Además, cada sistema Linux tiene un nombre del sistema (hostname) asignado. Este "hostname" le da nombre a la máquina, además de cierta personalidad. El nombre del sistema es usado para identificar máquinas en una red, pero incluso aunque la máquina no esté en red, debería tener su nombre. Veremos como inicializar el nombre de la máquina. En nuestros ejemplos, el nombre del sistema será "infouni".

3.1.1 El Shell Es el interprete de comando, encargado de tomar los comandos que el usuario teclea y ejecutarlos mostrandonos los resultados. El shell es el mediador entre el sistema operativo y el usuario, los shells en Linux tienen amplias capacidades como entornos de programación propios,modificación de variables, redireccionamiento de entrada/salida, etc. Existen una gran cantidad de Shells con particularidades diferentes, Gnu/Linux por omisión trabaja con bash (BoruneAgain shell) aunque podemos instalar y utilizar otros (csh,ksh,zsh,etc). Referencia: Curso Preparatorio LPI www.logiclinux.com

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

50

3.1.2 Interacción con la Línea de Comandos- Para ejecutar estos comandos del shell de GNU Linux será necesario abrir una ventana de Terminal (si estamos en modo gráfico). - Muchos de estos comandos requieren permisos de superusuario root, por lo que será necesario estar logeado con este usuario para que funcionen. - Es posible que algunos de estos comandos no aparezcan en determinadas distribuciones de GNU Linux. Algunos de los comandos aquí mostrados son específicos de una o varias distribuciones GNU Linux. - Algunas de las salidas de la ejecución de algunos comandos del shell de GNU Linux puede que no sean iguales en las diferentes distribuciones. - Hay algunos comandos que su ejecución puede ser "peligrosa", es conveniente que se ejecuten sabiendo lo que se está haciendo y las repercusiones que puedan tener. Por ejemplo, el comando rm -f -r -v nombre_carpeta, eliminará todas las carpetas y subcarpetas a partir de la carpeta "nombre_carpeta", sin pedir confirmación. Otro ejemplo: el comando halt apagará el equipo sin pedir confirmación, si es un equipo de un usuario normal no habrá problema, pero si se trata de un servidor de base de datos, web, etc. los servicios que éste prestaba dejarán de funcionar.

COMANDO

DESCRIPCIÓN

EJEMPLO

su nombreusuario

Cambia el usuario actual a su root nombreusuario (pedirá la contraseña del usuario con el que queramos iniciar la sesión)

who -u

Muestra los usuarios conectados al who -u sistema

who -b

Muestra la fecha y hora del último who -b reinicio del sistema

ps -A

Muestra todos los procesos en ps -A ejecución y el identificador de proceso (PID)

ps -A | grep bash

Muestra todos los procesos que ps -A | grep bash Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

51

lleven la palabra "bash" ps -fu oracle

Muestra los procesos y los usuarios ps -fu oracle que los ejecutan en formato UNIX

ps -e -orss=,args= | sort -b -k1,1n Muestra los procesos ordenados por ps -e -orss=,args= | sort | pr -TW$COLUMNS uso de memoria (los que más -b -k1,1n | pr memoria usan al final) -TW$COLUMNS pstree

Procesos activos del sistema pstree jerarquizados en forma de árbol

kill -9 numeroproceso

Cierra el proceso especificado por el kill -9 745 PID (numeroproceso)

ls -l

Lista los ficheros y directorios de la ls -l ubicación actual

ls -lSrh

Muestra una lista de los ficheros de ls -lSrh una carpeta ordenados por tamaño (los más grandes al final)

sh nombreficherosh

Ejecuta el especificado

./nombrefichero

Ejecuta la aplicación especificada

fichero

de

script sh prueba.sh

./mysql

apt-get install nombreaplicacion Instala la aplicación especificada (si apt-get install mysqlse tiene conexión a Internet), sólo server disponible en distribuciones Debian apt-get update

Actualiza la base de datos de apt-get update paquetes a actualizar o instalar a partir del fichero '/etc/apt/sources.list'. La base de datos la constituyen un conjunto de ficheros ubicados en '/var/lib/apt/lists/'

apt-get upgrade

Actualiza todos los paquetes apt-get upgrade instalados en el sistema a la última

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

52

versión disponible apt-get install -f

Comprueba la correcta instalación apt-get install -f de los paquetes descargados en '/var/cache/apt/archives/', repitiendo la instalación si fuese necesario o bajando algún paquete dependiente que no se haya descargado

apt-get clean

Elimina todos los paquetes (.deb) apt-get clean descargados (almacenados automáticamente en '/var/cache/apt/archives/')

cp carpetadestino

nombrefichero Copia uno o varios (*) ficheros a la cp * /usr/bin carpeta especificada

mv carpetadestino

nombrecarpeta Mueve una carpeta/fichero al mv /home/alonso /etc destino especificado, también sirve para renombrar ficheros/directorios

apt-cache search datoabuscar

Busca una aplicación en la lista de ap-cache search mysql aplicaciones a instalar (sólo distribuciones Debian)

whoami

Muestra el usuario con el que se ha whoami iniciado la sesión de terminal

pwd

Muestra el directorio de trabajo pwd actual

ifconfig

Muestra la IP del configuración de red

iwconfig

Muestra información de las tarjetas iwconfig wlan0 de red inalámbrica (wireless) que haya instaladas en el equipo

ping host

Realiza ping entre pcs

pc

y

la ifconfig

ping 192.168.1.5

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

ifconfig id_tarjeta down

Detiene los servicios de red de la ifconfig eth0 down tarjeta especificada (id_tarjeta)

ifconfig id_tarjeta up

Inicia los servicios de red de la ifconfig eth0 up tarjeta especificada (id_tarjeta)

route

Muestra información de la tabla de route enrutación de la red

route add default ip_puerta_enlace id_tarjeta

53

gw Añade como puerta de enlace route add default gw (gateway) por defecto la indicada en 192.168.1.1 eth0 ip_puerta_enlace

passwd nombreusuario

Cambia la contraseña al usuario passwd alonso especificado

cat nombrefichero

Muestra el contenido de un fichero cat /etc/mysql/my.cnf (de texto)

vi nombrefichero

Utililidad que sirve para modificar vi /etc/mysql/my.cnf ficheros de texto plano: Pulse "i" para editar el fichero. Pulse "ESCAPE", a continuación ":wq" e INTRO para guardar los cambios y cerrar el fichero.

sudo comando usuario

Ejecuta el comando especificado con sudo apt-get install los derechos del usuario mysql-server root especificado (pedirá la contraseña de este usuario)

du nombredirectorio -h -s

Muestra el tamaño de todos los du -sh /home subdirectorios del directorio especificado y el tamaño total del mismo . -h: Muestra el resultado en unidades Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

54

entendibles por el usuario (Bytes, MB, GB, etc). -s: no muestra el tamaño de los subdirectorios, sí lo tiene en cuenta para el tamaño total de la carpeta rm nombrefichero

Borra / elimina especificado

el

fichero rm /home/alonso/hola.txt

rm -f -v

Elimina uno o varios ficheros sin rm -f -v fernando* pedir confirmación (-f), mostrando los ficheros que va eliminando (-v)

shred -u nombre_fichero

Elimina un fichero de forma segura shred -u (ya no podrá ser recuperado). El alonso" comando "rm" no elimina ficheros completamente, podrían ser recuperados

rm -f -r -v nombre_carpeta

Elimina una carpeta completa y rm -f -r todas sus subcarpetas: /home/alonso

"fernando

-v

-f: no pide confirmación al eliminar. -r: elimina recursivamente carpetas y subcarpetas y su contenido. -v: muestra el nombre de los ficheros y carpetas que va eliminando. date

Muestra la hora y la fecha

date

cal mes año

Muestra un calendario del mes y año cal 12 2005 especificados

man comando

Muestra ayuda sobre el comando man ifconfig especificado

cd nombredirectorio

Cambia del directorio actual al cd /usr/bin directorio especificado

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

mkdir nombredirectorio

Crea un directorio

rmdir nombredirectorio

Elimina el directorio especificado rmdir prueba (debe estar vacío)

rm -r nombredirectorio

Elimina el directorio especificado y rm -r prueba todo su contenido

file nombrefichero

Muestra el tipo de archivo o file cdrom directorio. Las posibles salidas:

55

mkdir prueba

ASCII English text directory symbolic link to 'enlace' executable

find expresionbusqueda

Busca ficheros coincidentes con la find . -name "*mysql*" expresión de búsqueda -print

find -size +500000

Muestra los ficheros de tamaño find -size +500000 superior a 500 MB

cksum nombrefichero

Muestra el CRC del fichero y el cksum isoinfo tamaño en bytes

grep MemTotal /proc/meminfo

Muestra la memoria RAM total del grep MemTotal sistema /proc/meminfo

grep SwapTotal /proc/meminfo

Muestra la cantidad de espacio swap grep SwapTotal del sistema (memoria de /proc/meminfo intercambio)

df -h

Muestra las unidades de disco, el df -h tamaño y el espacio libre. -h: muestra el resultado en unidades entendibles por el usuario (M= Megabytes, G=Gigabytes, etc).

df . -h

Muestra el espacio libre, ocupado y df . -h

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

56

total del disco actual uname -a

Muestra información del sistema. uname -a uname -a es equivalente a uname -snrvmpio, donde: -s: nombre del kernel. -n: nombre del equipo en la red (host). -r: release del kernel. -v: versión del kernel. -m: nombre hardware de la máquina. -p: tipo de procesador. -i: tipo de plataforma hardware. -o: nombre sistema operativo.

arp

Muestra y modifica las tablas de arp -i eth0 conversión de direcciones IP en direcciones físicas que usa el protocolo de resolución de direcciones (ARP ó Address Resolution Protocol)

chmod 777 nombrearchivo

Asigna al fichero nombrearchivo chmod 777 prueba permisos del lectura, escritura y ejecución para el propietario, grupo e invitado

chown nombrearchivo

nombreusuario Cambia el propietario del archivo chown alonso prueba nombrearchivo a nombreusuario

date --set=15:30

Cambia la hora del sistema a las date --set=15:30 15:30

deluser nombreusuario

Elimina el usuario nombreusuario y deluser alonso todos sus archivos de configuración

discover --xdriver video

Muestra el driver de la tarjeta de discover --xdriver video video

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

discover ethernet

Muestra el driver de la tarjeta de red discover ethernet

echo $NOMBREVARIABLE

Muestra el valor de la variable de echo $HOSTNAME entorno especificada (nombrevariable)

env

Muestra las variables de entorno env definidas para el usuario actual

fdisk -l

Muestra la estructura y tipo de fdisk -l particiones

57

find / -name mysql* -exec rm {} ; Busca todos los ficheros que find / -name mysql* comiencen por "mysql" y los -exec rm {}; ELIMINA free

Muestra información sobre la free memoria RAM y Swap (total, libre y ocupada)

fsck /dev/hda1

Comprueba el sistema de ficheros de fsck /dev/hda1 la partición hda1

gcc -o nombreprograma Compila "nombreprograma.c" y gcc -o prueba prueba.c ficheroresultante.c devuelve el ficheroresultante.c compilado groups

Muestra los grupos de seguridad a groups los que pertenece el usuario actual

groupadd nombregrupo

Añade un nuevo grupo de seguridad groupadd leerayuda

gunzip fichero.tar.gz | tar -xvf Descomprime y desempaqueta el gunzip mysql.tar.gz | fichero.tar archivo 'fichero.tar.gz' tar -xvf mysql.tar gzip fichero

Comprime el archivo "fichero", gzip mysql renomb?andolo a 'fichero.gz'

tar xvf fichero.tar

Desempaqueta "fichero.tar"

el

archivo tar xvf oracle.tar

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

58

tar -czvf ficheros_comprimir

fichero_tar Comprime/Empaqueta los ficheros tar especificados en /tmp/prueba.tar "ficheros_comprimir" en el fichero /root/* "fichero_tar"

-czvf

tar -tzvf fichero_tar

Muestra el contenido del fichero tar "fichero_tar" (comprimido con "tar") /tmp/prueba.tar

-tzvf

tar -tzvf /dev/st0

Muestra el contenido del dispositivo tar -tzvf /dev/st0 de copia de seguridad "/dev"st0"

tar -czvf /dev/st0

Descomprime el contenido del tar -czvf /dev/st0 dispositivo de copia de seguridad "/dev/st0" en la ubicación donde se ejecute el comando

head nombrefichero

Muestra las 10 primeras líneas del head mysql fichero nombrefichero

history

Listado de los comandos utilizados history por el usuario

nombreservicio -k restart

Reinicia el servicio nombreservicio

httpd -k restart

ifdown eth0

Para el servicio de red 'eth0'

ifdown eth0

ifup eth0

Arranca el servicio de red 'eth0'

ifup eth0

netstat -a

Muestra los puertos abiertos

netstat -a

netstat -atun | grep ESTAB

Muestra las conexiones establecidas netstat -atun | grep a puertos determinados ESTAB

type comando

Muestra la ubicación del comando type ifconfig especificado

mount -rt iso9660 /dev/hdc Monta la unidad de cdrom en modo mount -rt iso9660 /cdrom sólo lectura (r), con sistema de /dev/hdc /cdrom ficheros (t) 'iso9660', en el dispositivo '/dev/hdc', disponible en

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

59

el directorio '/cdrom' mount /floppy

-t

msdos

/dev/fd0 Monta la unidad de disquete, con mount -t msdos sistema de ficheros 'MS-DOS', en el /dev/fd0 /floppy dispositivo '/dev/fd0', disponible en el directorio '/floppy'

umount /dispositivo

Desmonta el dispositivo especificado umount /cdrom

umount -a

Desmonta todas las unidades y umount -a dispositivos montados

wc nombrefichero

Muestra las líneas, palabras y wc prueba caracteres del fichero especificado

whois nombredominio

Muestra información del dominio whois ajpdsoft.com especificado (fecha registro, fecha expiración, dns).

xvncviewer ip

Realiza control remoto al equipo con xvncviewer 192.168.1.3 la IP especificada (deberá tener instalado y en ejecución vncserver). Permite el control remoto tanto con PCs con Linux como con PCs con Windows

which comando

Localiza la ubicación del comando which ls especificado

wget direccionftp/nombrefichero

Descarga el fichero nombrefichero de la dirección ftp direccionftp. También sirve para conexión mediante http

addgroup nombregrupo

Añade un nuevo grupo de seguridad addgroup accesored

useradd -g nombreusuario

wget ftp://ftp.ajpdsoft.com/ j (en este caso el ftp debe soportar conexiones anónimas)

nombregrupo Añade un nuevo usuario con el useradd -g root alonso nombre nombreusuario perteneciente al grupo nombregrupo

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

60

tr 'A-Z' 'a-z' < fichero.txt

Convierte a minúsculas todos los tr 'A-Z' 'a-z' < prueba caracteres del archivo 'fichero.txt'

top

Muestra información de los procesos top que se están ejecutando, uso de CPU, memoria, PID, ... con la característica de que se va actualizando cada 5 segundos o tras pulsar la barra espaciadora

tail nombrefichero

Muestra las últimas diez líneas del tail my.cnf fichero nombrefichero

shutdown minutos 'mensaje'

Reinicia el sistema en los minutos especificados, previamente envía un mensaje a todos los usuarios conectados con el texto: mensaje

shutdown -h now

Apaga el sistema instantáneamente shutdown -h now (equivalente a halt o init 0)

shutdown -r now

Reiniciar el sistema instantáneamete shutdown -r now (equivalente a reboot o init 6)

shutdown -r hh:mm

Reinicia el equipo a la hora y minuto shutdown -r 20:00 indicada

cat /dev/hda > /dev/hdb

Copia todo el disco duro 'hda' en el cat /dev/hda disco duro 'hdb' /dev/hdb

>

cat /dev/cdrom /usr/fichero.iso

> Crea la imagen ISO-9660 del CD- cat /dev/cdrom ROM introducido, con el nombre /usr/fichero.iso 'fichero.iso' en el directorio '/usr'

>

shutdown 15 'El sistema se reiniciará en 15 minutos, guarde su información'

chgrp grupo archivo

Cambia el grupo del archivo chgrp especificado al grupo especificado mysql.cnf

accesored

sqlplus /nolog

Si tenemos Oracle instalado se sqlplus /nolog conectará a la BD connect / as sysdba

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

select status v$instance

61

from

hwbrowser&

Muestra el navegador de hardware hwbrowser& (modo gráfico): discos duros, SCSI, CD-ROM, USB, Unidades de cinta, etc

watch "comando"

Ejecuta repetidamente el comando watch "du -s -h" entre comillas y muestra el resultado en pantalla

whereis

Busca los archivos ejecutables, las whereis ls fuentes y el manual de un comando whereis man

ifdown eth0

Desactiva la tarjeta especificada (eth0)

ifup eth0

Activa la tarjeta de red especificada ifup eth0 (eth0)

chkconfig

Muestra/Modifica el estado de los chkconfig --list dbora servicios del sistema en cada nivel de arranque (runlevel)

modprobe

Añade/Elimina módulos del Kernel modprobe qla2300 de Linux

vmstat

Muestra estadísticas de uso de la watch "vmstat -s -S: M" memoria, cpu, lectuas/escrituras en disco, etc

free

Muestra estadísticas de uso de la watch "free -m" memoria

lsmod

Muestra el estado de los módulos en lsmod el Kernel de Linux

cd /etc/init.d

En el directorio init.d se guardan cd /etc/init.d todos los servicios instalados en el equipo, accediendo a este directorio ls -l

ls -l

de

red ifdown eth0

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

62

y haciendo un ls -l se pueden ver service nombre_servicio status

Muestra el estado del servicio service dsmserv status especificado "nombre_servicio": stopped, se está ejecutando, ...

service nombre_servicio start

Inicia el servicio "nombre_servicio"

especificado service dsmserv start

service nombre_servicio stop

Detiene el servicio "nombre_servicio"

especificado service dsmserv stop

service nombre_servicio restart

Reinicia el servicio "nombre_servicio"

especificado service dsmserv restart

export nombrevariable=valor

Cambia el valor de una variable de export entorno $PATH=/home/oracle/b in

echo nombrevariable

Muestra el valor de la variable de echo $PATH entorno nombrevariable

set

Muestra todas las variables de set entorno shell y su valor

$ORACLE_HOME/bin/rman target=/

Inicia el programa rman, para copias $ORACLE_HOME/bin/r de seguridad de Oracle en caliente man target=/

hostname -i

Muestra la IP de la interfaz de red hostname -i actual del equipo (normalmente eth0)

ethtool eth0

Muestra el estado actual de la ethtool eth0 interfaz de red indicada "eth0"

ethtool --change eth0 autoneg Permite cambiar de forma manual la ethtool --change eth0 off speed 100 duplex full velocidad del interfaz de red autoneg off speed 100 indicado, en este caso "eth0" duplex full ip addr add 192.168.1.100 brd + Añade una nueva IP al interfaz de ip addr dev eth0 red indicado, en este caso "eth0" 192.168.1.100

brd

add +

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

63

dev eth0 ip addr show

Muestra todas las direcciones de ip addr show todas las interfaces de red del equipo

cal -3

Muestra un calendario del mes cal -3 anterior, el actual y el siguiente a la fecha actual del equipo

last reboot

Muestra las veces que el equipo se last reboot ha reiniciado, la fecha, la hora y el tipo de reinicio

head -n1 /etc/issue

Muestra el nombre y la versión de la head -n1 /etc/issue distribución de GNU Linux instalada

grep "model /proc/cpuinfo

name" Muestra el fabricante, el modelo y la grep "model velocidad del procesador (CPU) del /proc/cpuinfo equipo

name"

hdparm -tT /dev/sda

Realiza un test para calcular la hdparm -tT /dev/sda velocidad de transferencia del disco duro indicado

alias comando

Permite asignar a un comando alias listar='ls -lah' creado por nosotros mismos con el nombre que queramos la ejecución de otro comando Linux, por ejemplo, el siguiente comando Linux: alias listar='ls -lah' creará un nuevo "comando" llamado "listar" que cada vez que se ejecute será igual que si ejecutásemos el comando ls -lah

lspci -tv

Muestra los dispositivos PCI lspci -tv (Peripheral Component Interconnect )

lsusb -tv

Muestra los dispostivos USB, la lsusb -tv ubicación, el bus, el puerto

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

64

visudo

Muestra y permite editar (como si de visudo vi se tratase) el fichero /etc/sudoers, donde se le indica a Linux qué usuarios podrán ejecutar comandos como si fuesen el superusuario root utilizando el comando "sudo"

telnet IP Puerto

Realiza una conexión mediante telnet Telnet al equipo indicado "IP" 4899 utilizando el puerto indicado "Puerto"

nano nombre_fichero

Editor en modo texto más intuitivo y nano /etc/sudoers fácil de usar que vi

ftp

Realiza un conexión mediante el ftp protocolo FTP a un servidor de FTP

192.168.1.100

usermod -a -G nombre_grupo Agrega el usuario "nombre_usuario" usermod -a -G dba root nombre_usuario al grupo de seguridad "nombre_grupo" id nombre_usuario

Muestra el uid interno del usuario id root "nombre_usuario" y los grupos de seguridad a los que pertenece

adduser -u 0 -o -g 0 -G Añade un nuevo usuario al sistema adduser -u 0 -o -g 0 -G 0,1,2,3,4,6,10 -M operativo como si se tratase del 0,1,2,3,4,6,10 -M nombre_usuario superusuario root (con los mismos fernando permisos) crontab -e

Edita el fichero "crontab" crontab -e (equivalente al programador de tareas de Windows). Permite agregar nuevas tareas programadas, modificar o eliminar las actuales

init numero_nivel

Cambia el nivel de ejecución al init 5 indicado: 0 - halt (apagar equipo). 1 - Single user mode (modo monousuario). Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

65

2 - Multiuser, without NFS (multiusuario, sin funciones de red). 3 - Full multiuser mode (multiusuario, con funciones de red). 4 - unused (no utilizado). 5 - X11 (multiusuario, red, modo gráfico). 6 - reboot (reinicio del sistema). runlevel

Muestra el nivel de ejecución runlevel anterior y el actual. Si no ha cambiado, mostrará "N" en el anterior

halt

Apaga el equipo. Comando halt equivalente a ejecutar: init 0 (más o menos). En realidad, lo que hace halt es comprobar si el sistema se está deteniendo (reiniciando o apagando) consultado el fichero /var/log/wtmp. Si no se está deteniendo ya lo apaga

poweroff

Apaga el equipo (equivalente a init 0, poweroff shutdown -h now, halt)

reboot

Reinicia el equipo (equivalente a reboot shutdown -r now, init 6) Referencia: www.ajpdsoft.com

3.2 Personalización del Bash Lo primero es editar el archivo /home/usuario/.bashrc: vim .bashrc Y ahora a ir añadiéndole opciones: Variables PS1 es una variable que contiene el prompt, lo que aprece a la espera de que escribamos, este es Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

66

el que suele venir por defecto: PS1='[\u@\h \W]\$ ' Podemos poner un prompt colorido con alguna de estas líneas: PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] ' PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$ \[\e[m\]\[\e[1;37m\] ' También podemos editar el .bashrc de root y ponerle una de estas dos: PS1='\[\e[1;31m\][\u@\h \W]\$\[\e[0m\] ' PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;31m\]\$ \[\e[m\]\[\e[1;32m\] ' Bash permite nombrar hasta 3 prompts, llamandose PS1, PS2, PS3. Alias Podemos poner multitud de alias, entre los que se destacan: Alias para descuidos, que avisen a la hora de hacer ciertas cosas: alias rm='rm -i' alias mv='mv -i' Alias para permitir algunos fallos ortograficos: alias unmount='umount' alias pakman='pacman' Alias para ahorrar tiempo: [Debian y derivados (Ubuntu,etc.)] alias aptsearch='sudo aptitude search ' alias aptinstall='sudo aptitude install ' alias aptupdate='sudo aptitude update && sudo aptitude upgrade' [Arch Linux] alias pacsearch='sudo pacman -Ss' alias pacinstall='sudo pacman -Sy' alias pacupdate='sudo pacman -Syu' También, mediante alias, se pueden colorizar muchas cosas, en la mayoría de distros ya viene por defecto. De todos modos aquí hay algunas lineas que servirán para esto: Colorizar la salida de ls eval "`dircolors -b`" //para que cargue los colores de cada tipo de archivo alias ls='ls --color=auto' alias dir='dir --color=auto' Colorizar la salida de egrep y derivados: alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

67

alias egrep='egrep –color=auto' Funciones También se pueden añadir al archivo scritps: [Solo Arch] Script para ver la salida de pacman con colores: alias pacs="pacsearch" pacsearch () { echo -e "$(pacman -Ss $@ | sed \ -e 's#current/.*#\33[1;31m&\33[0;37m#g' \ -e 's#extra/.*#\33[0;32m&\33[0;37m#g' \ -e 's#community/.*#\33[1;35m&\33[0;37m#g' \ -e 's#^.*/.* [0-9].*#\33[0;36m&\33[0;37m#g' )" }

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

68

Primera Unidad Sesión 4 4.1 La Suite OpenOffice OpenOffice es un producto de Sun Microsystems, el cual es libre de copia y corre bajo cualquier sistema operativo. Es totalmente amigable e incluso mantiene la forma de trabajo de otras suites a través del tiempo se ha tomado un standard. OpenOffice contiene cuatro principales herramientas que permiten: la creación de documentos, hojas de cálculo, presentaciones y tratamiento de gráficos. A continuación, una tabla de cada herramienta con sus respectivas descripciones:

Compatibilidad de archivos, tipos de documentos OpenOffice Writer .sxw, .sdw, .doc, .docx, .rtf, .txt, .htm/.html, Cartas, documentos, reportes, resúmenes, libros, periódicos, etc.

OpenOffice Calc .sxc, .dbf, .xls, .xlsx, .sdc, .slk, .csv, .htm/html, Hojas de cálculos, tablas, bases de datos simples, etc.

OpenOffice Impress .sxi, .ppt, .ppt, .pptx, .sxd, .sdd, Presentaciones, presentaciones Web, etc.

OpenOffice Draw .sxd, .sda; y exporta varios formatos como .jpg, .mbp, .gif , .png, gráficos, dibujos, etc. Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

69

4.1.1 OpenOffice Writer Es el equivalente a Word en software libre. Sus posibilidades y forma de utilizarlo es enormemente parecida, con la ventaja de que al tratarse de software libre podemos descargarlo gratuitamente de Internet y actualizarlo cuantas veces queramos sin pagar derechos de autor.

Procesador de textos propietario, No propietario: El procesador de texto propietario, es aquel que algún individuo o compañía retiene el derecho de autor exclusivo sobre esa pieza de programación (procesador de texto), al mismo tiempo que niega a otras personas el acceso al código fuente del programa y el derecho a copiarlo, modificarlo o estudiarlo, como por ejemplo programas como Microsoft Word. El término “propietario” alude a que está “poseído y controlado privadamente”. En cambio el procesador de texto no propietario cumple la función contraria del procesador de texto propietario, es aquel que una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente, el más destacado es OpenOffice Write.

Interfaz gráfica: La apariencia de Writer es muy similar al resto de aplicaciones existentes en el mercado, con lo que aprender a utilizarlo resulta realmente sencillo. Lo primero es ver que los controles se encuentran en la parte superior de la aplicación ordenadas en tres filas. La primera contiene los menús, la segunda la barra de herramientas estándar y la tercera la barra de objetos.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

70

La primera fila es donde se ubica la barra de menús, que no es otra cosa que una serie de palabras que nos indican una categoría. Al hacer clic sobre una palabra da pie a un menú en cascada con opciones relacionadas, por ejemplo en Archivo tenemos Guardar un documento. Entonces tenemos: Archivo: Encontramos acciones que se aplican a todo el documento, por ejemplo: Nuevo, Abrir, Guardar e Imprimir. Editar: Encontramos acciones que se aplican para editar el documento, por ejemplo: Deshacer, Copiar, Buscar y Reemplazar. Ver: Encontramos acciones que se aplican para controlar la visualización del documento, por ejemplo: Regla, Barra de Estado y Escala. Insertar: Encontramos acciones que se aplican para insertar elementos en un documento, por ejemplo: Salto de Página, Encabezamiento y Pie de página. Formato: Encontramos acciones para formatear el diseño de un documento, por ejemplo: Formato de Página/Párrafo y Columnas. Tabla: Encontramos acciones para insertar y editar una tabla en un documento, por ejemplo: Insertar/Borrar tablas y Unir celdas. Herramientas: Encontramos acciones que nos ayudan a controlar y personalizar OpenOffice.org, por ejemplo: Revisión Ortográfica, Idioma, y Opciones. Ventana: Controlamos la visualización de ventanas. Ayuda: Encontramos enlaces a la ayuda de OpenOffice.org. La segunda fila son una serie de iconos agrupados y nos permiten realizar las funciones básicas de OpenOffice.org, como Guardar o Imprimir. Por eso se llama barra de herramientas estándar o de funciones.

La segunda fila son una serie de iconos agrupados y nos permiten realizar las funciones básicas de OOo (OpenOffice.org), como Guardar o Imprimir. Por eso se llama barra de herramientas estándar Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

71

o de funciones. La tercera fila alberga la barra de objetos, que no son más que iconos que nos dan acceso directo a funciones específicas de OpenOffice.org Writer, OpenOffice.org Calc, etc. Por ejemplo ahí podemos cambiar el tipo de fuente o su color. Todas las acciones que se pueden llevar a cabo en OpenOffice.org las puedes realizar como mínimo de 2 formas diferentes, desde el menú principal, desde un icono de acceso directo o por combinación de teclas. Por ejemplo, resulta muy útil saber que Ctrl+G es para guardar un documento.

4.1.2 OpenOffice Calc OpenOffice Calc es una hoja de cálculos que forma parte de las aplicaciones libres de oficina de OpenOffice.org. Es la alternativa libre a Microsoft Excel. Permite el manejo de gran cantidad de datos (generalmente numéricos) rápida y ordenadamente, pudiendo además mostrarlos en diagramas y/o tablas.

Hoja de Cálculo propietario, no propietario: Hoja de cálculo no propietario. El programa de hoja de cálculo no propietario es aquel que puede ser distribuido, modificado, copiado y usado; por lo tanto, debe venir acompañado del código fuente para hacer efectivas las libertades que lo caracterizan. El software no propietario viene protegido con copyleft impide a los redistribuidores incluir algún tipo de restricción a las libertades propias del software así concebido, es decir, garantiza que las modificaciones seguirán siendo software libre. Es importante señalar, que es conveniente no confundir el software libre (no propietario) con el software gratuito, este no cuesta nada, hecho que no lo convierte en software libre, porque no es una cuestión de precio, sino de libertad (editarlo, modificarlo, redistribuirlo etc.).

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

72

Hoja de cálculo propietario. La hoja de cálculo no libre es llamada software propietario pertenece al grupo de software privativo, software privado o software con propietario. Se refiere a cualquier hoja de cálculo en el que los usuarios tienen limitadas las posibilidades de usarlo, modificarlo o redistribuirlo (con o sin medicaciones), o que su código fuente no está disponible o el acceso a este se encuentra restringido. El programa de hoja de cálculo propietario pertenece a una persona física o jurídica (por nombrar algunos: compañía, corporación, fundación) posee los derechos de autor sobre un software negando o no otorgando, al mismo tiempo, los derechos de usar el programa con cualquier propósito; de estudiar cómo funciona el programa y adaptarlo a las propias necesidades (donde el acceso al código fuente es una condición previa); de distribuir copias; o de mejorar el programa y hacer públicas las mejoras (para esto el acceso al código fuente es un requisito previo).

TRES TIPOS DE DATOS QUE PUEDEN UTILIZAR LOS PROGRAMAS DE HOJA DE CÁLCULO. Texto: se utiliza para texto o combinaciones de texto y números, como direcciones, o para números que no requieren cálculo, como números de teléfono, números de pieza o códigos postales. Numérico: se utiliza para los datos que se van a incluir en cálculos matemáticos. Fecha/Hora: se utiliza para fechas y horas., Almacena 8 bytes. Sí/No: se utiliza para datos que pueden ser uno de dos valores posibles, como Sí/No, Verdadero/Falso, Activado/Desactivado. Hipervínculo: se utiliza para hipervínculos (hipervínculo: texto con color y subrayado o gráfico en el que se hace clic para ir a un archivo, una ubicación en un archivo, una página Web en World Wide Web o una página Web en una intranet. Los hipervínculos también pueden dirigirse a grupos de noticias y a sitios Gopher, Telnet y FTP.). Multimedia: es otro tipo de datos que emplean los programas de hoja de cálculo, Como imágenes, Gráficos e incluso audio y video.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

73

Interfaz gráfica Las siguientes órdenes de menú están disponibles para hojas de cálculo. Interfaz de línea de comandos: Los comandos para editar, ver, ordenar, formatear e imprimir un documento o su contenido sólo se pueden activar si el documento está abierto y se trata del documento actual. Un documento actual es el que figura en primer plano en la pantalla. Si los comandos debieran referirse a un solo objeto en el documento, el objeto en cuestión deberá estar seleccionado. Archivo: Estos comandos aplican para el documento actual, abrir un documento nuevo, o cerrar la aplicación. Editar: Este menú contiene comandos para editar los contenidos del documento actual. Ver: Este menú contiene comandos para controlar la visualización de las pantallas del documento. Insertar: El menú Insertar contiene comandos para insertar nuevos elementos, como celdas, filas, hojas y nombres de celda en la hoja actual. Formato: El menú Formato contiene comandos para dar formato a las celdas seleccionadas, los objetos y el contenido de las celdas del documento. Herramientas: El menú Herramientas contiene comandos para comprobar la ortografía, encontrar Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

74

referencias de hojas, encontrar errores y definir escenarios. Datos: Use el menú Datos para editar los datos en la hoja actual. Usted puede definir los rangos, tipo y filtro de datos, calcula resultados, esquema de datos, y abrir el Piloto de Datos. Ventana: Contiene comandos para manipular y mostrar ventanas de documentos. Ayuda: El menú Ayuda permite iniciar y controlar el sistema de Ayuda de OpenOffice.org.

Los menús son sensibles al contexto, esto significa que están disponibles las opciones de menú importantes para la tarea que se lleva a cabo en la actualidad. Si el cursor se encuentra en un texto, están disponibles todas las opciones de menú necesarias para editar el texto. Si en el documento ha seleccionado gráficos, entonces verá todos los elementos de menú que se pueden emplear para editar gráficos.

4.1.3 OpenOffice Impress OpenOffice Impress es una aplicación concebida para diseñar presentaciones en diferentes formatos, es la alternativa en Software Libre a Microsoft Powerpoint. Las presentaciones realizadas con OpenOffice Impress sirven de apoyo en presentaciones o exposiciones por medio de diapositivas a través de un computador y del Proyector. Al hacer clic sobre el icono que da inicio a OpenOffice Impress aparece una pequeña pantalla, esta pantalla es el asistente para la creación de presentaciones. (Una presentación es un conjunto de Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

75

diapositivas donde se desarrolla un tema de forma gráfica, textual y estructurada).

Esta pantalla nos muestra el asistente que nos ayudará a la realización de la presentación. Por medio de estas 3 opciones se elige el formato general de la diapositiva para la presentación deseada. Al seleccionar la primera opción “Presentación vacía” aparecerán 3 ventanas sucesivas, la primera pantalla en aparecer es la siguiente:

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

76

Al seleccionar la opción Original nos aparece la siguiente pantalla:

Anímate a jugar con estas opciones y verás lo que aparece en la presentación. Tienes varios efectos para elegir, así como la velocidad del efecto seleccionado. Luego presiona la opción Crear y te aparecerá la siguiente página:

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

77

Esta pantalla es la base de una presentación de OpenOffice Impress, en ella se pueden incluir una o varias diapositivas, representadas en forma de páginas. Además puedes seleccionar el tipo de diseño del menú que está ubicado al lado derecho.

4.1.4 OpenOffice Draw OpenOffice Draw es un editor de gráficos vectoriales comparable en características a CorelDRAW y es parte de la suite ofimática OpenOffice.org. Ofrece como característica "conectadores" versátiles entre figuras, que están disponibles en un rango de estilos de línea y facilitan hacer dibujos como organigramas.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

78

Primera Unidad Sesión 5 5.1 Programación en BASH y Automtización de Tareas Linux, así como la mayoría de los UNIX, utilizan shell scripts para realizar una infinidad de tareas. Un shell script es un programa que se escribe con una sintaxis particular, en un archivo de texto plano, para que sea interpretado por un shell, en este caso /bin/bash. Un shell script es básicamente un programa que llama a otros programas, con la posibilidad de hacer algun tipo de procesamiento propio (como control de flujo, operaciones matemáticas simples, etc). Por lo tanto la forma de crear un shell script es hacer un archivo con nuestro vi: 1. vi holam Luego lo llenamos con las instrucciones que deseamos. Por ejemplo: #!/bin/bash echo "Hola mundo!" # Esto es por costumbre utilizado como ejemplo del primer programa. # Se dice que trae suerte! Luego le damos permisos de ejecución a ese archivo: 1. chmod +x holam Y de esta manera ya tendremos listo un shell script que se ejecuta de la siguiente forma: 1. ./holam Debemos destacar la primera linea de nuestro script bash: - #!/bin/bash: Esta línea le indica al sistema que el script será interpretado por el programa que se encuentra a continuación de #!, en este caso, /bin/bash. Las últimas dos líneas son comentarios # Esto es por costumbre utilizado como ejemplo del primer programa. # Se dice que trae suerte! Los comentarios comienzan con # y se extienden hasta el final de la línea. Es muy útil ir comentando el código que uno escribe, para recordar qué realizan ciertas funciones o algoritmos, Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

79

y otra persona pueda comprender el funcionamiento de nuestro script.

5.1.1 Variables Las variables en un script BASH son simplemente identificadores sin tipo. Para asignar un valor a una variable, se utiliza el operador =, por ejemplo: [cliente@infouni ]$ MIVARIABLE=4 Por convención, los nombres de las variables se usan en mayúsculas, aunque no es obligatorio. Para usar el contenido de la variable, dentro de un script, se usa el operador $. Por ejemplo: [cliente@infouni ]$ echo $MIVARIABLE 4 Para utilizar el contenido de una variable, seguida de un texto, debemos usar las llaves {} Consideremos este ejemplo: ARCHIVO="/tmp/ej" mv $ARCHIVO $ARCHIVO-bak En este caso, bash interpretaría a $ARCHIVO y $ARCHIVO-bak como dos variables distintas, para evitar esto debemos reescribirlo de esta manera: ARCHIVO="/tmp/ej" mv $ARCHIVO ${ARCHIVO}-bak

5.1.2 Comillas En el shell, el espacio, o el tab, son separadores. Es decir, que cuando al shell le indicamos por ejemplo: ls -l hola que tal, lo interpreta como que le pedimos que nos brinde información sobre tres archivos, llamados: hola, que y tal. Si en realidad, lo que queríamos, era información sobre un archivo llamado "hola que tal", entonces hay varias maneras de indicarle al shell que los espacios entre esas palabras no deben ser separadores.

5.1.3 Escape ( \ ) Hay un caracter de escape, que indica al shell que el siguiente carácter no es especial. Y es la barra invertida. Por lo tanto, podríamos obtener la información del archivo "hola que tal" de la siguiente forma: ls -l hola\ que\ tal. Los espacios no son especiales, no son separadores, y "hola que tal" es una sola palabra. Algunos caracteres especiales más: \ @ ! | < > [ ] { } ( ) ? * $ ' ^ ` " # &.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

80

Por lo tanto, si queremos incluir la \ en alguna parte, entonces debemos ponerla 2 veces (\\), la primera para decirle a BASH que no tome como carácter especial lo que sigue y la segunda como ese carácter que queremos incluír. Esto es muy común en casos como: cd algún\ directorio\ con\ espacios

5.1.4 Comillas dobles ( " " ) Las comillas dobles hacen que los espacios entre las comillas no sean especiales. Por lo tanto, podríamos haber utilizado: ls -l "hola que tal". Todos los otros carácteres siguen siendo especiales.

5.1.5 Comillas simples ( ' ' ) Las comillas simples logran que ningún caracter (salvo la comilla simple misma) sea especial. Por ejemplo, si quisieramos crear un archivo que se llame *@$&, lo debemos hacer rodeándolo de comillas simples: touch '*@$&'. Si queremos poner una comilla simple, debemos "escaparla". Para crear un archivo llamado que'tal, deberíamos hacerlo así: touch 'que\'tal'. Ya que si no lo hacemos, la segunda comilla "cierra" la primera!

5.1.6 Comilla invertida ( ` ` ) Las comillas invertidas son más raras. Deben rodear un comando. Ese comando será ejecutado, y lo que ese comando imprima reemplazará al contenido de las comillas invertidas. Tal vez lo más sencillo sea un ejemplo: [cliente@infouni ]$ ls experto.aux experto.log experto.lyx experto.pdf experto.tex experto.dvi #experto.lyx# experto.lyx~ experto.ps experto.toc Ahora: [cliente@infouni ]$ V=`ls` [cliente@infouni ]$ echo $V experto.aux experto.log experto.lyx experto.pdf experto.tex experto.dvi #experto.lyx# experto.lyx~ experto.ps experto.toc El uso más frecuente de las comillas invertidas es poder asignar el "resultado" de un comando a una variable.

5.1.7 Control de flujo Esto refiere al cauce o flujo normal de los programas. No siempre hay un solo camino a seguir y estas proposiciones permiten que el programa realice distintas tareas, según las condiciones de las Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

81

variables a interpretar. "if": El "if" es un proposición de control que verifica si es verdadera o falsa una condición. Sintaxis: if comando-condición then Comandos si la condición es verdadera else Comandos si la condición es falsa fi Es importante que la ubicación de las lineas se mantenga, ya que las proposiciones if/then/else/fi se controlan línea por línea. La parte else es opcional. En caso de querer hacer todo el control en una sola línea, las proposiciones deberán estar separadas por un punto y coma (;). Los comandos que estén debajo del then se ejecutarán si la condición dio verdadera. Esto quiere decir que el valor de retorno de la condición fue 0 (cero). En caso contrario se ejecutarán los comandos que le siguen al else, si es que se utilizó esta proposición. En la condición se puede poner un comando, donde la ejecución del mismo (su valor de retorno) definirá qué comandos (de qué proposición) se ejecutarán. Si se verifica una condición, se deberán utilizar los corchetes para mayor comprensión. Ejemplos: Utilizando comandos: El hecho de entregar algo como salida se toma como condición lógica verdadera. if ps ax | grep httpd | grep -v grep then echo "El web server está funcionando" else echo "El web server NO esta funcionando" fi Utilizando condiciones: if [ -w /etc/passwd ] then echo "Tengo permisos de escritura en el archivo /etc/passwd" else echo "NO tengo permisos de escritura en el archivo /etc/passwd" fi

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

82

Puede suceder que tengamos que testear mas de una condicion, para esto, podemos utilizar la siguiente estructura: if condición1 then Comando1 Comando2 elif condición2 then Comando1 Comando2 else Comando-por-defecto #Ninguna de las condiciones anteriores es verdadera fi Esta es una manera de abreviar varias estructuras if - then - else - if en una sola, pudiendo utilizarse más de dos condiciones. La estructura de control if, es muy utilizada con test, que no es más que una operación de comparación, en las condiciones que se requieran. Comparaciones de cadenas alfanuméricas Operador Verdad (TRUE) si: -----------------------------------------cadena1 = cadena2 cadena1 es igual a cadena2 cadena1 != cadena2 cadena1 no es igual a cadena2 cadena1 < cadena2 cadena1 es menor que cadena2 cadena1 > cadena 2 cadena1 es mayor que cadena 2 -n cadena1 cadena1 no es igual al valor nulo (longitud mayorque 0) -z cadena1 cadena1 tiene un valor nulo (longitud 0) Comparación de valores numéricos Operador Verdad (TRUE) si: -----------------------------------------x -lt y x menor que y x -le y x menor o igual que y x -eq y x igual que y x -ge y x mayor o igual que y x -gt y x mayor que y x -ne y x no igual que y Atributos que se pueden comprobar Operador Verdad (TRUE) si: ------------------------------------------d archivo archivo existe y es un directorio -e archivo archivo existe -f archivo archivo existe y es un archivo regular (no un directorio, u otro tipo de archivo especial) Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

-r archivo -s archivo -w archivo -x archivo

Tienes permiso de lectura en archivo archivo existe y no esta vacío Tenés permiso de escritura en archivo Tenés permiso de ejecución en archivo (o de búsqueda si es un directorio)

-O archivo -G archivo

Eres el dueño del archivo El grupo del archivo es igual al tuyo.

83

archivo1 -nt archivo2 archivo1 es mas reciente que archivo2 archivo1 -ot archivo2 archivo1 es mas antiguo que archivo2 "case": El "case" es una proposición que puede analizar y validar varios casos (opciones) del valor de una variable. Sintaxis case variable in patrón | patrón) Comando; Comando; Comando;; patrón | patrón) Comando; Comando; Comando;; *) Comandos si ningún otro valor fue igualado;; esac El case es raramente usado, pero es muy eficiente en algunos casos. Ejemplo: case $mes in ene*|Ene*) echo "Mes de Enero";; feb*|Feb*) echo "Mes de Febrero";; mar*|Mar*) echo "Mes de Marzo";; *) echo "Algún otro mes!";; esac Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

84

5.1.8 Ciclos Los ciclos contienen secciones del programa que se repetirán una determinada cantidad de veces o hasta que alguna condición cambie. “for”: El for debe ser el ciclo más utilizado, es muy práctico cuando se trabaja con shell scripts. A diferencia de los lenguajes de programación más comunes, un ciclo for dentro de un shell script realiza una acción dada sobre cada uno de los elementos de una lista, y no sobre una variable que se va incrementando en cada ciclo. La variable utilizada en el for (en este caso $i) es reemplazada por cada una de las palabras de la lista, en cada ciclo del for. Sintaxis: for i in lista de palabras do cuerpo del ciclo, $i tiene el valor de elementos sucesivos de la lista done Ejemplos: for i in `ls -1 /tmp` do echo $i rm -i $i done En este ciclo, el comando ls -1 /tmp, generará una lista de todos los archivos que existen en el directorio /tmp. Dentro del cuerpo del ciclo imprimimos el contenido de la variable y luego preguntamos si se desea borrar ese archivo (opción -i del comando rm). “while“: Este ciclo utiliza la condición de terminación de un comando (valor de retorno) para controlar la ejecución de los comando dentro del ciclo. Termina la ejecución del ciclo, cuando el comando devuelve falso (algo diferente a 0). Sintaxis: while comando do cuerpo del ciclo ejecutado a condición de que el comando devuelva verdadero done

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

85

Ejemplos: while sleep 60 do who | grep daniel done En este ejemplo, cada 60 segundos (definidos por el comando sleep 60), verificará si el usuario daniel ha ingresado al equipo. En caso de que lo haya hecho, el listado del who saldrá por pantalla (cada 60 segundos). “until”: Este ciclo se comporta de una manera muy similar al anterior, ya que define su control dependiendo del comando que ejecuta (si éste da verdadero, se sigue ejecutando el ciclo). Sintaxis: until comando do cuerpo del ciclo ejecutado a condición de que el comando devuelva falso. done Ejemplo: until who | grep daniel do sleep 60 done En este ejemplo, a diferencia del ejemplo del ciclo while, el ciclo ejecuta primero el comando, de esta forma no es necesario esperar 60 segundos para saber si el usuario daniel esta logueado en el equipo (si el usuario esta logueado, el ciclo termina).

5.1.9 Argumentos Los argumentos sirven para pasarle a un programa o una función valores desde la línea de comando. Variable $# $* $$? $$ $0 $1

Descripción Número de argumentos Todos los argumentos del shell Opciones suministradas al shell Valor de retorno del último comando ejecutado Identificación del PID (número de proceso) Nombre del script Primer argumento Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

$n

86

Argumento "n"

Ejemplo: #!/bin/sh # # Programa que recibe argumentos y los imprime por pantalla # echo "\$*: $*" echo "\$#: $#" echo "\$0: $0" echo "\$1: $1" echo "\$2: $2" Notas sobre el ejemplo: En la líneas de impresión (echo), para imprimir el símbolo "$" (pesos) se tiene que anteponer el símbolo "\" (contra barra), sino el shell lo va a interpretar como una variable, y si esta existe imprimirá su contenido.

5.1.10 Funciones Las funciones son un recurso esencial para la buena programación, permiten escribir una sola vez un pedazo de código que se repita varias veces en el script, y así, minimizar el margen de error y también la cantidad de líneas en el programa. Para utilizarlas simplemente se hace un llamado a la función. Las funciones pueden estar dentro del mismo shell script, o en un archivo aparte. Cuando se escriben las funciones en un archivo aparte, es muy importante utilizar el comando "." (punto) para cargarlas en memoria. Si no se cargan en memoria de esta manera, las funciones no estarán disponibles. Ejemplo: # # Cargando las funciones en memoria # . /home/jose/funciones/funciones-arch.sh Uso: La sintaxis para utilizar funciones es muy sencilla y no agrega mayor dificultad. El modo de uso se remite a definir la función especificando el nombre y parentesis que abren y cierran. Todos los comandos que involucran la función se encierran con llaves.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

87

Ejemplo: (archivo: lib/arch.sh) # # Funciones para manipulación de archivos # borrar () { arch=$1 if [ -z "$arch" ] then echo "No se recibió ningún archivo" return 2 else if [ -f "$arch" ] then if [ -w "$arch" ] then rm -i $arch else echo "No tengo permisos para borrar $arch" fi else echo "$arch no es un archivo" fi fi } (archivo: principal.sh) #!/bin/bash # # Programa ejemplo para el uso de funciones en shell script # # # Cargo las funciones en memoria # . lib/arch.sh dir=./ for i in $dir/* do borrar $i done

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

88

Notas sobre el ejemplo: (archivo: lib/arch.sh) Esta función toma el archivo a borrar como argumento (arch=$1), verifica que se le haya pasado un argumento realmente (if [ -z "$arch" ]), que un archivo pasado como argumento sea regular (if [ -f "$arch" ]) y que tenga permisos de escritura. En todos los casos de falsedad responde con un mensaje avisando el problema. (archivo: principal.sh) El programa hace un ciclo con los archivos de un directorio específico (for i in $dir/*) y se los pasa como argumento a la función borrar.

5.1.11 Valores de retorno Las funciones pueden devolver valores de error utilizando el comando "return <valor>". En caso de que no se especifique un valor de retorno de esta forma, el valor retornado será el que retorne el último comando ejecutado dentro de la función. Desafortunadamente no es posible asignar el valor retornado en una sola línea, siempre es necesario utilizar la variable especial "$?". Ejemplo: #!/bin/sh func () { return $1 } func 0 echo "ret: ($?)" func 1 echo "ret: ($?)" func 2 echo "ret: ($?)" func 3 echo "ret: ($?)"

5.1.12 Variables locales a la función Existe la posibilidad de utilizar variables locales a la función, esto significa que la variable solamente va a existir durante la ejecución de la función. Para crear una variable local a la función se utilizar el operador "local <nombre_de_variable>".

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

89

Ejemplo: func () { local x x=$1 echo "Dentro de la función \$x vale ($x)" } echo "Antes de ejecutar la función \$x vale ($x)" func HOLA!! echo "Después de ejecutar la función \$x vale ($x)"

5.1.13 Operaciones Aritméticas Existen varias formas de calcular valores dentro de un shell script. Tradicionalmente, estos cálculos se hicieron con programas externos, esto generaba un retardo inmenso en la ejecución del shell script. Hoy los nuevos intérpretes traen la posibilidad de hacer cálculos internamente. Para esto se utiliza una sintaxis especial, y es muy importante que los valores de las variables que utilicen para hacer estos cálculos sean números únicamente. Uso: La sintaxis para hacer operaciones aritméticas es la siguiente: $[<expresión>] Las operaciones que se pueden realizar son: suma $((1+1)) resta $((2-1)) multiplicación $((2*2)) división $((2/2]) otras como suma de bits, sacar el módulo, evaluación de igualdad, etc. Ejemplo: #!/bin/sh # # Operaciones aritméticas # x=2 tot=$[$x+1] echo "tot: ($tot)"

Referencia: wiki.xtech.com.ar

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

90

* Esta Obra se publica bajo una licencia: GNU Free Document License GNU Free Documentation License Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or otherfunctional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

91

formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

92

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

93

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements". 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE

Centro de Cómputo INFOUNI – REVALORA Perú


Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

94

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a notfor-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Centro de Cómputo INFOUNI – REVALORA Perú


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.