Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

viernes, 16 de septiembre de 2022

Bash Script en ejemplos

Bash es básicamente un lenguaje de programación y scripting. El cual nos permite crear sencillas rutinas como listar directorios, crear archivos y/o directorios, mostrar el calendario, fecha actual y otras cosas más complejas como crear usuarios, eliminarlos, actualiar sus passwords o incluso ejecutar tareas automáticas sin necesidad de ejecución manual.

En este post hablaremos un poco de deste lenguaje y mostraremos algunos ejemplos.

holamundo.sh

#!/bin/bash

nombre="Codemonkey Junior"
echo Hola, $nombre

El clásico programa de Hola, mundo. Como se puede obserar la extensión es .sh. Para poder ejecutarlo es preciso antes dar permisos de ejecución. Esto se puede de la siguiente manera:

$ sudo chmod +x holamundo.sh

Ejecutar:

$ ./holamundo.sh

Salida:

Hola, Codemonkey Junior

En el siguiente ejemplo veremos:

  • Definir variables de diferente tipo.
  • Usar variables del sistema.
  • Comprobar si una variable es NULL.
  • Realizar operaciones aritméticas.

variables.sh

#!/bin/bash

# Comentarios multilínea
<< 'MULTILINE-COMMENT'
FUNDAMENTOS DE PROGRAMACION EN BASH SHELL
MULTILINE-COMMENT

# Limpiamos terminal
clear
# Definimos variables tipo Caracter, Entero, Booleano y del sistema
nombre="codemonkey Junior"
entero=34
booleano=true
flotante=9.83
fecha=`date`
directorio=`pwd`

# Mostramos en pantalla el valor de las variables
echo "[Variables en Linux]"
echo "Hola, ${nombre}"
echo "Entero = ${entero}"
echo "Flotante = ${flotante}" 
 
# Comprobamos si una variable es NULL
if $booleano; then echo "Es verdadero: ${booleano}"; else echo "Es falso: ${booleano}"; fi
echo "Fecha de hoy es: ${fecha}"
echo "Estamos en el directorio: ${directorio}"
echo "El nombre del archivo es: $0"

# Realizamos algunas operaciones aritméticas
let num1=21
let num2=1
let suma=${num1}+${num2}
echo "num1=${num1}, num2=${num2}"
echo "Suma = ${suma}"

Otorgar permisos de ejecución:

$ sudo chmod +x variables.sh

Ejecutar:

$ ./variables.sh

En el siguiente ejemplo veremos como realizar operaciones aritméticas básicas: suma, resta, multiplicación, división y residuo(%).

operaciones.sh

#!/bin/bash


# Definimos las variables y su valor
let a=20
let b=5

# Operaciones aritméticas
let suma=$(expr ${a} + ${b})
let resta=$(expr ${a} - ${b})
let producto=`expr $a \* $b`
let division=$(expr ${a} / ${b})
echo "[Operaciones aritmeticas]"
echo "a = ${a}, b = ${b}"
echo "Suma = ${suma}"
echo "Resta = ${resta}"
echo "Producto = ${producto}"
echo "Division = ${division}"
let c=220
let d=200
let residuo=$(expr ${c} % ${d})
echo "c = ${c}, d = ${d}"
echo "Residuo = ${residuo}"

Otorgar permisos de ejecución:

$ sudo chmod +x operaciones.sh

Ejecutar:

$ ./operaciones.sh

En este ejemplo veremos como obtener la longitud de las variables declaradas.

longitud.sh

#!/bin/bash


nombre='ABC'
echo "Cadena = ${nombre}"
# La longitud debe ser de 3
echo La longitud de la variable es: ${#nombre} 
numero=4953
echo "Numero = ${numero}"
# La longitud debe ser de 4
echo La longitud de la variable es: ${#numero} 
booleano=true
echo "Booleano = ${booleano}"
# En este la longitud será de 4, se cuenta cada una de las letras como si fuera un string
echo La longitud de la variable es: ${#booleano} 

Otorgar permisos de ejecución:

$ sudo chmod +x longitud.sh

Ejecutar:

$ ./longitud.sh

En este ejemplo mostraremos el uso de comandos como whoami, pwd y variables del sistema.

usuario.sh

#!/bin/bash

<< 'MULTILINE-COMMENT'
FUNDAMENTOS DE PROGRAMACION EN BASH SHELL
MULTILINE-COMMENT

clear

# Algunos comandos y variables de Linux
quien=`whoami`
donde=`pwd`
mishell=$SHELL
echo "Quien soy?:  ${quien}"
echo "Donde estoy?: ${donde}"
echo "El home es: ${HOME}"
echo "El usuario es: ${USER}"
echo "El shell esta en: ${mishell}"

Otorgar permisos de ejecución:

$ sudo chmod +x usuario.sh

Ejecutar:

$ ./usuario.sh

En próximos post veremos más ejemplos.

Enlaces:

https://www.reiser.cl/bash-manejo-de-cadenas-de-texto/ https://linuxhint.com/variables_bash/ https://linuxize.com/post/bash-comments/ https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/ https://linuxhint.com/use-boolean-value-in-bash/ https://ryanstutorials.net/bash-scripting-tutorial/bash-arithmetic.php

domingo, 20 de septiembre de 2020

Docker: instalando Erlang

 

Erlang es un es un lenguaje de programación concurrente (u orientado a la concurrencia) y un sistema de ejecución que incluye una máquina virtual (BEAM) y bibliotecas (OTP).


Joe Armstrong, el co-inventor de Erlang, sintetizó los principios de los procesos:4​
  • Todo es un proceso.
  • Los procesos están aislados fuertemente.
  • La creación y destrucción de los procesos es una operación muy liviana.
  • El envío de mensajes es la única forma de interactuar con los procesos.
  • Los procesos tienen nombres únicos.
  • Si conoce el nombre de un proceso, entonces puede enviarle un mensaje.
  • Los procesos no comparten recursos.
  • El manejo de errores no es local.
  • Los procesos hacen lo que se suponen que hacen o fallan.

Instalamos una imagen de Erlang con Docker:
$ docker pull erlang

Listamos la imagen:
$ docker images -a

Para ejecutar el REPL de Erlang:
$ docker run -it --rm erlang
Para ejecutar un script de Erlang:
$ docker run -it --rm --name erlang-inst1 -v "$PWD":/usr/src/myapp -w /usr/src/myapp erlang escript programa.erl
Hola mundo en Erlang.
hola_mundo.erl
% Hola mundo en Erlang
-module(hola_mundo).
-export([main/1]).

main(_Args) ->
    io:format("Hola, mundo!!~n").

La salida del programa será: 

Hola, mundo!! 

Enlaces:

https://codemonkeyjunior.wordpress.com/2020/09/06/docker-instalando-imagen-de-php/

https://alquimistadecodigo.blogspot.com/2020/09/docker-instalando-ballerina.html

martes, 7 de mayo de 2019

C# y .Net Core en Linux Ubuntu

¿Cómo instalamos .NET Core en Linux (Ubuntu)?
1. Registramos la llave de Microsoft en nuestro sistema:
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
2. Desde terminal instalamos el núcleo:
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
3. Creamos un directorio y nos ubicamos en el. Si tenemos Visual Studio podemos abrir el directotio directamente:
$ mkdir proyecto
$ cd proyecto
#Abrir Visual Studio Code
$ code .
4. Creamos proyecto:
#Crear proyecto
$dotnet new console

Creará un programa (Program.cs) y los archivos necesarios para compilar y ejecutarlo.
Program.cs

using System;

namespace proyecto
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Programando en C#");
        }
    }
}

5. Compilar y ejecutar:

#Listar ayuda
$ dotnet help

#Compilar y ejecutar:
$ dotnet run

Nota: Todo lo anterior también sirve si usas Windows o Mac.

Links:

Contenido de CSharp

domingo, 26 de junio de 2016

Instalar lenguajes JVM usando SDKMAN!

Existe una herramienta llamada SDKMAN! que nos sirve para instalar lenguajes como Ceylon, Groovy, Scala, además de otros entornos o sdks de desarrollo como Grails, SBT, etc.

Desde Linux podemos teclear en nuestra consola de comandos:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Obtener ayuda:  sdk help
Que versión tenemos: sdk version
Listar lo que podemos instalar: sdk list

Comencemos instalando Ceylon, Groovy, y Scala:
sdk install ceylon
sdk install groovy

sdk install scala

Comprobemos que se instalaron adecuadamente:
ceylon --version
groovy -version
scala -version
 
Con esto tenemos instalados los lenguajes y la herramienta SDKMAN!.

Links
http://sdkman.io/

domingo, 31 de mayo de 2015

Programando en C# no. 5 ... System.Windows.Forms en Mono

En este post tan solo veremos como crear una ventanita usando System.Windows.Forms desde una aplicación C# (usando el compilador mono).

¿Por qué mono?
Porque me parece adecuado para quienes quieren aprender .Net sin necesidad de instalar Windows. 

¿Por qué no usar Wine para instalar Visual Studio .Net?
Porque siempre hay algún error al instalar dependencias en Linux, al menos así los he tenido. Creo que la mejor opción es siempre usar  Visual Studio desde Windows.

Hola.cs
using System;
using System.Windows.Forms;

public class Hola{
    public static void Main(string[] args){
       
        try{
           MessageBox.Show("Hola, estoy usando windows forms desde Linux");
        }
        catch(Exception ex){
            Console.Error.WriteLine("Error: ["+ex.Message+"]");
            Environment.Exit(0);
        }
    }
}


Compilar: mcs Hola.cs -r:System.Drawing.dll -r:System.Windows.Forms.dll

Ejecutar: mono Hola.exe

Salida:

domingo, 2 de febrero de 2014

Linux Bash ... no. 2

Zenity
Es una aplicación que nos permite usar componentes gráficos Gtk. Para instalarlo: sudo apt-get install zenity

¿Qué es Gtk?
Es un conjunto de librerías que nos sirve para desarrollar aplicaciones gráficas muy al estilo de Java Swing.

1. Introducir una cadena y mostrar el contenido (entrada.sh)
clear
NOMBRE=$(zenity --entry --text "Introduce tu nombre: ")
echo "Hola $NOMBRE"
zenity --info --text "Hola $NOMBRE"



Lo puedes ejecutar (debes darle permiso de ejecución) con: sh entrada.sh y/o  ./entrada.sh

2. Cajas de dialogo (elegir.sh)
clear
zenity --question --title="Se ha encontrado un error" --text "Seguro quiere reiniciar?"

RES=$?

if [ $RES -eq 0 ]; then
zenity --info --text "Elegiste reiniciar"
elif [ $RES -eq 1 ]; then
zenity --info --text "Elegiste NO reiniciar"
fi


Ejecutar: sh elegir y/o ./elegir.sh

Links:
http://blog.desdelinux.net/usos-practicos-de-la-caja-de-dialog-zenity/
http://bitelia.com/2010/04/comando-linux-zenity-ventanas-de-dialogo-gtk
http://es.wikipedia.org/wiki/GTK%2B
http://www.yolinux.com/TUTORIALS/GTK+ProgrammingTips.html

viernes, 9 de agosto de 2013

Linux bash

En esta ocasión vamos a crear un sencillo menú para realizar algunas tareas sencillas en shell linux.

Puedes utilizar cualquier editor de notas para realizarlo.

El archivo se llamará "menu.sh", lo guardamos en un directorio (ej. /home/usuario) le damos los permisos necesarios para ejecución.






Creamos una función:
menu(){
 # ... aquí el código
 # ...
}

Colocamos las opciones:
echo "1. Mandar un ping a codemokeyjunior.blogspot.com"
echo "2. Ver que usuarios están conectados a mi máquina"
echo "3. Ver procesos en ejecución"
echo "4. Salir"

Pedimos al usuario elija alguna opción:
echo "Elije opción:"
read opc

Usamos la estructura "case":
case $opc in
  1)  ping -c 3 codemonkeyjunior.blogspot.com ;;
  2) who ;;
  3) top ;;
  *) echo "salir" ;;
esac

Sin embargo el menú solo permite ejecutar una acción, para que el menú permanezca activo crearemos otra función que servirá para invocarlo.

activa(){
  usuario=$(whoami)
  if [ "$USER"="$usuario" ]; then
     menu  #invocamos el menú
  else
    echo usuario no registrado
  fi
}

activa

Modificamos el menú:
case $opc in
  1)  ping -c 3 codemonkeyjunior.blogspot.com
      activa
     ;;
  2) who
      activa
     ;;
  3) top
    activa
    ;;
  *) echo "salir" ;;
esac

Listo ya tenemos un menú.  Código completo http://www.pasteall.org/44716/bash

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog