DEV Community

Beatriz Martínez Pérez
Beatriz Martínez Pérez

Posted on

Comandos para la terminal

¿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)