Hai qualche consiglio o suggerimento per il terminale in Mac OS X?

Un consiglio o trucco per risposta.

Il mio preferito è

open .

Apre la cartella che stai attualmente navigando nel Finder. Puoi anche passare URL, immagini, documenti o altro a open .

Se si specifica il nome di un programma con -a è possibile passare invece l'URL, l'immagine, il documento o la cartella a quel programma, ad es. open -a Preview image.png , sovrascrivendo il programma predefinito impostato per il tipo di file.

Si prega di non pubblicare duplicati. Cerca nella domanda in questo modo: inquestion:this ls -l

Solo risposte specifiche per Mac OS X.

    
posta Josh K 27.08.2013 - 12:58
fonte

133 risposte

Includo tutti i miei preferiti qui: link

Esempio:

Imposta il volume su 10 e dì qualcosa

sudo osascript -e "set Volume 10" | say "hello World"

Attendi che la rete sia pronta in uno script

/usr/sbin/networksetup -detectnewhardware
    
risposta data 22.01.2012 - 10:38
fonte

ctrl - R ti permetterà di eseguire una ricerca inversa all'interno della tua shell bash. È come una forma interattiva di history .

    
risposta data 08.03.2012 - 08:20
fonte

gzip un file con le impostazioni di compressione più forti:

ubergzip() { gzip -9n < "$@" > "$@".gz; }

Per ulteriori informazioni, consulta il mio repository dotfiles su GitHub e / o visualizza il mio file .osx per le preferenze e le impostazioni specifiche di OS X .

    
risposta data 21.03.2012 - 12:42
fonte

Definisci un termine utilizzando Google:

define() { local y="$@"; curl -sA "Opera" "http://www.google.com/search?q=define:${y// /+}" | grep -Po '(?<=<li>)[^<]+'|nl|perl -MHTML::Entities -pe 'decode_entities($_)' 2>/dev/null; }

Per ulteriori informazioni, consulta il mio repository dotfiles su GitHub e / o visualizza il mio file .osx per le preferenze e le impostazioni specifiche di OS X .

    
risposta data 21.03.2012 - 12:42
fonte

Un comando rilevante per Terminal.app su Mac OS X è l'avvio dell'aggiornamento software dalla CLI:

sudo softwareupdate -i -a

Il bonus è che non si ottiene alcun fastidio dal dover fare clic su Windows. Lo faccio come parte di uno script di aggiornamento che viene eseguito ogni settimana approssimativamente (in modo da non perdere il feedback come potrebbe accadere quando lo fai automaticamente).

    
risposta data 26.03.2012 - 00:26
fonte

Cambia la directory nella directory mostrata nella finestra del Finder più in alto:

cdf () {
   currFolderPath=$( /usr/bin/osascript <<-EOT
       tell application "Finder"
           try
               set currFolder to (folder of the front window as alias)
           on error
               set currFolder to (path to desktop folder as alias)
           end try
           POSIX path of currFolder
       end tell
       EOT
   )
   echo "cd to \"$currFolderPath\""
   cd "$currFolderPath"
}

Un'altra versione:

f() {
    cd "$(osascript -e 'try
tell app "Finder" to (target of Finder window 1) as text
POSIX path of result
on error
    (system attribute "HOME") & "/Desktop"
end')"
}
    
risposta data 05.03.2013 - 21:06
fonte

Quick Look è una delle migliori funzionalità di OS X. Devi solo premere la barra spaziatrice in un file selezionato, e vedrai un'anteprima di quel file senza dover aprire un'app. È fantastico, ma non puoi selezionare alcun testo quando ti trovi nell'anteprima. Puoi aggiungere questa funzionalità con un comando Terminale:

defaults write com.apple.finder QLEnableTextSelection -bool true 
killall Finder

Utilizza la funzione di Visualizzazione rapida, seleziona il testo che desideri e ora puoi copiarlo.

    
risposta data 10.01.2014 - 16:43
fonte

Monta iDisk dalla riga di comando:

osascript <<END
tell application "Finder"
mount volume "http://idisk.mac.com/john.doe/" as user name "john.doe" with password "StR0NGP455"
end tell
END
    
risposta data 06.07.2010 - 23:14
fonte

Funzione per creare una directory e inserirla in un unico comando:

function take {
    mkdir $1
    cd $1
}
    
risposta data 08.07.2010 - 01:02
fonte

apri tutti i risultati di ricerca in una finestra di un singolo compagno di testo:

find . -name "pattern"|xargs mate

funziona anche con mdfind (spotlight):

mdfind -name models.py |xargs mate
    
risposta data 26.07.2010 - 11:41
fonte

Scarica un URL nella directory corrente con arricciatura.

curl -O http://growl.cachefly.net/Growl-1.2.1.dmg

Molto utile per scaricare i tarball di codice che Safari vuole decomprimere per te.

    
risposta data 26.07.2010 - 20:23
fonte

Apri il terminale per aprirlo nell'ultima cartella visistata:

Ho desiderato ardentemente che il terminale si aprisse nell'ultima cartella visitata, e ho finito per fare un piccolo comando bash che lo realizzasse. Inoltre consente di "cd" su un file, che è molto utile quando si desidera cambiare la directory a quella di un determinato file finder. Basta scrivere cd e trascinare il file sul terminale e ci sei.

Aggiungi quanto segue al tuo file .bashrc o .alias

alias cd=mycd

mycd(){ 
  if [ -f "$*" ]
  then
   \cd  "'dirname $*'"
  else 
    \cd "$*";
  fi

  echo "\cd \""'pwd'\""" > ~/.todir  ; 
  PS1='\[3]0;'pwd | xargs basename'
source ~/.todir; clear
7\]\e[31m\w:\e[0m ' }

Infine, è necessario modificare le impostazioni del terminale:

Nel terminale: settings: shell - fai in modo che la shell completi il seguente comando:

alias cd=mycd

mycd(){ 
  if [ -f "$*" ]
  then
   \cd  "'dirname $*'"
  else 
    \cd "$*";
  fi

  echo "\cd \""'pwd'\""" > ~/.todir  ; 
  PS1='\[3]0;'pwd | xargs basename'
source ~/.todir; clear
7\]\e[31m\w:\e[0m ' }

La prossima volta che avvii il tuo terminale - sarai automaticamente reindirizzato alla tua ultima directory aperta - il titolo del terminale cambierà titolo quando usi l'alias cd e il tuo prompt mostrerà il percorso completo della directory .

    
risposta data 30.07.2010 - 14:08
fonte

LAME codifica .wav su .mp3

Questa è la one-liner originale che ho usato per creare questo pratico comando .

find ./ -name "*.wav" -execdir lame -V 3 -q 0 {} \;
  • Converte 20 Mb .wav (con le impostazioni di qualità più elevata) in .mp3 in 3 secondi!
  • Installa semplicemente il binario LAME e sei d'oro.
risposta data 13.04.2017 - 14:45
fonte

Nel tuo ~/.bash_profile

export PS1="\[\e]2;\h - \w\a\e[32;1m\]%\[\e[0m\] "

Questo inserisce il nome della macchina e la directory corrente nella barra del titolo del terminale, in modo da poter tenere traccia di dove ti trovi. Questo mostra anche i dati nella directory Window.

    
risposta data 22.01.2012 - 10:43
fonte

Puoi sfogliare e cercare la cronologia usando i tasti cursore dopo aver aggiunto

bind '"\e[A": history-search-backward'

bind '"\e[B": history-search-forward'

al tuo .profile .

    
risposta data 22.01.2012 - 10:43
fonte

A partire da Mac OS X Lion 10.7, Terminal supporta alcuni comandi del cercapersone "meno" compatibili quando non ci sono processi in esecuzione in un terminale. Questo è utile per sfogliare e leggere il testo dopo che i comandi sono completati / terminati. I tasti supportati sono:

spazio : Pagina giù
+ Spazio : Pagina su
: Scorri in basso una riga
/ : scorri verso l'alto / il basso una riga
F : Pagina giù ("avanti") < br> B : Pagina su ("indietro")
< : Home (vai all'inizio)
> : Fine (scorrere fino alla fine)

Il terminale ha comandi che cercheranno e visualizzeranno pagine man, che questi tasti sono indispensabili per la visualizzazione. Vedi il menu Aiuto e i menu contestuali. Supporta anche i servizi per l'apertura di pagine man da altre applicazioni (attivale in Preferenze di sistema > Tastiera > Scorciatoie da tastiera > Servizi ).

    
risposta data 10.03.2012 - 20:24
fonte

Silenzio idioma - Silenzia un comando shell

Puoi eliminare lo standard output da un comando dettagliato con questo idioma della shell.

L'idioma è:

>&-

e lo usi in questo modo:

noisycmd >&-

Il comando viene eseguito ma nulla viene stampato sul flusso di output standard.

    
risposta data 21.11.2013 - 01:57
fonte

Invia audio a un dispositivo Apple TV / Airplay tramite il comando / usr / bin / say

/usr/bin/say -r160 -a "AirPlay" "hello world"

-r160 è la frequenza vocale da utilizzare, in parole al minuto

-a seguito dal dispositivo nome o numero .

Quindi il tuo testo.

Per elencare il dispositivo audio disponibile

/usr/bin/say -a?
   39 AirPlay
   47 Built-in Output
  209 Soundflower (2ch)
   74 Soundflower (64ch)

L'uso dei numeri funzionerà altrettanto bene al posto del nome del dispositivo.

/usr/bin/say -r160 -a 39 "Hover over a Method";say -r160 -a "Built-in Output" "I am back"

Puoi anche usare l'opzione -f per usare un file di testo come testo vocale.

 /usr/bin/say -f ~/Music/foo.txt -r160 -a 39 

Come noterai, puoi espandere i percorsi dei file tilde

Diciamo che puoi fare molto di più come salvare il testo vocale direttamente nel file audio.

 /usr/bin/say  -o ~/Music/hi.aac Hello, World.

-o percorso del file oupt. i.e ~ / Music / hi

.aac formato di file

Salva un file .acc denominato hi.aac nella directory di musica.

I percorsi di directory DEVONO esistere prima dell'esecuzione del comando. Il file non ha bisogno di esistere prima nella directory e se lo fa verrà probabilmente sovrascritto.

Ci sono altri formati che puoi usare.

La pagina man dire ti mostrerà l'elenco completo delle opzioni.

    
risposta data 17.12.2013 - 17:25
fonte

Volevo il contrario dell '"aperto". comando, dove ho potuto cd nella finestra frontale del Finder, quindi ho messo insieme questo file per il mio .bash_profile:

alias fw = 'cd "$ (osascript -e" tell application \ "Finder \" al percorso POSIX di (cartella della finestra 1 come stringa) ")"'

Ora il comando "fw" imposta la mia directory corrente sulla finestra anteriore (per il nome fw).

Si noti che è possibile digitare "cd" e quindi trascinare la finestra anteriore sul Terminale per inserire il suo percorso, quindi passare al Terminale e premere Invio. Penso che sia più facile. ;)

    
risposta data 19.01.2014 - 02:19
fonte

Facile gestione di bzip / tar per comprimere intere directory:

# lsZ -- list contents of compressed tar archive
function lsZ() {
    tar tvzf "$1"
}

# deZ -- silently extract contents of compressed tar archive
function deZ() {
    # extract bzip2 compressed tars as well
    if [[ $(file "$1") == *bzip2* ]]; then
        bunzip2 -c "$1" | tar xf -
    else
        tar xzf "$1"
    fi
}

# enZ -- build compressed tar archive
function enZ() {
    tar cZf "${2:-$1.tar.Z}" "$1"
}

# enG -- build compressed tar archive (with gzip)
function enG() {
    tar czf "${2:-$1.tar.gz}" "$1"
}

# enB -- build compressed tar archive (with bzip2)
function enB() {
    tar cf - "$1" | bzip2 > "${2:-$1.tar.bz2}"
}

# lsB -- list contents of bzip2 compressed tar archive
function lsB() {
    bunzip2 -c "$1" | tar tvf -
}

# deB -- silently extract contents of bzip2 compressed tar archive
function deB() {
    bunzip2 -c "$1" | tar xf -
}
    
risposta data 09.02.2014 - 02:57
fonte

Crea tutti i collegamenti in Safari Apri come nuove schede

Nuove finestre, baaad. Nuove schede, buongiorno. In generale, i controlli di tabulazione di Safari sono meravigliosi, ma un errore ci fa impazzire: alcuni collegamenti possono ignorare la preferenza per l'apertura di nuove pagine Web in schede, costringendo essenzialmente l'applicazione ad aprire una nuova finestra. Per impedire ciò in futuro, esegui questo comando: defaults write com.apple.Safari TargetedClicksCreateTabs -bool TRUE .

Mostra file nascosti nel Finder

I nomi dei file nascosti iniziano sempre con un punto: tienilo a mente prima di eliminare o modificare un file che non ti sembra familiare. Che ci crediate o no, i file che vedi elencati sul desktop nel Finder non rappresentano tutti i file contenuti nella cartella del desktop. In quasi tutte le cartelle, il sistema operativo nasconde i file di sistema che Apple considera troppo importanti per i gusti di noi con cui fare confusione (o troppo banali per noi per essere disturbati). Di tanto in tanto, tuttavia, è utile visualizzare questi file. Per vedere il contenuto completo di tutte le cartelle nel Finder, esegui: defaults write com.apple.finder AppleShowAllFiles TRUE .

Disabilita la Dashboard

Quando il Dashboard appare sul nostro desktop, di solito è perché abbiamo perso il tasto di cancellazione e invece abbiamo premuto F12. In teoria, il Dashboard ci è sempre piaciuto, a volte abbiamo persino scaricato i widget per questo. Sfortunatamente, non siamo mai riusciti a usarli e il nostro vecchio laptop Mac potrebbe utilizzare la RAM extra per eseguire app reali. Se ti trovi sulla stessa barca, libera una parte della memoria di sistema chiudendo la Dashboard con due comandi Terminal rapidi. Per prima cosa, imposta il suo valore predefinito su Off eseguendo: defaults write com.apple.dashboard mcx-disabled -boolean YES . In secondo luogo, uccidi e riavvia Dashboard e Dock con questo comando: killall Dock .

Molto di più su questo sito web: Clicca QUI

    
risposta data 05.03.2014 - 18:15
fonte

pg senza argomenti esegue il ping su IP 8.8.8.8 (utile per il test di connessione internet di base), altrimenti esegue il ping dell'IP specificato. Se l'IP è incompleto, è concat con il prefisso predefinito 192.168.1 consentendo un semplice ping locale (es. Ping 3.12 = > 192.168.3.12)

function pg() {
    ip4regex='^[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+$'
    ip3regex='^[0-9]+[.][0-9]+[.][0-9]+$'
    ip2regex='^[0-9]+[.][0-9]+$'
    ip1regex='^[0-9]+$'
    host=$@
    if [[ $# == 0 ]]; then
        host="8.8.8.8"
    elif [[ $@ =~ $ip4regex ]]; then
        host="$@"
    elif [[ $@ =~ $ip3regex ]]; then
        host="192.$@"
    elif [[ $@ =~ $ip2regex ]]; then
        host="192.168.$@"
    elif [[ $@ =~ $ip1regex ]]; then
        host="192.168.1.$@"
    fi
    ping $host
}
    
risposta data 06.03.2014 - 10:49
fonte

Aggiungi un file chiamato "-i" alla tua home directory. Ora se digiti accidentalmente:

rm -rf *

si espanderà in:

rm -rf -i your other files

e ti verrà chiesto di confermare o negare la rimozione dell'intera dir. È piuttosto hacky, ma mi ha salvato il sedere prima.

    
risposta data 06.07.2010 - 22:58
fonte

Versione di BBEdit per la visualizzazione delle pagine man:

bbman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | bbedit --clean
}
    
risposta data 25.07.2010 - 20:48
fonte

Aggiorna automaticamente il titolo della finestra di Terminal.app per visualizzare il nome utente, l'host e la directory corrente.

Se faccio quanto segue:

cd ~/Developer

Voglio che il titolo della finestra terminale venga aggiornato a:

jason@rocksteady:~/Developer

Per ottenere ciò, assicurati che la variabile PROMPT_COMMAND sia impostata nel tuo ~ / .bash_profile:

PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "
cd ~/Developer
7"'

Ovviamente, puoi sostituire qualsiasi cosa ti piaccia.

    
risposta data 27.07.2010 - 05:20
fonte

Imposta bash per uscire immediatamente da uno script in caso di errori.

set -o errexit

È sempre una buona idea quando si sviluppano script di bash, specialmente quelli distruttivi.

    
risposta data 27.07.2010 - 18:24
fonte

Un modo più semplice per aprire e chiudere DMG è:

open <My disk image>.dmg

Quindi per chiuderlo:

umount /Volumes/<My disk image>
    
risposta data 27.07.2010 - 23:40
fonte

Per connetterti a un volume di rete, potresti usare mkdir ; mount e umount ; rmdir etc, ecc ... comunque è prolisso e c'è un migliore metodo alternativo specifico per Mac ...

Puoi aprire una condivisione:

open afp://user:pass@server/sharepointname

ed espellilo con:

diskutil eject /Volumes/sharepointname

A proposito, puoi anche aprire una finestra di dialogo per selezionare da un elenco di tutti i punti di condivisione su un server facendo ..

open afp://user:pass@server/

Ometti utente / password per richiedere le credenziali nella GUI.

    
risposta data 29.08.2011 - 01:45
fonte

user42053 menziona l'aggiunta di un file -i a ogni cartella. Diventa un po 'peloso vedendo -i in ogni cartella ovunque. Il metodo più semplice sarebbe

alias rm="rm -i"
    
risposta data 11.01.2012 - 11:46
fonte

Elenca tutte le directory da solo in una directory - er - cartelle in una cartella.

ls -la | grep '^d'

Trova le dimensioni della directory specificata - di nuovo - er - cartella.

du -s dirname
    
risposta data 11.01.2012 - 11:54
fonte

Leggi altre domande sui tag