martes, 14 de junio de 2016

solaris


Solaris es un sistema operativo de tipo Unix desarrollado desde 1992 inicialmente por Sun Microsystems y actualmente propiedad de Oracle Corporation tras la adquisición de Sun por parte de esta. Sucesor de SunOS, es un sistema certificadooficialmente como versión de UNIX. Funciona en arquitecturas SPARC y x86 para servidores y estaciones de trabajo.El primer sistema operativo de Sun nació en 1983 y se llamó inicialmente SunOS. Estaba basado en el sistema UNIX BSD, de laUniversidad de California en Berkeley, del cual uno de los fundadores de la compañía fue programador en sus tiempos universitarios. Más adelante incorporó funcionalidades del System V, convirtiéndose prácticamente en un sistema operativo totalmente basado en System V.
Esta versión basada en System V fue publicada en 1992 y fue la primera en llamarse Solaris, más concretamente Solaris 2. Las anteriores fueron llamadas Solaris 1 con efecto retroactivo. SunOS solo tendría sentido a partir de ese momento como núcleo de este nuevo entorno operativo Solaris. De esta forma Solaris 2 contenía SunOS 5.0. Desde ese momento se distingue entre el núcleo del sistema operativo (SunOS), y el entorno operativo en general (Solaris), añadiéndole otros paquetes como Apache o DTrace. Como ejemplo de esta función, Solaris 8 contiene SunOS 5.8.olaris usa una base de código común para las arquitecturas que soporta: SPARC y x86 (incluyendo AMD64/EM64T). También fue portado a la arquitectura PowerPC (en plataforma PReP) en la versión 2.5.1, pero el soporte fue cancelado casi tan pronto como fue liberado.
En un tiempo se planeó la compatibilidad para el Itanium pero nunca se llevó al mercado.un también tiene planes de implementar APIs de Linux en Solaris 10, permitiendo la ejecución de código objeto Linux de forma nativa en la plataforma x86, lo cual sería facilitado por el hecho de que ambos sistemas operativos utilizan el formato ejecutableExecutable and Linkable Format. Por el momento, Sun ha adoptado la tecnología Lxruny la ofrece como descarga gratuita, si bien no está incorporada a la distribución base.
Solaris tiene una reputación de ser muy adecuado para el multiprocesamiento simétrico (SMP), soportando un gran número de CPUs. También ha incluido soporte para aplicaciones de 64 bits SPARC desde Solaris 7. Históricamente Solaris ha estado firmemente integrado con la plataforma hardware de Sun, SPARC, con la cual fue diseñado y promocionado como un paquete combinado. Esto proporcionaba frecuentemente unos sistemas más fiables pero con un coste más elevado que el del hardware de PCSun dejó ofrecer estaciones de trabajo basadas en arquitectura SPARC, reemplazándolas por algunos modelos basados en x86 y AMD64.
Versión de SolarisVersión de SunOSFecha de publicaciónDescripción
Solaris 11SunOS 5.119 de noviembre,2011Nuevas características y realce (comparado a Solaris 10) en empaquetado de software, virtualización de red, virtualización de servidor, almacenamiento, seguridad y soporte de hardware.
Solaris 10SunOS 5.1031 de enero,2005Incluye soporte AMD64/EM64T, DtraceSolaris ContainersService Management Facility (SMF) para reemplazar al sistema init.d,NFSv4. Modelo de seguridad basado en el menor privilegio.
Se ha eliminado soporte para procesadores sun4m y UltraSPARC I a frecuencia menor que 200 MHz. Se ha añadido Java Desktop System como escritorio por defecto. Se ha añadido GRUB como cargador de arranque para plataformas x86. Se ha añadido soporteiSCSI. Se ha añadido soporte para el nuevo sistema de archivos, ZFS (versión 1/06).
Solaris 9SunOS 5.928 de mayo2002(SPARC)
10 de enero,2003 (x86)
iPlanet Directory Server, Resource Manager, Solaris Volume Manager.
Añadida compatibilidad con Linux. Eliminado OpenWindows. Eliminado soporte para sun4d. La actualización más reciente es Solaris 9 9/05.
Solaris 8SunOS 5.8Febrero de 2000Incluye Multipath I/OIPv6 y IPsec. Introduce RBAC (control de acceso basado en roles).
Soporte para sun4c eliminado. La actualización más reciente es Solaris 8 2/04.8
Solaris 7SunOS 5.7Noviembre de1998
La primera versión de 64 bits para plataforma UltraSPARC. Añadido soporte nativo para registro de metadatos en el sistema de archivos (UFS logging).9
Solaris 2.6SunOS 5.6Julio de 1997
Incluye protocolo KerberosPAMTrueType, WebNFS, y soporte de archivos grandes.10
Solaris 2.5.1SunOS 5.5.1Mayo de 1996
Ésta fue la primera y única versión que soportó la plataforma PowerPC. También se añadió soporte Ultra Enterprise, y los identificadores de usuario (uid_t) se expandieron a 32 bits.11
Solaris 2.5SunOS 5.5Noviembre de1995
Primera versión en soportar UltraSPARC e incluir CDE, NFSv3 y NFS/TCP.12
Solaris 2.4SunOS 5.4Noviembre de1994
Primera versión unificada SPARC/x86. Incluye soporte de ejecución OSF/Motif.
Solaris 2.3SunOS 5.3Noviembre de1993OpenWindows 3.3 cambia de NeWS a Display PostScript y elimina soporte de SunView.
Esta versión fue sólo para SPARC.
Solaris 2.2SunOS 5.2Mayo de 1993
Primera en soportar la arquitectura sun4d. Esta versión fue sólo para SPARC.
Solaris 2.1SunOS 5.1Diciembre de1992 (SPARC),Mayo de 1993(x86)
Soporte para arquitectura Sun-4 y sun4m. Primera versión para Solaris x86.
Solaris 2.0SunOS 5.0Junio de 1992
Primera versión preliminar, soporte solamente para la arquitectura sun4c.

Android 

Android es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentestablets o tabléfonos; y también para relojes inteligentestelevisores y automóviles. Inicialmente fue desarrollado por Android Inc., empresa que Google respaldó económicamente y más tarde, en 2005, la compró.Android fue presentado en 2007 junto la fundación del Open Handset Alliance (un consorcio de compañías de hardwaresoftware ytelecomunicaciones) para avanzar en los estándares abiertos de los dispositivos móviles.El primer móvil con el sistema operativo Android fue el HTC Dream y se vendió en octubre de 2008.Los dispositivos de Android venden más que las ventas combinadas de Windows Phone e IOS.El éxito del sistema operativo se ha convertido en objeto de litigios sobre patentes en el marco de las llamadas «Guerras por patentes de teléfonos inteligentes» (en inglés, Smartphone patent wars) entre las empresas de tecnología. Segúndocumentos secretos filtrados en 2013 y 2014, el sistema operativo es uno de los objetivos de las agencias de inteligenciainternacionales.
Historia
En octubre de 2003, en la localidad de Palo Alto, Andy Rubin, Rich Miner, Chris White y Nick Sears fundan Android Inc. con el objetivo de desarrollar un sistema operativo para móviles basado en Linux. En julio de 2005, la multinacional Google compra Android Inc. El 5 de noviembre de 2007 se crea la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicioEl mismo día se anuncia la primera versión del sistema operativo: Android 1.0 Apple Pie. Los terminales con Android no estarían disponibles hasta el año 2008El mismo día se anuncia la primera versión del sistema operativo: Android 1.0 Apple Pie. Los terminales con Android no estarían disponibles hasta el año 2008
Versiones  
  • Android 1.0 Apple Pie: Esta primera versión de Andorid ya lograba ofrecer un navegador web, Bluetooth, y Google Maps.
  • Android 1.1 Banana Bread: Esta versión quedó muy cruda y con pocas novedades. Permitía adjuntar archivos las reseñas de negocios en Google Maps.
  • Android 1.5 Cupcake: Esta fue la primera versión que se popularizó en masa. Llegó con el teclado virtual como principal novedad, dejando a un lado la necesidad de incluir teclados físicos en los celulares. También llego´con widgets, grabación y reproducción de videos, y auto-rotación de la pantalla.
  • Android 1.6 Donut: Por primera vez se integró una función que hoy en día continúa siendo importante para la accesibilidad. Al integras lo que conocemos cono síntesis de voz que permitía que Android “hablará” además de entender tu voz.
  • Android 2.0 Eclair: Fondos de pantalla animados y el soporte para flash en las cámaras se destacaron en esta versión.
  • Andorid 2.2 Froyo: Aquí fue tomando forma el verdadero Android moderno. Ya contaba con muchas posibilidades y en esta versión incluyó el famoso dictado por voz y la posibilidad de mover aplicaciones a una microSD.
  • Android 2.3 Gingerbread: Definitivamente, Gingerbread fue una de las actualizaciones más deseadas por los usurios de años atrás. Aquí comenzó a usarse Android para jugar, y otras novedades interesantes como la posibilidad de copiar y pegar texto, soporte para dos cámaras. (aquí llegaron las primeras cámaras frontales).
  • Android 3.0 Honeycomb: Esta versión fue lanzada principalmente para tablets, la interfaz fue pensada para pantallas más grandes, pero no tuvo mucho eco.
  • Android 4.0 Ice Cream Sandwich: ICS trajo por fin los botones virtuales. En este punto ya las fabricantes podrían dejar un lado los botones de navegación físicos (home, atrás, menú). También llegó con soporte para grabación de videos Full HD (1080p), y realizar capturas de pantalla.
  • Android 4.1 Jelly Bean: Otra de las versiones más utilizadas. Llegó con mejoras notables en la velocidad, mejoras en la seguridad, y Google Now.
  • Android 4.4 Kit Kat:KitKat es la versión de Android más utilizada. Llegó con una interfaz mejorada, barra de navegación y de estado transparentes, controlar la música desde la pantalla de bloqueo, y el modo inmersivo.
  • Android 5.0 Lollipop: Lollipop representa el mayor cambio visual de Android hasta el momento. En su lanzamiento, Google introdujo su guía de diseño material design, junto a otras novedades como animaciones circulares y más naturales, modos notificaciones en pantalla de bloqueo, barra de notificaciones más corto, integración del modo “Ahorro de batería”, y muchos otros cambios interesantes.
  • Android 6.0 Marshmallow: La última versión anunciada llegará a los consumidores dentro de poco. Contará con mejoras en la gestión de RAM, batería, Android Pay, y un software propio para leer las huellas dactilares.
  • Android MAndroid-6.0-estatua

IOS 

iOS es un sistema operativo móvil de la multinacional Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), después se ha usado en dispositivos como el iPod touch y el iPad. No permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Android y Windows Phone. Actualmente su sistema operativo se encuentra en la novena versión, mejor conocida como iOS 9.
Apple anunció el lunes 21 de septiembre de 2015 que su nuevo sistema operativo iOS 9 ya ha superado el 70% de adopción dentro de sus dispositivos compatibles. Según la marca de Cupertino, 2 de cada 3 dispositivos tienen iOS 9 instalado.
El día 23 de septiembre de 2015 (tan solo una semana después de la salida de iOS 9), Apple saca iOS 9.0.1 para solucionar problemas relacionados con las alarmas y temporizadores.
Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan acelerómetros internos para hacer que algunas aplicaciones respondan a sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en tres dimensiones (un resultado común es cambiar de modo vertical al apaisado u horizontal).
En el marco de las filtraciones acerca de los programas de vigilancia mundial de 2013-2014 de Edward SnowdenDer Spiegelpublicó que la NSA estadounidense tiene grupos de trabajo dedicados a descifrar los sistemas de seguridad de iOS; además tiene pequeños programas conocidos como scripts que permiten a la agencia vigilar a los usuarios de las distintas versiones del sistema iOS su geolocalización, notas de voz, fotos y otras aplicaciones como Google EarthFacebook o Yahoo! Messenger
iOS se deriva de OS X, que a su vez está basado en Darwin BSD, y por lo tanto es un sistema operativo Tipo Unix. iOS cuenta con cuatro capas de abstracción: la capa del núcleo del sistema operativo, la capa de "Servicios Principales", la capa de "Medios" y la capa de "Cocoa Touch". La versión actual del sistema operativo es iOS 9.3.1

Versiones 

1.  Mac OS X 10.0 Cheetah

Cheetah fue lanzado el 24 de marzo del 2001, y aunque tuvo algunas criticas negativas, por tener algunas fallas, tampoco fue tan mal recibido puesto que se pensaba que para ser la primera versión no estaba nada mal. 

2.  Mac OS X 10.1 Puma

Puma fue la segunda gran actualización de Mac OS X, con ella se empezó a notar la convención que conocemos de Apple, la cual dictaba que todas las versiones del software tendrían nombre de gran felino. 
Puma significó una mejoría con respecto a Cheetah, sin embargo, todavía no se consideraba un sistema operativo maduro, ya que tenía muchas áreas de oportunidad. 
El software fue lanzado el 25 de septiembre del 2001 como una actualización gratuita para los usuarios que contaban con Mac OS X 10.0. 

3.  Mac OS X 10.2 Jaguar

Con Jaguar se notaba cierta madurez del sistema operativo de escritorio de Apple. Los usuarios tenían menos quejas y las reseñas elogiaban las mejoras hechas con respecto a su versión anterior. A un precio de $129 dólares, Jaguar era la opción para mantenerse vigente en cuestiones de software, si se era dueño de una Mac. 

4.  OS X 10.3 Panther

Apple seguía acostumbrando a sus usuarios a varias cosas, y Panther venía a confirmar que las actualizaciones del sistema operativo de Apple serían lanzadas cada año, que tendrían un precio de $129 dólares y que tendrían nombre de grandes gatos. 
Las anteriores convenciones establecidas con los lanzamientos ya no están vigentes, el software ha cambiado de precio, y como veremos más adelante, el nombre de grandes gatos y el intervalo de tiempo en el que se lanza la actualización puede variar. 
Panther fue lanzado el 24 de octubre del 2003. More »

5.  OS X 10.4 Tiger

Tiger tiene el honor de ser la actualización de Mac OS X que más ha durado sin tener un remplazo por parte de Apple. Su vigencia como sistema más actual de Apple fue de aproximadamente 30 meses. 

6.  Mac OS X Leopard (10.5)

Durante el tiempo de vida de Leopard, Apple hizo el cambio de procesadores en sus Macs, de Power PC a Intel, y fue por esa razón que Leopard fue la primera actualización del sistema operativo en funcionar con procesadores Intel, aunque, como es ovbio, podía funcionar con ambos. 
El lanzamiento de Leopard fue hecho en octubre 26 del 2007.  

7.  Mac OS X 10.6 Snow Leopard

La intención de lanzar Snow Leopard fue la de hacer mejoras en el "back end" del sistema, ya que los cambios visuales fueron pocos.Snow Leopard fue la primera de las versiones de Mac OS X que funcionaba solamente en computadoras Mac con procesador Intel.
Otra de sus características, fue que a diferencia de las anteriores versiones del sistema operativo, esta tenía un precio de solamente $29 dólares. 

8.  OS X 10.7 Lion

 Lion fue la octava gran actualización del sistema operativo de Apple. Inicialmente se anunció que sólo sería distribuido como descarga por medio de la Mac App Store, a un precio de $29 dólares, sin embargo, una vez lanzado, Apple decidió ponerlo disponible por medio de una memoria USB que tenía un precio de $69 dólares. 
Esta actualización fue lanzada el 20 de julio del 2011.

9.  Mac OS X 10.8 Mountain Lion

Mountain Lion llegó como una mejora, o refinamiento, de lo que es Lion, su anterior versión. Fue la primera actualización de OS X en ser distribuida exclusivamente por medio de descarga en la Mac App Store.
Se esperaba que esta versión del sistema operativo fuera muy parecida a lo que se podía ver en el sistema operativo de los dispositivos móviles de Apple (iOS), sin embargo, no sucedió así y algunos usuaros estuvieron decepcionados por eso, pero muchos otros estuvieron contentos e incluso en las reseñas de la prensa especializada, Mountain Lion lo hizo bien. 

10.  OS X 10.9 Mavericks

Mavericks trajo algunas mejoras visuales y otras mejoras de eficiencia y desempeño, y además hace al sistema un poco más parecido a lo que estamos acostumbrados a manejar en un navegador. Esta versión del sistema operativo de escritorio de Apple rompe con la convención de los nombres de grandes gatos, ya que su nombre es tomado de un lugar de California conocido por sus olas adecuadas para practicar el surfing. 


vi
Se aconseja la lectura previa del documento Manejo de terminales en UNIX para mejor entender el funcionamiento del vi.

Es un EDITOR, no un PROCESADOR DE TEXTOS. Está hecho para escribir y modificar ficheros de texto sencillos, programas, etc. No permite justificar párrafos, utilizar distintos tipos de letra, escribir a varias columnas, insertar gráficos, etc. No hay ningún programa de estas características que se proporcione con UNIX. Normalmente, es necesario adquirirlos por separado.
El editor vi es el más utilizado en ordenadores que utilizen el sistema operativo UNIX. Los usuarios no informáticos lo consideran demasidao complicado, sobre todo acostumbrados a los editores del sistema operativo DOS. Por eso se tiende a considerarlo muy atrasado, sin embargo es realmente potente. Su dificultad de manejo se justifica por las características de los terminales que había cuando fue diseñado y porque un objetivo primordial de su diseñador fue que pudiera ser utilizado en casi cualquier tipo de terminal por lo que no requiere el uso de teclas especiales, como las de movimiento del cursor o las de función (aunque en la mayoría de los terminales, las teclas de flechas sí se pueden utilizar, si se desea). Claro, esto es a costa de su sencillez de manejo. Es más sencillo para un usuario pulsar, por ejemplo, la tecla F10 para grabar el fichero que :w.

Comandos e introducción de texto


Por tanto, queda claro que no se pueden usar las teclas de función. En el vi a muchas funciones (como grabar fichero, borrar líneas, etc) se accede de dos formas posibles:
Usando la tecla Ctrl
Pulsar esa tecla (también llamada Control) junto con otra tecla alfabética. Por ejemplo, si dejo pulsada la tecla Ctrl mientras pulso f, avanzaré una página en mi documento. Hay que hacer notar que esto es posible porque todos los terminales generan el mismo código numérico al pulsar Ctrl junto con una letra, por tanto no hay problema de incompatibilidad entre fabricantes,
Usando comandos compuestos de teclas normales
Estos ultimos requieren una explicación. A base de utilizar sólo comandos compuestos por la tecla Ctrl y otra letra alfabética, tengo sólo 26 posibilidades (a...z) ya que Ctrl-a genera el mismo código que Ctrl-A (aquí no hay diferencia entre minúsculas y mayúsculas). Si no puedo usar las teclas de función ni otras especiales (por incompatibilidad entre fabricantes), ¿cómo puedo accder a las muchas funciones que tiene el editor? Pues mediante teclas normales. Pero si me dicen que el símbolo $ significa ir al final de la línea, esto no parece lógico, porque si pulso ese carácter, aparecerá en la pantalla tal como lo escribo.
Por eso el vi tiene dos modos de funcionamiento, entre los cuales el usuario debe alternar continuamente durante una sesión de edición:
Modo edición
Todo lo que escribo, aparece en pantalla, como es habitual en todos los editores.
Modo comando
Lo que escribo estando en este modo (al cual se accede pulsando la tecla ESC, llamada también escape), las teclas tienen un significado especial. Por ejemplo, $ mueve el cursor hasta el final de la línea,j lo mueve una línea hacia abajo, :w graba el fichero, :q es para salir del editor.
Del modo edición se pasa al modo comando usando la tecla ESC. Del modo comando se pasa al modo edición con alguna de las siguientes teclas: i,I,a,A,o,O (y alguna otra).
Hay que tener presente que al entrar en el editor vi, el modo inicial es el MODO COMANDO.

Entrada al editor vi


Si estamos en un terminal trabajando con un ordenador central que funcione con el sistema operativo UNIX (en cualquiera de sus muchas variantes), usaremos el programa vi para editar un fichero con el siguiente comando:
vi fichero
Tras ejecutar ese comando, se borra la pantalla y, si el fichero ya existía previemente, aparece su contenido. Si no existía, quedan todas las líneas de la pantalla vacías pero con una tilde (~) al principio. Con esa tilde representa el vi las líneas que están vacías.
Si no ocurre de esta forma y la pantalla queda desencajada, el problema puede estar relacionado con la variable TERM. Véase Manejo de terminales en UNIX para saber cómo solucionarlo.
Como dijimos antes, nada más entrar en el vi, estamos en el MODO COMANDO. Podemos usar aquí cualquiera de los comandos que veremos más adelante aplicables en este modo (y que están resumidos al final de este documento). Si queremos escribir algo en el fichero, iremos (en el modo comando) al lugar donde deseamos empezar a escribir y pulsaremos una de las teclas que nos pasan al MODO EDICION. En ese momento, todo lo que escribamos aparecerá en la pantalla.
Una cosa que hay que tener en cuenta en el manejo del vi es que conviene estar el máximo tiempo posible en el modo COMANDO, pues así las modificaciones no deseadas en el texto son menores. En cuanto terminemos de escribir, debemos pulsar ESC para ir al modo comando. Si queremos editar en otra parte del fichero, iremos a esa parte en este modo y en ahí pasaremos de nuevo al modo edición.


Primeros comandos


Antes que nada, tendremos que empezar a escribir algo en un fichero. Si vamos a llamar a este con el nombre primero, ejecutamos desde UNIX:
vi primero
Al pulsar la tecla INTRO aparece la pantalla vacía con una tilde al principio de cada línea. Estamos en modo comando, por lo que para comenzar a escribir hay que pasar al modo edición. La forma más habitual de hacer esto es con el comando i. Al pulsar esa letra, no ocurre nada, no vemos ningún cambio en la pantalla, pero el modo a cambiado al de EDICION.
Comenzamos ahora a escribir y el texto va apareciendo en la pantalla. Si escribimos más letras de las que caben en el ancho de la misma (normalmente 80 caracteres), continuarán por la línea siguiente.
Si nos equivocamos en una letra, podemos usar la tecla de borrado (normalmente tiene la inscripción <- o Backspace) para eliminar la última letra escrita. Si seguimos pulsando la tecla, borraremos las letras anteriores. Pero sólo podemos borrar así las últimas que hayamos escrito. Si escribimos un texto, luego pasamos al modo comando para hacer algo, y luego otra vez al modo edición, la tecla de borrado no me sirve para borrar lo que escribí antes. Habrá que moverse al sitio donde quiero borrar y usar el comando para ello. Algunos de los comandos que usaremos para estas operaciones (todos ellos se utilizan en MODO COMANDO) son (atención a la diferencia entre mayúsculas y minúsculas):

iPasar a modo EDICION (ya se ha explicado)
hDesplaza el cursor una posición a la izquierda
jIdem a la línea inferior
kIdem a la línea superior
lIdem una posición a la derecha
^fDesplaza el cursor una pántalla hacia adelante (unas 24 líneas)
^bIdem hacia atrás
^gNos informa del nombre del fichero que estamos editando, del número de la línea en la que estamos, y del número total de líneas del fichero.
GIr al final del fichero.
1GIr al principio del fichero.
xBorra el carácter sobre el que está el cursor
ddBorra la línea sobre la que está el cursor
^Desplaza el cursor al principio de la línea actual
$Idem al final de la línea
:w!Graba el fichero (y seguimos dentro del vi)
:q!Salir del editor, sin grabarlo previamente
:wq!Salir del editor, grabando previamente el fichero
En la mayoría de terminales, se pueden usar las teclas de flechas en lugar de hjkl. Hay que aclarar dos cosas en esta lista:
En primer lugar, usaremos la nomenclatura ^f para indicar que se mantiene pulsada la tecla Ctrl mientras pulsamos f.
En segundo lugar, el comando 1G es especial porque lleva un número al comienzo. Cuando ocurre esto, se considera como si dijéramos ejecuta el comando G con el argumento 1. Casi todos los comandos pueden llevar un número delante. En el caso del comando G, el número indica a qué línea del fichero queremos ir. Así, 1G significa ir a la línea 120G es ir a la línea 20. Una sóla G indica ir a la última línea.
En la mayoría de los comandos, un número precediendo al comando significa ejecuta n veces este comando. Así, si dd significa borrar una línea5dd significa borrar 5 líneas (la actual y las cuatro siguientes).
Los comandos que se ejecutan en modo comando no aparecen por pantalla, a excepción de los que empiezan por /,? o :

Otros comandos para pasar al modo edición


Ya hemos mencionado que para entrar en el modo edición se usa el comando i (de insertar). Al pulsarlo, lo que escribamos se añade justo donde está el cursor. A veces, debemos usar otro comando. Este es el caso de tener que añadir texto al final de una línea. Si tenemos una línea tal como la siguiente:
En un lugar de la Mancha
Si nos desplazamos al final para añadir lo que falta, el cursor no pasará más allá de la última a (nunca se puede mover el cursor después del último carácter de una línea). Si ahora pulsamos i y escribimos un texo, éste se insertará entra la h y la a. Lo que queremos en este caso no es INSERTAR, sino AÑADIR. Para ello se usa el comando a. Al introducirlo, el cursor -que estaba, recordemos, encima de la o- se sitúa después de esta letra, permitiéndonos escribir ahí.
Otro caso que se puede presentar es la nedesidad de escribir texto ANTES de la primera línea. ¿Cómo podemos hacerlo?. Si pulsamo i, insertamos texto en la línea actual. Se podría hacer lo siguiente:
  • Situar el cursor al principio de la primera línea
  • Pulsar i para insertar
  • Pulsar INTRO para insertar una línea en blanco
  • Pulsar ESC para pasar al modo comando
  • Pulsar k (o flecha arriba) para subir a la línea anterior
  • Pulsar i para insertar
Ya hemos abierto una línea y podemos escribir. Pulsando INTRO podemos abrir más líneas si queremos. Para evitar esa secuencia tan tediosa, hay otro comando significa abrir una línea antes de la que está el cursor y pasar en ella al modo edición. Este comando es O (o mayúscula).
Un comando relacionado es o (o minúscula) que significa abrir una línea después de la actual y pasar en ella al modo edición. La usaremos por ejemplo para añadi líneas al final del fichero.
Resumimos los comandos para pasar al modo edición (hay alguno más pero estos son los más habituales):

iInsertar texo delante de donde está el cursor
aAñadir texto a continuación de donde está el cursor
OAbrir una línea antes de la actual y editar en ella
oAbrir una línea después de la actual y editar en ella
Practiquemos con un ejemplo. Tenemos el texto:
Con diez cañones por banda,
No cruza el mar sino vuela,
un velero bergantín.
Evidentemente, falta el segundo verso. Si queremos escribirlo ahora, vamos a indicar tres formas de hacerlo (suponemos que estamos en modo comando):
Forma 1

  1. Ir a la primera línea.
  2. Ir al final de ella (con $ o pulsando l hasta llegar al final)
  3. Pulsar a para añadir
  4. Pulsar INTRO. Esto inserta un salto de línea, o sea, una línea nueva y deja el cursor al principio de la misma. Ya podemos escribir
Forma 2

  1. Ir a la primera línea
  2. Pulsa o. Esto inserta una línea debajo y pone el cursor en ella. Ya podemos escribir.
Forma 3

  1. Ir a la segunda línea
  2. Pulsar O. Esto inserta una línea encima de la actual y pone el cursor en ella. Ya podemos escribir.

Borrar y copiar


En cualquier editor, las operaciones de borrado y copiado de texto son muy importantes, pues se usan muy a menudo. Ya mencionamos en el apartado 3 algunos comandos para borrar. Damos aquí una lista más amplia:

xBorra el carácter sobre el que está el cursor.
ddBorra la línea en la que está el cursor.
d$Borra desde el cursor hasta el final de la línea.
JUne, al final de la línea actual, la siguiente (borra la separación entre ambas).
:1,10dBorra las líneas 1 a la 10.
:10,$dBorra las líneas desde la número 10 hasta la última.
:,$dBorra las líneas comprendidas entre la actual y la última.
Para copiar texto de un sitio del fichero a otro, primero hay que marcar el texto que vamos a copiar, luego ir al sitio donde queremos copiarlo, y dar la orden de copia. Esta orden de copia es el comando p. Hay varia formas de marcar el texto que queremos copiar. Por ejemplo:

YMarca la línea actual.
3YMarca tres líneas (la actual y las dos siguientes).
:1,yMarca desde la primera línea hasta la actual.
:,$yMarca desde la línea actual hasta el final.
Por ejemplo, si tenemos el texto:
Con diez cañones por banda,
viento an popa a toda vela.
No cruza el mar sino vuela,
un velero bergantin.
Queremos copiar las dos primeras líneas al final del texto. Para ello, situamos el cursor en la primera línea (se supone que estamos en modo comando; para asegurarnos, no está de más pulsa la tecla ESC) y usamos el comando 2Y (marcar dos líneas). A continuación, movemos el cursor hasta la última línea y usamos el comando p (este comando añade las líneas marcadas en la línea SIGUIENTE a la que está el cursor).
Si queremos copiar de la línea actual sólo lo que hay desde el cursor hasta el final, marcamos eso con y$. Para marcar desde el principio de la línea hasta el cursor: y^. Luego vamos al sitio donde queramos pegarlo y usamos el comando p.

Rangos de líneas


En algunos comandos, como vimos por ejemplo en el caso de dd, podemos indicar el rango de líneas en que hay que aplicarlo. Por ejemplo, 10dd significa borrar 10 líneas (la actual y las 9 siguientes). ¿Y si queremos borrar todas las líneas desde donde estamos hasta el final del fichero? No es necesario contar cuántas son, pues podemos hacer :,$d
El comando :d también sive para borrar líneas. A la mayoría de los comandos que comienzan por :,/,? podemos aplicar un rango de líneas a las que queremos aplicar el comando. Ese rango puede ser o un número de línea o un par de ellas separadas por coma. Si dejamos una sin número, indica la línea actual. Un signo $ indica la última línea. Ejemplos:

:1,dBorra desde la primera línea hasta la actual
:1,$dBorra todo el fichero
:,$dBorra desde la línea actual al final
:1,10dBorra las 10 primeras líneas
Puede haber un problema si queremos borrar un tango de líneas pero no sabemos cuáles son sus números. Para ello el vi tiene un comando que hace que todas las líneas aparezcan en pantalla numeradas:
:set number
vi tiene unos cuantos comandos para activar y desactivar determinadas características. Una lista exhaustiva se da al final de este manual. Si se desea usar siempre el vi con las líneas numeradas, en vez de escribi siempre el comando, se puede añadir esa línea al fichero .exrc de nuestro directorio actual.
Hemos visto cómo referirnos a la primera línea, a la última, la actual y a cualquier línea por su número. También podemos indicar líneas por su posición relativa a la actual:

:,+5dBorrar la línea actual y las cinco siguientes.
:-2,+2yMarca desde dos líneas antes de la actual hasta dos después


Búsqueda y sustitución


El editor vi es bastante potente en lo que se refiere a búsqueda y sustitución de texto, pues no se limita a palabras exactas, sino que puede tratar con patrones. Podemos pedirle, por ejemplo, que busque las líneas que comienzan por un número, o las palabras que tienen 7 caracteres, etc. La sintaxis de estos patrones es algo complicada, pero no está de más aprenderla si se va a trabajar frecuentemente con UNIX, pues muchos otros programas utilizan una sintaxis muy semejante. Los comandos para buscar son:

/Buscar hacia adelante (desde el cursor hasta el final del fichero)
?Buscar hacia atrás (desde el cursor al principio del fichero)
Al usar cualquiera de estos comandos, aparece en la última línea de la pantalla dicho comando (sea / o ?) y el cursor a continuación. Ahí debemos introducir lo que queremos buscar, e INTRO a continuación. Si el texto o patrón es encontrado, el cursor se posicionará en él. Pulsando sucesivamente / o ? seguidos de INTRO (es decir, sin introducir texto de búsqueda), se localizará la siguiente (en caso de /) o anterior (en caso de ?) ocurrencia del texto buscado.
La explicación de los patrones de búsqueda está más allá de este texto (está explicada en la página de manual UNIX del comando ed; se puede ver con la orden orden man ed), pero debemos explicar algunas cosas. Por ejemplo, el patrón
 ^[0-9]:
buscará las líneas que comienzen (esto se indica con ^) por un dígito (indicado por [0-9]) y luego el carácter :. otro ejemplo:
 ^.. ...$    
Busca las líneas compuestas unicamente por dos caracteres, un espacio y 3 caracteres más. El carácter ^ indica el comienzo de línea; el $ indica el final de línea y el punto un carácter cualquiera. Así estamos indicando que entre el principio y el final sólo debe haber dos caracteres cualesquiera, un espacio y otros tres caracteres.
El problema que se plantea es cuando queremos buscar el texto
 100$ 
Si lo buscamos con /100$, el signo $ se interpretará como fin de línea. Nosotros no queremos que sea así, sino buscar en el texto ese carácter. El mismo problema tenemos con los signos que tienen un sentido especial (como ^,[,],.). Estos caracteres deben ir con el signo [bsol ] delante para que se tomen literalmente, sin su sentido especial. Así para buscar 100$ sería:
/100\$
Esto se aplica a los siguientes caracteres:
     ^ $ . [ ] / \ 
Para SUSTITUIR texto, se usa el comando:
 :s/texto a buscar/texto sustituto/ 
Al introducir :s, el cursor va a la última línea de la pantalla y ahí escribimos el resto del comando. Eso sustituirá en la línea actual el texto a buscar por texto sustituido. Si queremos hacer esta operación en todo el fichero, haremos:
 :1,$s/texto a buscar/texto sustituto/ 
Vemos que entre el carácter :y la letra s podemos indicar el rango de líneas.
El comando s sustituye, como hemos dicho, un texto por otro, pero sólo la primera vez que aparezca el texto a buscar en cada línea. Si queremos sustituir todas las veces que aparezca, añadimos al final g:
 :1,$s/texto a buscar/texto sustituto/g 
Como ya hemos dicho, en la página del manual del comando ed se explica todo esto en más profundidad.

Otras posibilidades


Algunas de las muchas posibilidades adicionales que permite el vi, pero que no vamos a detallar son:
Registros
Los registros son como zonas de memoria donde podemos guardar trozos de texto para pegarlos en otros lugares. Ya vimos cómo hacer esto con los comandos Yy y p, pero sólo con un trozo a la vez.
Marcar lugares del texto
Podemos marcar puntos determinados del texto y movernos de unos a otros de forma sencilla.
Macros
Si hay secuencias de teclas que repetimos muy a menudo, podemos definir un comando especial que realice todos ellos con sólo dar ese comando.
Por último, en la siguiente table mencionamos algunos comandos útiles (atención a la mayúsculas y minúsculas, ya que al no ser comandos que se usan con la tecla Ctrl esto es importante):

.Repite el último comando.
uDeshacer el último cambio (undo).
JPega la línea siguiente al final de la actual.
%Si usamos este comando cuando el cursor está situado sobre alguno de estos caracteres: (,{,[ o sus correspondiente cerrados, el cursor se va hacia el lugar del documento donde esté el que lo cierra (o abre). Esto es muy interesante cuando se están editando programas.
:eficheroAbandonar el documento actual y cargar el otro fichero. Si no hemos grabado el actual, no nos lo permitirá a menos que usemos el comando :e! fichero.
:rficheroCarga el contenido del fichero en el lugar del documento actual donde esté el cursor.
:w ficheroGrabar el documento con el nombre fichero (que puede no coincidir con el nombre de que estamos editando).
:,$w ficheroGrabar desde la línea actual hasta el final en el fichero.
:nSi hemos ejecutado el vi con varios nombres, por ejemplo: vi *.c, con este comando abandonamos el actual y pasamos a editar el siguiente. Si no hemos grabado el actual no nos lo permitirá a menos que usemos :n!.
^lSi aparecen mensajes por la pantalla o ésta se queda desajustada, con este comando la refrescamos.
c$Cambiar hasta el final de la línea. Tras escribir este comando, todo lo que escribamos a continuación hasta que pulsemos ESC sustituirá a lo que había desde el cursor hasta el final de la línea.
c^Lo mismo pero sustituirá a lo que hay desde el principio de la línea hasta el cursor.
cwLo mismo pero sustituirá a la palabra sobre la que está el cursor.
:!shEjecutar una subshell donde podemos escribir comandos del sistema operativo. Cuando la abandonemos (con exit) volvemos al vi.
Para terminar, admitir que a pesar de su potencia es difícil dominar todo lo que hemos visto, y difícil es explicarlo, pero creo que se entiende facilmente la lógica de sus comandos, y a veces aunque no se sepa qué comando existe para hacer algo, se puede deducir. Por ejemplo