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

mdfind per usare spotlight dalla riga di comando - davvero molto utile! Trova cose anche in ogni directory, quindi è più utile quando cerchi file che fanno parte del sistema.

mdfind -live aggiornamenti in tempo reale, che di nuovo è incredibilmente utile.

    
risposta data 25.10.2009 - 19:54
fonte

Apri una pagina man in Anteprima:

pman () {
    man -t "${1}" | open -f -a /Applications/Preview.app
}

Apri una pagina man in TextMate:

tman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | mate
}

Apri una pagina man in SublimeText:

sman() {
    man "${1}" | col -b | open -f -a /Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
}

Esci da un'applicazione pulita dalla riga di comando

# Quit an OS X application from the command line
quit () {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

Riavvia un'applicazione da riga di comando:

relaunch () {
    for app in $*; do
        osascript -e 'quit app "'$app'"';
        sleep 2;
        open -a $app
    done
}

Disinstalla un'app con AppZapper dalla riga di comando:

zap () {
    open -a AppZapper /Applications/"${1}".app
}
    
risposta data 20.02.2013 - 18:00
fonte
cd -

Ripristina la directory precedente in cui ti trovavi. Molto utile se digiti accidentalmente cd da solo senza argomenti e finisci nella tua home directory.

    
risposta data 27.12.2013 - 14:36
fonte

Puoi trascinare una cartella dal Finder al terminale e incollerà il percorso completo per quel file.

cd <drag folder to terminal> 

Questo è sostanzialmente l'opposto di aperto nel terminale

    
risposta data 25.07.2010 - 18:53
fonte

Ecco qualcosa di carino e inutile:

/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background &

Esegue il salvaschermo come sfondo del desktop. Inutile ma fantastico.

Ciò non influisce sul normale funzionamento del salvaschermo, ma termina dopo l'attivazione del normale screensaver, sia in caso di timeout sia spostando il mouse su un angolo caldo predefinito.

In alternativa, puoi usare:

killall ScreenSaverEngine
    
risposta data 27.12.2013 - 14:06
fonte

ctrl + A e ctrl + E : vai all'inizio della linea e fino alla fine della linea.

Funziona anche su tutti gli input di testo Cocoa!

    
risposta data 22.01.2012 - 10:21
fonte

(Supponendo che stiamo cercando trucchi specifici per Mac OS X.)

Ho un alias per lanciare quicklook su un file dalla riga di comando:

$ type -a ql
ql is aliased to 'qlmanage -p 2>/dev/null'
$ ql photo.jpg
Testing Quick Look preview with files:
    photo.jpg

ctrl + C : uccidilo e torna al prompt.

    
risposta data 08.10.2009 - 00:15
fonte
$ emacs -batch -l dunnet

Dead end
You are at a dead end of a dirt road.  The road goes to the east.
In the distance you can see that it will eventually fork off.  The
trees here are very tall royal palms, and they are spaced equidistant
from each other.
There is a shovel here.
>
    
risposta data 28.07.2013 - 22:32
fonte

afconvert ti consente di convertire da e verso tutti i formati audio internamente noti a Core Audio.

ad esempio, la conversione di un file aiff in 160 KB AAC:

afconvert track.aiff -o track.m4a -q 127 -b 160000 -f 'm4af' -d 'aac '
    
risposta data 06.07.2010 - 22:39
fonte

Controlla rapidamente cosa sta mangiando tutta la tua memoria:

top -o vsize

E per la tua CPU

top -o cpu

Q per uscire

    
risposta data 11.01.2012 - 12:02
fonte

Per rendere ctrl + e ctrl + di nuovo utile, vale a dire una parola in avanti o all'indietro come fanno di solito su Linux, devi far sì che Terminal.app invii la stringa giusta alla shell. Nelle preferenze, vai alla scheda Settings e seleziona il tuo profilo predefinito. Vai a Keyboard e imposta control cursor left e control cursor right per inviare rispettivamente stringa 3b e 3f .

Mentre ci sei, puoi anche correggere Home ( 3[H ), Fine ( 3[F ), Pagina su ( 3[5~ ) e Pagina giù ( 3[6~ ) in modo che inviino quelle chiavi alla shell invece di scorrere il buffer.

    
risposta data 22.01.2012 - 10:23
fonte

Ricampiona l'immagine in modo che altezza e larghezza non siano maggiori delle dimensioni specificate, ad es. 100x100:

sips -Z 100x100 image.jpg

sips supporta altre operazioni come: capovolgere, ruotare, ritagliare, interrogare le proprietà delle immagini, interrogare e modificare il profilo dei colori. Controlla man sips per l'utilizzo.

    
risposta data 26.07.2010 - 07:17
fonte

link - "cd" che impara.

    
risposta data 25.10.2009 - 16:25
fonte

Con hdiutil puoi montare facilmente un'immagine del disco:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Smontaggio (modo hacker):

hdiutil detach 'df | grep WebKit | perl -pe 's@^/dev/([a-zA-Z0-9]+).*@$1@''

Smontaggio (modo semplice):

hdiutil detach /Volumes/<mountpoint>

o prendi l'approccio più semplice (quello churnd suggerito sotto):

hdiutil detach /Volumes/latest_webkit
    
risposta data 11.10.2009 - 15:13
fonte

Alcuni alias utili:

alias ..="cd .."
alias ...="cd .. ; cd .."

alias ls="ls -G" # list
alias la="ls -Ga" # list all, includes dot files
alias ll="ls -Gl" # long list, excludes dot files
alias lla="ls -Gla" # long list all, includes dot files

alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="sudo osascript -e 'set volume 10'"

# Get readable list of network IPs
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias flush="dscacheutil -flushcache" # Flush DNS cache

alias gzip="gzip -9n" # set strongest compression level as ‘default’ for gzip
alias ping="ping -c 5" # ping 5 times ‘by default’
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Upload image to Imgur and return its URL. Get API key at http://imgur.com/register/api_anon
imgur() { curl -F "image=@$1" -F "key=ANONYMOUS_IMGUR_API_KEY" https://api.imgur.com/2/upload | egrep -o "<original>.+?</original>" | egrep -o "http://imgur\.com/[^<]+" | sed "s/imgur.com/i.imgur.com/" | tee >(pbcopy); }

Tutti questi sono nel mio ~/.bash_profile , quindi posso usarli in ogni finestra del Terminale.

P.S.

alias chpwn="chown"

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:40
fonte

textutil è uno strumento molto utile che può attraversare il testo convertito tra HTML, RTF (D), Word (incluso XML), OpenOffice.org Writer e il formato webarchive.

Lo uso, in particolare, in un servizio che converte il testo selezionato in HTML, lo carica su un server e poi lo importa in Instapaper.

    
risposta data 25.10.2009 - 22:48
fonte

Rendi i file invisibili:

SetFile file -a V

SetFile può anche cambiare molti altri attributi di file e metadati.

SetFile non è un comando nativo di OS X che viene fornito in bundle con DevTools / Xcode.

Se non hai Xcode e non vuoi scaricare circa 6 GB, puoi usare

sudo chflags hidden|nohidden <file/folder>

chflags è un comando BSD e ha anche una pagina man appena inserita nel terminale

man chflags

per coloro a cui non piace inserire i comandi autonomamente e vorrei solo sapere cosa c'è nell'uomo. Ecco qui:

CHFLAGS(1)        BSD General Commands Manual           CHFLAGS(1)

NAME
     chflags -- change file flags

SYNOPSIS
     chflags [-fhv] [-R [-H | -L | -P]] flags file ...

DESCRIPTION
     The chflags utility modifies the file flags of the listed files as speci-
     fied by the flags operand.

     The options are as follows:

     -f      Do not display a diagnostic message if chflags could not modify
         the flags for file, nor modify the exit status to reflect such
         failures.

     -H      If the -R option is specified, symbolic links on the command line
         are followed.  (Symbolic links encountered in the tree traversal
         are not followed.)

     -h      If the file is a symbolic link, change the file flags of the link
         itself rather than the file to which it points.

     -L      If the -R option is specified, all symbolic links are followed.

     -P      If the -R option is specified, no symbolic links are followed.
         This is the default.

     -R      Change the file flags for the file hierarchies rooted in the
         files instead of just the files themselves.

     -v      Cause chflags to be verbose, showing filenames as the flags are
         modified.  If the -v option is specified more than once, the old
         and new flags of the file will also be printed, in octal nota-
         tion.

     The flags are specified as an octal number or a comma separated list of
     keywords.  The following keywords are currently defined:

       arch, archived
           set the archived flag (super-user only)

       opaque  set the opaque flag (owner or super-user only).  [Directory
           is opaque when viewed through a union mount]

       nodump  set the nodump flag (owner or super-user only)

       sappnd, sappend
           set the system append-only flag (super-user only)

       schg, schange, simmutable
           set the system immutable flag (super-user only)

       uappnd, uappend
           set the user append-only flag (owner or super-user only)

       uchg, uchange, uimmutable
           set the user immutable flag (owner or super-user only)

       hidden  set the hidden flag [Hide item from GUI]

     As discussed in chflags(2), the sappnd and schg flags may only be unset
     when the system is in single-user mode.

     Putting the letters ''no'' before or removing the letters ''no'' from a
     keyword causes the flag to be cleared.  For example:

       nouchg  clear the user immutable flag (owner or super-user only)
       dump    clear the nodump flag (owner or super-user only)

     Unless the -H or -L options are given, chflags on a symbolic link always
     succeeds and has no effect.  The -H, -L and -P options are ignored unless
     the -R option is specified.  In addition, these options override each
     other and the command's actions are determined by the last one specified.

     You can use "ls -lO" to see the flags of existing files.

EXIT STATUS
     The chflags utility exits 0 on success, and >0 if an error occurs.

SEE ALSO
     ls(1), chflags(2), stat(2), fts(3), symlink(7)

HISTORY
     The chflags command first appeared in 4.4BSD.

BUGS
     Only a limited number of utilities are chflags aware.  Some of these
     tools include ls(1), cp(1), find(1), install(1), dump(8), and restore(8).
     In particular a tool which is not currently chflags aware is the pax(1)
     utility.

BSD              March 3, 2006                 BSD
    
risposta data 18.01.2014 - 15:44
fonte
 dot_clean .

Questo non è un uso quotidiano - ma è stato un grande risparmio di tempo una volta - Avevo un file server SMB (Avid Unity) che mostrava molti file .filename per utenti Mac e PC.

Questo comando di pulizia ha risolto completamente il problema (dopo aver eseguito due volte)

    
risposta data 22.01.2012 - 10:36
fonte

history mostra un elenco dei comandi recenti che hai eseguito, qualcosa come 500 o 600 comandi. Uso frequentemente history | grep something per trovare un comando che ho usato di recente.

    
risposta data 08.10.2009 - 05:01
fonte

Sebbene io possa andare in giro in vi, utilizzo TextMate come mio editor della riga di comando . Puoi anche canalizzare cose ad esso. Ad esempio ls | mate apre TextMate con l'elenco direttamente corrente aperto in una finestra di testo.

    
risposta data 08.10.2009 - 05:44
fonte

mdls ti mostrerà tutti i metadati del file di cui Spotlight è a conoscenza. Puoi anche usare gli attributi risultanti in "mdfind".

mdutil ti consente di attivare o disattivare l'indicizzazione su determinati volumi e di ripristinare l'indice ecc.

systemsetup è specifico per BSD (non solo per Mac), ma è davvero interessante, controlla la sua pagina di manuale.

GetFileInfo (credo che devi avere gli strumenti di sviluppo per averlo) consente di vedere tutti i tempi associati (modifica, creazione, ultimo accesso) e tutti gli attributi di un file.

automator consente di eseguire flussi di lavoro di un automatore dalla riga di comando, mentre

osascript ti consente di eseguire il codice di script Apple.

    
risposta data 14.06.2010 - 10:18
fonte

Premi e tieni premuto esc qualche secondo per ottenere un elenco di tutti i possibili comandi del terminale sul tuo sistema, inclusi i built-in, i programmi sul tuo percorso e gli alias.

O, come ha sottolineato Martijn:

Basta usare invece, non è necessario tenerlo premuto per qualche secondo. completerà anche i comandi parzialmente digitati, così come i nomi di file e gli argomenti specifici del comando.

Un prompt che chiede se vuoi veramente visualizzare tutte le possibilità di comando apparirà. Rispondi semplicemente y per ottenere l'elenco dei comandi.

    
risposta data 11.01.2012 - 11:40
fonte

bcat è un comodo tubo tra il mio terminale sempre aperto (xterm sotto XQuartz) e il mio browser sempre aperto.

imposta un server HTTP in streaming per un solo processo, quindi cose come

tar czvf - . | tee bcat

scorrerà solo fino all'uscita del comando. Le pagine man hanno bisogno di un po 'di pulizia:

man bash | col -b | bcat

o solo

export MANPAGER='col -b | bcat'
man bash
    
risposta data 06.07.2010 - 16:10
fonte

Completa automaticamente un comando come argomento. per esempio inizia a digitare:

which pyt (now press ++1)

verrà completato in

which python

+ + 1 funziona come il completamento della tabulazione, eccetto per il completamento automatico usando i nomi dei comandi al posto dei nomi dei file.

    
risposta data 11.01.2012 - 11:42
fonte

Questo è il mio preferito in assoluto. Condividere schermate di schermate via internet è una seccatura. Ho scritto questo per rendere la condivisione di schermate attraverso la chat di un processo in un'unica fase utilizzando DropBox. (In seguito ho trovato app e utility che lo fanno, ma penso che sia perfetto, almeno per me.)

Avvia l'utilità screenshot interattivo (come + + 4 ), salva la cartella pubblica del tuo Dropbox, copia l'URL negli Appunti e lo apre nel browser.

Lo eseguo tramite LaunchBar, ma puoi eseguirlo dalla shell o associarlo a una scorciatoia da tastiera per renderlo facile come + + 5 .

Potresti aggiungere qualcosa di casuale al nome del file se sei preoccupato per la privacy.

Ho usato scp del file screenshot sul mio server web prima di passare a Dropbox. Puoi inviare il file ovunque ti sia utile. Puoi persino inserirlo nella tua directory ~/Sites per utilizzarlo sulla tua rete locale.

Se vuoi iscriverti a Dropbox, puoi utilizzare il mio link di riferimento che ci darà entrambi archiviazione bonus. =)

#!/bin/sh

# Integrates Mac OS X's screenshot utility with DropBox for easy sharing.

# - Starts the interactive take-screenshot function, saves it to your public
# Dropbox (if you didn't cancel it) where it will be uploaded automatically.
# Copies the public URL to your clipboard and opens your browser to it.

## Config
dropbox_id="112358132134"  ## this is fibonacci's dropbox id
dropbox_public_folder="$HOME/dropbox/Public/screenshots"
upload_delay_in_second=1.5

## Derivative Variables
filename=$(date '+%F__%H-%M-%S.png')
save_to="$dropbox_public_folder/$filename"
url="http://dl.dropbox.com/u/$dropbox_id/screenshots/$filename"

## start interactive screen capture
screencapture -i "$save_to"

## if the screenshot actually saved to a file (user didn't cancel by pressing escape)
if [[ -e "$save_to" ]]; then
    ## echo some output in case you run this in a shell
    echo "Saved screenshot to:" "$save_to"

    ## copy url to the clipboard
    echo "$url" | pbcopy

    ## wait for Dropbox to upload your screenshot, then open in your browser
    sleep $upload_delay_in_second
    ## The '-g' flag means it won't bring your browser to the foreground, which 
    ## feels less like getting interrupted.
    open -g "$url"
fi
    
risposta data 22.01.2012 - 10:24
fonte

Usa ctrl + R per cercare la cronologia inversa attiva. Quindi inizia a digitare un comando che hai già digitato e tutti i comandi corrispondenti inizieranno a presentarti.

Per navigare nella ricerca della cronologia inversa semplicemente:

  • continua a digitare per restringere la ricerca
  • ctrl + R : passa al risultato successivo
  • : torna al risultato precedente
  • ctrl + C : annulla la ricerca

ad es.

apouche:bin>  echo 'type CTRL+R to start reverse search'
(reverse-i-search)'fin': find . -exec grep "MainMenu.nib" {} \;

Vedi anche l'accettato rispondi a" Come posso cercare nella cronologia di bash e rieseguire un comando? " su Super User.

    
risposta data 20.03.2017 - 11:18
fonte

Più lo uso più ne sono dipendente.

screen

Insieme a

screen -ls
screen -r [session]

Molto utile per avere diverse schermate aperte su una connessione SSH. Risparmia tantissimo tempo soprattutto quando non devi riavviare tail ogni volta che vuoi controllare un altro file di registro.

    
risposta data 22.01.2012 - 10:35
fonte

diskutil è uno strumento da riga di comando molto potente per lavorare con dischi e immagini disco. Mi ha tolto da alcuni legami. Non è troppo difficile da usare.

    
risposta data 08.10.2009 - 05:05
fonte

Non ne sono sicuro; questo potrebbe funzionare in qualsiasi applicazione terminale decente, non solo in OS X. Tuttavia:

Usando Terminal.app è possibile inserire le informazioni di stato nella barra del titolo attuale e non solo nel prompt.

Per fare ciò, devi modificare la variabile PS1 in bash nel seguente modello:

PS1='\[3]0;TITLE
export GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[3]0;'__git_ps1' \w
PS1='\[3]0;\w
PS1='\[3]0;TITLE
export GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[3]0;'__git_ps1' \w
PS1='\[3]0;\w%pre%7\]\h:\W \u\$ '
7\]\h:\W \u\$ '
7\]PROMPT'
7\]\h:\W \u\$ '
7\]\h:\W \u\$ '
7\]PROMPT'

Dove TITLE e PROMPT devono essere sostituiti ai comandi effettivi che forniscono le informazioni sullo stato. Ad esempio, \w elenca il percorso completo corrente; \W il nome della directory. Puoi persino eseguire un comando inserendolo nei backtick. (Quindi potresti persino mettere l'output di comandi arbitrari al titolo - o al prompt.)

Gli utenti Git (con il completamento di git's bash installato) potrebbero trovare quanto segue utile. Aggiungi questo al tuo .bashrc

%pre%

e la barra del titolo di Terminal.app mostrerà il ramo git corrente (e se è pulito o meno) seguito dal percorso completo corrente. Ciò fornisce informazioni utili su dove ti trovi solo quando ne hai bisogno e non rende il prompt effettivo troppo lungo.

Nel caso in cui non si usi molto git e si preoccupi solo del percorso nella barra del titolo:

%pre%     
risposta data 05.04.2010 - 02:40
fonte

Devo dire che guardare Star Wars dalla riga di comando è il migliore:

telnet towel.blinkenlights.nl

Se dici che non è un comando, che in realtà non è, solo un trucco, allora mi piace:

defaults write com.apple.dashboard devmode YES

    
risposta data 14.07.2011 - 17:08
fonte

Leggi altre domande sui tag