Programmi di utilità "must have" del terminale OS X [chiuso]


109

Ho appena letto con piacere e ho imparato molto da queste domande:

Ma non ho trovato in questi alcuni dei miei strumenti preferiti, che uso quotidianamente , e penso che ciò sia dovuto al fatto che si tratta di strumenti destinati a OSX / Terminale , che non si adattano bene alle domande precedenti.

I miei preferiti sono, in ordine di preferenza: oh-my-zsh , homebrew (ma anche macports), janus ...

Questi strumenti hanno in comune:

  • Terminale : installa e usa
  • OSX previsto : brewè, gitnon è!
  • Installazione semplice : un rivestimento, ad es. git clone; wget ...eccetera.
  • Estensibile : possibilmente ha estensioni o API semplici (es. Oh-my-zsh con plugin, preparazione con formule, janus con plugin vim in bundle ...)
  • Spesso open source, gratuito, ospitato su github, sceneggiato, principalmente (ma non solo!) Con ruby ​​...

Sapete tutti gli altri simili must-have strumenti? Mi piacerebbe scoprirne di nuovi!

Includi solo un'utilità per risposta. Inoltre, per favore non aggiungere duplicati. Controlla prima di pubblicare. Se visualizzi un duplicato, abbassa gentilmente la risposta e informa l'autore lasciando un commento.


homebrew e macports insieme potrebbero avere problemi poiché macports leggerà i file installati da homebrew e non saranno necessariamente la versione corretta
user151019

vero, ma il 95% delle volte non ci sono problemi importanti, e per i rimanenti casi del 5%, cambiare temporaneamente temporaneamente $ PATH è spesso la soluzione ... Preferisco preparare birra per facilità e leggerezza, ma macports ha molti più pacchetti che probabilmente mai visto in homebrew ...
Vincent

@Vincent - il punto centrale dell'homebrew è che puoi facilmente creare le tue formule in modo che il "non vedere mai in homebrew" sembri mancare del tutto. MacPorts è conveniente, dal momento che non devi fare molto, dandoti un portprogramma di apt-getinstallazione in stile BSD o Debian .
ottobre

Va bene rispondere alla tua domanda: perché non dividere le "risposte" e lasciare la domanda.
bmike

@slojomo, guarda alcuni "porti" di macport molto complessi con tonnellate di dipendenze come il diluvio, capirai ... oltre al fatto che homebrew ha una politica senza formula che ignora i componenti di sistema ... (come mysql ...)
Vincent,

Risposte:


92

homebrew

Il gestore pacchetti mancante per OS X.

È un fantastico gestore di pacchetti, molto leggero e facile da usare. Principio KIS, che mi fa pensare ad Archlinux. La sua comunità è grande e molto attiva.

(vedi anche macports che brew non sostituisce completamente, preferisco installare pacchetti con brew, ma alcuni complessi sono solo su macports)

Vedi anche il brew tapcomando che fornisce alcune formule mancanti che possono essere utili come quando hai bisogno dell'ultima versione di php> brew tap josegonzalez/php.

(Homebrew ha una politica di non sostituire i componenti di sistema, ma ehi, a volte devi farlo)


Il tuo link FormulaAlt non è attivo. (404)
ottel142,

modificato per menzionare brew tapquale è ora la soluzione integrata per gestire "formule" esterne .
Vincent,

Nota che puoi anche specificare una formula "esterna" direttamente tramite URL al suo
formula.rb

AGGIORNAMENTO: Homebrew è ora pronto a sostituire i componenti di sistema, ad esempio make, curl, bash, zsh ... Hai solo bisogno di un passaggio in più: brew link --force <package>sovrascrivere la copia del sistema. Inoltre, alcuni pacchetti duplicati non essenziali sono archiviati nel homebrew-dupesrepository anziché in quello canonico.
Caleb Xu,

62

iTerm2 (gratuito)

Citato nei commenti, ma è essenziale , quindi per enfasi ...


7
Scherzi a parte, dimentica OSX Terminal + Visor, iTerm2 è molto meglio, sto dividendo i riquadri tutto il giorno a schermo intero con un tasto di scelta rapida alla visiera ... Ci sono anche molte altre meravigliose funzionalità ...
Vincent

1
Stranamente, non ha avuto un aggiornamento della versione stabile da luglio 2011 e una versione beta è stata pubblicata a luglio 2012 e non è mai stata promossa. Questo progetto è morto?
Dan Rosenstark,

1
@Yar è ancora in fase di sviluppo. L'autore mantiene il repository ufficiale qui: github.com/gnachman/iTerm2
mh.

37

Ack (gratuito)

Ottimo per la ricerca di file di testo, non dovrai mai più utilizzare una combinazione find / grep.


Ack ha due simpatici plugin di integrazione per i principali editor di testi OSX:


3
+1 Ack è un sostituto del grep così eccezionale, se non fosse per il fatto che grepè nella mia memoria muscolare, non lo userei affatto.
ottobre

Ack è uno strumento indispensabile, rende lo sviluppatore grep intuitivo, ma questo è un po 'fuori tema poiché non è correlato a OSX, modificando questa risposta per aggiungere informazioni su Vim / AckMate.
Vincent,

1
grinè anche una buona alternativa.
Gak

il sorriso è meraviglioso, ecco il link: pypi.python.org/pypi/grin
Lorin Hochstein

2
In questi giorni, si tratta di The Silver Searcher .
Zev Eisenberg,

33

oh-my-zsh (gratuito)

Una manciata di funzioni, aiutanti per il completamento automatico e cose che ti fanno gridare ...

"OH MY ZSHELL!"

Mi ha fatto amare la shell quando la stavo usando quando dovevo ... Zsh è "bash on steroids", con oh-my-zsh e tutti i suoi plugin, molti dettagli su OSX, shell è molto più facile da usare e potente ... Oh, anche i temi sono piuttosto belli.


Vale anche la pena dare un'occhiata, alcune alternative / complementi basati su zsh:

  • prezto È una riscrittura completa di oh-my-zsh, pulita e molto più attiva, ora la utilizza :)
  • zsh-users (gratuito) Alcune cose zsh molto belle (adoro l'evidenziazione della sintassi)
  • zcm (gratuito) gestore configurazione zsh (ispirato a oh-my-zsh)

1
zshcon oh-my-zshdavvero è fantastico, farà anche il completamento del percorso su un comando scp/ sshse hai abilitato l'autenticazione della chiave pubblica sul server che stai guardando, si oscura. (completamento incredibilmente potente ... /v/m/s/TAB "si espande a /Volumes/MyDrive/Src)
ocodo

+1 per prezto. Adoro l'approccio all'uso dei sottomoduli git.
Ghianda

Dai

Prezto è molto più veloce di oh-my-zsh. Dovresti provarlo.
Rnhmjoj,

32

lolcat (gratuito)

lolcat


2
Sicuramente lo strumento terminale più utile, evah! (Dopo la vacca e il fico che è.)
ocodo

9
Chiaramente il motivo del supporto a 256 colori è stato aggiunto a Lion Terminal.
Chris Page

2
bello (lol) ma un po 'fuori tema, non proprio legato all'OSX
Vincent

Che importa ? =) È uno strumento simpatico!
Matthieu Riegler,

L'installazione più utile di sempre.
Jan

24

Shell funzioni

Non posso vivere senza questo.

  • Un comando per aggiornarli tutti.

    update() {
        local brew="brew update; brew upgrade;"
        local gisty="gisty pull_all; gisty sync_delete"
        local gem="gem update;"
        local pip="pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs pip install -U -q"
        sh -c $brew$gisty; sudo sh -c $gem$pip
    }
    

    Ovviamente puoi aggiungere più comandi in base ai gestori dei pacchetti che usi. Questo è fatto da me.

  • Passa alla directory corrente del Finder

    cdf() {
        target=`osascript -e 'tell application "Finder" to if (count of Finder windows) > 0 then get POSIX path of (target of front Finder window as text)'`
        if [ "$target" != "" ]; then
            cd "$target"; pwd
        else
            echo 'No Finder window found' >&2
        fi
    }
    

    cdfper aprire la directory del Finder nel terminale e open .per aprire nel Finder la directory del terminale della directory.

    fonte

  • Ottieni colori nelle pagine del manuale

    man() {
        env \
        LESS_TERMCAP_mb=$(printf "\e[1;31m") \
        LESS_TERMCAP_md=$(printf "\e[1;31m") \
        LESS_TERMCAP_me=$(printf "\e[0m") \
        LESS_TERMCAP_se=$(printf "\e[0m") \
        LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
        LESS_TERMCAP_ue=$(printf "\e[0m") \
        LESS_TERMCAP_us=$(printf "\e[1;32m") \
        man "$@"
    }
    

    fonte

  • Usa una chiave privata RSA in git

    git(){
        trap 'rm -f /tmp/.git_ssh.$$' 0
        SSH_KEY="~/.ssh/id_rsa"
        echo "ssh -i $SSH_KEY \$@" > /tmp/.git_ssh.$$
        chmod +x /tmp/.git_ssh.$$
        export GIT_SSH=/tmp/.git_ssh.$$
        [ "$1" = "git" ] && shift
        git "$@"
    }
    

    Ho notato che inserendo questo nel tuo .rc rallenterai git. Se si desidera evitare ciò, è necessario decomprimere la funzione e salvarla come script di shell nel proprio$PATH

    Sorgente (l'ho modificato un po '. L'originale chiede ogni volta il percorso della chiave.)

  • Evidenziazione della sintassi nel gatto

    cat() {
        local out colored
        out=$(/bin/cat $@)
        colored=$(echo $out | pygmentize -f console -g 2>/dev/null)
        [[ -n $colored ]] && echo "$colored" || echo "$out"
    }
    

    Questo può essere piuttosto lento poiché deve analizzare l'intero file prima di stamparlo. Non usarlo mai su un file binario!

    pip install Pygments per installare i pigmenti.


usando la chiave privata RSA in git meglio con la configurazione di SSH tramite ~ / .ssh / config.
Eir Nym,

21

Inconsolata-dz (gratuito)

Questa è una leggera modifica dell'inconsolata originale . È un fantastico carattere a spaziatura fissa da utilizzare con Terminal.app, TextMate, MacVim e in qualsiasi altro luogo in cui sia necessario. Un must per qualsiasi programmatore. inserisci qui la descrizione dell'immagine


+1 Mi piace meglio di ProfontX
EmmEff il

1
Sfortunatamente, non mi sta molto bene nel tuo screenshot.
Peter Štibraný,

Sembra che abbia subito alcuni artefatti da compressione - sostituito con uno (si spera) migliore!
Ingmar Hupp

Grazie. Questo è ora il mio carattere predefinito in quasi tutte le applicazioni di scrittura di testo.
Rnhmjoj,


16

MTR (gratuito) di BitWizard - combina pingetraceroute

Installazione: brew install mtr --no-gtk

                                            Packets               Pings
 Host                                     Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 217.70.191.253                         0.0%    32    0.5   1.7   0.3  17.6   3.8
 2. p252-core4-d.paris.gandi.net           0.0%    32    0.5   1.1   0.3  17.8   3.1
 3. xe2-1-24-vcore1-dc1.balt.gandi.net     0.0%    32   97.4 105.7  96.9 187.7  22.0
 4. eqixva-google-gige.google.com         80.0%    31  100.8 100.2  99.6 100.8   0.4
 5. 209.85.252.80                          0.0%    31  100.3 108.0 100.0 210.4  24.3
 6. 209.85.243.114                         0.0%    31  111.9 112.6 111.7 118.6   1.2
 7. 64.233.174.87                          0.0%    31  119.8 112.7 111.6 119.8   1.9
    64.233.174.117
 8. 209.85.242.181                        16.1%    31  112.0 117.0 111.8 125.2   5.1
    209.85.253.185
    209.85.242.177
    209.85.253.181
 9. vx-in-f105.1e100.net                   0.0%    31  112.0 112.3 111.6 116.4   0.8

whatmask (gratuito) di Laffey Computer Imaging - calcolatrice di sottorete IPv4

Scarica OS X binario . Anche online .

$ whatmask 192.168.5.6/22

------------------------------------------------
           TCP/IP NETWORK INFORMATION
------------------------------------------------
IP Entered = ..................: 192.168.5.6
CIDR = ........................: /22
Netmask = .....................: 255.255.252.0
Netmask (hex) = ...............: 0xfffffc00
Wildcard Bits = ...............: 0.0.3.255
------------------------------------------------
Network Address = .............: 192.168.4.0
Broadcast Address = ...........: 192.168.7.255
Usable IP Addresses = .........: 1,022
First Usable IP Address = .....: 192.168.4.1
Last Usable IP Address = ......: 192.168.7.254

bello, ma un po 'fuori tema, non molto legato all'OSX :)
Vincent,

wow, quella cosa è fantastica. grazie per la condivisione
jupp0r

Come si esegue mtr? Indipendentemente da ciò che corro anche se voglio trovare aiuto o versione, non riesco a ottenere socket raw
AntK,

Puoi eseguirlo con sudo mtr example.como impostare il binario con chown root:admin /usr/local/sbin/mtr && chmod +s /usr/local/sbin/mtr.
Ingmar Hupp,

16

Autojump (gratuito)

Grande utility da riga di comando che memorizza i cdcomandi e crea automaticamente un collegamento al completamento automatico delle directory più accessibili.

Ancora meglio, se diverse directory hanno un nome simile (iniziando con gli stessi personaggi), Autojump sceglierà semplicemente quello a cui vai più comunemente. Non dovrai digitare il nome intero.

Esempio:

cd project1

j pora ti porterà direttamente al percorso completo del progetto1 .

Ora cosa succede se crei una cartella simile chiamata project2 a cui accedi spesso (ma meno di project1 ), Autojump assegnerà un peso minore a project2 e ti porterà direttamente a project1 .

Se colpisci TABdopo aver digitato, "pro"ad esempio, la tua shell verrà visualizzata project__, suggerendo che ci sono più di 1 directory corrispondente. Un altro TABhit mostrerà l'elenco delle directory corrispondenti e ti permetterà di selezionare quella che intendi.

Nota: di recente ho installato ZSH e ho notato alcune interferenze dovute alle funzionalità di completamento automatico. Autojump funziona perfettamente su un terminale vanilla.


Mentre usi zsh, prova cd -[TAB] a vedere come vai avanti.
ocodo,

@Slomojo È diverso; il salto entra in gerarchie senza passaggi intermedi. A meno che non ci sia una funzione zsh che mi manca che fa questo (molto probabilmente mi manca qualcosa).
Dave Newton,

15

Solarizzato (gratuito)

Combinazione di colori per il terminale.

Lion supporta i colori ANSI, pertanto non è più necessario eseguire operazioni di hacking come SIMBL.

Per Snow Leopard e precedenti, è necessario che SIMBL sia installato per sfruttarlo al meglio poiché il supporto del colore in Terminal.app è limitato.


a proposito, la sua versione di vim arriva con janus;)
Vincent,

Solarized per Lion Terminal non mi sembra perfetto: i colori sono spenti rispetto a Vim e iTerm. Qualcuno ha riscontrato questo?
yjsoon,

3
@yjsoon dimentica Lion Terminal, usa iTerm2 ...
Vincent

1
@Vincent Mi è piaciuto iTerm2 ... fino a quando non è uscito Lion Terminal, e ho potuto aprire nuove schede nella stessa directory della scheda corrente e cancellare la cronologia in grigio. In attesa di iTerm per ottenere quelli.
yjsoon,

@yjsoon Non sarei sorpreso che tu possa ottenere questo comportamento con alcuni plugin oh-my-zsh ... o con un po 'di script;) omz ftw!
Vincent,

14

MacPorts

Il progetto MacPorts è un'iniziativa della community open source per la progettazione di un sistema di facile utilizzo per la compilazione, l'installazione e l'aggiornamento di software open-source da riga di comando, X11 o Aqua sul sistema operativo Mac OS X.

Molte persone ti diranno di non usare macport, usa invece homebrew. Questo è per lo più vero, l' homebrew è più leggero e più facile da usare . Ma macports offre molti più pacchetti e alcuni di loro non arriveranno mai all'homebrew, a causa della loro diversa filosofia. (Uso entrambi, per esigenze diverse)

Ad esempio, raccomando GTK nella sua variante al quarzo (OSX nativo):

sudo port install gtk2 +no_x11+quartz

Quindi, quando installi un pacchetto che può trarne beneficio, come WireShark ... Otterrai un'interfaccia utente OSX nativa, più veloce e dall'aspetto molto migliore di X11 ...


13

DTerm (gratuito) di Decimus Software

Simile a Visor, ma con alcune funzionalità extra amichevoli (sembra anche essere in fase di sviluppo attivo)


12

The Silver Searcher (gratuito)

Uno strumento di ricerca del codice simile a ack, ma più veloce.

Installalo con brew

brew install the_silver_searcher

8

Lunchy (gratuito)

Un wrapper amichevole per launchctl. Inizia i tuoi agenti e vai a pranzo!

Uno strumento utile per gestire (avviare / arrestare / riavviare) servizi / demoni OSX ...

Questa è una gemma rubino: gem install lunchy


8

Bropages :

Le pagine di bro sono un supplemento altamente leggibile alle pagine man. Le pagine di Bro mostrano esempi concisi e comuni per i comandi Unix.

Esempio:

$ bro find
14 entries for find -- submit your own example with "bro add find"

# Executes a command on the files and folders matching a given pattern, in this case, output the last lines of each .foo file in the current folder and subfolders.
find . -name "*.foo" -exec tail {} \;

        bro thanks      to upvote (24)
        bro ...no       to downvote (0)

.......................................................................................................................................

# Outputs all the file names/paths that start with the name "Casey".  Searches recursively starting from my current directory (.)
# Throws out any error output by sending it to /dev/null
find . -name "Casey*" 2>/dev/null

        bro thanks 2    to upvote (16)
        bro ...no 2     to downvote (0)

.......................................................................................................................................

# Finds all files in and under the current directory that contain 'foo' in their name
find . -iname '*foo*'

        bro thanks 3    to upvote (13)
        bro ...no 3     to downvote (1)

7

Giano + macvim

Janus è una distribuzione di base di plug-in e strumenti vim destinati a essere eseguiti sull'ultima istantanea di MacVIM

installa macvim con homebrew brew install macvim e segui le (facili) istruzioni janus, e sei pronto con un potente editor di testo che è stato preconfigurato per te da menti brillanti. La curva di apprendimento di vim è spaventosa a prima vista, ma una volta che ti senti a tuo agio con te, non tornerai mai indietro (o forse a emacs ...) (a proposito, TextMate è stato abbandonato al suo profitto da molti programmatori)

Potrebbe sembrare strano, ma preferisco usare vim in iTerm2 rispetto a macvim ... (vim è raggruppato in macvim, basta usare brew install macvim --override-system-vim)


5

ProfontX (gratuito)

La mia programmazione preferita e font terminale su MacOS. (ProfontX è una versione corretta di Profont che ha avuto problemi con alcuni personaggi)


Un bel font, grazie, non lo sapevo, lo proverò, anche se immagino che farò finalmente il fallback a quel buon vecchio Monaco (che rende grande in iTerm2)
Vincent

Monaco ha vinto, una migliore leggibilità per i miei occhi :), mi piacerebbe passare al moderno Menlo, ma i suoi speciali caratteri UTF-8 come ✭ sono troppo piccoli per il piacere delle conchiglie.
Vincent,

sicuramente una questione di gusti;), c'è qualcosa di monaco che non sopporto, è troppo croccante per i miei gusti credo
apouche,

1
oh sì, sicuramente una scelta personale. Non so se non ce n'è già uno, ma una wiki della community dedicata esclusivamente ai caratteri dev di dimensioni fisse per OSX sarebbe piacevole ...;)
Vincent

4

Boxen - Configurazione automatica di Mac OS e creazione, installazione / aggiornamento di software. Aiuta a risparmiare molto tempo quando si desidera esattamente la stessa configurazione (software, versione) nel team di sviluppo e consente anche a ciascun individuo di installare altri strumenti per aumentare la produttività.


3

Visiera

è un'utilità interessante. Si descrive come:

un terminale di sistema su un tasto di scelta rapida

Abbastanza fresco. Fa cadere un terminale sulla pressione di una combinazione di tasti.

MODIFICA :

La visiera è stata rinominata in TotalTerminal ... (vedi altra risposta, potrebbe / dovrebbe essere eliminata)


4
a proposito, sono passato da Terminal a iTerm2, che ha una visiera nativa come funzionalità, e molto più simile a splitpane! :)
Vincent,

3

bash-it (gratuito)

Un'alternativa a oh-my-zsh (vedi sopra). Una raccolta davvero utile di script, alias e funzioni per bash. Fornisce anche un bel sistema di plugin per aggiungere le tue aggiunte.


3

Go2Shell (gratuito)

Non un'utilità di terminale, ma un'utilità per l'utilizzo di Terminale. Mette un pulsante nella barra degli strumenti del Finder e quando viene premuto crea una nuova finestra Terminale cd in quella directory.

modifica: gli sviluppatori stanno dicendo che la versione dell'app disponibile direttamente da loro ha più funzionalità rispetto alla versione sull'App Store. Ho aggiornato il link per andare alla loro pagina, ma la versione dell'App Store è ancora disponibile qui .


Al giorno d'oggi non funziona su Yosemite.
jherran

@jherran Non l'ho provato da solo, ma gli sviluppatori affermano che funziona su Yosemite. In caso contrario, prova a contattarli.
ThomasW,

L'ho fatto. E hanno detto lo stesso per me, ci stanno lavorando, ma da ora non funziona su Yosemite.
jherran,

Hanno rilasciato la versione 2.2 sul loro sito Web che sostengono sia compatibile con Yosemite.
ThomasW

2

Bwana (gratuito)

Tecnicamente non è un comando terminale ma molto utile per ricerche rapide sulla manpage consentendo all'URL di: "man: ls" di mostrare la pagina html della manpage nel tuo browser.


1

Jodies.de ipcalc

 🍺  /usr/local/Cellar/ipcalc/0.41: 4 files, 40K, built in 2 seconds
 bash-3.2$ ipcalc 10.20.30.40/8
 Address:   10.20.30.40          00001010. 00010100.00011110.00101000
 Netmask:   255.0.0.0 = 8        11111111. 00000000.00000000.00000000
 Wildcard:  0.255.255.255        00000000. 11111111.11111111.11111111
 =>
 Network:   10.0.0.0/8           00001010. 00000000.00000000.00000000
 HostMin:   10.0.0.1             00001010. 00000000.00000000.00000001
 HostMax:   10.255.255.254       00001010. 11111111.11111111.11111110
 Broadcast: 10.255.255.255       00001010. 11111111.11111111.11111111
 Hosts/Net: 16777214              Class A, Private Internet

È disponibile anche in HomeBrew:

 bash-3.2$ brew install ipcalc
 ==> Downloading http://jodies.de/ipcalc-archive/ipcalc-0.41.tar.gz

0

Mi piace Color Maven

alias maven="command mvn"
color_maven() {
  maven $* | sed -e "s/\(\[INFO\]\ \-.*\)/[36;01m\1[m/g" \
               -e "s/\(\[INFO\]\ >>> .*\)/[32;01m\1[m/g" \
               -e "s/\(\[INFO\]\ <<< .*\)/[32;01m\1[m/g" \
               -e "s/\(\[INFO\]\ Building .*\)/[36;01m\1[m/g" \
               -e "s/\(\[INFO\]\ \[.*\)/01m\1[m/g" \
               -e "s/\(\[INFO\]\ BUILD SUCCESS\)/[01;32m\1[m/g" \
               -e "s/\(\[INFO\]\ BUILD FAILURE\)/[01;31m\1[m/g" \
               -e "s/\(\[WARNING\].*\)/[01;33m\1[m/g" \
               -e "s/\(WARN.*\)/[01;33m\1[m/g" \
               -e "s/\(DEBUG.*\)/[01;33m\1[m/g" \
               -e "s/\(\[ERROR\].*\)/[01;31m\1[m/g" \
               -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/[32mTests run: \1[m, Failures: [01;31m\2[m, Errors: [01;31m\3[m, Skipped: [01;33m\4[m/g"
}
alias mvn=color_maven

Colore LS

alias ls='ls -FG'
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
-or-
echo export CLICOLOR >> ~/.bashrc
echo export CLICOLOR >> ~/.bash_profile
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.