macOS Terminal: comandi essenziali

Aprire il Terminale

Il Terminale di macOS si trova in Applicazioni > Utility > Terminale oppure cercandolo con Spotlight (Command + Spazio, scrivi terminale). Apre una shell di default zsh (dal 2019 sostituisce bash). Per chi viene da Linux la sintassi è quasi identica: macOS è basato su Unix BSD, quindi i comandi standard funzionano. Per chi preferisce un terminale più potente consiglio iTerm2 (gratuito, installabile via brew): aggiunge split panes, profili colorati, tmux integration, hotkey window.

Navigazione e file

I comandi base: pwd mostra la directory corrente, ls elenca i file (ls -la con dettagli e nascosti), cd cartella entra in una directory, cd .. sale di un livello, cd ~ torna alla home. Per creare cartelle mkdir nome, per rimuovere file rm file, per rimuovere cartelle rm -r cartella (attenzione: nessun cestino, eliminazione permanente). Per usare il cestino del Finder da terminale installa trash via brew: brew install trash, poi trash file sposta nel cestino invece di cancellare.

Copia, spostamento, ricerca

Copiare un file: cp sorgente destinazione. Copiare ricorsivamente una cartella: cp -R cartella1 cartella2. Spostare o rinominare: mv vecchio nuovo. Cercare file per nome: find . -name "*.pdf". Cercare testo dentro file: grep -r "parola" cartella. Per ricerche più veloci con sintassi moderna usa ripgrep (installabile via brew, comando rg): è 10-100 volte più veloce di grep tradizionale e mostra risultati colorati. Per trovare file rapidamente usa fd (alternativa moderna a find): fd report trova tutti i file con "report" nel nome.

Permessi e proprietà

chmod 755 file imposta i permessi (lettura/scrittura/esecuzione). chown utente:gruppo file cambia proprietario (richiede sudo se non sei il proprietario). sudo comando esegue come amministratore (chiede password). sudo -i apre una shell root persistente (usa con cautela). Per vedere i permessi di un file usa ls -l: la stringa drwxr-xr-x indica directory (d), permessi proprietario (rwx), gruppo (r-x), altri (r-x).

Comandi macOS specifici

open file apre un file con l'app predefinita. open . apre la directory corrente in Finder. open -a Safari https://gtechgroup.it apre Safari su un'URL. pbcopy copia stdin nella clipboard (es. cat file.txt | pbcopy). pbpaste incolla dalla clipboard. say "ciao" usa la sintesi vocale. caffeinate impedisce al Mac di andare in sleep (utile durante export lunghi): caffeinate -t 3600 resta sveglio per un'ora.

Diagnostica di rete

ping gtechgroup.it testa la connettività. traceroute hostname traccia il percorso. dig hostname interroga il DNS. nslookup hostname alternativa più semplice. ifconfig mostra le interfacce di rete. netstat -an | grep LISTEN mostra le porte in ascolto. arp -a mostra la tabella ARP. Per vedere il nome del Wi-Fi corrente: networksetup -getairportnetwork en0. Per resettare la cache DNS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder.

Gestione processi

top mostra i processi in tempo reale (premere q per uscire). ps aux | grep nome cerca processi per nome. kill PID termina un processo. kill -9 PID forza la terminazione. killall NomeApp chiude tutte le istanze di un'app. Per uno strumento più visivo installa htop: brew install htop, poi semplicemente htop mostra processi con grafici di CPU, memoria, e permette di filtrare e ordinare interattivamente.

Configurazione macOS via defaults

Il comando defaults modifica le impostazioni nascoste di macOS. Esempi utili: defaults write com.apple.dock autohide-delay -float 0; killall Dock rimuove il delay del dock auto-hide. defaults write com.apple.finder AppleShowAllFiles YES; killall Finder mostra i file nascosti in Finder. defaults write com.apple.screencapture location ~/Desktop/Screenshot cambia la cartella degli screenshot. Per ripristinare un default: defaults delete dominio chiave.

Personalizzare la shell

Il file di configurazione zsh è ~/.zshrc. Aprilo con nano ~/.zshrc per aggiungere alias (es. alias ll='ls -la') o variabili d'ambiente. Per usare Oh My Zsh (framework con temi e plugin) segui le istruzioni su ohmyz.sh: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)". Aggiunge syntax highlighting, autocomplete intelligente, prompt informativi (visualizza branch Git, virtual environment Python, etc).

Comandi info sistema

Per scoprire la versione di macOS via terminale: sw_vers. Hardware del Mac: system_profiler SPHardwareDataType. Numero di serie: system_profiler SPHardwareDataType | grep Serial. Versione kernel: uname -r. Tempo dall'ultimo riavvio: uptime. Spazio disco: df -h. Dimensione di una cartella: du -sh cartella.

Script e automazione

Per automatizzare task crea script shell: file con prima riga #!/bin/zsh, poi comandi. Rendi eseguibile con chmod +x script.sh. Esegui con ./script.sh. Per schedulare task usa launchd (più moderno di cron su macOS): crea un file .plist in ~/Library/LaunchAgents/. Strumenti come LaunchControl (commerciale) facilitano la creazione di job launchd con GUI.

SSH e accesso remoto

Per accedere remotamente al Mac da terminale abilita Login remoto in Impostazioni > Generali > Condivisione. Da un'altro computer connettiti via ssh username@indirizzo-ip. Per accesso esterno usa chiavi SSH (non password): genera con ssh-keygen -t ed25519, copia la chiave pubblica sul Mac di destinazione con ssh-copy-id username@ip. Per accesso da Internet usa VPN aziendale o tunnel SSH via bastion host: mai esporre la porta 22 direttamente su Internet.

tmux per sessioni persistenti

Per sessioni terminale che resistono alla disconnessione installa tmux via brew. Avvia con tmux new -s lavoro, crea sessione. Disconnetti senza chiudere con Ctrl+B poi D. Riattacca con tmux attach -t lavoro. Indispensabile per processi lunghi (compilazioni, build) o per accesso remoto via SSH a connessione instabile.

Hai bisogno di aiuto?

Se vuoi supporto Mac aziendale dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?