OS X Terminal "debe tener" utilidades [cerrado]


109

Acabo de leer con placer y aprendí mucho de estas preguntas:

Pero no encontré en estas algunas de mis herramientas favoritas, que uso a diario , y creo que es porque se trata de herramientas destinadas a OSX / Terminal , que no encajan bien en las preguntas anteriores.

Mis favoritos son, por orden de preferencia: oh-my-zsh , homebrew (pero también macports), janus ...

Estas herramientas tienen en común:

  • Terminal : instalar y usar
  • OSX previsto : brewes, gitno es!
  • Instalación fácil : un revestimiento, es decir. git clone; wget ...etc.
  • Extensible : posiblemente tiene extensiones o API simple (por ejemplo, oh-my-zsh con complementos, preparación con fórmulas, janus con complementos vim incluidos ...)
  • A menudo, de código abierto, gratuito, alojado en github, con secuencias de comandos, principalmente (¡pero no solo!) Con ruby ​​...

¿Conoces otras herramientas similares imprescindibles ? ¡Me encantaría descubrir nuevos!

Incluya solo una utilidad por respuesta. Además, no agregue duplicados. Verifique primero antes de publicar. Si ve un duplicado, rechace amablemente la respuesta e informe al autor dejando un comentario.


homebrew y macports juntos podrían tener problemas, ya que macports leerá los archivos instalados por homebrew y no necesariamente serán la versión correcta
user151019

es cierto, pero el 95% de las veces no hay un problema importante, y para los casos restantes del 5%, solo cambiar temporalmente el $ PATH a menudo es la solución ... Prefiero prepararlo por facilidad y ligereza, pero macports tiene muchos más paquetes que probablemente tendremos nunca ver en homebrew ...
Vincent

@Vincent: el objetivo de homebrew es que puedes crear tus propias fórmulas con bastante facilidad, por lo que "nunca verás en homebrew" parece perder el sentido por completo. MacPorts es conveniente, ya que realmente no tiene que hacer mucho, ya que le ofrece un instalador de estilo BSD porto Debian apt-get.
ocodo

Está bien responder su propia pregunta: ¿por qué no dividir las "respuestas" y simplemente dejar la pregunta?
bmike

@slojomo, mire algunos "puertos" de macports muy complejos con toneladas de dependencias como diluvio, comprenderá ... más el hecho de que homebrew tiene una política de no fórmula que anula los componentes del sistema ... (como mysql ...)
Vincent

Respuestas:


92

Cerveza casera

El administrador de paquetes que falta para OS X.

Es un administrador de paquetes increíble, muy ligero y fácil de usar. Principio KIS, eso me hace pensar en Archlinux. Su comunidad es grande y muy activa.

(vea también macports que brew no reemplaza completamente, prefiero instalar paquetes con brew, pero algunos complejos solo están en macports)

Vea también el brew tapcomando que proporciona algunas fórmulas faltantes que pueden ser útiles, como cuando necesita la última versión de php> brew tap josegonzalez/php.

(Homebrew tiene una política de no reemplazar los componentes del sistema, pero bueno, a veces tienes que hacerlo)


Su enlace FormulaAlt está caído. (404)
ottel142

editado para mencionar brew tapcuál es ahora la solución integrada para manejar "fórmulas" externas .
Vincent

Tenga en cuenta que también puede especificar una fórmula "externa" directamente a través de URL a su formula.rb
ocodo

ACTUALIZACIÓN: Homebrew ahora está dispuesto a reemplazar los componentes del sistema, por ejemplo, make, curl, bash, zsh ... Solo necesita un paso adicional: brew link --force <package>sobrescribir la copia del sistema. Además, algunos paquetes duplicados no esenciales se almacenan en el homebrew-dupesrepositorio en lugar del canónico.
Caleb Xu

62

iTerm2 (Gratis)

Mencionado en los comentarios, pero es esencial , así que para enfatizar ...


77
En serio, olvide OSX Terminal + Visor, iTerm2 es mucho mejor, estoy dividiendo paneles todo el día en pantalla completa con una tecla de acceso rápido a la visera ... También hay muchas otras características maravillosas ...
Vincent

1
Curiosamente, no ha tenido una actualización de la versión estable desde julio de 2011, y salió una versión beta en julio de 2012 que nunca se promocionó. ¿Este proyecto está muerto?
Dan Rosenstark

1
@Yar todavía se está desarrollando. El autor mantiene el repositorio oficial aquí: github.com/gnachman/iTerm2
mh.

37

Ack (gratis)

Ideal para buscar archivos de texto, nunca más tendrás que usar una combinación find / grep.


Ack tiene dos buenos complementos de integración para los principales editores de texto OSX:


3
+1 Ack es un reemplazo de grep increíble, si no fuera por el hecho de que grepestá en mi memoria muscular, nunca lo usaría en absoluto.
ocodo

Ack es una herramienta imprescindible, hace que los desarrolladores de grep sean amigables, pero este es un poco fuera de tema ya que no está relacionado con OSX, editando esta respuesta para agregar información de Vim / AckMate.
Vincent

1
grinTambién es una buena alternativa.
gak

la sonrisa es maravillosa, aquí está el enlace: pypi.python.org/pypi/grin
Lorin Hochstein

2
En estos días, se trata de The Silver Searcher .
Zev Eisenberg

33

oh-my-zsh (Gratis)

Un puñado de funciones, ayudantes de autocompletar y cosas que te hacen gritar ...

"¡OH MI ZSHELL!"

Me hizo amar el shell cuando lo estaba usando cuando tenía que ... Zsh es "bash en esteroides", con oh-my-zsh y todos sus complementos, muchos detalles para OSX, shell es mucho más fácil de usar y potente ... Oh, también los temas son bastante geniales.


También vale la pena echar un vistazo, algunas alternativas / complementos basados ​​en cosas zsh:

  • prezto es una reescritura completa de oh-my-zsh, limpia y mucho más activa, ahora usándola :)
  • zsh-users (Gratis) Algunas cosas muy buenas de zsh (me encanta el resaltado de sintaxis)
  • Administrador de configuración de zcm (Gratis) zsh (inspirado en oh-my-zsh)

1
zshcon oh-my-zshrealmente es impresionante, incluso completará la ruta sobre un comando scp/ sshsi ha habilitado la autenticación de clave pública en el servidor que está mirando, es genial. (finalización increíblemente poderosa ... /v/m/s/TAB 'se expande a /Volumes/MyDrive/Src)
ocodo

+1 para prezto. Me encanta el enfoque de usar submódulos git.
Bellota


Prezto es mucho más rápido que oh-my-zsh. Deberías probarlo.
Rnhmjoj

32

lolcat (gratis)

gato gracioso


2
Seguramente la herramienta de terminal más útil, evah! (Después de cowsay y figlet eso es.)
ocodo

99
Claramente, la razón por la que se agregó soporte de 256 colores a Lion Terminal.
Chris Page

2
agradable (risas) pero un poco fuera de tema, no realmente relacionado con OSX
Vincent

A quien le importa ? =) ¡Es una buena herramienta!
Matthieu Riegler

La instalación más útil de la historia.
Jan

24

Funciones de Shell

No puedo vivir sin esto.

  • Un comando para actualizarlos a todos.

    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
    }

    Obviamente, puede agregar más comandos de acuerdo con los administradores de paquetes que utiliza. Esto es hecho por mi.

  • Cambiar el directorio al directorio actual 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
    }

    cdfpara abrir el directorio del Finder en el terminal y open .para abrir en el Finder el directorio del terminal del directorio.

    Fuente

  • Obtenga colores en las páginas del manual

    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 "$@"
    }

    Fuente

  • Use una clave privada RSA en 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 "$@"
    }

    Noté que poner esto en tu .rc ralentizará git. Si desea evitar esto, debe desempaquetar la función y guardarla como un script de shell en su$PATH

    Fuente (lo modifiqué un poco. El original siempre pregunta por la ruta clave).

  • Resaltado de sintaxis en gato

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

    Esto puede ser bastante lento, ya que necesita analizar todo el archivo antes de imprimirlo. ¡Nunca use esto en un archivo binario!

    pip install Pygments para instalar pigmentos.


usando la clave privada RSA en git mejor con la configuración de SSH a través de ~ / .ssh / config.
Eir Nym

21

Inconsolata-dz (Gratis)

Esta es una ligera modificación de la Inconsolata original . Es una fuente monoespaciada fantástica para usar con Terminal.app, TextMate, MacVim y en cualquier otro lugar donde necesite una. A debe tener para cualquier codificador. ingrese la descripción de la imagen aquí


+1 Me gusta más que ProfontX
EmmEff

1
Desafortunadamente, no me parece muy bueno en tu captura de pantalla.
Peter Štibraný

Parece que sufrió algunos artefactos de compresión, ¡lo reemplazó con uno (con suerte) mejor!
Ingmar Hupp

Gracias. Esta es ahora mi fuente predeterminada en casi todas las aplicaciones de escritura de texto.
Rnhmjoj


16

MTR (Gratis) por BitWizard - combina pingytraceroute

Instalación: 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 (Gratis) por Laffey Computer Imaging - Calculadora de subred IPv4

Descargar OS X binary . También en línea .

$ 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

agradable, pero un poco fuera de tema, no realmente relacionado con OSX :)
Vincent

wow, esa cosa es asombrosa. gracias por compartir
jupp0r

¿Cómo ejecutas mtr? No importa lo que ejecute, incluso si quiero encontrar ayuda o una versión, no puedo obtener sockets sin procesar
AntK

Puede ejecutarlo sudo mtr example.como configurar el binario con chown root:admin /usr/local/sbin/mtr && chmod +s /usr/local/sbin/mtr.
Ingmar Hupp

16

Autojump (gratis)

Gran utilidad de línea de comandos que almacena cdcomandos y crea automáticamente un acceso directo de autocompletar a sus directorios más accedidos.

Aún mejor, si varios directorios tienen un nombre similar (comenzando con los mismos caracteres), Autojump simplemente elegirá el que vaya más comúnmente. No tendrá que escribir el nombre completo.

Ejemplo:

cd project1

j pahora lo llevará directamente a la ruta completa del proyecto1 .

Ahora, si crea una carpeta similar llamada proyecto2 a la que también accede con frecuencia (pero menos que proyecto1 ), Autojump asignará un peso menor al proyecto2 y lo llevará directamente al proyecto1 .

Si presiona TABdespués de escribir, "pro"por ejemplo, se mostrará su shell project__, insinuando el hecho de que hay más de 1 directorio coincidente. Otro TABhit mostrará la lista de directorios coincidentes y le permitirá seleccionar el que quiere decir.

Nota: Recientemente instalé ZSH y noté algunas interferencias debido a las características de autocompletar. Autojump funciona perfectamente en una Terminal de vainilla.


Mientras usa zsh, simplemente intente cd -[TAB] para ver cómo le va.
ocodo

@Slomojo Eso es diferente; saltar entra en jerarquías sin pasos intermedios. A menos que haya una característica de zsh que me falta que hace esto (muy posible, me falta algo).
Dave Newton

15

Solarizado (Gratis)

Esquema de color para la Terminal.

Lion admite colores ANSI, por lo que ya no se requieren elementos pirateados como SIMBL.

Para Snow Leopard y versiones anteriores, necesitará SIMBL instalado para aprovecharlo al máximo, ya que el soporte de color en Terminal.app es limitado.


digo, su versión vim viene con janus;)
Vincent

Solarized para Lion Terminal no me parece del todo correcto: los colores están apagados en comparación con Vim e iTerm. ¿Alguien encontró esto?
yjsoon

3
@yjsoon olvide Lion Terminal, use iTerm2 ...
Vincent

1
@Vincent Me gustó iTerm2 ... hasta que salió Lion Terminal, y pude abrir nuevas pestañas en el mismo directorio que la pestaña actual, y el historial atenuado. Esperando a que iTerm los obtenga.
yjsoon

@yjsoon No me sorprendería que pueda obtener este comportamiento con algunos complementos de oh-my-zsh ... o con un poco de secuencias de comandos;) omz ftw!
Vincent

14

MacPorts

El Proyecto MacPorts es una iniciativa comunitaria de código abierto para diseñar un sistema fácil de usar para compilar, instalar y actualizar software de código abierto basado en la línea de comandos, X11 o Aqua en el sistema operativo Mac OS X.

Muchas personas le dirán que no use macport, use homebrew en su lugar. Eso es sobre todo cierto, homebrew es más ligero y más fácil de usar . Pero macports ofrece muchos más paquetes, y algunos de ellos nunca vendrán a homebrew, debido a su filosofía diferente. (Yo uso ambos, para diferentes necesidades)

Por ejemplo, recomiendo GTK en su variante de cuarzo (OSX nativo):

sudo port install gtk2 +no_x11+quartz

Luego, cuando instale un paquete que pueda beneficiarse de él, como wireshark ... Obtendrá una interfaz de usuario OSX nativa, más rápida y con un aspecto mucho mejor que X11 ...


13

DTerm (Gratis) por Decimus Software

Similar a Visor, pero con algunas características amigables adicionales (también parece estar en desarrollo activo)


12

El buscador de plata (gratis)

Una herramienta de búsqueda de código similar a ack, pero más rápida.

Instalarlo con cerveza

brew install the_silver_searcher

8

Lunchy (Gratis)

Un contenedor amigable para launchctl. ¡Comience sus agentes y vaya a almorzar!

Una herramienta conveniente para administrar (iniciar / detener / reiniciar) servicios / demonios OSX ...

Esa es una gema de rubí: gem install lunchy


8

Bropages :

Las páginas bro son un complemento altamente legible para las páginas man. Las páginas Bro muestran ejemplos concisos y de casos comunes para comandos de Unix.

Ejemplo:

$ 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

Janus + macvim

Janus es una distribución básica de complementos y herramientas vim destinados a ejecutarse sobre la última instantánea de MacVIM

instale macvim con homebrew brew install macvim y siga las instrucciones (fáciles) de janus, y estará configurado con un potente editor de texto que ha sido preconfigurado para usted por mentes brillantes. La curva de aprendizaje de vim da miedo a primera vista, pero una vez que te sientas cómodo con ella, nunca volverás (o tal vez a emacs ...) (para tu información, muchos codificadores abandonaron TextMate para su beneficio)

Puede sonar extraño, pero prefiero usar vim en iTerm2 que macvim ... (vim está incluido en macvim, solo use brew install macvim --override-system-vim)


5

ProfontX (Gratis)

Mi fuente favorita de programación y terminal en MacOS. (ProfontX es una versión corregida de Profont que tuvo problemas con algunos caracteres)


Buena fuente, gracias, no lo sabía, lo intentaré, incluso si supongo que finalmente recurriré a ese buen viejo Mónaco (que se ve muy bien en iTerm2)
Vincent

Monaco ganó, mejor legibilidad para mis ojos :), me encantaría cambiar a moderno Menlo, pero sus caracteres especiales UTF-8 como ✭ son demasiado pequeños para el placer de la concha.
Vincent

sin duda una cuestión de gusto;), hay algo en Mónaco yo simplemente no puede soportar, es simplemente demasiado crujiente para mi gusto, supongo
apouche

1
oh sí, definitivamente una elección personal. No sé si todavía no hay una, pero un wiki de la comunidad exclusivamente sobre fuentes de desarrollo de tamaño fijo para OSX sería bueno ...;)
Vincent

4

Boxen : configuración automatizada de Mac OS y compilación, instalación / actualización de software. Ayuda a ahorrar mucho tiempo cuando desea exactamente la misma configuración (software, versión) en el equipo de desarrollo y también permite que cada individuo instale otras herramientas para aumentar la productividad.


3

Visera

Es una utilidad interesante. Se describe a sí mismo como:

un terminal de todo el sistema en una tecla de acceso rápido

Bastante fresco. Deja caer un terminal con solo presionar una combinación de teclas.

EDITAR :

Visor ha cambiado de nombre a TotalTerminal ... (vea otra respuesta, esto podría / debería eliminarse)


44
Para su información, cambié de Terminal a iTerm2, que tiene una función de visor nativo, ¡y mucho más como paneles divididos! :)
Vincent

3

bash-it (Gratis)

Una alternativa a oh-my-zsh (ver arriba). Una colección realmente útil de scripts, alias y funciones para bash. También proporciona un buen sistema de complementos para agregar sus propias adiciones.


3

Go2Shell (Gratis)

No es una utilidad de terminal, sino una utilidad para usar Terminal. Pone un botón en la barra de herramientas del Finder y cuando se presiona crea una nueva ventana de Terminal cd'ed a ese directorio.

editar: los desarrolladores dicen que la versión de la aplicación disponible directamente de ellos tiene más funciones que la versión en la App Store. He actualizado el enlace para ir a su página, pero la versión de la App Store todavía está disponible aquí .


Hoy en día no funciona en Yosemite.
jherran

@jherran No lo he probado yo mismo, pero los desarrolladores afirman que funciona en Yosemite. Si no es así, intente contactarlos.
ThomasW

Yo hice. Y me dijo lo mismo, están trabajando en ello, pero a partir de ahora, no funciona en Yosemite.
jherran

Lanzaron la versión 2.2 en su sitio web que afirman que es compatible con Yosemite.
ThomasW

2

Bwana (Gratis)

Técnicamente no es un comando de terminal, pero es muy útil para búsquedas rápidas de páginas de manual al permitir que la url de: "man: ls" muestre la página html de la página de manual en su navegador.


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

También está disponible en HomeBrew:

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

0

Me gusta 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

Color LS

alias ls='ls -FG'
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
-or-
echo export CLICOLOR >> ~/.bashrc
echo export CLICOLOR >> ~/.bash_profile
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.