A través de comandos de Terminal para Mac podemos realizar acciones que, en determinadas ocasiones, no se encuentran disponibles a través de la interfaz gráfica de macOS o bien, el proceso para hacerlo a cabo es muy lento y laborioso.
Los comandos de Terminal para Mac, funcionan en todas las versiones de macOS que ha lanzado, prácticamente, desde la primera versión. Si quieres comenzar a utilizarlos y sacarle el máximo partido, te invito a que sigas leyendo.
Hay que tener en cuenta que con los comandos de Terminal para Mac puedes realizar cambios en tu equipo, cambios de configuración que pueden afectar al funcionamiento de tu equipo.
Además, también puedes borrar archivos, crear directorios, conocer que dispositivos están conectados a tu red, realizar búsquedas…
Si ya conoces los comandos del sistema en Windows (que proceden de MS-DOS) no te costará mucho aprender a utilizar los comandos de Terminal para Mac que os mostramos en este artículo.
Índice de contenidos
- 1 Cómo acceder a Terminal
- 2 Comandos básicos de Terminal
- 3 Búsqueda en Terminal
- 4 Gestión de Permisos en Terminal
- 5 Tamaño de los archivos y espacio en disco
- 6 Gestión de archivos y directorios
- 7 Gestión de directorios con Terminal
- 8 Listado de archivos y directorios con Terminal
- 9 Atajos de teclado en Terminal
- 10 Historial de comandos
- 11 Procesos de Terminal
- 12 Comandos de red en Terminal
- 13 Homebrew
- 14 Variable de entorno o ruta de acceso
Cómo acceder a Terminal
Lo primero que debemos hacer para poder comenzar a trastear las tripas de macOS es acceder a la línea de comandos de macOS. Para comenzar a utilizar los comandos de Terminal en Mac debemos realizar los siguientes pasos:
- Pulsamos el atajo de teclado Command + barra espaciadora.
- Escribimos Terminal.
- Pulsamos sobre el primer resultado de la búsqueda.
Esta aplicación también se encuentra en el Launchpad, dentro de la carpeta Otros. Si te gusta la idea de trabajar con comandos, puedes pegarle un vistazo a un artículo donde os mostramos los mejores atajos de teclado para Mac.
Comandos básicos de Terminal
/ (Forward Slash) | Directorio de nivel superior | |
. | Directorio actual | |
.. | Directorio superior | |
~ | Directorio principal | |
sudo [command] | Ejecutar comando con los privilegios de seguridad del superusuario | |
nano [file] | Abre el editor de la Terminal | |
open [file] | Abrir un archivo | |
[command] -h | Obtener ayuda sobre un comando | |
man [command] | Muestra el manual de ayuda del comando | |
Búsqueda en Terminal
«find <dir> -name <«»file»»>» | Busca todos los archivos llamados <archivo> dentro de <dir>. Podemos utilizar los asteriscos (*) para buscar partes de nombres de archivos | |
«grep «»<text>»» <file>» | Busca todas las coincidencias de <texto> dentro de <fichero> | |
«grep -rl «»<text>»» <dir>» | Busca todos los archivos que contengan <texto> dentro de <dir> | |
Gestión de Permisos en Terminal
ls -ld | Muestra el permiso por defecto de un directorio de origen | |
ls -ld/<dir> | Muestra los permisos de lectura; escritura y acceso de una carpeta determinada | |
chmod 755 <file> | Cambia el permiso de un archivo a 755 | |
chmod -R 600 <dir> | Cambia el permiso de una carpeta y todo su contenido a 600 | |
chown <user>:<group> <file> | Cambia la propiedad de un archivo a usuario y grupo Si añadimos el comando «-R» se incluirá el contenido de la carpeta | |
Tamaño de los archivos y espacio en disco
du | Uso de la lista para cada subdirectorio y su contenido | |
du -sh [folder] | Salida legible de todos los archivos de un directorio | |
du -s | Mostrar una entrada para cada archivo especificado | |
du -sk* | sort -nr | Listar archivos y carpetas (resumiendo el tamaño incluyendo las subcarpetas). Podemos sustituir sk* por sm* para listar los directorios en MB | |
df -h | Muestra el espacio libre en disco de su sistema | |
df -H | Calcula el espacio libre en disco en potencias de 1.000 (en lugar de 1.024) | |
Gestión de archivos y directorios
mkdir <dir> | Crea una nueva carpeta llamada <dir> | |
mkdir -p <dir>/<dir> | Crea carpetas anidadas | |
mkdir <dir1> <dir2> <dir3> | Crea varias carpetas a la vez | |
«mkdir «»<dir>»»» | Crea una carpeta con un espacio en el nombre del archivo | |
rmdir <dir> | Elimina una carpeta (únicamente funciona con carpetas vacías) | |
rm -R <dir> | Elimina una carpeta y su contenido | |
touch <file> | Crea un nuevo archivo sin ninguna extensión | |
cp <file> <dir> | Copiar un archivo en la carpeta | |
cp <file> <newfile> | Copiar un archivo en la carpeta actual | |
cp <file>~/<dir>/<newfile> | Copiar un archivo en la carpeta y cambiar el nombre del archivo copiado | |
«cp -R <dir> <«»new dir»»>» | Copiar una carpeta en una nueva carpeta con espacios en el nombre del archivo | |
cp -i <file><dir> | Le avisa antes de copiar un archivo con un mensaje de advertencia de sobrescritura | |
cp <file1> <file2> <file3>/Users/<dir> | Copia varios archivos en una carpeta | |
ditto -V [folder path][new folder] | Copia el contenido de una carpeta a una nueva carpeta. El comando «-V» muestra una línea de estado por cada archivo copiado. | |
rm <file> | Borra un archivo de forma permanente | |
rm -i <file> | Borra un archivo solicitando confirmación | |
rm -f <file> | Fuerza la eliminación sin confirmación de un archivo | |
rm <file1> <file2> <file3> | Borrar varios archivos sin confirmación | |
mv <file> <newfilename> | Mover/renombrar | |
mv <file> <dir> | Mueve un archivo a la carpeta (sobreescribiendo el archivo existente con el mismo nombre si existiera) | |
mv -i <file> <dir> | El comando «-i» muestra un aviso informando que va a sobreescribir el archivo de destino. | |
mv *.png ~/<dir> | Mueve todos los archivos PNG de la carpeta actual a una carpeta diferente | |
Gestión de directorios con Terminal
cd | Directorio de inicio | |
cd [folder] | Cambiar de directorio | |
cd ~ | Directorio principal | |
cd/ | Raíz de la unidad | |
cd - | Directorio o carpeta anterior por la que ha navegado por última vez | |
pwd | Mostrar el directorio de trabajo | |
cd.. | Subir al directorio principal | |
cd../.. | Subir dos niveles | |
Listado de archivos y directorios con Terminal
ls | Mostrar el nombre de los archivos y subdirectorios del directorio | |
ls -C | Mostrar el nombre de los archivos y subdirectorios del directorio en columnas | |
ls -a | Listar todas las entradas (incluyendo las que tienen .(punto) y ..(doble punto)) | |
ls -1 | Mostrar la lista de archivos en formato de una entrada por línea | |
ls -F | Mostrar una / (barra) inmediatamente después de cada ruta que sea un directorio | |
ls -S | Ordenar los archivos o entradas por tamaño | |
ls -l | Lista en formato largo. Incluye el modo de archivo; el nombre del propietario y del grupo; la fecha y la hora en que se modificó el archivo; el nombre de la ruta; etc. | |
ls -l / | Lista del sistema de archivos desde la raíz con enlaces simbólicos | |
ls -lt | Lista de los archivos ordenados por tiempo de modificación (el más reciente primero) | |
ls -lh | Listado largo con tamaños de archivos legibles en KB; MB o GB | |
ls -lo | Lista de los nombres de archivos con tamaño; propietario y banderas | |
ls -la | Lista detallada del contenido de los directorios (incluidos los archivos ocultos) | |
Atajos de teclado en Terminal
Tab | Autocompletar nombres de archivos y carpetas | |
Ctrl + A | Ir al principio de la línea en la que estás escribiendo | |
Ctrl + E | Ir al final de la línea en la que estás escribiendo | |
Ctrl + U | Borrar la línea anterior al cursor | |
Ctrl + K | Borrar la línea después del cursor | |
Ctrl + W | Borrar la palabra antes del cursor | |
Ctrl + T | Intercambiar los dos últimos caracteres antes del cursor | |
Esc + T | Intercambiar las dos últimas palabras antes del cursor | |
Ctrl + L | Borrar la pantalla | |
Ctrl + C | Detener lo que se esté ejecutando | |
Ctrl + D | Salir del shell actual | |
Option + → | Mover el cursor una palabra hacia adelante | |
Option + ← | Mover el cursor una palabra hacia atrás | |
Ctrl + F | Mover el cursor un carácter hacia adelante | |
Ctrl + B | Mover el cursor un carácter hacia atrás | |
Ctrl + Y | Pegar lo que fue cortado por el último comando | |
Ctrl + Z | Poner lo que se está ejecutando en un proceso de fondo suspendido | |
Ctrl + _ | Deshacer el último comando | |
Option + Shift + Cmd + C | Copiar texto plano | |
Shift + Cmd + V | Pegar la selección | |
exit | Terminar una sesión de shell | |
Historial de comandos
Ctrl + R | Búsqueda de comandos utilizados anteriormente | |
history | Muestra los comandos que hemos escrito previamente | |
![value] | Ejecuta el último comando utilizado que comienza con un valor | |
!! | Ejecuta el último comando utilizado | |
Procesos de Terminal
ps -ax | Muestra los procesos que se están ejecutando actualmente. El comando «a» muestra los procesos de todos los usuarios y el comando «x» muestra los procesos que no están conectados con la Terminal | |
ps -aux | Muestra todos los procesos con %cpu; %mem; page in y PID | |
top | Muestra información en tiempo real sobre los procesos que se están ejecutando | |
top -ocpu -s 5 | Muestra los procesos ordenados por el uso de la CPU y actualizándose cada 5 segundos | |
top -o rsize | Ordena los procesos por uso de memoria | |
kill PID | Salir del proceso con ID <PID>. El PID se mostrará como una columna en el Monitor de Actividad | |
ps -ax | grep <appname> | Buscar un proceso por nombre o PID | |
Comandos de red en Terminal
ping <host> | Hacer ping al host y mostrar su estado | |
whois <domain> | Obtener información whois de un dominio | |
curl -O <url/to/file> | Descarga un archivo a través de HTTP; HTTPS o FTP | |
ssh <username>@<host> | Establecr una conexión SSH a <host> con el usuario <username> | |
scp <file><user>@<host>:/remote/path | Copia <archivo> a un <host> remoto | |
arp -a | Muestra un listado de todos los dispositivos de su red local incluyendo la dirección IP y MAC de todos los dispositivos | |
ifconfig en0 | Muestra la dirección IP y MAC de su dispositivo | |
traceroute [hostname] | Identifica la ruta y los saltos atravesados por los paquetes desde su dispositivo hasta la dirección de destino | |
Homebrew
brew doctor | Comprobar el sistema para detectar posibles problemas | |
brew help | Lista de comandos útiles de Homebrew | |
brew install <formula>|<cask> | Instalar una fórmula | |
brew uninstall <formula>|cask> | Desinstalar una fórmula | |
brew list –formula | Listar sólo las fórmulas instaladas | |
brew deps <formula>|<cask> | Listar todas las dependencias de una fórmula | |
brew search text|/regex/ | Buscar fórmulas mediante regex | |
brew upgrade <formula>|<cask> | Actualizar la fórmula | |
brew outdated <formula>|<cask> | Buscar fórmula | |
brew outdated –formula | Buscar una fórmula obsoleta | |
brew pin [installed_formula] | Anclar una fórmula para que no se actualice | |
brew unpin [installed_formula] | Desanclar para actualizar un paquete | |
brew cleanup | Elimine los archivos de bloqueo y los paquetes obsoletos de todas las fórmulas | |
Variable de entorno o ruta de acceso
printenv | Muestra una lista de las variables de entorno actualmente configuradas | |
echo $PATH | Comprueba el valor de la variable PATH que almacena una lista de directorios con archivos ejecutables | |
echo $PATH >path.txt | Exporta el directorio de la ruta a un archivo de texto | |
export PATH=$PATH:absolute/path to/program/ | Ejecuta un programa a través de la terminal sólo en la sesión actual. | |
Usuario de productos de Apple desde el primer iPhone y con muchas ganas de compartir todos los conocimientos que tengo gracias a mis estudios y experiencia como usuario de productos de Apple.