Está en la página 1de 19

Curso de introducción a la Terminal y Línea de Comandos

Clase 1: Introducción al curso ¿Qué es y cómo funciona la terminal?

-La terminal es un pequeño programa que recibe nuestras órdenes y las traduce a algo que
la computadora pueda comprender y en conjunto con el sistema operativo ejecuta las
instrucciones y muestra los resultados.

-La razón por la cual debemos de utilizar la terminal es la eficiencia. Lo mismo que
hacemos en la GUI se puede hacer en la interfaz de comandos. En la CLI podemos
automatizar tareas.

-El prompt es lo que la terminal me está diciendo.


-Un comando consiste en el nombre un programa espacio los parámetros espacio y
modificadores.
 Los modificadores alteran que es lo que el programa va a hacer, mientras que los
parámetros es información adicional para la ejecución del programa.

-Esquema general de cómo se ejecuta un comando

El nombre del comando Los modificadores Los argumentos.

-La línea de comandos también nos permite comodines, combinaciones de teclas y


sustitución de comandos.
LISTA DE COMANDOS:
date: lo que hace es mostrarnos un mensaje en la pantalla

echo nos muestra un mensaje en la pantalla

man: nos muestra las opciones que podemos hacer con los comandos

$ma + 2 veces tab = nos muestra los comandos disponibles que comienzan con estas
letras.
Ctrl+shift+r =puedo buscar algún comando en especefico que ya realizé
$history: puedo ver todos los comandos que ya meti previamente.

Comandos para organizar los archivos:


 ls: permite listar los archivos que hay en un directorio.
 ls-a: permite listar hasta los archivos ocultos, los que tienen un punto al principio
son los que están ocultos
 pwd: nos dice en que directorio estamos
 cd: si quiero cambiar de directorio y recibe un parámetro que es el nombre del
directorio al cual nos queremos mover
 cd ~ : nos lleva directamente a home (es un atajo)
 cd -: nos lleva directamente al ultimo directorio visitado
 mkdir “nombre del directorio”: crear directorio
 ls -l: para saber si se creo un directorio
 ls -t: ordena los archivos por fecha de modificación
 ls -x: Ordena elementos primero por nombre y después por extensión
 ls-X: Ordena elementos primero por extensión y después por nombre
 ls -l Muestra toda la información: usuario, grupo, permisos, tamaño, fecha y hora
de creación
 ls-lh: Muestra la misma información que ls-l pero con unidades de tamaño
 ls-R: muestra el contenido de todos los sudirectorios de forma recursiva
 ls -S Ordena los resultados por tamaño de archivo
 cd .. : regreso al directorio anterior
 cp “nombre del archivo” “nombre del directorio”: permite copiar un archivo
 rm ‘nombre del archivo”: permite borrar un archivo: y carpetas con algo adentro
 rm -r ‘nombre de la carpeta’ me permite eliminar la carpeta con lo que tiene
adentro.
 mv “el directorio de donde queremos mover/el nombre del archivo” “el directorio
hacia donde lo queremos mover”: Permite mover un archivo.
 rmdir “nombre del directorio”/: borrar un directorio: Solo funciona con
directorios vacíos.
 . : directorio actual
 .. : directorio anterior

Comandos para editar los archivos:


 vim “El nombre del archivo que queramos crear”
 vim “el nombre del archivo que queramos editar”
o Si quiero insertar texto tengo que apachar la tecla i
o Para salir del modo de edicios se usa la tecla Escp
o Con los 2 puntos activo el modo de comandos
 :w: para grabar lo que acabo de escribir
 :q: para salir de vim
 :x: grabar y salir a la vez

 nano “El nombre del archivo que queramos editar”


o ctrl+x para grabar

Utilidades batch:
 cat “nombre del archivo”: mostrarnos el contenido completo de un archivo

 head -n “cantidad de líneas a mostrar” “nombre del archivo”: muestra solo unas
cuantas líneas del archivo

 tail : hace lo inverso del comando head: nos muestra lo ultimo del archivo.
 grep “palabra” y el “nombre del archivo a buscar”: permite buscar por
expresiones regulares, por lineas

o Le podemos agregar la letra i antes de la palabra a buscar para que busque


sin importar si está en mayúsculas o minúsculas.\

o A la palabra le podemos agregar “hanks$” para que busque las líneas con
que termine con la expresión regular

o A la palabra le podemos agregar “^hanks” para verificar si la línea incluye


esta palabra al principio.

 sed ‘s/palabra a remplazar/NuevaPalabra/g->para todo el archivo’ “nombre del


archivo”
o Si queremos editar más de una palabra a la vez

o sed ‘$d’ “nombre del archivo”: eliminar la ultima línea del archivo

 awk -F ‘;’ ‘{print $1}’ “nombre del archivo”: Le estoy diciendo que solo me
imprima la primera columna del archivo

Enviar Comandos hacia un servidor de base de datos y administrar flujos de procesos


 mysql -h 127.0.0.1 -u root -p1234 < “nombre del script”

 Redireccion de la salida: En vez de mostrarse en pantalla que se guarde en un


archivo: ls > “Nombre del archivo donde queremos enviar esa info”

 Redireccion cuando no queremos agregar un archivo nuevo, sino que solo


agregarle mas cosas a un archivo que ya está. ls -l >> “nombre del archivo”

 PIPES:

o Ls-l | more ->more lo que hace es que divide la salida en pantallas


o Cat dump1.sql | wc -l -> permite contar cuantas líneas hay en un archivo
Comandos para ver los procesos
 ps: tenemos los procesos que estoy ejecutando
 ps ax : me devuelve todos los procesos del sistema
 top: en tiempo real como los procesos van cambiando, memoria, cpu etc.
Comandos para deterner procesos
 ctr+c: cuando lo ejecutamos en foreground
 kill: para que termine lo que estaba hacinedo y cortarlo
 kill -9 y el numero de proceso : para de una vez matar el proceso.
 El killall hace lo mismo que el kill solo que en vez de mandarle el numero del
proceso le enviamos el nombre del archivo ejecutable que estaba disparando ese
proceso.

Comandos para trabajar con permisos


 ls-l: nos permite ver los permisos de cada archivo.
 chmod “o es others”-“w” el permiso que quiero quitar “nombre del archivo” :
chmod o-w nuevo.txt
 chmod +x “nombre del archivo ejecutable”: Esto nos dice que para los 3
(dueño, grupo y otros) le estoy dando el permiso de ejecutar

para cambiar el usuario propietario y el grupo propietario

Comandos para manejar paquetes


 apt install “nombre del programa que quiero instalar”
Comandos para la compresión de archivos
 gzip “nombre del archivo que queremos comprimir”
 ls “nombre del archivo”* ->nos muestra todos los nombres del archivo
 gzip -d “nombre del archivo”: Para descomprimir
Comandos para agrupar archivos
 tar cf “nombre del archivo donde voy a combiar los demás”.tar “todos los archivos
que voy a incorporar a la combinación”
Ejemplo: tar cf backup.tar backup/* ->todos los que están en backup

 tar tf backup.tar: esto nos permite ver que es lo que tenemos dentro de ese
archivo.tar

 tar xf backup.tar : para sacarlo del agrupamiento

pero hasta el momento esos archivos combinados no están comprimido

 para comprimir esos archivos al momento cuando los unimos se puede hacer lo
siguiente: tar czf backup.tgz backup/*
para sacarlo del agrupamiento usarmos tar xzf backup.tgz

Comandos para buscar archivos


 locate “nombre del archivo” -pero antes hay que actualizar la bd de los archivos
con el comando: sudo updatedb
 whereis “nombre del comando”
 find “en el directorio tal” -user -adduser -perm 644
 find “.” -type f -mtime 7: que busque solo archivos (-type) y que hallan sido
modificados en los últimos 7 días.

Aquí le decimos que aperte de buscar el archivo que lo copie hacia otro directorio,
el comando se finaliza con la barra inversa y una coma.

Comandos para interactuar a través de HTTP


 Curl https://platzi.com : nos devuelve la versión en texto (HTML)
 curl -v https://platzi.com : pedir una versión mas compleja, nos muestra también
toda la comunicación via HTTP
 wget https:la url para descargar archivos binarios.

Comando para enviar un correo electrónico

Comandos para crear un script en bash


1. Creamos el script
vim platzi.sh

como primer paso ponemos que interprete queremos que ejecute los comandos que voy a
poner ahorita

Comandos para programar tareas


Debo ejecutar primero estos 2 comandos’

At:
Con el at now +2 minutes -> le estoy diciendo que ejecute lo siguiente dentro de 2
minutos,
Después meto el comando
Y por último con ctrl + d le digo que ya termine de poner los comandos que yo quiero.

Cron:
1. crontab -e: comando que me permite ver las tareas programas y editarlas.

2.
Le indico primero que minuto de que hora, de que día del mes, en cual mes, día de la
semana y por último cual es el comando que quiero ejecutar.

Clase 2: Manejarme con la información que tengo en mi computadora


Windows Subsystem for Linux(WSL): Cómo acceder a la terminal en Windows

Para acceder a los archivos que tengo en Windows desde mi Linux o ya sea guardar
nuevos archivos directamente desde Linux debemos ingresar en /mnt/c/Users/MiUsuario
Clase 3: Qué es y cómo funciona el sistema de archivos?
El almacenamiento de esta información nos ayuda a responder estas 2 preguntas.
1. Como logramos que esa información esté presente después que apagamos la
computadora.
2. Cómo organizamos esa información de manera que cuando la necesitemos la tengamos
rápidamente accesible.

Tenemos un archivo, por archivo es un documento, una foto etc. Y la forma de organizar
esos archivos, lo hacemos por medio de directorios y adentro de un directorio podemos
tener subdirectorios. Y todos estos conforman el árbol de directorios.

Cada archivo esta identificado por su nombre e identificación.

Dentro de un sistema de archivos no pueden existir 2 archivos con el nombre igual.


Se tiene que borrar primero el contenido de un directorio antes de borrar el directorio
como tal.
Clase 4: Cómo trabajar con archivos de texto
Clase 5: Manejo de Archivos de texto y utilidades interactivas
En la computadora tenemos 2 tipos de archivos, los binarios y los de texto.
Los Binarios son:
 Programas Ejecutables
 Archivos de datos
Los archivos de Texto son:
 Archivos que contienen contenido legible

Programas que podemos usar para trabajar con este tipo de archivos
Utilidades interactivas: El programa que vamos a usar va a reaccionar a un comando que
le ejecutemos y nos va a mostrar un resultado en pantalla.
 VIM Y NANO

Clase 6: Utilidades batch y batch avanzdas:


Utilidades batch significa procesamiento por lotes. La idea aquí es que a estas
herramientas se les pase toda la información que se necesita en el momento de la
invocación. Son programas que procesan texto y emiten resultados.
Comandos
 Grep: Permite trabajar con expresiones regulares dentro de archivos. Nos va a
mostrar las líneas del archivo que coincidan con la expresión regular que estamos
utilizando

 Sed: Es el tratamiento de flujos de caracteres. También utiliza expresiones


regulares. Pero sed como tal no modifica el contenido del archivo, solo lo hace
sustancialmente.

 Awk: sirve para el tratamiento de texto. Este comando sirve para trabajar con
textos estructurados (tabs, comas) etc.
Clase 8: Comunicación entre procesos: Qué son y cómo se utilizan los flujos estándar.

Un proceso de datos. Entran los datos en un proceso y eso emite una información a la
salida.
Los canales por donde entran los datos en un proceso o salen se les conoce como flujos.
La terminal conoce 3 flujos, La entra, La Salida y El Error
Cambiar la entrada del teclado por un archivo se le conoce como redirección.
Para acceder a donde Linux guarda los archivos.
C:\Users\erick\AppData\Local\Packages\
CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\
home\adduser

Que pasa si temenos una cadena en donde la salida de un proceso es la entrada de otro
proceso y así sucesivamente, para evitar esta ineficiencia, errores de tipeo, estar creando
archivos se crearon los PIPES

PIPES:
La idea es que toma la salida de un proceso y se la pasa directamente a la entada de otro.
Clase 10: Administración de procesos en background y foreground

Cuando ejecutamos un comando en definitiva estamos creando un proceso.


Ejecución en primer plano: Solo puede haber un proceso ejecutándose en primer plano.
Cuando queremos hacer algo más mientras se ejecuta el proceso podemos usar el símbolo
ampersen (&) al final de cada comando.
Otra razón por la cual queremos que un proceso se ejecute en background que es cuando
tenemos un proceso que se tiene que estar ejecutando constantemente (servicios). (ctrl
+z) ese en vez del enter de una vez lo mandamos al background

Y con fg lo podemos traer de regreso a primer plano

Hay veces que necesitamos saber que procesos se están ejecutando para eso tenemos 2
herramientas ps y top
Clase 11: Permisos sobre archivos: El sistema de permisos octal
Todos los archivos de unix tienen asociado un dueño (la persona que ha creado el
archivo), un grupo ( de usuarios que pueden accederlo) y otros (que no sea el dueño y que
tampoco pertenezca al grupo de usuarios).

Las operaciones que se pueden hacer sobre un archivos son 3:


Leer, Escribir y Ejecutarlos

l: es un link, es como que si fuera un puntero a otro archivo


d: Indica que es un directorio
-: Indica que es un permiso negado,
R: lectura
W:Escritura
X: Ejecución, en el caso de directorios es que puede ingresar
Y se repite por que los primeros 3 son el dueño, los otros 3 es el grupo y los otros 3 son
los de tipo “otro”
Para alterar los permisos de esos archivos tengo 3 comandos
1. chmod: nos cambia el modo del archivo (cambiar individualmente los permisos)
2. chown: cambia quien es el usuario que es el propietario de ese archivo
3. chgrp: cambia quien es el grupo de usuario que puede acceder al archivo
Usando la notación binaria la podemos utilizar para dar permisos a los 3 tipos en una sola
instrucción

También hay un usuario que es root que puede hacer lo que quiera con el archivo.
Clase 13: Sistemas de manejo de paquetes
Es muy común utilizar software que no viene con el sistema de fábrica, para poder
utilizarlos necesitamos instalarlo.
1. Descargar el programa
2. Revisar la descarga
3. Copiar los archivos del programa al lugar donde sea necesario
4. Hace una modificación para que el programa pueda correr en nuestra computadora.

Ya hay programas que realizan estas tareas, que se llaman packetes de software, también
existen administradores de paquetes conocen de donde descargar las descargas, como
configurar todo de modo que no hayan conflictos. Y un manejador de paquetes se
encarga de resolver todas las dependencias es decir, si un paquete requiere de otro
paquete.

Manejadores de paquetes binarios (son ejecutables): APT, ZYPEER, RPM.


Como utilizar APT para instalar un nuevo paquete.

Paquetes de lenguajes (Librerias escritas en el mismo lenguaje que vamos a usar)


Pip Python
Composer php
Npm nodejs

Sudo apt install lynx -> lynx es un navegador de internet de línea de comandos

Sudo pip install pandas -> instalar una librería para Python.
Clase 14: Herramientas de compresión y combinación de archivos

Para comprimir y descomprimir podemos usar gzip

Hay momentos en donde nos encontramos con que tenemos que enviar varios archivos
comprimidos a un destinatario para eso usamos lo que se llama combinación de
archivos
Usar una herramienta que nos permite agrupar archivos en uno solo. Y para eso usamos
TAR

Clase 15: Herramientas de búsqueda de archivos

Las herramientas que nos da la terminal para buscar los archivos sin darle vuelta a la casa
son:
1. locate: búsqueda en todo mi sistema de archivos con solo el nombre
2. whereis: se utiliza para ubicar archivos binarios es decir comandos
3. find: la más compleja, lo que hace buscar en un árbol de directorio, utilizando una serie
de criteros.

Clase 16: Herramientas para interactuar a través de HTTP


Es posible interactuar con servidores web a través de la consola con un intercambio de
texto.
Para realizar este intercambio a través de la consola básicamente son 2
1. curl: se utiliza para hacer pedidos crudos, se pide algún servidor y se recibe la
respuesta http y eso es lo que sale por pantalla
2. wget: realiza descargar desde servidores http.
Clase 18: Configuración de un servicios de mailing

Para poder enviar corres desde la terminal necesitamos un servidor de correo postifix,
que se encargará de las tareas de comunicación con los servidores de destino.

Para instalar postfix: sudo DEBIAN_PRIORITY=low apt install postfix.


Luego segiur el tutorial de la clase 18 y por ultimo el comando
sudo apt install mailutils para instalar las utilidades de correo.

Clase 19: Qué son y cómo se utilizan las variables de entorno


Un comando era el nombre de un programa con sus parámetros y sus modificadores
Variable de entorno: Es una definición global a la que todos los procesos tienen acceso.
La variable que usamos cuando ejecutamos un comando es la denominada PATH o ruta.
En esta variable se almacenan todas las rutas que el interprete de comandos tiene que ir a
buscar los archivos que pueden ser ejecutables.

Una variable se puede asignar a un comando o para toda la sesión.

Para asignarla para toda la sesión

VAR= el nombre de la variable, valor= lo que nosotros queramos que exista.


Para asignarla a un comando.

Clase 20: Cómo y para qué escribir scripts en Bash


Automatización de tareas:
Scripting bash: es a su vez un lenguaje de programación y también el intérprete de
comandos.

.bashrc es el archivo que se ejecuta cada vez que iniciamos sesión

Cómo y para qué dejar tareas programadas

La mayor utilidad es dejar tareas programas, es decir que se ejecuten mientras nosotros
estamos haciendo otras cosas.
Para esto tenemos 2 utilidades
1. at: yo le digo en cuanto tiempo quiero que se ejecute
2. cron: dejo comandos programados para que se ejecuten de forma periódica.
Clase 22: Comandos que también se utilizan en Windows (Comparación)

También podría gustarte