Ir al contenido principal

Linux para los no iniciados

Curso Básico de Linux

Bienvenidos!

Presentaciones:

Las presentaciones han sido realizadas con tome.app, una Inteligencia Artificial a la cual le das el tema y te desarrolla la presentación:

Bienvenida

Permisos y editor vi 

Conexión a una instancia de Linux desde un sistema Windows mediante OpenSSH con Powershell

Si posee la llave privada generada por Linux con ssh-keygen, utilice el siguiente procedimiento.

Si es la primera vez que utiliza la clave, debe configurar los permisos del archivo para que solo usted pueda leer el archivo.

Haz lo siguiente:
  1. En el Explorador de Windows, navegue hasta el archivo de clave privada, haga clic con el botón derecho en el archivo y luego haga clic en Propiedades.
  2. En la pestaña Seguridad, haga clic en Avanzado.
  3. En la pestaña Permisos, para Entradas de permisos, en Principal, asegúrese de que su cuenta de usuario esté en la lista.
  4. Haga clic en Deshabilitar herencia y luego seleccione Convertir permisos heredados en permisos explícitos en este objeto.
  5. Para las entradas de permiso, seleccione cada entrada de permiso que no sea su cuenta de usuario y haga clic en Eliminar.
  6. Asegúrese de que el permiso de acceso para su cuenta de usuario sea Control total.
  7. Guarde sus cambios.
Para conectarse a la instancia, abra Windows PowerShell y ejecute el siguiente comando:

  Nota

Copie el siguiente ejemplo para asegurarse de que se utilizan los caracteres correctos. Si se usa el carácter incorrecto en ssh -i, podría ocurrir un error como: "No se pudo resolver el nombre de host...: No se conoce tal host."

Copiar

ssh -i <archivo_clave_privada> <nombre de usuario>@<dirección IP pública>

  • <private_key_file> es la ruta completa y el nombre del archivo .key que contiene la clave privada asociada con la instancia a la que desea acceder.
  • <username> es el nombre de usuario.
  • <public-ip-address> es la dirección IP de la instancia.
Si se conecta a esta instancia por primera vez, debe aceptar la huella digital de la clave. Para aceptar la huella digital, escriba sí y presione Entrar.

Conexión a una instancia de Linux desde un sistema Windows mediante PuTTY

Los archivos de clave privada SSH generados por Linux no son compatibles con PuTTY. Si usa un archivo de clave privada que se generó desde Linux, debe convertir el archivo en un archivo .ppk antes de poder usarlo con PuTTY para conectarse a la instancia.

Nota

Si cambió los permisos de archivo en la clave para conectarse desde un sistema Windows usando OpenSSH, entonces la clave no funcionará con una conexión PuTTY. Utilice OpenSSH para conectarse en su lugar.

Convertir un archivo de clave privada .key generado:

Abra PuTTYgen (se debe encontrar en la misma carpeta donde está putty).

Haga clic en Cargar y seleccione la clave privada que se generó cuando creó la instancia. La extensión del archivo de claves es .key.

Haga clic en Guardar clave privada.

Especifique un nombre para la clave. La extensión de la nueva clave privada es .ppk.

Clic en Guardar.

Nota

PuTTYgen no sobrescribe el archivo .key, sino que crea un archivo adicional con el mismo nombre y la extensión .ppk.

Conéctese a la instancia de Linux usando un archivo de clave privada .ppk:

Si la instancia usa un par de claves que creó con el generador de claves PuTTY, use el siguiente procedimiento.

Abra PuTTY.
En el panel Categoría, seleccione Sesión e ingrese lo siguiente:

Nombre de host o la dirección IP):

Copiar

<nombre de usuario>@<dirección IP pública>
  • <nombre de usuario> es el nombre de usuario para la instancia.
  • <dirección IP pública> es la dirección IP pública de la instancia que recuperó de la Consola
  • Puerto: 22
  • Tipo de conexión: SSH
  1. En el panel Categoría, expanda Ventana y luego seleccione Traducción.
  2. En el menú Juego de caracteres remoto, seleccione UTF-8. La configuración de configuración regional predeterminada en las instancias basadas en Linux es UTF-8, y esto configura a PuTTY para usar la misma configuración regional.
  3. En el panel Categoría, expanda Conexión, expanda SSH, expanda Autenticación y haga clic en Credenciales.
  4. Haga clic en Examinar y luego seleccione el archivo de clave privada .ppk.
  5. Haga clic en Abrir para iniciar la sesión.
Si es la primera vez que se conecta a la instancia, es posible que reciba un mensaje de que la clave de host del servidor no está almacenada en caché en el registro. Haga clic en Sí para continuar con la conexión.

Nota

Si la conexión falla y no está detrás de un proxy, asegúrese de que el Tipo de proxy en la configuración de PuTTY esté establecido en Ninguno. 
Si está detrás de un proxy, seleccione el tipo de proxy e ingrese el nombre de host y el número de puerto del proxy. Consulte también Actualizar la herramienta PuTTY para otros problemas de PuTTY.

Prácticas

Laboratorio de prácticas de comandos básicos en Linux 

 

Práctica 1: Creación de scripts 

Objetivo: Aprender a crear y ejecutar scripts en Linux. 

 

Instrucciones: 

1. Crea un nuevo archivo de script utilizando el editor de texto de tu elección (por ejemplo, vi). 

2. Escribe un script que imprima "¡Hola, mundo!" en la salida estándar. 

3. Guarda el archivo con una extensión ".sh" para indicar que es un script de shell. 

4. Dale permisos de ejecución al script utilizando el comando chmod. 

5. Ejecuta el script utilizando el comando ./nombre_del_script.sh y verifica que se imprima el mensaje correctamente. 

 

Práctica 2: Monitoreo de procesos 

Objetivo: Aprender a monitorear y administrar procesos en Linux. 

 

Instrucciones: 

1. Ejecuta el comando ps para ver la lista de procesos en ejecución. 

2. Utiliza los comandos grep y ps para filtrar y encontrar un proceso específico. 

3. Utiliza el comando top para monitorear en tiempo real el uso de recursos del sistema y los procesos en ejecución. 

4. Utiliza los comandos kill y pkill para finalizar un proceso en ejecución. 

 

Práctica 3: Manejo de archivos 

Objetivo: Practicar las operaciones básicas de manejo de archivos en Linux. 

 

Instrucciones: 

1. Crea un directorio llamado "practica_files" utilizando el comando mkdir. 

2. Crea un archivo de texto llamado "archivo1.txt" utilizando el comando touch. 

3. Copia el archivo1.txt a otro archivo llamado "archivo2.txt" utilizando el comando cp. 

4. Mueve el archivo2.txt al directorio "practica_files" utilizando el comando mv. 

5. Elimina el archivo1.txt utilizando el comando rm. 

 

Práctica 4: Redirección y tuberías 

Objetivo: Practicar el uso de redirección y tuberías para el procesamiento de datos en Linux. 

 

Instrucciones: 

1. Ejecuta el comando ls para listar los archivos y directorios en el directorio actual. 

2. Utiliza la redirección para enviar la salida del comando ls a un archivo llamado "lista_archivos.txt". 

3. Utiliza el comando cat para mostrar el contenido del archivo "lista_archivos.txt". 

4. Utiliza la tubería (pipe) para enviar la salida del comando ls a otro comando, por ejemplo, grep para buscar archivos específicos. 

 

Práctica 5: Administración básica y manejo de crontab 

Objetivo: Practicar tareas básicas de administración y programación de tareas con crontab en Linux. 

 

Instrucciones: 

1. Crea un archivo de comandos llamado monitoreo.sh que ejecute iostat por 5 segundos 10 veces. 

2. Crea un nuevo usuario utilizando el comando useradd (si omitimos -m no creará la ruta home del usuario).

    useradd -m usuario_nuevo

3. Asigna una contraseña al nuevo usuario utilizando el comando passwd.

    passwd usuario_nuevo, esto no funcionará en el sistema de prueba, por lo que hará falta utilizar la creación de contraseña asimétrica creada con la instrucción

    ssh-keygen

    Va a preguntar primero por el nombre de archivo, ahí ponemos usuario_nuevo.

    Después pregunta por la frase de contraseña, la dejamos en blanco y damos enter dos veces.

    Nos creará los archivos usuario_nuevo y usuario_nuevo.pub.

    El archivo usuario_nuevo.pub tendremos que moverlo al directorio /home/usuario_nuevo/.ssh con el nombre authorized_keys (hay que utilizar sudo, pues el directorio /home/usuario_nuevo le pertenece al usuario recién creado).

    Al archivo authorized_keys le damos permisos 600 y al directorio .ssh 700 (de igual manera utilizando sudo).

    Una vez realizado, envía el (contenido del) archivo usuario_nuevo al usuario para que lo use como llave privada para conectarse al servidor.

4. Programa una tarea que ejecute monitoreo.sh cada hora utilizando crontab. 

5. Borra el archivo crontab para modificar la tarea programada anteriormente. 


Practicas de sesiones


Ejercicios de vi

vi miarchivo.txt
200iMary had a little lamb[Enter]
[Esc]
[Ctrl-G]
[Esc]:%s/lamb/cat/g[Enter]
[Esc]:1,100s/cat/pig/g[Enter]
[Ctrl-u]
[Ctrl-d]
[Esc]:85,100s/little/big/g[Enter]

Procesos

ps
ps -fea
background
[comando] &
kill pid
sleep

Monitoreo

while true
do
ps -fea|grep [filtro]
sleep 30
done

Red

ifconfig
ping
traceroute

Comentarios

Entradas populares de este blog

Mejorar el rendimiento de una actualización con Bulk Collect

Hace unos días nos llegó una solicitud para mejorar el rendimiento de una actualización que corre sobre una tabla relativamente grande, de alrededor de 350 Gb, particionada pero esta actualización en específico no está optimizada para hacer uso de la estructura ni los índices existentes. Usualmente iniciamos por hacer una tabla intermedia de manera temporal, sobre la que corre un cursor que va lanzando actualizaciones. Se le rebajó algo de tiempo pero recordé que se puede optimizar este tipo de operaciones utilizando una operación que hace uso de las colecciones conocida como bulk collect. Para utilizar el bulk collect, se necesita primero crear una variable de tipo tabla donde se meterán los datos llave a utilizar para la actualización. Bulk collect tiene una opción llamada limit, que limita la cantidad de registros que se guardan en la colección para no acabarnos la memoria de programa en caso de ser millones de registros. Después de esto, se utiliza una operación...

Cláusula WITH y hint MATERIALIZE

Hace unos días me llegó una consulta con una cláusula 'WITH' que presentaba problemas con la ejecución, tomaba demasiado tiempo. Para los que no están familiarizados, aquí explico cómo funciona la cláusula WITH. Cláusula WITH La cláusula WITH nació en el estándar SQL 99 y es un poco críptico ya que se presenta con una sintaxis reversa de los queries normales, se utiliza para mejorar las consultas anidadas. Utilizando el ejemplo de Oracle con el esquema SCOTT, aquí estan los queries: SELECT e.ename AS employee_name, dc.dept_count AS emp_dept_count FROM emp e JOIN (SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno) dc ON e.deptno = dc.deptno; Modificando para utilizar WITH queda así: WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno) SELECT e.ename AS employee_name, dc.dept_count AS emp_dept_count FROM emp e JOIN dept_count dc ON e.deptno = dc....

Extraer un elemento de XML con EXTRACT desde una tabla en Oracle con Namespace.

Ejemplo con una tabla con campo XML CREATE TABLE mytablechar ( id , xmlcolumn ) AS SELECT 1 , '<report xmlns:nsl="http://xmlns.oracle.com/ns/order"> <nsl:InquireUnifiedCustomerProfileByServiceLocationRequest> <AccountIdentifier> <AddressIdentifier> <AddressId>MyAddress 1020, North Hampton, Va</AddressId> <FullCriteria>1</FullCriteria> </AddressIdentifier> </AccountIdentifier> </nsl:InquireUnifiedCustomerProfileByServiceLocationRequest> </report>' FROM DUAL ; WITH xmlData AS ( SELECT XMLTYPE ( t . xmlcolumn ) xml FROM mytablechar t where t . id = 1 ) SELECT x . xml . EXTRACT ( '/report/ns1:InquireUnifiedCustomerProfileByServiceLocationRequest/AccountIdentifier/AddressIdentifier/addressId' , 'xmlns:ns1="http://xmlns.oracle.com/ns/order"' ). getStringVal () FROM xmlData x ; CREATE TABLE mytableclob ( id numbe...