Está en la página 1de 16

Universidad Nacional Abierta y a Distancia – Unad

Paso 3- Usando Linux

Curso: Linux

Participantes:

Nubia Esperanza Prada Barajas c.c. 1.102.373.487

Juan Carlos Gaitán Rivillos c.c. 1-123-511-746

Ivan Salamanca Cely c.c. 86.053.048

Grupo: 250550_51

Actividad Colaborativa

Presentado a: Carlos Humberto Vargas

Universidad Nacional Abierta y a Distancia – Unad

Fecha: 31/10/2019
Introducción

En el desarrollo de esta actividad podemos apreciar que Linux está formado por miles
de componentes distintos, escritos en muchos lenguajes de programación diferentes.
Cada componente, ya sea una biblioteca software, una herramienta o una aplicación
gráfica, está disponible en forma de paquete fuente. Los paquetes fuente, en la mayoría
de los casos, constan de dos partes: el código fuente en sí, y los metadatos. Los
metadatos incluyen las dependencias del paquete, los derechos de autor e información
sobre la licencia e instrucciones sobre cómo compilar el paquete y así poder hacer la
instalación de manera exitosa.
Adicional a lo anterior podemos encontrar el desarrollo de la actividad donde notamos
que parte de los editores de texto y donde siguen teniendo la función de mostrar y editar
el contenido de los archivos de texto. No obstante, los programas modernos están
provistos de un gran número de extensiones para facilitarles el trabajo a los usuarios.
Así mismo decimos que en el S.O. Linux existen múltiples implementaciones de shell
(en Windows, el equivalente serían los programas "command.com" o "cmd.exe").
Atendiendo al shell del que proceden y a su similitud sintáctica (incluyendo sus
comandos internos), los shells de Unix pueden clasificarse en dos grandes familias
(existen algunos shell adicionales, de uso residual y dentro de los shells de una misma
familia también existen diferencias, pero gran parte de su sintaxis es común) por lo que
fue de gran ayuda la socialización de la actividad ya que pudimos complementar
algunos conceptos y conocer las diferentes investigaciones en mi grupo como
herramienta para nuestro aprendizaje.

Objetivos

 Conocer la estructura de los diferentes Editores Orientados a Terminal.


 Mostrar las características principales de Shell de Linux con sus respectivos
nombres de los desarrolladores.
 Hacer la sintaxis por medio de consulta sobre las Estructuras básicas de
programación en Shell para Bash.
Desarrollo de las Tablas Colaborativas

1. Editores Orientados a Terminal


Nombre del Editor Descripción
Vim y Gvim Realizar una sinopsis del software teniendo en
cuenta:
- Creador o creadores.
Fue creado por Bram Moolenaar en el año 1991
- Características principales.
GVim es un editor de textos que funciona con
las librerías gtk. Mantiene las funcionalidades
del Vim, y añade menús y un entorno gráfico,
funcionando fuera de la consola/terminal.
- Tipo de licencia.
Gvim. Es un programa de Código abierto
lanzado bajo la licencia GNU. Es una versión
gráfica del editor de textos Vim.[ CITATION ecu \l
9226 ]
Emacs Realizar una sinopsis del software teniendo en
cuenta:
- Creador o creadores.
Emacs comenzó a mediados de la década de
1970 en los laboratorios del MIT. Richard
Stallman comenzó a trabajar en GNU Emacs
allá por 1984 para producir una alternativa de
software libre a la propietaria Gosling Emacs.
[ CITATION Dam \l 9226 ]
- Características principales.
 Los modos de edición de contenido.
 Tiene una documentación completa y
cuenta con manual de Usuario.
 Da soporte Unicode completo para casi
todos los scripts humanos.
 Es un editor altamente personalizable.
 Es un buen sistema para descargar e
instalar extensiones.
  Es una buena opción GNU Emacs
25.3.2 ya que es la más destacada.
- Tipo de licencia.
Emacs es un editor de texto libre, de código
abierto, extensible y personalizable. Es
multiplataforma y lo encontramos disponible
para Gnu/Linux, Windows y Mac. Además está
desarrollado por el proyecto GNU y publicado
bajo licencia GNU GPL.
Mcedit Realizar una sinopsis del software teniendo en
cuenta:
- Creador o creadores.
MCEdit es un editor mundial de código abierto
para el popular juego Minecraft.  Fue creado por
GNU y se creó por primera vez para permitir a
los jugadores preservar cualquier cosa
construida con varias versiones antiguas de
Minecraft y llevarlas a versiones más nuevas del
juego.
Características principales.
 Navegar por el mundo usando controles
WASD familiares y apuntando con el
mouse.
 Tiene controles familiares al juego
original.
 Muestra ubicaciones de objetos tirados,
entidades, minerales ocultos, bloques
con "TileEntities", etc.
 Carga de mundos de versiones actuales
de Minecraft, y también las versiones
Indev y Classic.
 Tiene soporte limitado a mundos de
Pocket Edition.
 Exporta bloques o secciones de un mapa
como archivo para poder ser usado en
MCEdit o en otros programas.
- Tipo de licencia.
Cuenta con una Licencia de GNU GPL,
recomendado tomar la segunda versión.
[ CITATION MCE16 \l 9226 ]
Nano Realizar una sinopsis del software teniendo en
cuenta:
- Creador o creadores.
Creado por Proyecto GNU, y fue inicialmente
creado en 1999, pero en febrero de 2001, nano
pasó a ser parte oficial del Proyecto GNU.
- Características principales.
Como principal característica de Nano, partimos
de que es un editor de texto para sistemas
Linux/Unix, escrito en C, y presenta texto
coloreado para resaltar sintaxis en expresiones y
cuenta con una guia de ayuda para obtener
información adicional.[ CITATION wik \l 9226 ]
- Tipo de licencia.
Cuenta con una licencia en GNU General Public
License.
Gedit Realizar una sinopsis del software teniendo en
cuenta:
- Creador o creadores.
Su creador fue The GNOME Proyect y su
lanzamiento inicial fue realizado el día
12 de febrero de 1999.
- Características principales.
 Tiene soporte de textos
internacionalizados, usando la
codificación UTF-8
 Cuenta con coloreado del texto según la
sintaxis de varios lenguajes de
programación: Lenguaje de
programación C C, C++, Lenguaje de
programación Java, Python...
 Tiene corrector ortográfico multi-idioma.
 Incorporación de Plugin plugins para
ampliar las funcionalidades básicas del
programa.
 Posibilidad de cambiar el color y fuente
del texto del editor.
 Numeración de líneas.
 Búsqueda y reemplazo de texto.
 Edición de archivos remotamente.
 Copia de seguridad de los ficheros sobre
los que se trabaja.
- Tipo de licencia.
Gedit. Es un completo editor de textos libre que
se distribuye junto al gestor de escritorio Gnome
para sistemas tipo Unix, y cuenta con una
licencia de GPL.[ CITATION ecu1 \l 9226 ]
¿Cuál de los editores anteriores En mi caso recomendaría VIM tiene una
recomienda el grupo de asesores a verdadera pared de aprendizaje, es un magnífico
los estudiantes del grado once de editor de textos basado en terminal,
la institución educativa? probablemente, de los más utilizados en todo el
Argumentar la respuesta. mundo. Posee una gran cantidad de
características y funciones (numerado de líneas,
autocompletado, resaltado de sintaxis,
reemplazo de texto mediante expresiones
regulares, etc. Lo que creo que para los
estudiantes de grado 11 le es de mayor utilidad
ya que su entorno es amigable y de fácil
adaptabilidad.
2. Shell de Linux
Nombre del Descripción
Shell
Sh Realizar una sinopsis del software teniendo en cuenta:
- Creador o creadores.
Bourne Shell fue desarrollado en 1977 por Stephen Bourne en
los Bell Labs de AT&T en 1977. Era el shell predeterminado de
Unix Versión 7. La mayoría de los sistemas tipo Unix contienen
el archivo / bin / sh que es Bourne shell o un enlace simbólico (o
enlace duro) a un shell compatible.[ CITATION Com19 \l 9226 ]
- Características principales.
sh es el nombre del comando del shell Bourne, el intérprete de
lenguaje de comandos estándar de Unix y muchos sistemas
operativos tipo Unix, incluido Linux.
 Contiene mecanismo de selección " case / in / esac ",
destinado principalmente a ayudar al análisis
de argumentos .
 Tiene soporte para variables de
entorno utilizando parámetros de palabras clave y
variables exportables.
 Disposiciones fuertes para el control de entrada y salida y
en sus instalaciones de expresión- coincidencia.
 Las secuencias de comandos se pueden invocar como
comandos utilizando su nombre de archivo.
 El caparazón puede usarse de forma interactiva o no
interactiva.
 Los comandos pueden ejecutarse sincrónicamente o
asincrónicamente.
 El shell admite la redirección de entrada y salida, y las
tuberías.
- Tipo de licencia.
Su tipo de licencia es BSD a partir de 1991 pasa a software libre.
CSH Realizar una sinopsis del software teniendo en cuenta:
- Creador o creadores.
Creado por Bill Joy al graduarse de la Universidad de Bekeley en
California en 1970. Las primeras versiones se distribuyeron con
el sistema operativo 2BSD en el año de 1978. Otros
desarrolladores que contribuyeron al código de C shell en sus
primeras etapas fueron Michael Ubell, Eric Allman, Mile
O'Brien y Jim Kulp.
- Características principales.
Su principal objetivo es permitir al usuario ingresar comandos.
También puede leer Reset desde un fichero de texto
llamado script y como toda shell de Unix soporta comodines y
tuberías para referirse a los nombres de ficheros, sustitución de
comandos, variables, condicionales e interacción.[ CITATION
wik1 \l 9226 ]
- Tipo de licencia.
BSD
KSH Realizar una sinopsis del software teniendo en cuenta:
- Creador o creadores.
El Shell Korn también recibe el nombre abreviado de ksh y su
nombre se debe al de su creador, David Korn, que desarrolló
Korn en los Laboratorios Bell. En su evolución, ha pasado a
utilizarse también como lenguaje de programación y es
compatible con casi todas las funcionalidades del Bourne Shell.
[ CITATION Edu19 \l 9226 ]
- Características principales.
 Edición de línea de comandos
 Autocompletado de nombres de archivo
 Historial de comandos
 Alias de comandos
 Shells restringidos
 Gestión de tareas
- Tipo de licencia.
BSD
Fish Realizar una sinopsis del software teniendo en cuenta:
- Creador o creadores.
Fish fue creado por los desarrolladores, Ridiculousfish,
Siteshwar, JanKanis.
- Características principales.
Se caracteriza por interpretar comandos, este sugiere comandos a
medida que se escribe, permite colores VGA, resaltado de
sintaxis. 
- Tipo de licencia.
Su licencia es GPL Versión 2.
bash Realizar una sinopsis del software teniendo en cuenta:
- Creador o creadores.
Fue creado por los desarrolladores Proyecto GNU y Chet Ramey
y Original Brian Fox.
- Características principales.
 Permite consultar el historial de comandos
 Se puede utilizar la sintaxis para repetir el último
comando
 ¡Se puede utilizar la sintaxis! [n] para repetir algún otro
comando
 Se puede Comprobar que los cursores (arriba, abajo) le
permite desplazarse por la lista de sentencias
introducidas.
 Permite que el autocompletado de comandos y nombres
de ficheros funcione.
 El directorio /var/log guarda los ficheros de
registro (bitácora) del sistema, cambie a dicho directorio.
- Tipo de licencia.
Tipo de licencia GPLv3

3. Estructuras básicas de programación en Shell para Bash.


Estructura Sintaxis
Declaración de Se declara variables y se les asigna valores, al igual que typeset
variable (funcionan de la misma manera). Podemos combinarla con algunas
opciones: -i declara números enteros; -r para variables de solo lectura,
a las cuales no se les podrá cambiar el valor; –a para matrices o
“arrays”; -f para funciones; -x para variables que podrán ser
“exportadas” fuera del ambiente del script propio.

Condicional if ... La estructura básica de este condicional va de la siguiente manera


then
if expresion;
    then
        bloque;
fi
Como podemos ver el if se cierra con fi que al parecer un juego de
palabras es fácil de recordar. Así tenemos que si se cumple la
condición entraría por el then y finalizaría. Veamos un ejemplo.
#! /bin/bash

clear
read -p "Cuanto es 9 * 9 " res
mult=$(echo "9*9" | bc -l)
if test $res == $mult
    then
        echo "El resultado es correcto"
fi

Condicional if ... Las entradas elif tienen el significado de un else seguido de un


then ... else nuevo if. Puede haber tantas entradas elif como se desee. Tanto las
entradas elif como la entrada else son opcionales.
Bucle for El ciclo for es ampliamente usado en programación en la mayoría de
los lenguajes, en el cual por cada elemento en determinada variable se
repetirán determinadas acciones, esto hasta que lo haya hecho con
todos los elementos indicados, entonces el ciclo habrá terminado y
solo entonces.

Se puede utilizar de las siguientes formas

for i in var1 var2 var3 var4
    do
        echo "Esa es la variable $i"
    done

el valor de i se va sustituyendo por el valor de las variables en las que


está iterando así que el resultado seria

Esta es la variable var1
Esta es la variable var2
Esta es la variable var3
Esta es la variable var4

Otra manera:

for i in `seq 1 10` 
    do
        echo $i
    done
En este caso se pide iterar en los números comprendidos del 1 10 así
que el bucle se ejecutara hasta llegar a 10 mostrando los números del
1 al 10

for ((i=1;i<=20;i++))
    do
        echo "Prueba"
    done

El nombre de la variable VAR debe aparecer obligatoriamente junto


con la palabra reservada for en la misma línea. lista_valores debe
estar obligatoriamente en la misma línea que la palabra reservada in.
El punto y coma; puede sustituirse por un salto de línea, y viceversa.
[ CITATION Fra18 \l 9226 ]
Ejecutando el siguiente comando y comprobando como se puede
utilizar una expansión de ruta dentro de un bucle for.

Bucle while While es una instrucción de control que sirve para generar bucles, en
los cuales grupos de instrucciones se ejecutan de forma repetida hasta
que se cumpla una condición. Cabe destacar que while, primero
comprobará si se cumple la condición y si se cumple y sólo si se
cumple entonces pasará a ejecutar secuencialmente las instrucciones
contenidas entre do y done.

Cada vez que se ejecuta un bucle completo (paso de bucle) vuelve a


verificar si se cumple la condición antes de volver a ejecutar otro paso
de bucle.
Ejemplo de uso:

while [ condicion ]
    do
        accion
    done

while va iterando (interpreta la lista-compuesta) mientras se cumpla la


condición indicada (lista-comp-condicion devuelve el valor 0)

Así, por ejemplo, serían válidas y equivalentes las sintaxis siguientes,


si la condición del until es la condición del while negada:
Bucle until Until es igual que while, pero se diferencia en que ahora el bucle se
ejecuta mientras la condición sea falsa.

#! /bin/bash

clear
num=50
until [ $num -eq 76 ]
    do
        echo "numero: $num"
        num=`expr $num + 1`
    done

until va iterando (interpreta la lista-compuesta) mientras NO se


cumpla la condición indicada (lista-comp-condicion devuelve un
valor distinto de 0).

Así, por ejemplo, serían válidas y equivalentes las sintaxis siguientes,


si la condición del until es la condición del while negada:

Select Para no tener que estar haciendo tantos echo y tener nuestros scripts
más ordenados, el bash nos ofrece un comando bastante útil, se trata
de select, veamos cómo funciona.[ CITATION ben13 \l 9226 ]

select variable in opcion1 opcion2
    do
        case $variable in
            opcion1)
                comando
            ;;
            opcion2)
                comando
            ;;
            *)
                comando
            ;;
        esac
    done

Ahora en funcionamiento con el siguiente script que nos permite


elegir entre las opciones listar o salir.

#! /bin/bash

clear
dir="/var/www/"
select opcion in lista salir
    do
        case $opcion in
            lista)
                ls -l $dir
            ;;
            salir)
                break
            ;;
            *)
                echo "Opcion incorrecta"
            ;;
        esac
    done
Debemos recordar que nuestro script para saber si un directorio
existe, debemos mejorarlo y darle opciones.

#! /bin/bash

clear
read -p "Ruta al directorio: " ruta
if [ -d $ruta ]
    then
        PS3="$ruta Si es un directorio. Escoge una opcion: "
        select opt in lista salir
            do
                case $opt in
                    lista)
                        ls -l $ruta
                        break
                    ;;
                    salir)
                        break
                    ;;
                    *)
                        echo "Opcion Incorrecta"
                    ;;
                esac
            done
else
    echo "$ruta No es un directorio"
fi
Case Este tipo de sentencia, seria al equivalente al swicht en lenguaje C.
Como otro tipo de estructura sería el equivalente a una serie
de if anidados, con estos podría obtener el mismo resultado, la
diferencia es que usando la sentencia case, el algoritmo es más
ordenado y completo.

#! /bin/bash

clear
read -p "Cuanto es 9 * 9 " res
case $res in
    81)
        echo "El resultado es correcto"
    ;;
    80182)
        echo "Estuviste cerca pero no"
    ;;
    *)
        echo "Te has equivocado, el resultado es 81"
    ;;
esac

cadena_texto debe aparecer obligatoriamente en la misma línea que


la palabra reservada case (la palabra reservada in puede estar en la
siguiente línea). En esta estructura, primero se
expande cadena_texto (si es necesario) y busca el primer patrón que
encaje con dicho valor. Cuando lo encuentre, ejecuta la lista-
compuesta correspondiente y finaliza la estructura. Los patronN se
interpretan como cadenas de caracteres y si es necesario se expanden
(por ejemplo, pueden contener variables). Admite los mismos
caracteres que los usados para la expansión de ruta (*,? y []).
Asimismo, pueden usarse patrones múltiples mediante el operador | y
opcionalmente pueden comenzar con el paréntesis:
Conclusiones

 En el desarrollo de esta actividad he consultado sobre las diferentes tablas


asignadas para el trabajo colaborativo por lo que pude conocer en su mayoría los
distintas Editores Orientados a Terminal, logrando desde allí conocer su uso y
que características lo identifican a diferencia de otras.

 Así mismo he logrado identificar las diferentes estructuras básicas de


programación en Shell para Bash, donde de acuerdo a su orden de utilización me
abrió caminos para realizar la práctica de su debido procedimiento y notar su
funcionalidad.

 Finalmente es importante una buena comprensión básica de cómo desplazarte


usando la línea de comandos, mover archivos y realizar ediciones menores aquí
y allá. Esta lección para principiantes como en este caso para los estudiantes de
grado 11 de “Sol Naciente” está bien diseñada para darles cierta fluidez y
confianza básica. En el futuro, es posible que los alumnos quieran atreverse a
explorar un poco más los scripts y tener una buena experiencia en el entorno.
 Las distribuciones en Linux presentan un beneficio en costo y utilidad para cada
nivel de usuario, tanto para el usuario administrador ya que por medio de
comandos podemos dar acceso a diferentes oportunidades tanto a la hora de
acceder como de navegar por todo el entorno.

Referencias

Amoedo, D. (s.f.). GNU Emacs, instala este mítico editor de texto para Ubuntu / Linux
Mint. Obtenido de https://ubunlog.com/gnu-emacs-editor-texto/
benatdawn. (26 de Septiembre de 2013). Shell Script; Estructuras de Control. Obtenido
de https://www.taringa.net/+linux/shell-script-estructuras-de-control_13i0wn
ecured. (s.f.). Gedit. Obtenido de https://www.ecured.cu/Gedit
ecured. (s.f.). Gvim. Obtenido de https://www.ecured.cu/Gvim
Hope, C. (04/04/2019 ). Comando sh de Linux. Obtenido de
https://www.computerhope.com/unix/ush.htm
Jiménez, F. J. (2018). Programación Shell-script en Linux. Obtenido de
http://trajano.us.es/~fjfj/shell/shellscript.htm#_Toc444081223
Lázaro, E. (27 mayo, 2019). ¿Qué es el Korn Shell de UNIX / Linux? Obtenido de
https://www.neoguias.com/korn-shell-de-unix-linux/
MCEdit. (10 de sep. De 2016). MCEdit: Editor mundial para Minecraft. Obtenido de
https://www.mcedit.net/
wikipedia. (s.f.). C Shell. Obtenido de https://es.wikipedia.org/wiki/C_Shell
wikipedia. (s.f.). GNU Nano. Obtenido de https://es.wikipedia.org/wiki/GNU_Nano

También podría gustarte