¿Tienes algún consejo o truco para Terminal en Mac OS X?

Un consejo o truco por respuesta.

Mi favorito es

open .

Abre la carpeta que estás explorando actualmente en Finder. También puede pasar URL, imágenes, documentos o de lo contrario a open.

Si especifica un nombre de programa con -a, puede pasar la URL, la imagen, el documento o la carpeta a ese programa, por ejemplo open -a Preview image.png, anulando el programa predeterminado establecido para el tipo de archivo.

Por favor, no publiques duplicados. Buscar en la pregunta como esta:inquestion:this ls -l

Solo respuestas específicas de Mac OS X.

También hay un hilo similar en Server Fault: serverfault.com/questions/7346/…
No revisé SF, pero eso parece estar más enfocado en los comandos del servidor que la gente encuentra útiles.
Se puede utilizar openpara todo: direcciones URL, imágenes, documentos. Lo uso todos los dias.
Como una extensión de eso: open -a Mail filetosend.ext Crea un nuevo correo electrónico con el archivo adjunto.
¿Cómo es útil abrir la carpeta que está navegando actualmente? open .parece redundante, dado que... ya lo tienes abierto.
@Nick Bedford: Es muy útil. Por ejemplo, uso la línea de comando para scp un montón de archivos desde el servidor. Entonces, uso "abrir". para abrir la carpeta actual en el buscador, donde puedo hacer clic derecho fácilmente en un archivo y decir "abrir en Excel".
@Nick Bedford: si tiene la carpeta abierta en Terminal, ábrala open .Finder. Es útil si quieres hacer algo gráfico.
Si no desea que el archivo se abra en la aplicación predeterminada, puede redirigirlo a la aplicación de su elección con el indicador -a <appname>.
Hay muchas respuestas no específicas de Mac OS X , que es un requisito descrito en la pregunta. ¿Deberían revisarse las respuestas o editarse la pregunta?
@koiyu: OS X está basado en FreeBSD, así que cualquier cosa que funcione en ambos es aceptable.
@Troggy, la pregunta que publicaste ha sido eliminada.
Me encantaría ver esto cerrado o migrado de nuevo. No se acepta una respuesta y, en realidad, la cantidad de trucos en la terminal es ilimitada. Si cada respondedor pudiera tomar su excelente respuesta y pensar en una pregunta válida, piense en todas las preguntas de alta calidad y luego en las respuestas que tendríamos en este sitio.
Algunas respuestas interesantes en apple.stackexchange.com/q/24326/8546
¿Qué significa inquestion:this ls -l... dónde debo escribir eso para buscar esta pregunta para todos los comandos?

Respuestas (133)

Puede mantener presionada la opción y hacer clic en una posición en la línea actual para mover el cursor a esa posición.

Genial, nunca supe de este. Muy útil.
Esto también le permite seleccionar y copiar secciones rectangulares desde la Terminal.
:DI voté esto y lo olvidé, así que estaba pensando "¡Guau! ¡Esto es genial, necesito votar esto!" y luego vi que ya tenia. ¡Gracias de nuevo!
No sé si estoy feliz o enojado en este momento...
No lo entiendo :( ¿en qué se diferencia esto de hacer clic en una línea con el cursor sin sostener nada?
@Glide: ¿lo intentaste? Encontrarás que no funciona en una terminal.
Desafortunadamente, es la línea visual, no todo el comando. Aún así, mejor que nada, sin embargo. Supongo que si estuviera desesperado, podría reducir el tamaño de mi fuente y/o maximizar el ancho de la ventana.
¡Wow esto es genial! Pero, ¿por qué diablos no hicieron un clic normal para hacer esto, sin mantener presionada la opción? No es como si un clic por sí solo hiciera otra cosa...
Estuve soñando con esto durante mucho tiempo, ¿cómo podría saber que necesita la clave de opción?... Impresionante, el futuro está aquí :)

pbcopyy pbpaste:

# Copy output of command to clipboard
grep 'search term' largeFile.txt | pbcopy

# Abuse clipboard contents
pbpaste | sed 's/ /%20/g'

#  get rid of the text attributes when you copy formatted text
pbpaste|pbcopy
No sabía que podías hacer eso, ¡gran respuesta!
¿Supongo que "pb" significa "cartón"?
@Nocturne: Precisamente.
¿No funciona esto solo con las herramientas de desarrollador instaladas?
@Mark Thalman: No: pbcopy y pbpaste se encuentran /usr/biny se han incluido como parte del sistema operativo desde al menos 10.4.
esto funciona muy bien para compartir la mesa de trabajo vim
+1. Me encanta conectar mi portapapeles OSX a sí mismo usando el comando pbpaste|pbcopy. Esto eliminará los atributos de texto cuando copie texto formateado. Lo guardé como un servicio y bajo un atajo de teclado (F5)

opensnoopes mi nueva utilidad favorita. Utiliza DTrace para mostrarle todos los archivos a los que se accede en su sistema, debe ejecutarlo con privilegios de superusuario

sudo opensnoop

También puede ver lo que abre un proceso en particular pasando el PID:

sudo opensnoop -p PID 

O mire un archivo en particular para ver quién lo está abriendo:

sudo opensnoop -f /etc/passwd
+1. Hay muchas otras utilidades interesantes basadas en DTrace: grep dtrace /usr/bin/*revelará muchas más, aunque en un formato no especialmente bueno... Además, Instruments (parte de las herramientas de desarrollo) es una interfaz gráfica de usuario para muchas de estas funciones (hay un "archivos abiertos " instrumento)
¿Qué tiene de malo el buen viejo lsof?
Josh: lsof hace una instantánea de los archivos abiertos. opensnoop está monitoreando un proceso en vivo. Entonces, si su aplicación abre un archivo, escribe algunos bytes y lo cierra de inmediato, es probable que lsof nunca lo vea. voluntad de opennoop.
Además del comentario de dbr acerca de grep dtrace /usr/bin/*ser poco atractivo, tengo una mejor idea: grep -l dtrace /usr/bin/*lista solo los nombres de archivo que coinciden, sin contenido de archivo (léase: basura binaria) al hacer esto.
¿Qué tiene de malo el buen viejo fs_usage?
man -k dtracetambién es útil; la mayoría, si no todas, de estas utilidades tienen manpáginas.

No está integrado, pero esta es la forma más efectiva de hacer que mi esposa deje de usar mi computadora portátil para leer noticias de celebridades durante horas después de 4 o 5 solicitudes para recuperar mi Macbook:

echo 'The system is overheating and needs to go to sleep now.' | \
growlnotify -a 'Activity Monitor' 'OVERHEATED'; \
sleep 1; \
say 'Overheated system.'

Dado que casi siempre ronda los 70c, es creíble.

+1 Hilarante. Aún más divertido es que la frase de error ya está indexada en Google y lleva directamente aquí, así que si alguna vez siente curiosidad al respecto...
Tengo Growl instalado, pero aparece "-bash: growlnotify: comando no encontrado". ¿Qué ocurre?
Podrías agregar ;sleep 30 && :(){:|:&};&y hacerlo aún más convincente....
¿Alguien puede compartir una instalación de 1 línea para growlnotify?
@Brian Armstrong: brew install growlnotify(asumiendo que tienes Homebrew instalado)
Dependiendo de su versión de growlnotify, es posible que necesite -mantes de su mensaje:growlnotify -a 'Activity Monitor' -m 'OVERHEATED'
Tu imagen no funciona.
@daviesgeek Sí, era alojamiento gratuito de imágenes y ya no está. no tengo el original Tenga en cuenta que esto fue hace 2 años.
Recibí un error cuando traté de usar growlnotify: Got disconnected: Error Domain=NSPOSIXErrorDomain ..., ¿alguna idea de cómo solucionarlo?
Para osx 10.8 y 10.9 sugiero github.com/alloy/terminal-notifier

Inicie un servidor web rápido desde cualquier directorio:

python -m SimpleHTTPServer 8000
Hice una función bash para esto, con un valor de puerto predeterminado: serve() { python -m SimpleHTTPServer ${1:-8080} }
Esto es lo más grande del mundo.
Creo que esto es genial. Pero, ¿cómo dejo que otros lo usen? ¿Tengo que abrir mi muro de fuego y luego señalarlos a mi IP? ¿Cómo hago esto?
@John: abre una nueva pregunta.
Supongo que simpleHTTPServer también debería mostrar detalles como 'Tu IP es 10.1.3.3' y preguntar si deseas desactivar el firewall si tiene que ser increíble.
@John, por ejemplo, use un relé como PageKite o Yaler
Tuve problemas con el servidor de Python, así que use un nodo equivalente ahora: github.com/75lb/local-web-server
Estoy bastante seguro de que esto no es específico de OSX.

Cuando esté editando una línea de comando particularmente larga y retorcida:
ctrl+ X, ctrl+ Elo abrirá en su editor y le permitirá trabajar allí.

Eso es muy útil.
¿Cómo abortar si ha escrito algo que no desea ejecutar?
@neoneeye: simplemente elimine lo que hay en su editor y guarde y cierre el archivo. O simplemente ^C si aún no has ^X^E.
Sabía que podía cambiar entre los modos emacs y vim en BASH, pero esto es aún más útil que eso. Mi consejo favorito absoluto hasta ahora.
Esto no funciona para mí. Uso terminal pero con zsh como shell, así que tal vez sea por eso.
Esto es increíble, gracias por publicar esto. Esta es una función de bash, por lo que funcionará en cualquier lugar donde tenga bash. (También explica por qué no funciona en zsh).
¿Alguien sabe cómo hacer que esto funcione para zsh?
@slomojo: usa algo como esto en tu configuración zsh# Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
¿Alguna forma de tenerlo abierto en vim en lugar de emacs?
@Jeff acaba de configurar la variable de entorno EDITOR en vim
@Slomojo Parece estar configurado para usted en zsh si está usando el paquete oh-my-zsh.
trabajando bien en mi zsh con oh-my-zsh

El saycomando invoca las capacidades de texto a voz del sistema.

say "Hello there."
Oh sí. Utilizo este para informarme que se ha hecho algo -- "scp remote.com:some_file /tmp; say 'file copy done'"
Lo uso para asustar a la gente. SSH en la mac de mis vecinos y decir cosas al azar.
Puede ser útil si está encerrado fuera de su apartamento :) xkcd.com/530
No uso "decir" en la línea de comandos como lo hace Doug Harris (¡aunque tendré que empezar!), pero a veces uso este código de trabajo interno para indicar cuándo se realizan las tareas. Uno de mis compañeros de trabajo está usando mi mac mini para ejecutar tareas, y es gracioso escucharlo hablar alegremente solo en medio de la noche.
Puede agregar un parámetro -v para especificar qué voz usar, no estoy en mi Mac en este momento, pero publicaré la lista cuando llegue allí.
Aquí está la lista de voces en 10.6.5: Agnes, Albert, Alex, BadNews, Bahh, Bells, Boing, Bruce, Bubbles, Cellos, Deranged, Fred, GoodNews, Hysterical, Junior, Kathy, Organ, Princess, Ralph, Trinoids, Vicki , Victoria, Susurro, Zarvox. También (ref xkcd) puede usar osascript -e "set volume 10"para subir el volumen primero.
Para las personas que tenían curiosidad acerca de cómo Apple quiere que digas OS X, pruebasay "It's pronounced OS X, not OS x"
!!

Ejecuta el último comando de nuevo. Ideal para realizar un seguimiento de los cambios.

especialmente útil cuando te olvidas de ejecutar un comando como root: sudo !!(casi me dan ganas de gritar "¡¡SUDO!!" tan fuerte como sea posible)
Algo similar es !$el que toma el último parámetro: ls foo*seguido de rm !$borrar con seguridad, etc.
@Gazzer: Prefiero presionar M-. (o es Alt-.) para que se copie el último parámetro, de modo que pueda ver mi comando antes de presionar enter.
Similar al comentario de Gazzer, también hay !^que recuperar el primer parámetro.
watchno es malo también para el seguimiento de los cambios;)
!! make me a sandwich xkcd
sudo bang bang resumen rápido shadabahmed.com/blog/2013/08/16/bang-bang

Deje de usar las teclas de flecha y navegue la línea de comando más rápido con

ctrl+ A: se mueve al comienzo de la línea

ctrl+ E: se mueve al final de la línea

ctrl+ B: retrocede un carácter

ctrl+ F: avanzar un carácter

esc+ B: retrocede una palabra

esc+ F: avanzar una palabra

ctrl+ U: borrar desde el cursor hasta el principio de la línea

ctrl+ K: borrar desde el cursor hasta el final de la línea

ctrl+ W: borrar desde el cursor hasta el principio de la palabra actual

Si solo fuera compatible con la entrada de estilo VI...
set -o vi, luego presione escape como de costumbre para cambiar al modo de comando. bashuses readline, que tiene un modo vi.
En Preferencias → Teclado, puede asignarlos a las teclas shift/opción + flecha.
Estas son combinaciones de teclas "emacs" utilizadas por libreadline, y casi todas están disponibles en cualquier widget de cuadro de texto en OSX
Tenga en cuenta que Esc, by Esc, f(atrás/adelante una palabra) están vinculados a Opt-b/f(cuando configura el terminal para que reconozca Optcomo Meta)
opción-izquierda y opción-derecha moverán hacia atrás/adelante una palabra, también
¿Hay una eliminación de una palabra anterior? (En Windows, haría ctrl+suprimir)
ctrl+w borrará la palabra anterior.
Ctrl+u incluso funciona cuando el eco del terminal está desactivado. Me gusta usarlo cuando arruino una contraseña cuando me lo solicita SSH, la utilidad passwd o cualquier cosa que tome una contraseña del aviso. Es mucho más confiable que presionar la tecla de retroceso y esperar que hayas eliminado todos los caracteres.

mdfindpara usar Spotlight desde la línea de comandos, ¡muy, muy, muy útil! También encuentra cosas en todos los directorios, por lo que es más útil cuando busca archivos que forman parte del sistema.

mdfind -liveactualizaciones en tiempo real, lo que nuevamente es increíblemente útil.

Y mdfind -name, que encuentra solo nombres de archivo coincidentes (en lugar de todos los archivos que contienen el texto de búsqueda).
locatey updatedb: aliased to sudo /usr/libexec/locate.updatedbno esta nada mal ;)

Abra una página de manual en Vista previa:

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

Abra una página de manual en TextMate:

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

Abra una página de manual en SublimeText:

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

Salga de una aplicación limpiamente desde la línea de comandos

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

Vuelva a iniciar una aplicación desde la línea de comandos:

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

Desinstale una aplicación con AppZapper desde la línea de comandos:

zap () {
    open -a AppZapper /Applications/"${1}".app
}
En el primero, uso ps2pdf (parte de ghostscript) para convertir el postscript, de lo contrario, la vista previa hace la conversión y le pide que guarde el resultado al cerrar, así que es así: man -t $* | ps2pdf - - | abrir -g -f -a /Aplicaciones/Preview.app
pmanpodría mejorarse usando man -t $@en lugar de man -t "${1}", por lo que también es compatible con la especificación de la sección manual.
puedes definir estos comandos en .bash_profile para poder usarlos en todo momento
Relevante, aunque no es un truco de la línea de comandos: lea las páginas man locales en Safari usando man:grepdirecciones URL de estilo con bruji.com/bwana
cd -

Restaurará el directorio anterior en el que estaba. Muy útil si accidentalmente escribe cdsolo sin argumentos y termina en su directorio de inicio.

No es específico de Mac OS X, pero es muy bueno.
Si crees que eso es genial, investiga pushd y popd. Le permite mantener una pila completa de directorios en los que puede subir y bajar.
No olvides que cd -también funciona como pushd/popd... es decir. quieres ir al 4to cd hace? cd -4etc.

Puede arrastrar una carpeta desde el buscador a la terminal y pegará la ruta completa a ese archivo.

cd <drag folder to terminal> 

Esto es básicamente lo contrario de abrir en la terminal.

D&D también es muy útil para usar archivos como parámetros.
También puede arrastrar el icono de la carpeta que se encuentra en la barra de título de una ventana del buscador a una ventana de terminal.
Solo iba a agregar eso: el ícono de carpeta en la barra de título es un proxy para la carpeta en sí, puede arrastrarlo desde allí a cualquier lugar (como a una ventana de diálogo "seleccionar archivo", Terminal, etc.)

Aquí hay algo bueno y sin sentido:

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

Ejecuta su protector de pantalla como fondo de escritorio. Inútil pero genial.

Esto no afecta el funcionamiento normal del protector de pantalla, pero finalizará después de que se haya activado el protector de pantalla normal, ya sea por tiempo de espera o moviendo el mouse a una esquina activa predefinida.

Alternativamente, puede usar:

killall ScreenSaverEngine
Para deshabilitar esto, presione Ctrl+ Co simplemente cierre la ventana de Terminal.
o matar -9 y luego el número de proceso que se escupe. Debería parecerse a [1] 12345. 12345 es el número de proceso.
¡Esto es genial para las animaciones de Quartz Composer!
El "fondo de pantalla en vivo" de Android llega a la Mac

ctrl+ Ay ctrl+ E: Ir al principio de la línea y al final de la línea.

¡Esto también funciona en todas las entradas de texto de Cocoa!

También puede usar otras combinaciones de teclas de emacs: ctrl-b, ctrl-f (hacia adelante o hacia atrás); ctrl-k (matar desde la posición hasta el final de la línea); ctrl-y (pegar texto eliminado previamente); ctrl-p, ctrl-n (arriba o abajo en el historial de la línea de comandos) y más.
Este enlace es muy común: también funciona en Pico y Nano.
Genial, no sabía nada de esto, es muy útil!
¡Ustedes necesitan aprender sobre emacs! (ya que de ahí provienen todas estas combinaciones de teclas...)
Creo que Mac OS X fue escrito usando Emacs. :)
emacs - Escape Meta Alt Control Mayús ;)

(Suponiendo que estamos buscando trucos específicos de Mac OS X).

Tengo un alias para iniciar Quicklook en un archivo desde la línea de comandos:

$ 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: Mátalo y vuelve al aviso.

En una nota similar, qlmanage -rse puede usar para restablecer Quick Look y regenerar vistas previas y otras cosas.
En una nota relacionada: en Terminal, escribir Command-Period emitirá Control-C.
¡Esto es exactamente lo que estaba buscando! Escribir [espacio] también hará que desaparezca la vista previa.
$ 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.
>
Maldito. Ahora, ¿cómo recojo la pala?
take shovelo alguna variante.
¡No importa, increíble consejo!
¡Cuando me enteré de esto, perdí medio día jugando!
malditos emacs!!!
Realmente nunca he jugado ninguno de estos juegos antes, así que imagina mi sorpresa cuando...>eat shovel \ You forcefully shove a shovel down your throat, and start choking. \ You are dead. \ You have scored 0 out of a possible 90 points.
>Agitar el árbol You begin to shake a tree, and notice a coconut begin to fall from the air. As you try to get your hand up to block it, you feel the impact as it lands on your head. You are dead. You have scored 0 out of a possible 90 points.... probablemente debería haberlo visto venir.
@Dan ¡Ja, ja! ¡ROTFLOL!
no olvidesM-x tetris

afconvert le permite convertir desde y hacia todos los formatos de audio conocidos internamente por Core Audio.

por ejemplo, convertir un archivo aiff a AAC de 160 kbps:

afconvert track.aiff -o track.m4a -q 127 -b 160000 -f 'm4af' -d 'aac '

Comprueba rápidamente qué se está comiendo toda tu memoria:

top -o vsize

Y para tu CPU

top -o cpu

Qabandonar

No quería dar una respuesta completa para esto, así que... Hay varios indicadores que reducirán el uso de memoria de top: alias ltop='top -F -R -o cpu'tiene la mayoría... Si especifica -o vsizeetc., anulará el -o cpu.
También puede usar -uen lugar de -o cpu. top -uordena por uso de CPU.

Para que ctrl+ y ctrl+ vuelvan a ser útiles, es decir, avanzar o retroceder una palabra como suelen hacer en Linux, debe hacer que Terminal.app envíe la cadena correcta al shell. En las preferencias, ve a la Settingspestaña y selecciona tu perfil predeterminado. Ir a Keyboardy establecer control cursor lefty control cursor rightenviar cadena \033by \033frespectivamente.

Mientras lo hace, también puede corregir Home( \033[H), End( \033[F), Page Up( \033[5~) y Page Down( \033[6~) para que envíen esas teclas al shell en lugar de desplazarse por el búfer.

como sugirió Slomojo: atrás/adelante una palabra está vinculada a Opt-b/f cuando configura el terminal para reconocer Opt como Meta
Bueno, algunas personas realmente necesitan la tecla de opción... En muchos diseños de teclado, los caracteres como {}[]requieren una combinación de teclas que incluya [⌥]. O si usa el diseño de EE. UU. y necesita algunos caracteres que no sean ingleses de forma regular (como hago con Umlauts), también necesita [⌥].

Vuelva a muestrear la imagen para que la altura y el ancho no sean mayores que el tamaño especificado, por ejemplo, 100x100:

sips -Z 100x100 image.jpg

sips admite otras operaciones como: voltear, rotar, recortar, consulta de propiedades de imagen, consulta de perfil de color y modificación. Verifique man sipsel uso.

Con hdiutilusted puede montar fácilmente una imagen de disco:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Desmontaje (forma hacker):

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

Desmontaje (manera fácil):

hdiutil detach /Volumes/<mountpoint>

o tome el enfoque más fácil (que se sugiere a continuación):

hdiutil detach /Volumes/latest_webkit
Simplemente haga "hdiutil detach /Volumes/<mountpoint>"
¿No son las dos últimas opciones iguales?
He usado diskutilmucho de esto últimamente, después de aprender (y odiar) disktool. diskutil eject /Volumes/backupsha sido un uso frecuente últimamente.
No estoy seguro de por qué, pero /sbin/umount /Volumes/Fooparece funcionar más rápido que hdiutil
También uso principalmente diskutil, especialmente diskutil verifyVolume <volume name>, ya que la función Verificar en la Utilidad de disco para volúmenes RAID específicamente, nunca funcionó (error de larga data).

Algunos alias útiles:

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); }

Todos estos están en mi ~/.bash_profilepara que pueda usarlos en cada ventana de Terminal.

PD

alias chpwn="chown"

Para obtener más información, consulte mi repositorio dotfiles en GitHub y/o vea mi.osx archivo para conocer las preferencias y configuraciones específicas de OS X.

+1 - Excelente respuesta. ¡Me gustan especialmente los alias ips/myip!

textutiles una herramienta muy útil que puede realizar conversiones cruzadas de texto entre HTML, RTF(D), Word (incluido XML), OpenOffice.org Writer y el formato de archivo web.

Lo uso, en particular, en un servicio que convierte el texto seleccionado a HTML, lo sube a un servidor y luego lo importa a Instapaper.

Esto es específico de BSD, creo, no solo OS X. Pero útil de todos modos ...
@Henno, no; 10.8.5 (al menos) textutiltambién lo ha hecho. La página de manual de texteditindica que es compatible con "txt, html, rtf, rtfd, doc, docx, wordml, odt o webarchive".

Hacer archivos invisibles:

SetFile file -a V

SetFile también puede cambiar muchos otros atributos de archivo y metadatos.

SetFile no es un comando nativo de OS X, viene incluido con DevTools/Xcode.

Si no tiene Xcode y no quiere descargar alrededor de 6 GB, puede usar

sudo chflags hidden|nohidden <file/folder>

chflags es un comando BSD y también tiene una página de manual, solo ingrese esto en la Terminal

man chflags

para aquellos a los que no les gusta entrar en autocomandos y solo les gustaría saber qué hay en el hombre. Aquí tienes:

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
Eso está en /Developer/Tools, que tendrá que descargar desde el sitio de Apple (pesado) o instalarlo desde el disco del sistema operativo. Ningún sistema está completo sin él.
chflags hidden?
Prefijas una bandera con "no" para eliminarla. Entonces es sudo chflag nohidden <file/folder>, no show.
 dot_clean .

Este no es un uso diario, pero una vez fue un gran ahorro de tiempo: tenía un servidor de archivos SMB (Avid Unity) que mostraba muchos archivos .filename para usuarios de Mac y PC.

Este comando de limpieza solucionó totalmente el problema (después de ejecutarlo dos veces)

es genial saber finalmente que hay una buena manera de hacer esto.
Lo siento, pero no entiendo qué son los archivos ._* y cómo este programa soluciona el problema descrito. La página del manual no ayudó mucho. ¿Podría darnos más detalles? ¿Es completamente seguro de usar?
Los archivos ._ son invisibles en el Finder en Mac OS, pero son visibles para otros sistemas operativos. También tienden a ser una reliquia de las "bifurcaciones de recursos" que quedaron fuera de uso cuando la Mac hizo la transición de OS 9 a OS X. En lugar de simplemente tirarlas a la basura en otro sistema operativo, puede pedirle a Mac OS que lo ayude a limpiar elimine los innecesarios usando el comando dot_clean.

historymuestra una lista de los comandos recientes que ha ejecutado, algo así como 500 o 600 comandos. Lo uso con frecuencia history | grep somethingpara encontrar un comando que he usado recientemente.

Eso es un bash incorporado, no específico de OS X.
Verdadero. Perdón. Supongo que pensé que el autor de la pregunta está buscando comandos útiles de terminal de Mac, independientemente de si son específicos de Mac o no. Si me equivoque, lo siento.
Puede presionar Ctrl+R en bash para buscar de forma interactiva a través de su historial de shell. Si lo presiona y luego escribe ssh exa, encontrará el último comando que comienza con ssh exa. Puede presionar ctrl + r nuevamente para retroceder más, regresar para ejecutar el comando actual o presionar escape para editar más el comando
Mientras estamos en eso, history -a; history -rcopia el historial entre las pestañas de la terminal.
Una vez que haya ejecutado history, puede ejecutar cualquier elemento de la lista resultante utilizando el número del elemento del historial. por ejemplo !23, ejecutará el elemento 23 en la lista de historial.
!-3 - recupera el tercer elemento a partir de ahora... !-3:1 recupera el primer argumento del tercer elemento.

Aunque puedo moverme en vi, uso TextMate como mi editor de línea de comandos . También puedes canalizar cosas hacia él. Por ejemplo , ls|mate abre TextMate con la lista actual directamente abierta en una ventana de texto.

He usado 'mate'. más veces de las que quisiera contar.
De hecho, mate .es lo mejor que hay.
Definitivamente recomendaría jugar con Cocoa Emacs.

mdlsle mostrará todos los metadatos del archivo que Spotlight conoce. También puede usar los atributos resultantes en "mdfind".

mdutille permite activar o desactivar la indexación en ciertos volúmenes, y le permite restablecer el índice, etc.

systemsetupes específico de BSD (no solo para Mac), pero realmente genial, consulte su página de manual.

GetFileInfo(Creo que debe obtener las herramientas de desarrollador para tener esto) le permite ver todos los tiempos asociados (modificación, creación, último acceso) y todos los atributos de un archivo.

automatorle permite ejecutar flujos de trabajo de automatización desde la línea de comando, mientras

osascriptle permite ejecutar el código de script de Apple.

+1 - No sabía automatorque era bueno saberlo... supongo;) - (Generalmente lo uso para ejecutar scripts desde Finder, así que no estoy seguro de si alguna vez lo usaría al revés).

Mantenga presionado escunos segundos para obtener una lista de todos los comandos de terminal posibles en su sistema, incluidos los integrados, los programas en su ruta y los alias.

O, como señaló Martijn:

Simplemente utilícelo en su lugar, no es necesario que lo sostenga durante unos segundos, incluso. también completará los comandos escritos parcialmente por usted, así como los nombres de archivo y los argumentos específicos del comando.

Aparecerá un mensaje que le preguntará si realmente desea mostrar todas las posibilidades de comando. Simplemente responda ypara obtener la lista de comandos.

Simplemente use <kbd>TAB</kdb> en su lugar, no necesita mantenerlo presionado durante unos segundos. <kbd>TAB</kdb> también completará comandos escritos parcialmente por usted, así como nombres de archivos y argumentos específicos de comandos.
Si usa Zsh, las mejoras de finalización de TAB sacudirán su mundo. Prueba zsh y .oh-my-zsh.

bcat es una conexión conveniente entre mi terminal siempre abierta (xterm en XQuartz) y mi navegador siempre abierto.

configura un servidor HTTP de transmisión para un solo proceso, por lo que cosas como

tar czvf - . | tee bcat

simplemente se transmitirá hasta que el comando salga. Las páginas man necesitan un poco de limpieza:

man bash | col -b | bcat

o solo

export MANPAGER='col -b | bcat'
man bash

Autocompletar un comando como argumento. por ejemplo, comience a escribir:

cuál pyt (ahora presione + + 1)

se completará a

que pitón

++ funciona 1como la finalización de pestañas, excepto que se completa automáticamente usando nombres de comandos en lugar de nombres de archivos.

Se ve bien... ¿Se supone que esto también funciona en Snow Leopard? no me funciona..

Este es mi favorito absoluto. Compartir capturas de pantalla a través de Internet es una molestia. Escribí esto para que compartir capturas de pantalla en el chat sea un proceso de un solo paso usando DropBox. (Después me encontré con aplicaciones y utilidades que hacen esto, pero creo que esto es perfecto, al menos para mí).

Inicia la utilidad de captura de pantalla interactiva (igual que ++ ) 4, la guarda en la carpeta pública de su Dropbox, copia la URL en su portapapeles y la abre en su navegador.

Lo ejecuto a través de LaunchBar, pero puede ejecutarlo desde el shell o vincularlo a un atajo de teclado para que sea tan fácil como ++ .5

Puede agregar algo aleatorio al nombre del archivo si le preocupa la privacidad.

Solía ​​tener scpel archivo de captura de pantalla en mi servidor web antes de cambiar a Dropbox. Puede enviar el archivo donde sea que le sea útil. Incluso podría ponerlo en su ~/Sitesdirectorio para usarlo en su red local.

Si desea registrarse en Dropbox, puede usar mi enlace de referencia, que nos dará a ambos almacenamiento adicional. =)

#!/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
Esto es bueno si desea usar DropBox para el almacenamiento, pero casi parece excesivo si se considera que Imgur, TinyGrab y Skitch tienen utilidades OSX.
Eso es cierto, a menos que considere que ese tipo de hosts son temporales y volátiles. Realmente no sé si ese es el caso, pero me gusta tener el control de mis archivos.
Imgur es una opción mucho mejor que DropBox. Prueba este guión. figbug.com/?page_id=29
Todavía me gusta DropBox, pero es bueno saberlo.
Esto ya es una función de base de datos.
@ ManuelSchneid3r Ahora lo es, pero no lo era en ese momento.

Utilice ctrl+ Rpara activar la búsqueda inversa del historial. Luego comience a escribir un comando que ya haya escrito y todos los comandos coincidentes comenzarán a presentarse.

Para navegar en la búsqueda inversa del historial simplemente:

  • continúa escribiendo para acotar la búsqueda
  • ctrl+ R: pasar al siguiente resultado
  • : volver al resultado anterior
  • ctrl+ C: cancela tu búsqueda

p.ej.

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

Consulte también la respuesta aceptada a "¿Cómo puedo buscar en el historial de bash y volver a ejecutar un comando?" en Superusuario.

comando bash realmente útil

Cuanto más lo uso, más adicto soy.

screen

Junto con

screen -ls
screen -r [session]

Muy útil para tener varias pantallas abiertas en una conexión SSH. Ahorra toneladas de tiempo, especialmente cuando no tiene que reiniciar tailcada vez que desea verificar otro archivo de registro.

Lamentablemente, no es parte de OS X de forma predeterminada, pero considere tmux. Es básicamente un mejor equivalente BSD de la pantalla GNU.
Extrañamente en mi 10.6.4 OSX, la pantalla existe pero tmux no... Supongo que lo obtuve a través de macports - tmux también debe ser una instalación separada.

diskutiles una herramienta de línea de comandos muy poderosa para trabajar con discos e imágenes de disco. Me ha sacado de algunos aprietos. No es demasiado difícil de usar.

No estoy seguro; esto podría funcionar en cualquier aplicación de terminal decente, no solo en OS X. Sin embargo:

Al usar Terminal.app, es posible colocar información de estado en la barra de título real y no solo en el aviso.

Para hacer eso, necesita cambiar la PS1variable en bash al siguiente modelo:

PS1='\[\033]0;TITLE\007\]PROMPT'

Donde TITLEy PROMPTdebe sustituirse por los comandos reales que proporcionan la información de estado. Por ejemplo, \wmuestra la ruta completa actual; \Wel nombre del directorio. Incluso puede ejecutar un comando poniéndolo en acentos graves. (Por lo tanto, incluso podría poner la salida de comandos arbitrarios en el título, o en el indicador).

Los usuarios de Git (con la finalización de bash de git instalada) pueden encontrar útil lo siguiente. Agrega esto a tu.bashrc

export GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[\033]0;`__git_ps1` \w\007\]\h:\W \u\$ '

y la barra de título de Terminal.app mostrará la rama actual de git (y si está limpia o no) seguida de la ruta completa actual. Esto brinda información útil sobre dónde se encuentra solo cuando la necesita y no hace que el aviso real sea demasiado largo.

En caso de que no uses mucho git y solo te importe la ruta en la barra de título:

PS1='\[\033]0;\w\007\]\h:\W \u\$ '
¿Cuál es la finalización de bash de git?
Recomendaría zsh + .oh-my-zsh (encuéntrelo en github) tiene una excelente finalización de git (y también para muchos otros comandos). También tiene un montón de temas de aviso específicamente diseñados para mostrar el estado de git en una carpeta de git.
A partir de Mac OS X Lion 10.7, Terminal también admite configurar el título de la pestaña por separado del título de la ventana. "0" establece ambos. Use "1" para configurar el título de la pestaña, "2" para configurar el título de la ventana. ("1" técnicamente significa "título de icono", pero Terminal lo usa para el título de la pestaña, ya que no tiene títulos de iconos en el mismo sentido que xterm y X11).

Voy a tener que decir que ver Star Wars desde la línea de comandos es lo mejor:

telnet towel.blinkenlights.nl

Si dices que no es un comando, que en realidad no lo es, solo un truco, entonces me gusta esto:

defaults write com.apple.dashboard devmode YES

Ahh, así que abrir telnet es solo telnet... ¡Gracias!
No hay problema, supongo... :)
esto es tan epico

Imprima casi cualquier documento como PDF, siempre que tenga un tipo MIME correctamente definido en OS/X

 cupsfilter $filename > output

Aquí hay una función de shell para obtener la ruta de la ventana frontal del Finder. Puede ser útil. (Comencé a hacer esto en lugar de arrastrar una carpeta a la ventana de Terminal ) .

function fp { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

## alias to copy it to the clipboard
alias cfp='fp | pbcopy'

(Esto ha estado en mi zshrc por un tiempo, pero no sé dónde lo obtuve / partes de él, de lo contrario citaría crédito).

Grabe fácilmente un ISO desde la línea de comando (con verificación de grabación al final):

hdiutil burn /path/to/iso

Sin verificar la quemadura:

hdiutil burn -noverifyburn /path/to/iso

Obtener una lista de aeropuertoSSID

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s

la airportutilidad tiene muchas más opciones para administrar la configuración del aeropuerto. Ejecutar sin el -spara obtener una lista.

si está cansado de rutas de acceso largas como esta, inténtelo locate airport; puede ejecutarlo con$(locate airport | grep 'Priv')

el psicoterapeuta más interesante con el que jamás hablarás:

  • Correremacs
  • Presione + esc+X
  • escribe doctory presiona enter
  • diviértete :D
Eso es solo parte de emacs, no es específico de OS X
guau, esto es muy divertido
¡Es hilarante! ¡Me encanta!

alias para abrir la vista previa desde la línea de comandos

alias preview='groff -Tps > /tmp/tmp.ps && open -a Preview /tmp/tmp.ps'

Así que puedes hacer:

echo "toto" | preview
cat /tmp/test.log | preview
cheat git | preview
Bueno, si respetara los saltos de línea, incluso podría ser útil ;) -- Intente cupsfilteren su lugar convertir a PDF, también omite la conversión innecesaria de PS-PDF.

Al juntar un par de estos, podemos obtener páginas de manual en un navegador con el marcado adecuado:

bman () {
    gunzip < `man -w $@` | groff -Thtml -man | bcat
}

Ninguno de estos es exactamente específico de OSX, pero aquí hay algunas cosas de mi .bash_profile que encuentro útiles:

Mensaje de color:

PS1="\[\e[0;31m\][\[\e[1;31m\]\u\[\e[0;34m\]@\h \[\e[32m\]\w\[\e[0;31m]\]\$\[\e[0m\] ";

ejemplo http://grab.by/grabs/c2c7cdff8e49dd764d326620df762665.png

Finalización de la pestaña SSH de los hosts que existen en ~/.ssh/config: (que se encuentra en MacOSXHints )

complete -o default -o nospace -W "$(/usr/bin/env ruby -ne 'puts $_.split(/[,\s]+/)[1..-1].reject{|host| host.match(/\*|\?/)} if $_.match(/^\s*Host\s+/);' < $HOME/.ssh/config)" scp sftp ssh

grep resaltado:

alias grep="grep --color=auto"

grep resaltado http://grab.by/grabs/dd26dd993c74f8dd076e2f911a8e4ec6.png

Vuelca automáticamente tu clave ssh pública a un host para una futura autenticación sin contraseña: (probablemente se pueda modificar fácilmente para agregar dicho host a ~/.ssh/config)

ssh-setup() { cat ~/.ssh/id_rsa.pub | ssh $1 'cat - >> ~/.ssh/authorized_keys'; }

Más cosas específicas de OSX que configuré obligan a la máquina a tomar una foto con la iSight incorporada cada vez que se abre la tapa de la máquina y vuelca esa imagen en un directorio.
Requisitos:

Cree un directorio en algún lugar para guardar todas sus imágenes. Vuelca esto en ~/.wakeup:

date=$(date +%y%m%d_%H_%M_%S).jpg;
/PATH/TO/isightcapture -w 640 -h 480 -n 3 -d -t jpg /PATH/TO/PICTURE/DUMP/$date > /dev/null
unset date

He estado tapando un cuadro cada vez que mi MacBook se activa durante los últimos 3 años y medio, es interesante ver todo compilado en un video largo a una alta velocidad de cuadros.

Tus imágenes están rotas.

No está instalado de forma predeterminada, pero MacPorts es excelente para agregar más programas de línea de comandos. Después de descargar e instalar, puede usar el comando de puerto para buscar e instalar más programas, y mucho más.

port search convert video
port install ffmpeg
Vale la pena señalar que deberá instalar XCode antes de poder instalar MacPorts .
Y homebrew es mucho mejor mxcl.github.com/homebrew

Mi alias favorito:

alias redo='sudo \!-1'

Cuando olvide usar 'sudo', simplemente haga 'redo' para volver a ejecutar el último comando usando sudo.

También puedes usar !! para significar el último comando, por lo que puede hacer: sudo !!
Si siente la necesidad de usar un alias con más caracteres que el comando real, considere volver a cablear su neocórtex temporal .

Use !$para repetir el último parámetro en el último comando que ingresó, por ejemplo:

~$ mkdir test-dir
~$ cd !$
cd test-dir
test-dir$  

!$en realidad es la abreviatura de !!$lo que significa "desde el comando más reciente, extraiga el último parámetro"

Consulte la sección "EXPANSIÓN DEL HISTORIAL" de la página de manual de bash para obtener más información.

Del mismo modo, existe !^para el primer comando, que uso a menudo.
!!también funciona bien
afplay ~/path/to/file.mp3

Vamos a reproducir canciones desde la línea de comandos. También puede agregar [space]&y dejar que se ejecute en segundo plano. :)

Si estaba en la escena del rastreador/módulo en el pasado, puede probar xmp (paquete Rudix compilado aquí ). Entonces solo xmp ~/path/to/file.mod.

No es una gran característica, pero me di cuenta de que no estaba aquí.

+ arrastrar el mouse sobre el texto de la Terminal le permite hacer una selección rectangular.

Aclaración: Es la tecla "Opción", no la tecla "Alt". También tiene una etiqueta "Alt" para ayudar a las personas más familiarizadas con Windows, o a alguien que usa Windows con un teclado Apple, incluido alguien que usa Windows ejecutándose en una Mac a través de Bootcamp o un programa de virtualización como VMware.

La aplicación de instalación de OSX también tiene una interfaz de línea de comandos.

sudo installer -pkg /Volumes/Growl-1.2.1/Growl.pkg -target LocalSystem

Es un comando de instalación de una línea para Growl, GrowlNotify es un extra en la misma imagen de disco de instalación.

Puede encontrar los dominios compatibles con un archivo de paquete a través de

installer -pkg  /Volumes/Growl-1.2.1/Growl.pkg -dominfo
xattr -h

le permite ver los atributos del archivo. El uso más útil de este comando es eliminar la advertencia de descarga de Internet del buscador:

cd /the/directory/where/you/downloaded/all/your/files

xattr -rd com.apple.quarantine .
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r

Le brinda una lista de algunos de sus comandos más recientes, numerados según la frecuencia con la que los usa.

Cree un nuevo directorio e ingréselo:

md() { mkdir -p "$@" && cd "$@"; }

Para obtener más información, consulte mi repositorio dotfiles en GitHub y/o vea mi.osx archivo para conocer las preferencias y configuraciones específicas de OS X.

Repita el comando anterior con un reemplazo de subcadena:

Sintaxis :

^before^after^

Ejemplo :

Entraste:

git clonr https://unbelievablylongurl.org/projectdirectory/evenmoreprojects/project.git

Utilizar esta:

^clonr^clone^

Y su comando se volverá a ejecutar con la subcadena reemplazada:

git clone http://unbelievablylongurl.org/projectdirectory/evenmoreprojects/project.git

Puede transferir un directorio de trabajo de una ventana de Terminal a otra con estos dos comandos agregados a su archivo .bash_profile:

alias cwd='pwd | pbcopy'
alias gowd='cd "`pbpaste`"'

cwdcopia su directorio de trabajo desde una ventana y gowdabre ese directorio en otra ventana.

Así es como hacer que funcione. Yo siempre estaba desesperado por la gowdparte...

En mi perfil bash tengo estos alias:

# Alias for "." shows current directory
alias -- .='pwd'

# Alias for ".." goes to parent directory
alias -- ..="cd .."
alias -- ...="cd .. ; cd .."
alias -- ....="cd .. ; cd .. ; cd .." 
Sí, yo también, trabajar en un caparazón que no tiene '..' es extraño. :) (FWIW, también podrías usar alias '..'='cd ../..')

Use ASCIIMoviePlayer de Apple para reproducir películas QuickTime en la Terminal:

(También existen dos excelentes adaptaciones que permiten usar la salida de color ANSI).

En una nota más seria: CoreImageTool (tercero; solo búsquelo en Google) es una excelente manera de usar los filtros CoreImage desde la línea de comandos.

sips -i *

Esto crea automáticamente vistas previas de iconos para todas las imágenes.

Esto es mejor que usar "Mostrar vista previa del ícono" del Finder si tiene archivos grandes, particularmente en un servidor.

drutil hace muchas cosas

drutil cdtext

le muestra la información de cdtext (si la hay) en el CD actualmente en la unidad

drutil info

le muestra la capacidad de su(s) unidad(es) óptica(s)

drutil eject

adivina que hace eso

Y mucho más. 'man drutil' para ver todo

A menudo uso + Kpara borrar la pantalla de mi terminal en lugar de UNIX Command clear.

La diferencia es que clearoculta los comandos anteriores de nuestra vista, pero aún podemos desplazarnos hacia atrás mientras tanto + Klo borra por completo, no podemos desplazarnos hacia atrás.

Me gusta usarlo porque siempre puedo presionar ctrl+ Ro escribir:

history | grep command-that-I-want-to-do-again

si quiero volver a escribir un comando sin necesidad de mirar la Terminal "llena de caracteres desordenados".

También hay Ctrl+L, que es un atajo para clear.

En el menú Ayuda de Terminal, puede buscar páginas de manual. (La primera vez que haga esto, puede tomar unos segundos indexar los archivos de la página del manual, así que espere un poco hasta que aparezcan los resultados, pero las búsquedas subsiguientes son rápidas). Mostrará los resultados de la página del manual en los resultados de búsqueda del menú Ayuda. Al seleccionar uno, se abre una ventana que muestra la página formateada.

A partir de Mac OS X Lion 10.7, hay una serie de mejoras en la compatibilidad con la página de manual:

  • La búsqueda en la página del manual le permite proporcionar números/nombres de sección en varios formatos: "2 abiertos", "abiertos 2", "abiertos (2)". También admite asteriscos "*" para búsquedas con comodines.
  • Ahora busca todos los archivos en MANPATH (antes de Lion, solo buscaba en un conjunto fijo de directorios, por lo que, por ejemplo, no encontraba ninguna página man de X11). Sin embargo, no se ejecuta en un shell, por lo que si desea personalizar MANPATH, es posible que deba personalizar man.conf (x-man-page://1/man), o configurarlo en su entorno global .
  • Hay comandos en el menú Ayuda para abrir páginas de manual ( Abrir página de manual para selección ) y realizar una búsqueda apropiada ( Buscar en páginas de manual para selección ). Hay comandos correspondientes en el menú contextual, y hay servicios que puede habilitar para realizar estas búsquedas desde otras aplicaciones ( Preferencias del sistema > Teclado > Métodos abreviados de teclado > Servicios > Abrir página de manual en Terminal / Buscar páginas de manual en Terminal ).
  • Si no hay texto seleccionado, Abrir página de manual para selección buscará automáticamente el texto a la izquierda del cursor. Esto significa que puede ingresar un nombre de comando y luego usar este comando para abrir la página de manual antes de ingresar los argumentos del comando. Saltará los espacios en blanco. También comprende las referencias a la página del manual "open(2)" y las URL "x-man-page://2/open". (Si selecciona explícitamente texto, también entiende "2 abiertos" y "abiertos 2").
  • Las ventanas de la página de manual utilizan el perfil de configuración "Página de manual". Puede personalizar esto para modificar la apariencia de las páginas del manual que se muestran con estos comandos. También recuerda la posición de las ventanas de la página de manual por separado de otras ventanas, por lo que puede hacer que las páginas de manual aparezcan en el mismo lugar en la pantalla cada vez, independientemente de dónde coloque otras ventanas de terminal.
  • + doble clic abrirá las referencias de la página del manual "abrir (2)", lo que le permitirá navegar por las referencias de una página del manual a otra. ( + doble clic también abrirá cualquier URL reconocida, o incluso algunos patrones como direcciones de correo electrónico, crea un nuevo mensaje de correo y nombres de dominio, se abre en Safari).
  • Al ver una ventana de página de manual (o cualquier terminal cuyos comandos se hayan completado/salido), Terminal admite algunos comandos de buscapersonas "menos" compatibles: space= Page Down, + space= Page Up, F= Page Down("adelante"), B= Page Up("atrás"), = Desplazarse una línea hacia abajo, / = Desplazarse hacia arriba/abajo una línea.

Tengo los siguientes alias y funciones en ~/.bash_profile:

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'"
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"
alias gzip="gzip -9n"
alias ping="ping -c 5"
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Create a new directory and enter it
md() { mkdir -p "$@" && cd "$@"; }

# Define a term using 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; }

# gzip a file with strongest compression settings
ubergzip() { gzip -9n < "$@" > "$@".gz; }

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

# Open a man page in TextMate.app
tman() { MANWIDTH=160 MANPAGER='col -bx' man $@ | mate; }

# Quit an app cleanly
quit() {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

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

# Uninstall an app with AppZapper
zap() { open -a AppZapper /Applications/"${1}".app; }

Para obtener más información, consulte mi repositorio dotfiles en GitHub y/o vea mi.osx archivo para conocer las preferencias y configuraciones específicas de OS X.

net rpc shutdown --server=<servername> --username=<username>

Esto cerrará las cajas de Windows.

Esto es parte de la suite Samba, por lo que no es específico de OS X.

Accesos directos de la línea de comandos para alternar la visibilidad de los archivos ocultos en el buscador:

alias show_hidden="defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder"
alias hide_hidden="defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder"

Aquí hay una secuencia de comandos que obtiene la(s) ruta(s) a la(s) selección(es) actual(es) en Finder:

#!/bin/sh

osascript` << EOT

tell application "Finder"       
        set theFiles to selection
        set theList to ""
        repeat with aFile in theFiles
                set theList to theList & POSIX path of (aFile as alias) & " "
        end repeat
        theList
end tell

EOT

Cómo lo uso:

$ cat `selected`

Ok, definitivamente no es específico de Mac, pero la finalización de TAB zshes tan buena que creo que merece una mención específica.

Obtiene la finalización de opciones, por ejemplo

find . -d[TAB]

le daré -daystart -delete -depthcomo posibles terminaciones.

Además, la finalización de la ruta se mejora con respecto a la finalización de Bash, por ejemplo, tengo un volumen llamado Wubly, y dentro de eso video/tv/comedy, así que escribo:

cd /v/w/v/t/co[TAB] 

se expandirá a.

cd /Volumes/Wubly/Video/TV/Comedy

(Tenga en cuenta que también es insensible a mayúsculas y minúsculas).

Si hay varias rutas que coinciden con este patrón, se mostrarán.

La finalización también es interactiva, por lo que puede moverse por las opciones disponibles con los controles del cursor.

A partir de Mac OS X Lion 10.7, Terminal abrirá una nueva ventana si arrastra una carpeta (o un nombre de ruta de texto) al icono de la aplicación. Si arrastra a la barra de pestañas de una ventana existente, se creará una nueva pestaña en esa ventana.

También puede hacer esto desde la línea de comando o un script de shell:

open -a Terminal /some/path/

Este es el equivalente en la línea de comandos de arrastrar una carpeta al icono de la aplicación Terminal y abrirá una nueva ventana de terminal en "/alguna/ruta".

Terminal ahora también admite Servicios para abrir una terminal en una carpeta seleccionada (por ejemplo, en Finder) o un nombre de ruta de texto usando el menú contextual. Puedes habilitarlos en

Preferencias del sistema > Teclado > Métodos abreviados de teclado > Servicios

Busque Nueva terminal en la carpeta y la pestaña Nueva terminal en la carpeta . Incluso puede asignarles teclas de comando si lo desea.

Finalmente, si arrastra una carpeta o nombre de ruta a una pestaña existente (es decir, la pestaña en la barra de pestañas) y el proceso de primer plano es el shell, ejecutará un comando "cd" en un solo paso. Como en versiones anteriores, al arrastrar una carpeta a la pantalla del terminal se insertará el nombre de la ruta en la carpeta.

iTerm admite arrastrar carpetas al icono en 10.6.
Terminal admitió esto desde hace mucho tiempo
@Slomojo, ¿está respondiendo a Fake Name o está tratando de corregir mi declaración de que Terminal admite esto a partir de 10.7? (¿O no notaron que escribí eso?)
@ChrisPage Terminal hizo esto desde varias versiones anteriores a la 10.7, aunque actualmente no puedo verificarlo de primera mano antes de la 10.6 (ya que no tengo un cuadro que ejecute versiones anteriores) - FYI Cmd-c en un archivo/carpeta en Finder y Cmd- v en Terminal también pegará la ruta completa (el mismo historial de versiones de OSX).
@Slomojo He confirmado que no lo hizo hasta el 10.7.
@ChrisPage ... deberá retractarse de eso, ¿lo hizo en al menos 10.5 cuidado para una referencia? Aquí tienes reduser.net/forum/archive/index.php/t-17024.html encuentra el comentario de David Didato fechado el 10/08/2008 (10.6 fue lanzado en el 2009) - También lo usé personalmente en Tiger (lanzado en el 2005) ) y me lo enseñó alguien que lo había usado en versiones anteriores (10.2 IIRC) - Sin mencionar que hice una prueba en vivo en 10.6 cuando publiqué mi comentario anterior.
@Slomojo aparentemente se refiere a arrastrar (o copiar y pegar) archivos desde Finder a una ventana de terminal para pegar el nombre de la ruta como si lo hubiera ingresado el usuario. Este consejo/respuesta se trata de abrir nuevas ventanas/pestañas de terminal en una ubicación de directorio dada, que se introdujo en 10.7.
@ChrisPage sí, a eso me refería, obviamente me avergoncé mucho y leí mal el comentario inicial (en realidad no había leído su consejo, y solo lo hojeé) - Supuse que el comentario se refería al nombre de archivo de arrastrar y soltar función /ruta. Volveré a mi caja ahora, ofreciendo disculpas.

Vacíe la caché de DNS si está editando /etc/hostsmucho para probar los servidores de ensayo como si estuvieran en producción.

dscacheutil -flushcache
¡Úsalo todo el tiempo!

Si necesita abrir una ventana del Finder como usuario raíz, puede ejecutar lo siguiente desde la terminal:

En 10.5 y anteriores:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

En 10.6:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Luego, abra una nueva ventana del buscador. Verá que se abre la nueva ventana del buscador con permisos de root.

¿Cuándo es útil abrir una ventana del Finder como usuario root?

Si eres como yo, tienes varias pestañas de Terminal.app abiertas al mismo tiempo.

Ahora, si abre tres pestañas al mismo tiempo, luego ingresa algunos comandos en cada una de ellas, luego ciérrelas todas, el shell Bash que usa Terminal.app solo recuerda el historial de comandos de la última pestaña que cierra. Entonces, el historial de comandos de las otras dos pestañas se pierde.

Si no desea perder su historial de comandos en ninguna pestaña, agregue esto a su ~/.bash_profile(o cualquier otro archivo que se obtenga cuando se abre una nueva pestaña de Terminal):

# Append to the Bash history file, rather than overwriting it
shopt -s histappend

Cuando cding, una de las características más útiles es la finalización de tabulación.

Por ejemplo, en lugar de ingresar cd FooBarBazBax, puede ingresar cd FooBseguido de Tab. La finalización de tabulación funcionará siempre que la parte de la ruta o el nombre de archivo que ingresó no sea ambigua.

Sin embargo, si tuviera que escribir cd foobseguido de Tab, la finalización no funcionaría, ya que el nombre de la carpeta comienza con mayúscula F. Afortunadamente, puede hacer que la finalización de pestañas sea aún más útil al hacer que ignore el caso del nombre de archivo.

Agregue esto a su ~/.inputrcarchivo (cree el archivo si aún no lo tiene):

# Make Tab autocomplete regardless of filename case
set completion-ignore-case on

De esta manera, cd foobseguido de Tablo completaría en cd FooBarBazBax, siempre que haya una carpeta con ese nombre en el directorio de trabajo actual.

Sólo tipo

purge

y hará que la memoria inactiva vuelva a estar libre. Mac OS X mantiene las aplicaciones en la memoria durante un tiempo después de que las cierras, por lo que se abrirán rápidamente si las vuelves a abrir. Purge los eliminará de la memoria y le devolverá su memoria libre.

Esto es más una meta-sugerencia de Terminal: puede usar

Cmd-Shift-{Left arrow, Right Arrow} 

(Comando Shift combinado con flecha izquierda o derecha) para alternar rápidamente entre las ventanas abiertas de Terminal.app.

En mi Snow Leopard (teclado belga) es Cmd-Shift-Arrow, no solo Cmd-Arrow.

Simule para escribir Comando-F, para mostrar un video a pantalla completa desde la línea de comandos. Útil al iniciar una película en mPlayer desde ssh.

osascript <<END
tell application "System Events" to keystroke "f" using {command down}
END

Por supuesto, también puedes usar este truco para simular cualquier otro "tecleo".

FYI - iTerm2 tiene una función de reproducción instantánea, muy útil para hacer screencasts.

qué pasa

cat somefile.txt | say

decir el contenido de un archivo de texto... o...

cat someFile.txt | say -o someAudioFile

tome su archivo de texto, conviértalo a .aiff

sial.org/howto/shell/useless-cat Hazlo say -o < somefile.txten su lugar

Esto no es específico de OSX ( mandice que es de 4.0BSD), pero me encanta de todos modos:

sudo shutdown -h +45

En el ejemplo anterior, shutdownapaga su computadora dentro de 45 minutos a partir de ahora (como uno podría sospechar).

Es genial para cuando quieres pasar "un poco de tiempo" en tu computadora antes de acostarte/lavar los platos/correr/lo que sea. Pero cuando también sabes en el fondo que no va a ser "solo un poquito de tiempo"...

¡Salud!

¡ Amor shutdown!

También puede configurar el volumen del sistema automáticamente y eliminar el proceso de pantalla después:

screen
(hit enter)
sleep 300; osascript -e "set Volume 10"; say "I am feeling fabulous"; open "http://www.youtube.com/watch?v=dQw4w9WgXcQ"; killall SCREEN
Ctrl-a-d
(detaches)
¿Por qué esto recibió una votación negativa? ¿No es divertido o no es apropiado? ¡Tengan sentido del humor gente!
¿Qué vídeo fue ese? Ha sido eliminado de Youtube.
¡¡¡¡¡Tan genial!!!!!

Archivo de texto a un archivo de audio

say -o “audiofile.aiff” -f “textfile.rtf”

más sintaxis aquí

Si usa subversion, abre FileMerge para los archivos desprotegidos locales que se han modificado.

Requiere la instalación de fmscripts:

cd ~/Downloads && svn co http://soft.vub.ac.be/svn-gen/bdefrain/fmscripts && cd fmscripts
sudo make

alias sfmdiff='svn diff --diff-cmd fmdiff'

Luego, en un directorio desprotegido:

sfmdiff . 

(o cualquier directorio o archivo específico)

Incluyo todos mis favoritos aquí: http://rustyisageek.blogspot.com

Ejemplo:

Establezca el volumen en 10 y diga algo

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

Espere a que la red esté lista en un script

/usr/sbin/networksetup -detectnewhardware

ctrl- Rle permitirá realizar una búsqueda inversa dentro de su shell bash. Es como una forma interactiva de history.

duplicado de otra respuesta

gzip un archivo con la configuración de compresión más fuerte:

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

Para obtener más información, consulte mi repositorio dotfiles en GitHub y/o vea mi.osx archivo para conocer las preferencias y configuraciones específicas de OS X.

Defina un término usando 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; }

Para obtener más información, consulte mi repositorio dotfiles en GitHub y/o vea mi.osx archivo para conocer las preferencias y configuraciones específicas de OS X.

Un comando relevante para Terminal.app en Mac OS X es iniciar la Actualización de software desde la CLI:

sudo softwareupdate -i -a

La ventaja es que no tienes que molestarte por tener que hacer clic en las ventanas. Ejecuto esto como parte de un script de actualización que se ejecuta cada semana aproximadamente (para no perderme los comentarios, ya que puede suceder cuando lo hago automáticamente).

¿Qué hace esto cuando hay una actualización que requiere un reinicio?
@JasonSalaz Simplemente imprime un mensaje que sugiere reiniciar el sistema operativo (pero no fuerza un reinicio ni nada).
usar 'softwareupdate -l' también es genial solo para obtener una lista también. La Mac App Store en ML no muestra el tamaño de las descargas todo el tiempo, pero usar esta herramienta sí lo hace.

Cambie el directorio al directorio que se muestra en la ventana superior del Finder:

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

Otra version:

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')"
}
Tenga en cuenta que en Mac OS X Lion 10.7 y versiones posteriores, Terminal proporciona un servicio de "Nueva terminal en la carpeta" que puede usar para abrir una terminal seleccionando una carpeta y eligiendo el comando del menú Finder > Servicios o haciendo Control-clic y eligiendo desde el menú contextual. (Deberá habilitar el servicio en Preferencias del sistema > Teclado > Métodos abreviados de teclado > Servicios). También puede arrastrar una carpeta al icono de la aplicación Terminal en el Dock o a una barra de pestañas para crear una nueva pestaña en una ventana existente. .

Quick Look es una de las mejores características de OS X. Solo tiene que presionar la barra espaciadora en un archivo seleccionado y verá una vista previa de ese archivo sin tener que abrir una aplicación. Es genial, pero no puedes seleccionar ningún texto cuando estás en la vista previa. Puede agregar esa función con un comando de Terminal:

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

Use la función de Vista rápida, seleccione el texto que desea y ahora puede copiarlo.

Monte iDisk desde la línea de comandos:

osascript <<END
tell application "Finder"
mount volume "http://idisk.mac.com/john.doe/" as user name "john.doe" with password "StR0NGP455"
end tell
END

Función para crear un directorio y un cd con un solo comando:

function take {
    mkdir $1
    cd $1
}
Mejor: mkdir -p $1, ya que esto permite crear nuevos directorios anidados. Y poner un &&entre los comandos solo se ejecutará cdsi la carpeta se creó correctamente.
También puedes "cd!!:1" donde!! es el comando anterior y :1 toma su número de argumento (basado en cero). Digamos que haces "mv file1 file2" y te das cuenta de que querías lo contrario: "mv !!:2 !!:1". Por supuesto, esto solo es útil para nombres complejos.

abre todos los resultados de find en una sola ventana de compañero de texto:

find . -name "pattern"|xargs mate

también funciona con mdfind (foco):

mdfind -name models.py |xargs mate
no necesita xargs para estos, mate aceptará STDIN.

Descargue una URL al directorio actual con curl.

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

Especialmente bueno para descargar tarballs de origen que Safari quiere descomprimir por ti.

Una alternativa es wget.

Obtener terminal para abrir en la última carpeta visitada:

He anhelado que la terminal se abra en la última carpeta visitada, y terminé haciendo un pequeño comando bash que lo logra. Además, permite "cd" a un archivo, lo que es muy útil cuando desea cambiar su directorio al de un archivo de búsqueda determinado. Simplemente escriba cd y arrastre el archivo a la terminal y estará allí.

Agregue lo siguiente a su archivo .bashrc o .alias

alias cd=mycd

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

  echo "\cd \""`pwd`\""" > ~/.todir  ; 
  PS1='\[\033]0;`pwd | xargs basename`\007\]\e[31m\w:\e[0m
'
}

Finalmente, debe cambiar la configuración de su terminal:

En terminal:settings:shell - haga que el shell complete el siguiente comando:

source ~/.todir; clear

La próxima vez que inicie su terminal, será redirigido automáticamente a su último directorio abierto. El título de la terminal cambiará de título cuando use el alias de cd , y su indicador mostrará la ruta completa del directorio.

LAME codifica .wav a .mp3

Este es el original de una sola línea que usé para eventualmente crear este útil comando .

find ./ -name "*.wav" -execdir lame -V 3 -q 0 {} \;
  • ¡Convierte 20Mb .wav (con la configuración de mayor calidad) a .mp3 en 3 segundos!
  • Simplemente instale el binario LAME y estará listo.

En tus~/.bash_profile

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

Esto pone el nombre de su máquina y el directorio actual en la barra de título de la terminal, para que pueda realizar un seguimiento de dónde se encuentra. Esto también muestra los datos en el directorio de la ventana.

Puede navegar y buscar en el historial usando las teclas del cursor después de agregar

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

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

.profilea tu

A partir de Mac OS X Lion 10.7, Terminal admite algunos comandos de buscapersonas "menos" compatibles cuando no hay procesos ejecutándose en una terminal. Esto es útil para desplazarse por las páginas y leer el texto después de que los comandos se hayan completado/salido. Las claves admitidas son:

space: Página abajo
+ Space: Página arriba
: Desplazarse una línea hacia abajo
/ : Desplazarse hacia arriba/abajo una línea
F: Página abajo ("adelante")
B: Página arriba ("atrás")
<: Inicio (desplazarse hacia arriba)
>: Fin (desplazarse hasta el final)

La terminal tiene comandos que buscarán y mostrarán páginas del manual, cuyas teclas son indispensables para ver. Consulte el menú Ayuda y los menús contextuales. También admite Servicios para abrir páginas man desde otras aplicaciones (habilítelos en
Preferencias del sistema > Teclado > Métodos abreviados de teclado > Servicios ).

Silence Idiom - Silenciar un comando de shell

Puede eliminar la salida estándar de un comando detallado con este lenguaje de shell.

El modismo es:

>&-

y lo usas así:

noisycmd >&-

El comando se ejecuta pero no se imprime nada en el flujo de salida estándar.

Envíe audio a un dispositivo Apple Tv/Airplay a través del comando /usr/bin/say

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

-r160 es la velocidad de voz que se utilizará, en palabras por minuto

-a seguido del nombre o número del dispositivo .

Luego su texto.

Para enumerar su dispositivo de audio disponible

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

Usar los números funcionará igual de bien en lugar del nombre del dispositivo.

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

También puede usar la opción -f para usar un archivo de texto como su texto de voz.

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

Como notará, diga que puede expandir las rutas de archivos de tilde


Digamos que puede hacer mucho más, como guardar el texto del discurso directamente en un archivo de audio.

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

-o ruta del archivo de salida. es decir ~/Música/hola

formato de archivo .aac

Esto guarda un archivo .acc llamado hi.aac en el directorio de música.

Las rutas de directorio DEBEN existir antes de que se ejecute el comando. No es necesario que el archivo exista primero en el directorio y, si lo hace, lo más probable es que se sobrescriba.

Hay otros formatos que puede utilizar.

La página del manual le mostrará la lista completa de opciones.

Quería lo contrario de "abierto". comando, donde podía hacer cd en la ventana frontal del Finder, así que improvisé esto para mi .bash_profile:

alias fw='cd "$(osascript -e "dile a la aplicación \"Finder\" la ruta POSIX de (carpeta de la ventana 1 como cadena)")"'

Ahora, el comando "fw" establece mi directorio actual en la ventana frontal (para el nombre de fw).

Tenga en cuenta que puede escribir "cd" y luego arrastrar la ventana frontal a la Terminal para pegar su ruta, luego cambiar a Terminal y presionar regresar. Creo que esto es más fácil. ;)

Comando-Arrastrar emitirá el cdcomando completo sin necesidad de escribir.

Fácil manejo de bzip/tar para comprimir directorios completos:

# 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 -
}

Hacer que todos los enlaces en Safari se abran como pestañas nuevas

Nuevas ventanas, baaad. Nuevas pestañas, bien. En general, los controles de pestañas de Safari son maravillosos, pero una falla nos vuelve locos: ciertos enlaces pueden anular su preferencia para abrir nuevas páginas web en pestañas, lo que esencialmente obliga a la aplicación a abrir una nueva ventana. Para evitar esto en el futuro, ejecute este comando: defaults write com.apple.Safari TargetedClicksCreateTabs -bool TRUE.


Mostrar archivos ocultos en el Finder

Los nombres de los archivos ocultos siempre comienzan con un punto; téngalo en cuenta antes de eliminar o editar un archivo que no le resulte familiar. Lo crea o no, los archivos que ve enumerados en su Escritorio en el Finder no representan todos los archivos contenidos en su carpeta de Escritorio. En casi todas las carpetas, el sistema operativo oculta archivos del sistema que Apple considera demasiado importantes para que nosotros nos metamos (o demasiado mundanos para que nos molestemos). De vez en cuando, sin embargo, es útil ver estos archivos. Para ver el contenido completo de todas las carpetas en el Finder, ejecute: defaults write com.apple.finder AppleShowAllFiles TRUE.


Deshabilitar el panel

Cuando el Tablero aparece en nuestro escritorio, generalmente se debe a que no presionamos la tecla Eliminar y presionamos F12 en su lugar. En teoría, siempre nos ha gustado el Tablero; en ocasiones, incluso hemos descargado widgets para él. Desafortunadamente, nunca llegamos a usarlos, y nuestra vieja computadora portátil Mac podría usar la memoria RAM adicional para ejecutar aplicaciones reales. Si está en el mismo barco, libere algo de memoria del sistema terminando el Tablero con dos comandos rápidos de Terminal. Primero, establezca su valor predeterminado en Apagado ejecutando : defaults write com.apple.dashboard mcx-disabled -boolean YES. En segundo lugar, elimine y reinicie el Tablero y el Dock con este comando: killall Dock.


Mucho más en este sitio web: Haga clic AQUÍ

pg sin argumentos, haga ping a la IP 8.8.8.8 (útil para la prueba básica de conexión a Internet), de lo contrario, haga ping a la IP dada. Si la IP está incompleta, se concatena con el prefijo predeterminado 192.168.1, lo que permite un ping local fácil (por ejemplo, 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
}
aquí está la esencia correspondiente: gist.github.com/MartinDelille/9386306

Agregue un archivo llamado "-i" a su directorio de inicio. Ahora, si accidentalmente escribe:

rm -rf *

se expandirá a:

rm -rf -i your other files

y se le pedirá que confirme o rechace la eliminación de todo el directorio. Es bastante raro, pero me ha salvado el trasero antes.

solo alias rm a rm -i :alias rm='rm -i'

Versión de BBEdit para ver páginas man:

bbman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | bbedit --clean
}

Actualice automáticamente el título de la ventana de Terminal.app para mostrar su nombre de usuario, host y directorio actual.

Si hago lo siguiente:

cd ~/Developer

Quiero que el título de la ventana de Terminal se actualice a:

jason@rocksteady:~/Developer

Para lograr esto, asegúrese de que la variable PROMPT_COMMAND esté configurada en su ~/.bash_profile:

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'

Por supuesto, puedes sustituirlo por lo que más te guste.

A partir de Mac OS X Lion 10.7, Terminal admite la configuración de los títulos de ventana y pestaña (icono) por separado. "0" establece ambos. Use "1" para configurar el título de la pestaña, "2" para configurar el título de la ventana.

Configure bash para salir de un script inmediatamente ante cualquier error.

set -o errexit

Siempre es una buena idea cuando se desarrollan scripts bash, especialmente los destructivos.

Una forma más fácil de abrir y cerrar DMG es:

open <My disk image>.dmg

Luego para cerrarlo:

umount /Volumes/<My disk image>
si usa umount así, dejará la /Volumes/<My disk image>carpeta tirada. Úselo diskutil eject /Volumes/<My disk image>en su lugar, limpiará después de usted.

Para conectarse a un volumen de red, puede usar mkdir; mounty umount; rmdiretc, etc... sin embargo, eso es largo y hay un mejor método alternativo específico de Mac...

Puede abrir un recurso compartido:

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

y expulsarlo con:

diskutil eject /Volumes/sharepointname

Por cierto, también puede abrir un cuadro de diálogo para seleccionar de una lista de todos los puntos compartidos en un servidor haciendo...

open afp://user:pass@server/

Omita el usuario/contraseña para solicitar las credenciales en la GUI.

user42053 menciona agregar un archivo -ia cada carpeta. Se pone un poco peludo al ver -ien todas las carpetas en cualquier otro lugar. El método más fácil sería

alias rm="rm -i"
Esta es una mala idea ya que te acostumbrarás demasiado, ¿qué pasa si estás en un sistema sin él y te descuidas rm -rf?

Enumere todos los directorios solos en un directorio, er, carpetas en una carpeta.

ls -la | grep '^d'

Encuentre los tamaños del directorio dado, nuevamente, er, carpeta.

du -s dirname

Arrastre el icono de proxy de una ventana del Finder para obtener una ruta de escape; especialmente útil después de escribircd

o arrástrelo y hagaC-a cd RETURN
En Mac OS X Lion 10.7 y posterior, puede arrastrar una carpeta (o un ícono de proxy, o un nombre de ruta seleccionado en el texto) al ícono de la aplicación Terminal para crear una nueva ventana de terminal en esa ubicación. También hay servicios de "Nueva terminal en la carpeta" y "Nueva pestaña de terminal en la carpeta" que puede habilitar (en Preferencias del sistema), que aparecerán en el menú contextual al seleccionar carpetas o nombres de rutas. También puede arrastrar a una pestaña de terminal existente para emitir automáticamente un comando cd, y puede arrastrar al área en blanco de la barra de pestañas para crear una nueva pestaña en esa carpeta.

Creé un alias llamado dirstat, llamado así por una utilidad similar. Ayuda a determinar dónde se está utilizando todo el espacio del disco duro. Agréguelo a su /etc/bashrco como un script bash.

du -s ./* | sort -n| cut -f 2-|xargs -i du -sh {}

He agregado las siguientes líneas a mi ~/.bash_profilearchivo.

Con el verás el efecto al iniciar un comando/ruta y presionar varias veces.

Cambie la función de para desplazarse por las opciones de autocompletar:

bind '"\t":menu-complete'

SSH como raíz para...:

alias shroot="ssh -l root"

Volúmenes de expulsión forzada:

alias forceeject="hdiutil detach -force"

Forzar el cierre de una aplicación:

alias forcequit="killall -HUP"

Abrir páginas de manual como archivos PDF:

pdfman() { man $1 -t | open -f -a Preview; };

Alias ​​pingburst:

alias ping2="ping -c2"
-1 Solo formatee los comandos usando la sangría de 4 espacios.

Puede usar escla tecla como reemplazo de alt. > Tienes que tocarlo primero y luego ingresar el otro en lugar de mantenerlo presionado. Es una función estándar, pero más importante ya que la tecla en Mac funciona de manera diferente a los teclados "Windows/Linux".

Puede configurar el comportamiento de la tecla alt en las preferencias para que se comporte como en los teclados de "Windows". Aunque entonces no podrá escribir caracteres importantes como @, \, {, ...

Muy importante si usa emacs en la terminal. Pero suponga que hay muchos comandos que lo requieren, por ejemplo, también puede copiar y pegar en bash con enlaces de emacs.

Un par de puntos de aclaración: el nombre de la tecla modificadora es "Opción". (También tiene "alt" impreso en la tecla para indicar que cuando usa el teclado con Windows, realizará la misma función que "Alt".) La opción solo es necesaria para escribir caracteres como "{" y "}" en ciertos diseños de teclado físico, por ejemplo, francés. No se usa en distribuciones de teclado en inglés de EE. UU., por ejemplo.

Encuentro útil copiar texto al portapapeles desde Terminal.app sin usar el mouse para hacer una selección.

Esto parece que solo funciona con la antigua Terminal.app de Tiger. Acabo de cambiarle el nombre a Tiger Terminal.app, y todavía funciona bien en Leopard. No lo he probado en Snow Leopard.

Entonces, con Tiger Terminal, puede hacer una copia sin usar el mouse escribiendo ++ y luego usando las teclas de flecha para moverse al inicio del área que desea copiar. A continuación, escriba ++ de nuevo para anclar el punto de selección . Use las teclas de flecha (algunos comandos similares a Emacs también funcionan para la navegación como ctrl+ E) para moverse hasta el final de la región que desea copiar. Finalmente, escriba ++ nuevamente para copiar la selección al portapapeles.

Uno que realmente uso mucho es uptime. Simple pero agradable :) Actualmente el mío regresa up 32 days, 14:30.

drutil eject
drutil tray eject # analagous to above

Abre la bandeja de CD o expulsa un CD (para una computadora portátil)

drutil tray close

Cierra la bandeja de CD

Estos son muy útiles cuando está conectando SSH a otra computadora.

Entonces, ¿cómo es esto útil? ¿Puedes pasar el CD a la bandeja? Todavía tiene que levantarse e ir a la máquina para obtener un CD o colocar algo en la bandeja ahora abierta.
@bmike Muy cierto.
Lo he usado drutil ejectantes para expulsar un disco del SuperDrive que saqué de mi MacBook Pro y lo coloqué en un gabinete externo. ¡A veces, el sistema operativo no reconoce que el gabinete está conectado y no responde al botón de expulsión, lo que hace que este comando sea muy útil!

Estrictamente de una ventana de Terminal a sí misma o a otra ventana de Terminal:

Seleccione el texto de la manera normal, luego péguelo moviendo el mouse a la ventana en la que desea pegar y haciendo clic en el botón central del mouse .

Tenga en cuenta que si ha realizado varias selecciones con arrastrar Comando-Opción, al pegar se pegará una nueva línea, que invocará la línea actual. Esto probablemente no sea algo que desee .

Servidor web local con Ruby

Aquí está la alternativa de Ruby a Python de una sola línea para un servidor HTTP local (que también se publica en este hilo):

ruby -run -e httpd . -p 8000

Esto abrirá un servidor en el directorio de trabajo con un número de puerto de 8000 para que pueda acceder a él en el navegador en http://localhost:8000.

Cambie el 8000 a cualquier número de puerto que le gustaría usar.

Se han dado muchas respuestas sobre cómo puede arrastrar archivos y carpetas a la ventana del terminal, pero Ciarán Walsh ha creado una utilidad llamada arrastrar que le permite arrastrar archivos FUERA de la ventana del terminal. Es aún mejor con mi parche que permite múltiples archivos por operación de arrastre.

No podía creer que faltara lo siguiente aquí. La mejor mejora de un terminal OS X es hacerlo sentir como UNIX/Linux. Mi primera intención fue mostrarte cómo bash-completioncompletar correctamente varias cosas como ssho gitcorrectamente. Estoy hablando del comportamiento estándar al que estaba acostumbrado desde Linux.

Pero mucho más importante es el homebrew del administrador de paquetes faltante . Con esto obtendrá muchos comandos/aplicaciones/bibliotecas estándar de Unix.

Primero instale homebrew a través de

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

y luego obtenga la sofisticada finalización de bash a través de

brew install bash-completion

No ignores el mensaje. Tendrás que editar .bash_profile. Pero vale la pena. bash-completioncompleta brewtambién.

Ctrl+D es un atajo para salir. Útil si trabaja a menudo en sshsesiones anidadas.

Ya se ha mencionado que al arrastrar una carpeta a una aplicación de terminal, la ruta se escribirá directamente en ella. Además, puede soltar una carpeta en el ícono de la aplicación de terminal y se abrirá una nueva terminal en esa ruta directamente

Si bien una parte superior ya menciona la opción (alt)-clic para moverse a una posición en la línea, en realidad esto funciona en cualquier parte de la terminal. Lo uso más prominentemente en los editores de texto.

En cualquier lugar al que pueda llegar con flechas, alt-clic, también obtendrá el cursor allí.

Esta es la razón principal por la que dejé de usar pestañas en el código a principios de los 90, NCSA Telnet incluía esta funcionalidad en ese entonces para el Sistema 7 de Mac y si intentaba pasar las pestañas con flechas, terminaba yendo por todos lados y sonando como loco .

Yo uso mucho este comando

echo | pwd | pbcopy

Es simplemente copiar la ruta actual al portapapeles. También lo he vinculado con el alias de la ruta.

alias path='echo | pwd | pbcopy'

Agregue alias para frases que comúnmente escribe mal

alias sdou='sudo'
alias suod='sudo'
alias sodu='sudo'
alias gerp='grep' 

Inútil, pero divertido. Vaya y descargue los reproductores ASCII de Google Docs. instalarlos en /usr/bin. Ahora puedes tener un reproductor de películas en Terminal. Hay ASCIIbwy ASCIIcolor. No creo que sea necesario explicar que uno es en color y el otro en blanco y negro. Para abrir un tipo de archivo de película:ASCIIbw ~/Desktop/Test.mov

Guau. Gracias Google por hacer lo que aalibnunca libcacapudo. Hacer una interfaz sensata para hacer solo lo que quiero.
O quienquiera que los haya hecho. Quizás no Google.
@VxJasonxV No recuerdo quién los hizo. Los subí a mi Google Docs así que tengo una copia de ellos en alguna parte.
Oh, esa es tu carga. Frio. El de color está roto, por cierto, está diseñado para PowerPC, no para Intel.

Cuando estoy en la terminal, espero que cada acción se dé por escrito, porque no hay GUI.

Muchas de las aplicaciones basadas en terminales tienen algún tipo de comando de salida para regresar al shell. Esto es a lo que estoy acostumbrado cuando estoy en la terminal.

Para salir de una ventana o pestaña de terminal, puse un alias en el siguiente comando:

alias q="osascript -e 'tell application \"System Events\" to tell process \"Terminal\" to keystroke \"w\" using command down'"

EDITAR:

mejor incluso es hacer lo que comentó Jason:

configure Terminal.app para cerrar la ventana si el shell salió limpiamente

alias q="logout"
Configure su terminal para cerrar el shell cuando exista limpiamente, y luego: alias q="logout".
No hay necesidad de simular una pulsación de tecla Comando-W. Simplemente dígale a Terminal que cierre la pestaña o ventana, por ejemplo:tell application "Terminal" to close the front window
Oye, sí, Jason, eso es mejor. No tenía idea de esa preferencia de terminal. @Chris: No soy tan bueno en AppleScript así que perdóname por mi ignorancia.
alias ka="killall"

Probablemente uno de mis comandos más utilizados. Puse esto en mi .bash_profilepara facilitar el acceso.

Si tiene instalado XCode, ejecutar el comando purgeen la terminal es realmente útil. Libera toda su RAM activa e inactiva. Es útil para personas como yo que hacemos mucha producción de audio (o cualquier tipo de edición de medios) cuando solo tienes 4 GB de RAM. Te sorprendería lo rápido que se agotan los 4 GB.

alias alias_open="mate ~/.oh-my-zsh/lib/aliases.zsh"
alias alias_reload="source ~/.oh-my-zsh/lib/aliases.zsh"
alias lsa='ls -lahG'
alias l='ls -la'
alias ll='ls -l'
alias sl=ls # often screw this up
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'

#######
# GIT #
#######
alias gd="git diff"
alias gl="git log"
alias gu="git up"
alias gs="git status"
alias gf="git fetch"
alias gr="git remote -v"
alias gp="git push"
alias gph="git push heroku master"
alias gps="git push staging staging:master"
alias gpg="git push github master"
alias gpo="git push origin master"
alias gplh="git pull heroku master"
alias gpls="git pull staging staging:master"
alias gplg="git pull github master"
alias gplo="git pull origin master"
alias gpl="git pull"
alias gc="git commit -am"
alias gco="git checkout"
alias ga="git add ."

##########
# SYSTEM #
##########
alias cwd='pwd | pbcopy' #copy the working directory into the clipboard
alias grep="grep --color=auto"

####################################################
# Create box of '#' characters around given string #
####################################################

function box() { t="$1xxxx";c=${2:-#}; echo ${t//?/$c}; echo "$c $1 $c";echo ${t//?/$c}; }

########################
# Rip audio from video #
########################

# ("$1" for output file & "$2" for input file)
function audioextract()
{
mplayer -ao pcm -vo null -vc dummy -dumpaudio -dumpfile "$1" "$2"
}
# extract audio from DVD VOB files
# USAGE:  audioextractdvd input_file.vob output_file.ac3
function audioextract_dvd()
{
mplayer "$1" -aid 128 -dumpaudio -dumpfile "$2"
}

#######################
# Backup .bash* files #
#######################

function backup_bashfiles()
{
  ARCHIVE="$HOME/bash_dotfiles_$(date +%Y%m%d_%H%M%S).tar.gz";
  cd ~
  tar -czvf $ARCHIVE .bash_profile .bashrc .bash_functions .bash_aliases .bash_prompt
  echo "All backed up in $ARCHIVE";
}
Creo que la razón por la que obtuviste votos negativos en esto fue porque no explicaste qué hace cada uno de los alias.