OS X Terminal "debe tener" utilidades [cerrado]

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 se debe a que estas son 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 forro, es decir. git clone; wget ...etc.
  • Extensible : posiblemente tenga extensiones o API simple (por ejemplo, oh-my-zsh con complementos, brew con fórmulas, janus con complementos de vim incluidos...)
  • A menudo de código abierto, gratuito, alojado en github, con secuencias de comandos, en su mayoría (¡pero no solo!) con ruby...

¿Conoces alguna otra herramienta similar imprescindible ? Me encantaría descubrir nuevos!

Por favor incluya solo una utilidad por respuesta. Además, no agregue duplicados. Verifique primero antes de publicar. Si ve un duplicado, vote negativamente 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
es cierto, pero el 95 % de las veces no hay ningún problema importante, y para el 5 % restante de los casos, simplemente cambiar temporalmente el $PATH suele ser la solución... Prefiero preparar cerveza por su facilidad y ligereza, pero macports tiene muchos más paquetes que probablemente usaremos nunca ver en homebrew...
@Vincent: el objetivo principal de homebrew es que puede crear fácilmente sus propias fórmulas, por lo que "nunca ver en homebrew" parece perder el sentido por completo. MacPorts es conveniente, ya que realmente no tiene que hacer mucho, lo que le brinda un instalador de estilo BSD porto Debian .apt-get
@slojomo, mire algunos "puertos" macports muy complejos con toneladas de dependencias como diluvio, comprenderá... además del hecho de que homebrew tiene una política de que ninguna fórmula anula los componentes del sistema... (como mysql...)

Respuestas (25)

Cerveza casera

El administrador de paquetes faltante 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.

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

Consulte también brew tapel comando que proporciona algunas fórmulas faltantes que pueden ser útiles 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)
editado para mencionar brew tapcuál es ahora la solución integrada para manejar "fórmulas" externas .
Tenga en cuenta que también puede especificar una fórmula "externa" directamente a través de la URL a su fórmula.rb
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.

iTerm2 (Gratis)

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

En serio, olvídate de OSX Terminal + Visor, iTerm2 es mucho mejor, estoy dividiendo paneles todo el día en pantalla completa con una tecla de acceso directo a la visera... También hay muchas otras características maravillosas...
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?
@Yar todavía se está desarrollando. El autor mantiene el repositorio oficial aquí: github.com/gnachman/iTerm2

Acuse de recibo (gratis)

Excelente para buscar archivos de texto, nunca más tendrá que usar una combinación de búsqueda/grep.


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

+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.
Ack es una herramienta imprescindible, hace que grep sea amigable para los desarrolladores, pero este está un poco fuera de tema ya que no está relacionado con OSX, editando esta respuesta para agregar información de Vim/AckMate.
grintambién es una buena alternativa.
grin es maravilloso, aquí está el enlace: pypi.python.org/pypi/grin
En estos días, se trata de The Silver Searcher .
grin todavía necesita ser actualizado a Python 3 desafortunadamente.

oh-mi-zsh (Gratis)

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

"¡OH MI ZSHELL!"

Me hizo amar Shell cuando lo estaba usando cuando tenía que hacerlo ... Zsh es "bash on steroids", con oh-my-zsh y todos sus complementos, muchas especificaciones para OSX, Shell es mucho más fácil de usar y potente ... Oh, también los temas son muy buenos.


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

  • prezto es una reescritura completa de oh-my-zsh, limpio y mucho más activo, ahora lo uso :)
  • zsh-users (Gratis) Algunas cosas muy buenas de zsh (me encanta el resaltado de sintaxis)
  • zcm (Gratis) Administrador de configuración zsh (inspirado en oh-my-zsh)
zshcon oh-my-zshrealmente es increíble, incluso completará la ruta con un comando scp/ sshsi ha habilitado la autenticación de clave pública en el servidor que está mirando, es genial. (finalización asombrosamente poderosa... /v/m/s/TAB' se expande a /Volumes/MyDrive/Src)
+1 por prezto. Me encanta el enfoque de usar submódulos de git.
Prezto es mucho más rápido que oh-my-zsh. Deberías probarlo.

lolcat (Gratis)

gato gracioso

Seguramente la herramienta de terminal más útil, ¡evah! (Después de cowsay y figlet eso es).
Claramente, la razón por la que se agregó soporte de 256 colores a Lion Terminal.
agradable (lol) pero un poco fuera de tema, no realmente relacionado con OSX
A quien le importa ? =) ¡Es una buena herramienta!
La instalación más útil de la historia.

funciones de shell

No puedo vivir sin esto.

  • Un comando para actualizarlos 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 use. Esto está hecho por mí.

  • Cambiar 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 la terminal y open .para abrir en el Finder el directorio del terminal del directorio.

    Fuente

  • Obtener 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á a 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 pregunta cada vez por la ruta clave).

  • Resaltado de sintaxis en cat

    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 Pygmentspara instalar pigmentos.

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

Inconsolata-dz (Gratis)

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

Desafortunadamente, no se ve muy bien para mí en tu captura de pantalla.
Parece que sufrió algunos artefactos de compresión: ¡lo reemplazó con uno (con suerte) mejor!
Gracias. Esta es ahora mi fuente predeterminada en casi todas las aplicaciones de escritura de texto.

TotalTerminal (Gratis)

Pestañas, visor, hotkeys, muy sencillo y fiable. Bien mantenido con actualizaciones frecuentes.

TotalTerminal

MTR (Gratis) de 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) de Laffey Computer Imaging - Calculadora de subredes IPv4

Descarga el binario de OS X. 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 :)
wow, esa cosa es increíble. gracias por compartir
¿Cómo se ejecuta mtr? No importa lo que ejecute, incluso si quiero obtener ayuda o una versión, no puedo obtener sockets sin procesar
Puede ejecutarlo con sudo mtr example.como configurar el binario con chown root:admin /usr/local/sbin/mtr && chmod +s /usr/local/sbin/mtr.

Salto automático (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 visita con más frecuencia. No tendrás que escribir el nombre completo.

Ejemplo:

cd project1

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

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

Si presiona TABdespués de escribir "pro", por ejemplo, su shell mostrará project__, indicando el hecho de que hay más de 1 directorio coincidente. Otro TABgolpe 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 funciones de autocompletar. Autojump funciona perfectamente en una Terminal vainilla.

Mientras usa zsh, simplemente intente cd -[TAB] para ver cómo le va.
@Slomojo Eso es diferente; el salto entra en jerarquías sin pasos intermedios. A menos que me falte una función zsh que haga esto (muy posible que me esté perdiendo algo).

Solarizado (Gratis)

Esquema de color para Terminal.

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

Para Snow Leopard y versiones anteriores, necesitará SIMBL instalado para aprovecharlo al máximo, ya que la compatibilidad con el color en Terminal.app es limitada.

para tu información, su versión vim viene con janus;)
Solarizado para Lion Terminal no se ve muy bien para mí: los colores están apagados en comparación con Vim e iTerm. ¿Alguien se encontró con esto?
@yjsoon olvida Lion Terminal, usa iTerm2...
@Vincent Me gustó iTerm2... hasta que salió Lion Terminal, y podía abrir nuevas pestañas en el mismo directorio que la pestaña actual, y atenuaba el historial. Esperando a que iTerm los obtenga.
@yjsoon No me sorprendería que pueda obtener este comportamiento con algunos complementos oh-my-zsh... o con un poco de secuencias de comandos;) ¡omz ftw!

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 el software de código abierto basado en 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 mayormente cierto, el homebrew es más liviano y fácil de usar . Pero macports ofrece muchos más paquetes, y algunos de ellos nunca llegarán a homebrew, debido a su filosofía diferente. (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 nativa de OSX, más rápida y mucho mejor que X11...

DTerm (Gratis) por Decimus Software

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

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

Almuerzo (Gratis)

Un envoltorio amigable para launchctl. ¡Empiecen sus agentes y vayan a almorzar!

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

Esa es una gema de rubí:gem install lunchy

Bropages :

Las páginas bro son un complemento muy legible de las páginas man. Las páginas de hermanos muestran ejemplos concisos de casos comunes para los 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)

Jano + macvim

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

instale macvim con homebrew brew install macvimy siga las (fáciles) instrucciones de janus, y estará listo con un poderoso 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 él, nunca volverás (o tal vez a emacs...) (para tu información, TextMate ha sido abandonado por muchos codificadores)

Eso 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)

ProfontX (Gratis)

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

Buena fuente, gracias, no conocía esa, la probaré, incluso si supongo que finalmente volveré a usar ese buen viejo Mónaco (que se ve genial en iTerm2)
Mónaco 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 shell.
Definitivamente es cuestión de gustos ;), hay algo en Mónaco que simplemente no puedo soportar, es demasiado crujiente para mi gusto, supongo
oh sí, definitivamente una elección personal. No sé si aún no hay uno, pero sería bueno un wiki de la comunidad exclusivamente sobre fuentes de desarrollo de tamaño fijo para OSX... ;)

Boxen : configuración y compilación automatizada de Mac OS, instalación y 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.

Visera

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

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

Bastante fresco. Despliega un terminal al presionar una combinación de teclas.

EDITAR :

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

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

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.

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 con un CD en 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 No lo he probado yo mismo, pero los desarrolladores afirman que funciona en Yosemite. Si no es para ti, intenta ponerte en contacto con ellos.
Hice. Y me dijo lo mismo, están trabajando en eso, pero a partir de ahora, no funciona en Yosemite.
Lanzaron la versión 2.2 en su sitio web que afirman que es compatible con Yosemite.

Bwana (Gratis)

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

Jodies.deipcalc

 🍺  /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

Me gusta ColorMaven

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