La finestra del terminale di macOS è uno strumento che, se utilizzato in modo corretto, può contribuire a migliorare l’efficienza e la produttività. Oltre a offrire un’interfaccia a riga di comando per l’interazione con il sistema operativo macOS, permette di eseguire una vasta gamma di comandi che semplificano le attività quotidiane, l’amministrazione del sistema e lo sviluppo software. Questo articolo vuole essere una guida alla scoperta dei comandi macOS più utili. Alcuni di essi sono quasi sconosciuti ai più e possono tradursi in una scoperta davvero piacevole.
Gli utenti di macOS hanno la fortuna di avere accesso all’enorme arsenale di strumenti disponibili sui sistemi Unix-like. Nella “carrellata” che segue troverete però anche un buon numero di utilità basate sulla riga di comando specifiche per macOS che forniscono funzionalità uniche.
Comandi macOS: l’elenco di quelli utilizzabili tramite finestra del terminale
Gestione degli aggiornamenti di macOS
Gli aggiornamenti eventualmente disponibili per il sistema macOS possono essere gestiti anche attraverso la riga di comando, e non solo ricorrendo all’interfaccia grafica del sistema operativo:
softwareupdate --list
visualizza la lista degli aggiornamenti software eventualmente disponibili per l’installazione.
sudo softwareupdate -ia
installa tutti gli aggiornamenti disponibili per il sistema macOS.
softwareupdate --fetch-full-installer --full-installer-version <version>
richiede il download della versione completa della routine di installazione per la specifica versione di macOS. I dati vengono scaricati nella directory /Applications
.
Gestione degli appunti dalla riga di comando
Aggiungendo | pbcopy copies
a un comando impartito attraverso la finestra del terminale di macOS, l’output viene automaticamente copiato nell’area degli appunti.
Utilizzando pbpaste
è possibile direzionare il contenuto degli appunti verso lo stdout. In macOS, stdout (abbreviazione di “standard output“) è un termine che si riferisce al flusso di dati di output standard generato da un processo o un programma in esecuzione nella finestra del terminale.
Acquisizione di screenshot
Il comando screencapture
consente di attivare l’acquisizione di screenshot. Con l’aggiunta dell’opzione -c
, si richiede il salvataggio automatico dell’immagine catturata all’interno degli appunti di macOS.
Scrivendo invece screencapture <file>
è possibile catturare uno screenshot e salvarlo sotto forma di file.
Particolarmente utile è lo switch -T
. Abbinandolo ai comandi precedenti e specificando il numero di secondi (esempio screencapture -c -T 5
) si può chiedere a macOS di acquisire uno screenshot (e in questo caso salvarlo negli appunti) non appena trascorso il tempo indicato.
Ridimensionamento automatico delle immagini
macOS integra uno strumento chiamato sips
che permette di ridimensionare foto e immagini dalla finestra del terminale del sistema operativo. Varie soluzioni utilizzabili con il comando sono per esempio le seguenti:
sips -z <altezza> <larghezza> <immagine>
ridimensiona l’immagine indicata ignorando il rapporto d’aspetto originale.
sips -Z <dimensione> <immagine>
ridimensiona l’immagine agendo sul lato più largo. Preserva il rapporto d’aspetto originale.
sips -c <height> <width> <image>
ritaglia l’immagine specificata creandone una delle dimensioni indicate. Il centro dell’immagine è il punto di partenza.
sips -r <gradi> <immagine>
ruota l’immagine dell’angolazione indicata.
Per impostazione predefinita, il comando sips
sovrascrive l’immagine originale. Il suggerimento è abbinare l’opzione -o per specificare l’immagine da creare. Questa deve avere la stessa estensione dell’immagine originale.
Conversione file
Da riga di comando è possibile usare anche l’utilità textutil
, in grado di convertire da e verso formati come Microsoft Word, RTF, HTML e testo puro. La sintassi da utilizzare è la seguente:
textutil -convert html journal.doc converts journal.doc into journal.html.
All’opzione -convert
si possono attribuire valori quali: txt, html, rtf, rtfd, doc, docx.
Ricerca con Spotlight dalla riga di comando
Per avviare una ricerca tramite Spotlight con la query specificata, è possibile impartire il comando che segue:
mdfind <query>
Utilizzando la sintassi mdfind kMDItemAppStoreHasReceipt=1
si possono cercare tutte le applicazioni installate ricorrendo al Mac App Store di Apple.
Con mdfind -name <nome>
è possibile andare alla ricerca di tutti i file il cui nome ha una corrispondenza con la stringa specificata. L’opzione aggiuntiva -onlyin <dir>
riduce il raggio d’azione della ricerca alla cartella indicata.
Infine, mdls <percorso-file>
restituisce tutti i metadati Spotlight associati al file specificato nel comando.
Utilizzo del motore text-to-speech
Il comando say
consente di attivare il motore text-to-speech di macOS ovvero il sistema in grado di trasformare qualunque testo in un flusso audio che simula il parlato.
Per procedere, basta digitare say <messaggio>
indicando il testo da riprodurre.
say -f input.txt -o output.aiff
permette ad esempio di generare un audiobook a partire dal testo fornito in input.
Speed test e gestione della rete
I sistemi macOS offrono una comoda utilità basata su riga di comando che permette di eseguire un Internet test dalla finestra del terminale. Si chiama networkQuality e consente di eseguire uno speed test per verificare la velocità della connessione Internet senza utilizzare strumenti di terze parti.
Per avviare il tool è sufficiente digitare networkQuality
; aggiungendo anche l’opzione -v
si possono ottenere informazioni più dettagliate. Inoltre, aggiungendo lo switch -i
si può effettuare lo speed test su una specifica interfaccia di rete.
networksetup -listnetworkserviceorder
restituisce una lista di tutti i servizi di rete disponibili.
networksetup -getinfo <networkservice>
mostra le informazioni su uno specifico servizio di rete.
networksetup -getdnsservers <networkservice>
indica i resolver DNS configurati per il servizio di rete specificato nel comando.
networksetup -setairportnetwork <device> <network> [password]
attiva il collegamento con la rete WiFi specificata. Nella maggior parte dei casi, è sufficiente indicare en0
come nome dell’interfaccia da utilizzare.
Raccogliere e visualizzare le informazioni sul sistema macOS
Per mostrare tutte le informazioni sul sistema in uso, è possibile ricorrere a system_profiler
. L’output restituito è solitamente davvero eccessivo. Ecco quindi che con il comando macOS system_profiler <datatype>
si possono ottenere solo i dati relativi a uno specifico sottosistema.
Con il comando system_profiler -listDataTypes
si ottiene la lista di tutti i sottosistemi a partire dai quali è possibile estrarre informazioni. Alcuni esempi particolarmente utili sono i seguenti:
system_profiler SPHardwareDataType
stampa una panoramica completa dell’hardware del sistema in uso.
system_profiler SPSoftwareDataType
compone una panoramica della configurazione software corrente.
system_profiler SPPowerDataType
propone le informazioni relative alla configurazione del risparmio energetico, compresi i dati della batteria, i cicli di carica/scarica, i dettagli sull’alimentazione del dispositivo.
system_profiler SPDeveloperToolsDataType
destinato in primis agli sviluppatori, riporta le versioni dei tool Xcode e del pacchetto SDK.
Gestire l’esecuzione dei processi caricati sul sistema
In macOS è presente il comando taskpolicy
che aiuta a gestire i processi via via caricati sul sistema.
Particolarmente utili sono i seguenti comandi:
taskpolicy -b <comando>
avvia l’esecuzione in background del comando specificato. Sui sistemi basati su Apple Silicon (SoC di derivazione ARM), il processo viene eseguito utilizzando solo i core ad elevata efficienza energetica.
taskpolicy -b -p <pid>
sposta in background l’esecuzione di un processo già caricato in precedenza.
taskpolicy -B -p <pid>
evita che il processo con l’identificativo specificato (PID, Process ID) sia eseguito in background. Sui sistemi Apple Silicon, il processo diventa adesso in grado di essere gestito tramite qualuque core. La modifica ha effetto se il processo è stato spostato in background precedentemente.
taskpolicy -s <comando>
avvia il comando e lo mette temporaneamente in pausa. Si tratta del cosiddetto suspended state: quando un’applicazione viene sospesa, viene fermata e le sue attività interrotte momentaneamente, ma i suoi dati e lo stato restano conservati in memoria. Il comportamento può essere sfruttato, per esempio, al fine di collegare un debugger all’avvio del processo.
Gestione del risparmio energetico
Il comando pmset
permette di accedere alla configurazione del risparmio energetico. Con pmset -g
si ottiene la lista di tutte le impostazioni disponibili mentre con pmset -g
le regolazioni relative ai vari processi. Questo secondo comando può essere utile per capire quali processi impediscono al sistema macOS di andare in sospensione.
Ricorrendo al comando pmset -g thermlog
si ottiene la lista dei processi le cui richieste prestazionali sono state automaticamente ridotte per impedire un eccessivo consumo energetico.
I comandi pmset displaysleepnow
e pmset sleepnow
rispettivemente spengono il solo display e pongono nello stato di sospensione l’intero sistema.
Il comando macOS caffeinate
, eseguito senza ricorrere ad alcun argomento aggiuntivo, evita che il sistema vada in sospensione. Almeno fintanto caffeinate
rimane in esecuzione.
È inoltre possibile usare la sintassi caffeinate -u -t <secondi>
per prevenire la sospensione lungo il periodo di tempo indicato. L’eventuale aggiunta dello switch -d
evita che il display della macchina si spenga.
L’opzione -w <pid>
fa sì che il comando caffeinate
si arresti non appena termina l’esecuzione del processo con PID specificato.
È anche possibile passare un comando: caffeinate <command>
. Fintanto che il processo resta in esecuzione, il sistema macOS non andrà in sospensione.