¿Qué es la terminal?
Interfaz gráfica que simula una línea de comandos, es decir, una shell. La terminal es una ventana en donde está el prompt. La línea de comandos (shell) es quien toma los comandos y los manda al sistema operativo para hacer algo.
Tipos de shells:
- Boune shell
- Bash shell
- PowerShell
- Z Shell
- C Shell
- Korn Shell
- Fish Shell
En la terminal encontrarás lo siguiente:
nombreDeUsuario@nombreDelEquipo:directorio$
Podemos usar estos atajos:
Ctrl + C
Mata el proceso actual
Ctrl + L
Limpia la pantalla
Definiciones
Comando Un comando puede ser un programa ejecutable, un comando de utilidad de la shell, una función del shell o un alias.
Wildcards Son caracteres especiales (?, *) que permiten encontrar patrones o realizar búsquedas en al menos dos niveles.
Comandos básicos
clear
Limpia la pantalla (Ctrl + L)
cd ruta
Cambia el directorio actual
cd ..
Regresa al directorio anterior
pwd
Devuelve la ruta en donde estamos
echo "Hello world"
Imprime el texto que escribamos
cat archivo.extension
Muestra el contenido del archivo
cat archivo1.ext archivo2.ext
Muestra el contenido de ambos archivos
file archivo.md
Devuelve la información del archivo
tree
Despliega todos los archivos existentes
tree -L 2
Limita los niveles de ramas a 2
type comando
Devuelve el tipo de comando que es
alias nombre="comando"
Crea un alias para un comando, son temporales si no se guardan
help comando
Muestra la ayuda para ese comando
comando --help
Muestra la ayuda para ese comando
man comando
Muestra el manual de usuario del comando especificado
info comando
Muestra la información del comando (es más legible que 'man')
whatis comando
Devuelve la descripción de qué hace un comando, no funciona con todos los comandos
whoami
Muestra quien somos en el sistema operativo
id
Da información sobre el usuario
cal
Muestra un calendario
date
Muestra la fecha y hora del sistema operativo
printenv
Muestra todas las variables de entorno configuradas
echo $HOME
Imprime el valor de esa variable de entorno
jobs
Muestra los procesos que están en segundo plano y su número de trabajo
fg 1
Saca el proceso que tenga el número de trabajo '1' del segundo plano y lo trae a primer plano (la terminal)
su root
Cambia al usuario root
sudo comando
Ejecuta el comando con el usuario root
passwd
Para cambiar la contraseña
mkdir Directorio
Crea un directorio (pueden crearse varios al mismo tiempo)
touch archivo.extension
Crea un archivo (pueden crearse varios al mismo tiempo)
cp archivoACopiar Ruta/NombreNuevoArchivo
Copia un archivo
mv archivoAMover Ruta
Mueve el archivo a la ruta donde especifiquemos
mv nombreAnterior nombreNuevo
Cambia el nombre del archivo/directorio
rm archivo
Elimina un archivo
rm -i archivo
Elimina un archivo, pero antes solicita confirmación (i = interactive)
rm -r directorio
Elimina un directorio (r = recursive)
rm -f archivo
Fuerza la eliminación de un archivo/directorio
head archivo
Muestra las primeras 10 líneas del archivo
head archivo -n 15
Muestra las primeras 15 líneas del archivo
tail archivo
Muestra las últimas 10 líneas del archivo
tail archivo -n 12
Muestra las últimas 12 líneas del archivo
less archivo
Muestra el archivo completo, interactivo. Con /
podemos buscar palabras y con q
salimos.
open archivo
Abre un archivo como normalmente se haría (MAC)
xdg-open archivo
Abre el archivo (Linux)
Archivos
ls
Lista los archivos y directorios del directorio donde te encuentras
ls -d
Lista los directorios
ls -l
Lista los archivos con detalles (l = long)
ls -lh
Lista los archivos mostrando los detalles más legibles (h = human)
ls -la
Lista los archivos ocultos
ls -ls
Lista los archivos por tamaño (s = size)
ls -lr
Lista los archivos de Z-A (r = reverse)
ls -s ruta nombreLink
Crea un link simbólico, para no escribir toda la ruta, solo escribimos su nombre
Wildcards
ls *.txt
Lista todos los archivos que terminen en '.txt'
ls a*
Lista todo lo que inicie con 'a'
ls a?
Lista todo lo que inicie con 'a' y tenga solo un carácter después (pueden agregarse múltiples '?')
ls [[:uppercase:]]*
Lista lo que inicie con mayúscula y tenga más caracteres después
ls -d [[:uppercase:]]*
Lista los directorios que inicien con mayúscula y tengan más caracteres después
ls [[:lower:]]*
Lista lo que inicie con minúscula
ls [ad]*
Lista lo que inicie con 'a' o 'd' y tenga más caracteres después
Comandos de búsqueda
which comando
Ayuda a encontrar la ruta de los binarios del comando
find ruta -name archivo
Busca 'archivo' y empieza a buscar en 'ruta'
find ruta -type d -name directorio
Busca un directorio (d) de nombre 'directorio', para buscar archivo es -type f
find ruta -size 20M
Busca los archivos que pesen 20MB
grep palabra archivo.ext
Busca 'palabra' dentro de 'archivo.ext'
grep -i palabra archivo.ext
Busca 'palabra' en 'archivo.ext' ignorando mayúsculas/minúsculas
grep -c palabra archivo.ext
Cuenta las veces que aparece 'palabra'
grep -vi palabra archivo.ext
Muestra lo que no tenga 'palabra'
wc archivo.ext
Muestra cuántas líneas tiene el archivo, cuántos caracteres, número de bits y el nombre del archivo
wc -l archivo
Devuelve el número de líneas del archivo
wc -w archivo
Devuelve el número de palabras del archivo
wc -c archivo
Devuelve el número de bits del archivo
Utilidades de red
ifconfig
Muestra información de red
ping url
Conecta con la URL proporcionada para ver si está activa
curl url
Trae un archivo desde esa URL, por ejemplo, el HTML
wget url
Parecido a 'curl', descarga algo desde la red
traceroute url
Muestra si hay algún servidor fallando para llegar de nuestra computadora a la URL
netstat -i
Muestra los dispositivos e información de la red
Comprimir archivos
tar -cvf comprimido.tar aComprimir
Comprime el archivo en .tar, mostrando que va comprimiendo (c = compress, v = verbose, f = file)
tar -cvfz comprimido.tar.gz comprimido.tar
Comprime el archivo en gzip (z = gzip)
tar -vfzx comprimido.tar.gz
Descomprime el archivo
zip -r comprimido.zip comprimir
Comprime en .zip
unzip comprimido.zip
Descomprime el archivo zip
Manejo de procesos
ps
Muestra los procesos/comandos que se estén ejecutando actualmente con su PID
kill PID
Mata el proceso dado el PID
top
Muestra los procesos que usan más recursos
Editor de texto en la terminal
sudo apt install vim
Instala vim (vi es el editor antiguo, vim = vi moderno)
vim
Abre una pantalla para crear archivos de texto
vim archivo.ext
Crea 'archivo.ext' para editarlo
Pipe: Combinar comandos
ls -lh | less
Lista los archivos de forma interactiva
ls -lh | less | tee archivo.ext
'Tee' hace que el resultado se guarde en 'archivo.ext'. El resultado es la lista de archivos de forma interactiva.
ls -lh | tee archivo.ext | less
Primero guarda la salida y luego muestra la salida con 'less'
ls directorio | sort
Muestra la salida de A-Z
Encadenar comandos
Ejecutar comandos de modo síncrono (uno detrás de otro)
ls; mkdir directorio; cal
Separa comandos con ';', primero lista los archivos, después crea un directorio y finalmente muestra un calendario.
Ejecutar comandos de modo asíncrono (por cada comando se abre otra shell en segundo plano)
ls & date & cal
Muestra en que número de proceso (PID) se ejecutó el comando y muestra las salidas
Ejecutar comandos de manera condicional
AND
mkdir directorio && cd directorio
Si se puede, crea 'directorio' y va a la carpeta
OR
cd ruta || touch archivo
Si 'ruta' existe, accede, si no existe, crea 'archivo'
cd ruta || touch archivo || echo "Hola"
Si 'ruta' existe, accede, sino, crea 'archivo', si el archivo se crea, el proceso finaliza, sino, ejecuta el 'echo'
Permisos
Estructura de un permiso
-rw-r--r--
El primer caracter es el tipo de archivo (-)
Los siguientes 3 caracteres son los permisos para el usuario (rw-)
Los siguientes 3 caracteres son los permisos para grupos (r--)
Los siguientes 3 caracteres son los permisos para otros (r--)
Tipo de archivo
-
Un archivo normal
d
Directorios
l
Un link simbólico (acceso directo desde la terminal)
d
Un archivo de bloque especial (guarda información de un dispositivo (USB, HDD) normalmente)
Tipo de modo
Permisos:
r = read = Permiso de ver el contenido del archivo
w = write = Permiso de editar el contenido del archivo
x = execute = Permiso para ejecutar el contenido del archivo
Los permisos activos tienen '1'
Modo dueño (quien creó el archivo, tiene archivo de leer, escribir y ejecutar)
r w x
1 1 1
Modo grupo (para archivos compartidos, tiene permiso de leer y ejecutar)
r w x
1 0 1
Modo world (otros, tiene permiso de leer y ejecutar)
r w x
1 0 1
Modo simbólico
u
Permiso solo para el usuario
g
Permiso solo para el grupo
o
Permiso solo para otros (ni usuario ni grupo)
a
permiso para todos
Modificar permisos en la terminal
Definir permisos en diferentes modos
r w x
1 1 1 - Boleano
4 2 1 - Binario
4 2 1 = 7 - Octal
Es decir, para asignar todos el permiso 'rx' sería:
r w x
1 0 1 - Boleano
4 0 1 - Binario
4 0 1 = 5 - Octal
Para asignar todos el permiso 'r' sería:
r w x
1 0 0 - Boleano
4 0 0 - Binario
4 0 0 = 4 - Octal
chmod 755 archivo
Cambia los permisos de 'archivo', está en octal, Da todos los permisos al usuario, y 'rx' para grupos y otros.
chmod u-r archivo
Quita el permiso de lectura (r) al usuario (u)
chmod u+r archivo
Da el permiso de lectura (r) al usuario (u)
chmod u-x,go=w archivo
Quita al usuario el permiso de ejecución (x) y a grupo y otros (go) solo les da el permiso de escritura (w)
Juego
sudo apt install cowsay
Muestra un mensaje con una vaca
sudo apt install lolcat
Cambia de color cualquier texto
cowsay -l
Muestra los dibujos disponibles, se debe poner -f
cowsay "Hola"
Devuelve una vaca diciendo 'Hola'
lolcat "Hola"
Muestra 'Hola' de diferente color
`cowsay "Hola" | lolcat
Devuelve una vaca colorida diciendo 'Hola'
cowsay -f dragon-and-cow "Hola" | lolcat
Devuelve un dragón con una vaca, coloridos, diciendo 'Hola'
cowsay -f dragon-and-cow "Hola" | lolcat -F 12 -d 5 -a
Anima el resultado
Top comments (0)