Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definición
Un comando es una acción escrita, generalmente, a través de una terminal y emulada por una shell
para ser ejecutada por nuestro sistema operativo.
.
Comandos de la clase
Wsl
pwd o print working directory. Comando para encontrar el ruta actual de trabajo de manera
absoluta o desde el directorio /
cd o change directory. Comando para navegar entre directorios requiriendo, dependiendo, del
directorio o ruta a navegar.
Hay varios shortcuts para navegar rápidamente:
o cd ~ volvemos al home
ls. Comando para ver el contenido de un directorio. Por defecto, se mostrará el contenido del
directorio actual.
Algunas opciones son:
Comandos básicos
1. pwd (print working directory) es para ver en la carpeta que estamos actualmente
2. cd (change directory) para poder navegar en una carpeta, ponemos cd espacio y el
nombre de la carpeta a la que queremos ir
3. Si queremos ir al home colocamos /, si hay un / es que estamos en el home, si muestra
el signo ~ es que estamos en el hogar de mis documentos
4. ls (list) listar los archivos que tenemos en ese momento
5. ls -al, es un argumento, el espacio significa que el comando principal es ls, el guion que
estamos trayendo argumentos especiales al comando, la a de que nos muestre todos los
archivos incluso los ocultos y la l que sea en forma de lista
6. la flecha para arriba nos muestra el ultimo comando que escribimos
7. Para limpiar la consola puede ser con ctrl l o escribir clear
8. Para volver a la carpeta anterior usamos cd . .
9. mkdir (make directory ) para crear carpetas, ponemos mkdir espaacio y el nombre de la
carpeta
10. touch, para crear un archivo vació usamos el comando touch, permite crear archivos
que no tienen nada por dentro.
11. Wslview es para abrir el archivo.
12. Para ejecutar el explorador de archivos usa el comando explorer.exe . donde el último
punto indica que abrirá el explorador en el archivo desde el que estés invocando el
comando en la terminal. Sin el punto, el explorer se abrirá en la ruta por defecto de
Windows.
13. cat (concatenate), nos muestra el contenido de un archivo
14. history, para ver el historial de nuestros comandos. Si queremos repetir un comando
ponemos el numero del comando, ponemos !#
15. rem (remove), es para borrar un archivo, MUCHO CUIDADO, si se usa mal este comando
puede borrar tu disco duro. Hay otra opciones para borrar como rm -rf
16. - help, ponemos cualquier comando y ponemos - - help, funciona para ver como
funciona cada uno de los comandos.
17. /mnt/c es la dirección para ver el disco duro
18. Dpkg
19. Sudo es para crear carpetas con permisos de administrador o ejecutar como
administrador.
20. Mv es para mover carpetas o archivos en la terminal mv _inicio_ __final___
21. Cat es un conmando que nos permite visualizar un archivo.
22. Man es un comando que nos permite visualizar el manual de algunos comando por ejem
man cat sale el manual de cat
23. Npx es un ejecutable descarga y despues borra al finalizar no lo descarga permanente
mente
24. Npm descarga de forma permanente
25. Sudo apt-get update visualizer ubunto.
26. Sudo apt-get upgrade es actualizar todo.
27. Sudo apt install git es para instalar git.
28. sudo apt-get install -y nodejs
29. sudo apt-get install curl
30. npx create-react-app test para activar un servidor para detener el servidor es con ctrl + c
para finalizar
31. para activar el servidor es npm start
32. para resolver el error que no te deja editar las carpetas es sudo chown -R username
~/nombre de la carpeta te da todos los permisos.
33. Para borrar un archivo es rm elNombreDelArchivo.
34. Para borrar un directorio vacio es rm -b ElNombreCarpeta.
35. Para borar directorio con contenido es rm -rf ElNombreCarpeta.
36. Ssh-keygen el ssh es solo llave que vamos estar utilizando para pasarlo GitHub así
conctar la terminal a GitHub
37. Git add . es un comando que permite agregar todos los archivos del repositorio y si
asemos unos cambios los comandos se usa git add . para actualizar y luego git commit -
m “el mensaje que quieres agregar” y después para finalizar git push -u origin main
38. git commit si solo se agrega asi te manda a un editor
39. Git add NombreDelArchivo REAMDE.md se usa para especificar que archivos quieres
guardar.
40.
1. Regresar a la terminal
2. Crear una llave de tipo SSH la cual es una llave o token que se le estará pasando a GitHub
a. ssh-keygen -t rsa -b 4096 -C “email de github”, en cuanto se ejecute nos indicara la ruta en
donde estará almacenando la llave (en mi caso en: (/home/marcoev/.ssh/id_rsa),
aceptamosy nos creara la carpeta .ssh
i. las carpetas o archivos que inician con . (punto) en el nombre, en Linux se crean como
escondidos
b. posteriormente nos pide una contraseña, la que se indique es importante que no la
olvidemos
c. el archivo id_rsa.pub es el que enviaremos a github y es la parte publica, la parte privada
es la que mantendremos nosotros y no debemos de compartir
i. The key fingerprint is:
ii. SHA256:***********************
d. Comando para evaluar si tenemos un agente de ssh corriendo
i. eval “$(ssh-agent -s)”
3. ssh-copy-id “correo”
a. ADVERTENCIA, El estudiante Sneyder Alfonso indica que este paso no es correcto o
necesario hacerlo, ya que este comando no funciona como un control + c (copy), yo no lo
realice y pude concluir el paso sin problema
4. Nos cambios a la carpeta de .ssh
a. cd ~/.ssh
5. mostramos el contenido del archivo id_rsa.pub, seleccionamos y lo copiamos (con el
mouse)
a. cat id_rsa.pub
b. Para validar que se haya copiado correctamente, en la línea de comandos damos clic
derecho y si se pega, quiere decir que esta bien
6. Vamos al portal de github, en tu usuario ir a settings>SSH and GPG Keys y damos clic en
New SSH Keys
7. Pegamos el contenido en el campo de key y en title escribimos el nombre de la computadora
y clic en Add SSH Key
Clave publica
SHA256:etHB5aMroKKLVpILlFLL2Fjr9q/VTZ5GQtKoI/xZ22U
Agent pid 99
Token de git
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
Repositorio
AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\
settings.json
Comandos para WSL
Para abrir todo el contenido de un archivo desde la terminal: cat nombreDelArchivo
Para abrir el administrador de archivos explorer.exe . No olvides incluir el punto
Para abrir un archivo o un directorio wslview nombreDelArchivo o wslview
nombreDelDirectorio
Espero les sea muy útil el resumen 😄
Explorando el contenido de nuestro archivos.
Podemos explorar el contenido de archivos sin la necesidad de abrirlos, desde la
terminal 🧐. Esto para archivos de texto.
head <documento de texto>: Nos muestra las primeras 10 líneas de un archivo de
texto. Para especificar el número de líneas head -n <numero de lineas> <archivo>
tail <documento>: Nos muestra las últimas 10 líneas.
less <archivo>: Este es muy cool, es muy interactivo, nos permite hacer scroll, y nos
permite hacer búsquedas haciendo /<palabra a buscar>. Para salir presionamos q 🔍.
xdg-open <archivo>: Para abrir un archivo desde la terminal. Usa las aplicaciones
predeterminadas. Esto para linux, para mac, es open. Esto crea un proceso en la
terminal que no nos dejará hacer nada mas. Para terminar el proceso ctrl+c.
nautilus nos permite abrir el explorador de archivos en una posición dada (en linux) 📁
Tipos de wildcards
% - Usado en SQL para relacionar más de un caracteres 0 o más veces.
* - Relaciona cualquier carácter 0 o más veces.
? - Para relacionar un caracter una vez.
[ ] - Realizamos relaciones a través de expresiones regular.
Cabe mencionar que los wildcard, pueden ser utilizar como prefijo o postfijo:
# prefijo
dir *.mp3
# postfijo
dir main.*
Son una serie de caracteres especiales que nos permiten realizar búsquedas muy
avanzadas utilizando ls 🔍. Puedes utilizar wildcards con otros comandos que realicen
manipulación de archivos como mv, cp o rm 💫. También se conocen como comodines.
ls *<texto>: Nos muestra todos los archivos que tengan en su nombre dicho texto al
final. Si haces ls <texto>* lo busca al final. El asterisco significa cualquier string.
ls <text>? El signo de interrogación sustituye a cualquier carácter, por ejemplo,
buscamos todos los archivos que tengan una palabra y un número dado de caracteres
después. El signo de interrogación significa cualquier carácter.
ls [[:upper:]]* Para filtrar cosas que inicien que una mayúscula; esto busca también
dentro de los directorios.
ls [[:lower:]]* Lo mismo pero con minúsculas.
ls -d Se muestran solo directorios.
ls [ad]* Todo lo que inicie con a o con b
Redirecciones: Cómo funciona la shell.
Normalmente, cuando pones un comando en la terminal, la salida se muestra ahí
mismo, pero se puede redirigir la salida a un archivo 👀. Si la salida es correcta tiene file
descriptor 1, si no, file descriptor 2.
La entrada estándar es nuestro teclado que tiene file descriptor 0, pero también puede
venir de otro lado 🧠.
Para redirigir algo usamos >. Por ejemplo ls > misarchivos.txt, entonces la salida del
comando se guarda en ese archivo de texto. Siempre crea este archivo (si ya existe, lo
reescribe).✍🏽
Pipe operator |
💡Los filtros son el procesos de tomar una entrada de flujo y, realizando una conversión,
es mandado a la salida de otro stream.
.
Definición
Un pipeline sirve en la construcción de comandos para generar filtros.
.
Pipeline stdout a stdin
Usamos el operado pipe | entre dos comando para direccionar el stdout del primero con
el stdin del segundo. Cualquier comando, entre pipes, puede tener opciones o
argumentos para construir filtros complejos.
Una de las ventajas de los pipes, en Linux y UNIX, es de que pueden variar y generar
salidas intermedias de diferentes procesos, generando todo un trace de flujo de
información.
Es uno de los operadores mas útiles que existen, ya que nos permite poner varios
comandos, tales que la salida de uno es la entrada del siguiente 📤.
echo <texto> genera un stdout con el texto que tenemos.
cat <archivo1> <archivo2> muestra los dos archivos concatenados 💩.
El pipe operator | hace que el stdout de un comando sea el stdin de otro comando. Por
ejemplo ls -lh | less
tee hace algo parecido a >, pero dentro de los pipe´s, por ejemplo ls -lh | tee output.txt |
less . Se puede poner en medio, pero se ignora porque se sigue pasando.
cowsay "Texto" es un comando que imprime una vaca que dice algo JAJAJAJAJ 🐮.
_________________________
< Nunca pares de aprender >
-------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
echo "Texto" | lolcat esto lo imprime con colores bonitos 😂.
¡Los pipe operators de Linux son de lo mejor! En serio puedes hacer cosas muy increíbles con ellos. Por
ejemplo, yo llegué a hacer un comando super poderoso que me consultaba todos los archivos que tenía
guardados en Amazon S3 y me los ponía en varias líneas ordenaditos (porque Amazon te los devuelve
con demasiada información desordenada), es más aquí se los enseño (no te asustes por esto, es algo un
poquito avanzado, pero quiero que veas cómo usando pipe operators puedes hacer cosas increíbles):
aws s3 ls s3://$BUCKET --recursive | awk '{print $4}' | awk -F/ '{print $NF}'
Aquí uso el comando awk (uno de los comandos que ya te expliqué en otra clase 👀). Claro, no necesitas
llegar a hacer cosas complejas para usar pipe operators, puedes hacer cosas sencillas, por ejemplo,
buscar tus paquetes instalados en tu computadora y filtrar por alguno específico:
.
.
En este caso, el comando dpkg --get-selections te dice qué paquetes tienes instalados en Ubuntu, y el
comando grep hace el filtro (little spoiler, lo verás más a profundida más adelante) 👀.
.
¡Pero imagina todo lo que puedes hacer con el pipe operator! Lo mejor es que si logras dominarlo,
aprenderás a automatizar procesos en la terminal 💚.
Notas 😄
Encadenando comandos: operadores de control.
Son símbolos reservados por la terminal que nos permiten ejecutar varios comandos seguidos, e
incluso agregar condicionales ⛓️.
Síncronos: Se corre uno detrás de otro, en orden. Se hace esto con ; , por ejemplo ls; mkdir
carpeta1; cal 👁️
Asíncrono: Por cada comando, se abre una nueva terminal, y cada comando se corre de manera
paralela, esto es con &, por ejemplo ls & date & cal ⏲️
o OR: Se ejecuta el primer comando que se pueda ejecutar, y se usa ||, por ejemplo cd
carpeta || echo "No hay carpeta" 🤩
Nota importante:
Comandos separados por punto y coma “;” : Se ejecutan uno seguido del otro en el orden en
que fueron puesto. Uno no se ejecuta hasta que el otro proceso aya terminado.
–
Comandos separados por & : Se ejecutan todos al mismo tiempo, es decir de forma asíncrona.
–
Comandos separados por && : Se ejecutan solo si el comando anterior se aya ejecutado
exitosamente. Suponemos que A, B y C son comando:
A && B && C
El B solo se va ejecutar si el A se ejecuta exitosamente, y el C solo se va ejecutar si el B si ejecuta
exitosamente. Si el B no se ejecuta exitosamenta el C no se ejecuta. Si el A no se ejecuta
exitomante el B y el C no se ejecutan.
–
Comandos separados por || : Solo se ejecuta uno. Sea cuantos comandos tienes separados por
|| solo ejecuta o toma en cuenta el primer que se ejecuta exitosamente (bajo la redundacia), y
descarta automaticamente los demas. Cuando uno de los comandos se ejecuta exitosamente,
descarta los demas comandos.
Notas 😄
Cómo se manejan los permisos.
Cuando listamos con ls -l se muestran varias cosas. Los tipos de archivos:
o - archivo normal.
o d directorio.
o l link simbólico.
Modo simbólico: Esto es para asignar los permisos a los diferentes posibles usuarios.
Puedes crear archivos de texto también con > archivo.txt y también podemos editarlo con cat >
archivo.txt 📜
Para quitarle los permisos a alguien en particular, usamos el modo simbólico y usando laresta,
por ejemplo quitando el permiso de lectura al usuario chmod u-r mitexto.txt. Para agregar, se
usa la suma. 🧮
Podemos hacer configuraciones mas avanzadas, por ejemplo, podemos asignar varios permisos
al mismo tiempo chmod u-x,go=w mitexto.txt.
whoami Para saber que usuario somos, y también podemos obtener el ID del usuario con id.
su root para cambiar de usuario hacía root, hay que tener cuidado al usar este usuario 😟. Su
home es incluso distinto. Los archivos que crea root (o otro usuario) no se pueden eliminar por
un usuario normal.
sudo <comando> nos otorga temporalmente los permisos de root para ejecutar algún comando
que ocupe permisos especiales. 🏽 Nunca dejes el usuario root por defecto, y ponle una
contraseña distinta!!
¿No te parece que el comando whoami es un poco inútil? ¿Qué sentido tiene saber quién soy yo… ¡si yo
sé quién soy!.. 👀.
.
Bien, pues déjame decirte que tiene mucho sentido, y aquí te voy a explicar algunos de sus usos, pero
primero, déjame decirte que en la terminal puedes ejecutar comandos dentro de comandos, ¿cómo?
¡Sencillo!, simplemente escribes: $(cualquiercomando) y este se ejecutará, por ejemplo:
En este comando estoy ejecutando el comando cat (un comando que ya debes saber qué hace), pero a
su vez, dentro de $() estoy ejecutando un comando llamado find (little spoiler), este comando buscará
un archivo dentro de cierta ubicación y te devolverá la ruta completa de ese archivo, entonces, como ya
sabes que te devuelve la ruta completa de ese archivo, el resultado de ese comando se lo está pasando
al comando cat.
.
Pero ahora, ¿cómo podemos aplicarlo al comando whoami? ¡Fácil!, y de hecho lo haremos aplicando un
comando de los que acabamos de ver para modificar permisos.
.
¡Ejemplo práctico!
Este ejemplo que te voy a dar es un problema que a muchas personas les pasa en el Curso de Prework:
Configuración de Entorno de Desarrollo en Windows.
.
Imagina que crear una carpeta llamada PersonalProjects, pero la creas de la siguiente manera:
Al hacer eso, tu carpeta se creará, sí, pero si intentas escribir archivos dentro de ella no podrás, te dirá
“Permission denied”, porque tú no eres el dueño de esa carpeta. Como creaste la carpeta usando sudo,
entonces el dueño de esa carpeta es el usuario root ☝👀,
.
¡Cambiemos al dueño de la carpeta!, para hacer esto, podemos usar el comando chown (Change
Owner), este comando se estructura de la siguiente forma:
Eso sería suficiente para que yo sea el dueño de mi carpeta y pueda escribir en ella. ¿Por qué el grupo
tiene mi nombre de usuario? Porque, en Linux, al crear un usuario, automáticamente se crea un grupo
con el mismo nombre.
.
Muy bien, pero aún no te he dicho en qué interviene whoami aquí, pero seguro ya lo intuyes 👀…
.
Imagina que más personas tienen el mismo problema, y en lugar de decirles algo como: “Primero tienes
que saber cuál es tu usario, luego pones este comando, pero cambias ahí donde dice ‘usuario’ por tu
propio usuario…” mejor les dices: “Toma, con este comando lo solucionas”, sería mucho más eficiente,
¿no crees? Hagamos ese comando:
¿Ves? Exte comando se lo puedes dar a culquiera y le funcionará, porque whoami está poniendo dentro
de dichos parámetros el nombre del usuario!!
.
Esta es tan solo una de las muchas ventajas que tiene el comando whoami, al principio parece un
comando inútil, pero cuando empiezas a combinarlo con más utilidades de la terminal empiezas a ver
que es muy útil ☝👀.
Variables de entorno.
La termina tiene una configuración con diferentes valores, que se pueden acceder con las
variables de entorno. Estas son muy importantes para la configuración general del sistema
🚒.
Podemos guardar alias para que se queden de manera permanente con esto 😉.
ln -s <ruta> <Nombre> Esto para hacer link simbólicos, que son un tipo de archivo que
hacen referencia a otro lugar, básicamente es un acceso directo desde terminal 📁.
printenv nos muestra todas las variables de entorno que tenemos configuradas 📔.
echo $<variables> esto nos sirve para imprimir una variable en particular.
Algunas variables son:
o HOME es nuestro HOME de usuario 😆.
o PATH tiene todas las rutas donde se encuentran los binarios en los que se ejecuta
nuestro sistema. 🛣️Hay varios manejadores de paquetes para binarios, pero no
todas las veces se agregan a PATH, y se deben agregar a mano.
En HOME, existe un archivo que se llama .bashrc que es donde está nuestra configuración
de Bash. Lo podemos abrir con VS Code para modificarlo. En este archivo podemos crear
alias.
alias <nombre>="comando" para crear un alias útil 👀.
code <archivo> para abrir un archivo de texto en VS Code desde la terminal.
Para modificar o crear una variable de entorno, se hace, por
ejemplo PLATZI_MESSAGE='Hola amigos".
Para agregar una ruta a la variable PATH ponemos en .bashrc PATH=$PATH:<ruta>,
guardamos, cargamos bash en la terminal, y listo 😄.
Es muuuy importante tener cuidado con los alias, nunca hay que nombrar un alias como un
comando ya existente 😟.
echo $PATH
Esto por ejemplo, sirve para debuguear cuando algún comando no funcione, podemos mirar si la ruta de
su archvio está dentro de PATH 😄
La termina tiene una configuración con diferentes valores, que se pueden acceder con las
variables de entorno. Estas son muy importantes para la configuración general del sistema 🚒.
Podemos guardar alias para que se queden de manera permanente con esto 😉.
ln -s <ruta> <Nombre> Esto para hacer link simbólicos, que son un tipo de archivo que hacen
referencia a otro lugar, básicamente es un acceso directo desde terminal 📁.
Es muuuy importante tener cuidado con los alias, nunca hay que nombrar un alias como un
comando ya existente 😟.
Comandos de búsqueda
Hay otro comando que no se vio en esta clase MUY interesante 👀.
.
Este es el comando whereis (en español: ¿dónde está?), este comando es algo similar a which,
pero mucho mejor. Este comando localiza los ficheros binarios, fuentes y páginas del manual de
un programa, es decir, podemos decir que hace algo así como una “búsqueda mucho más
profunda”, me encanta porque puedes saberlo casi todo sobre la ubicación de un programa 😄.
.
Adicionalmente, find es uno de esos comandos que más amo con toda mi vida, ya puse un
ejemplo usando find en una clase anterior, pero es que es un comando muy bueno! A modo de
anécdota, una vez me pasaron un archivo… escondido entre un montón de carpetas, sí, una
carpeta dentro de otra, dentro de otra, y al lado otras 10 carpetas más… ¿qué hice? usé el
comando find 👀. Ventajas se saber usar la terminal, ¡y ahora tú también sabes usarla! 😄
Es una de las partes mas interesantes de la terminal, ya que nos permite buscar archivos de
manera eficiente y específica 💫.
which <programa> Busca en todas las rutas del PATH para encontrar donde está alojado algún
archivo binario 🔢.
find <ruta inicial> -name <archivo> Nos permite encontrar un archivo a partir de una ruta inicial,
y dentro de todas las carpetas que surjan de ese inicio 🌲.
o Algo muy cool es que podemos usar wildcards para hacer mas eficiente la búsqueda 🔍.
o find <ruta inicial> -type <tipo> -name <nombre> podemos especificar el tipo de archivo,
d → directorio, f → documento.
o find <ruta inicial> -size <tamaño><unidad> podemos buscar tamaños mayores a un
determinado tamaño, por ejemplo, de 20M (megas).
Solución al reto: find ./ -name *.txt -type f -size 1M > mis_archivos_texto.txt | echo "archivos
guardadados exitosamente"
-iname: Realiza una búsqueda por nombre de archivo sin tomar en cuenta las mayúsculas o
minúsculas.
-type: Realiza una búsqueda por tipo de archivo, f(files) y d(directories) que son los más
comunes.
Banderas de tiempo⏰
Más banderas👀
-maxdepth: Después de está bandera se pone el número de niveles de profundidad en los que
queremos realizar la búsqueda
-delete: Está bandera se coloca al final del comando, eliminara los resultados de la
busqueda(⚠️Hay que tener mucho cuidado al usarla).
Hay muchas más banderas, pero esas son las que me parecieron más útiles.
.
Ejemplos:
A continuación pondré unos cuantos ejemplos de las banderas mencionadas anteriormente.
.
Búsqueda de todos los archivos con el permiso 644 a partir del directorio actual con una profundidad de
2 niveles.
.
Búsqueda de todos los archivos .log, todos los resultados serán eliminados.
.
Para este aporte use como referencia algunas clases y aportes del curso pasado, así como también
conocimientos propios, dejo los link de referencia por si quieren verlo más a fondo(están en inglés):
Link 1
Link 2
Espero que les sea de ayuda, 💚 si te ayudo.
Su majestad: grep
grep es un comando con muchas utilidades, la verdad es que tiene muchos casos de uso, aquí te
dejo algunos que a mí me han sido de utilidad 👀👇:
1. Buscar algún paquete en específico que tengas instalado:
dpkg --get-selections | grep nombreDelPaquete
# dpkg --get-selections te dirá todos tus paquetes instalados
# grep filtrará esa lista con el paquete que te interesa
1. Filtrar algún archivo en específico después de un ls:
ls -al | grep myFile.txt
# grep buscará la palabra "string" en todos los archivos que comienzen por
"archivo_" y te los mostrará.
1. Buscar usando expresiones regulares (te recomiendo aprender expresiones regulares, son
MUY poderosas 👀):
Imagina que tienes un archivo llamado test.txt y adentro contiene la siguiente frase:
Imagina que quieres buscar algo
Entonces, podemos usar grep así:
grep "Imagina .* algo" test.txt
# grep buscará alguna coincidencia, la expresion .* indica que ahí dentro
puede haber una o más letras, cualquier que sea, así que podrías leerla
como: Imagina (cualquier cosa) algo.
Esto encontrará justo la frase que quieres:
Imagina que quieres buscar algo
.
Hay muchos más casos de uso para grep, te dejo este blog que habla de algunos cuantos casos de
uso más 👀👇:
15 Practical Grep Command Examples In Linux / UNIX
Su majestad: grep.
Es uno de los comandos mas útiles, y de los mas potentes dentro de Linux.🤖
o -v para hacer búsqueda complementaria, esto es, todos los elementos que no coincidan.
Puedes usar grep junto con otros comandos. Por ejemplo, para filtar los resultados de ls, algo
cómo ls -lh | grep > busqueda.txt 🧠
o -c número de bits.
Las expresiones regulares pueden ser útiles en otros contextos, por ejemplo, en otros lenguajes
de programación 🐍 que las soporten.
Utilidades de red
Existen comandos que nos dan información sobre la red 🥅:
curl <url>: Nos trae un archivo de texto a través de la red 🌎. (El index.html).
traceroute <url>: Nos da la lista de todas las computadoras (direcciones IP) por la que nuestra
conexión pasa para llegar a un sitio web 🚰.
netstat -i: Nos muestra los dispositivos de red. Similar a ifconfig pero más resumido 👀
Comprimiendo archivos
Podemos crear archivos comprimidos .zip o .tar desde la terminal. 🤖
.tar se usa mucho en repositorios. Para comprimir tar -cvf <nombre>.tar
<archivos>, donde c → compress, v → verbose, f→ file. 📁
.gz es un poco mejor, se usa el mismo comando pero con la bandera z→zip tar -cvzf
<nombre>.gz <archivos>. Usa el algoritmo gzip que es muy eficiente para comprimir. 📄
Para descomprimirlo, usamos el mismo comando pero con la bandera x → decompress en
lugar de c → compress. Para que funcione, debemos descomprimir debemos usar el mismo
tipo de compresión (tar o zip). 📖
.zip es uno muy común. Es necesario instalarlo en linux. zip -r <nombre>.zip
<directorio>. Para descomprimir usamos unzip <nombre>.zip. 📃
.rar funciona igual que .zip, pero con rar y unrar de comandos 👁️🗨️.
Manejo de procesos
Cuando se traba nuestro OS, normalmente terminamos procesos con el administrador de
tareas 😆, en la terminal se puede hacer, pero es un poco diferente.
ps nos muestra los procesos que están corriendo actualmente. Cada proceso tiene
un PID. Podemos ver los procesos que estén en el background (por ejemplo, CAT).
kill <PID> nos ayuda a terminar procesos fuera de nuestra terminal. 🛑
top <PID> nos muestra los procesos que están usando más recursos de nuestra
computadora. Podemos filtrar los procesos (para ver como, usamos bandera h → help). 🆘
La terminal, sabiéndola usar bien, es más eficiente que el administrador de tareas.
htop es como top pero con esteroides. Debemos instalarlo. Tiene muchas más opciones
💪🏽
Pero, aunque prácticamente es cierto, cada editor es bueno para hacer ciertas actividades, claro,
hay algunos que se destaca más que otros en sus actividades.
.
Por ejemplo, nano, aunque es muy simple, te ayuda con tareas simple, a mí en lo personal me
encanta usar nano (sí soy un psicópata… 👀 jaja), pero lo uso para tareas simples, por ejemplo,
crear un archivo de notas, modificar líneas de algún archivo (por ejemplo, modificar variables de
entorno, etc).
.
Por otro lado, vim es un editor de texto muy poderoso, una de las ventajas de vim es que puedes
llegar a convertirlo en todo un editor de código super liviano. He conocido chicos que tienen
Vim casi como si fuera un Visual Studio Code, le instalaron algunos temas y listo.
.
Vim resulta ser muy liviano y perfecto para computadoras de bajos recursos, sin embargo, por lo
que tengo entendido, su curva de aprendizaje es un poco lenta.
.
Cada editor responde a una necesidad diferente, cada quién sabrá cuál usar en X momento 👀.
.
PD: Dato curioso, el Curso de Creación de Lenguajes de Programación: Intérpretes fue hecho
usando 100% vim como editor de código principal 👀.