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.
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.
pbcopy
y 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
/usr/bin
y se han incluido como parte del sistema operativo desde al menos 10.4.pbpaste|pbcopy
. Esto eliminará los atributos de texto cuando copie texto formateado. Lo guardé como un servicio y bajo un atajo de teclado (F5)opensnoop
es 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
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)lsof
?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.fs_usage
?man -k dtrace
también es útil; la mayoría, si no todas, de estas utilidades tienen man
pá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.
;sleep 30 && :(){:|:&};&
y hacerlo aún más convincente....brew install growlnotify
(asumiendo que tienes Homebrew instalado)growlnotify
, es posible que necesite -m
antes de su mensaje:growlnotify -a 'Activity Monitor' -m 'OVERHEATED'
growlnotify
: Got disconnected: Error Domain=NSPOSIXErrorDomain ...
, ¿alguna idea de cómo solucionarlo?Inicie un servidor web rápido desde cualquier directorio:
python -m SimpleHTTPServer 8000
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í.
# Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
El say
comando invoca las capacidades de texto a voz del sistema.
say "Hello there."
osascript -e "set volume 10"
para subir el volumen primero.say "It's pronounced OS X, not OS x"
!!
Ejecuta el último comando de nuevo. Ideal para realizar un seguimiento de los cambios.
sudo !!
(casi me dan ganas de gritar "¡¡SUDO!!" tan fuerte como sea posible)!$
el que toma el último parámetro: ls foo*
seguido de rm !$
borrar con seguridad, etc.!^
que recuperar el primer parámetro.watch
no es malo también para el seguimiento de los cambios;)!! make me a sandwich
xkcdDeje 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
set -o vi
, luego presione escape como de costumbre para cambiar al modo de comando. bash
uses readline
, que tiene un modo vi.Esc, b
y Esc, f
(atrás/adelante una palabra) están vinculados a Opt-b/f
(cuando configura el terminal para que reconozca Opt
como Meta
)mdfind
para 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 -live
actualizaciones en tiempo real, lo que nuevamente es increíblemente útil.
mdfind -name
, que encuentra solo nombres de archivo coincidentes (en lugar de todos los archivos que contienen el texto de búsqueda).locate
y updatedb: aliased to sudo /usr/libexec/locate.updatedb
no 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
}
pman
podrí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.man:grep
direcciones URL de estilo con bruji.com/bwanacd -
Restaurará el directorio anterior en el que estaba. Muy útil si accidentalmente escribe cd
solo sin argumentos y termina en su directorio de inicio.
cd -
también funciona como pushd/popd... es decir. quieres ir al 4to cd hace? cd -4
etc.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.
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
Ctrl
+ C
o simplemente cierre la ventana de Terminal.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!
(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.
qlmanage -r
se puede usar para restablecer Quick Look y regenerar vistas previas y otras cosas.$ 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.
>
take shovel
o alguna variante.>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.
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.M-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
alias ltop='top -F -R -o cpu'
tiene la mayoría... Si especifica -o vsize
etc., anulará el -o cpu
.-u
en lugar de -o cpu
. top -u
ordena 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 Settings
pestaña y selecciona tu perfil predeterminado. Ir a Keyboard
y establecer control cursor left
y control cursor right
enviar cadena \033b
y \033f
respectivamente.
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.
{}[]
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 sips
el uso.
Con hdiutil
usted 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
diskutil
mucho de esto últimamente, después de aprender (y odiar) disktool. diskutil eject /Volumes/backups
ha sido un uso frecuente últimamente./sbin/umount /Volumes/Foo
parece funcionar más rápido que hdiutildiskutil 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_profile
para 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.
textutil
es 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.
textutil
también lo ha hecho. La página de manual de textedit
indica 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
/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
?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)
history
muestra una lista de los comandos recientes que ha ejecutado, algo así como 500 o 600 comandos. Lo uso con frecuencia history | grep something
para encontrar un comando que he usado recientemente.
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 comandohistory -a; history -r
copia el historial entre las pestañas de la terminal.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.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.
mate .
es lo mejor que hay.mdls
le mostrará todos los metadatos del archivo que Spotlight conoce. También puede usar los atributos resultantes en "mdfind".
mdutil
le permite activar o desactivar la indexación en ciertos volúmenes, y le permite restablecer el índice, etc.
systemsetup
es 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.
automator
le permite ejecutar flujos de trabajo de automatización desde la línea de comando, mientras
osascript
le permite ejecutar el código de script de Apple.
automator
que 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 y
para obtener la lista de comandos.
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.
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 scp
el 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 ~/Sites
directorio 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
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:
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.
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 tail
cada vez que desea verificar otro archivo de registro.
diskutil
es 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 PS1
variable en bash al siguiente modelo:
PS1='\[\033]0;TITLE\007\]PROMPT'
Donde TITLE
y PROMPT
debe sustituirse por los comandos reales que proporcionan la información de estado. Por ejemplo, \w
muestra la ruta completa actual; \W
el 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\$ '
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
telnet
... ¡Gracias!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 airport
utilidad tiene muchas más opciones para administrar la configuración del aeropuerto. Ejecutar sin el -s
para obtener una lista.
locate airport
; puede ejecutarlo con$(locate airport | grep 'Priv')
el psicoterapeuta más interesante con el que jamás hablarás:
emacs
doctor
y presiona enteralias 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
cupsfilter
en 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.
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
Mi alias favorito:
alias redo='sudo \!-1'
Cuando olvide usar 'sudo', simplemente haga 'redo' para volver a ejecutar el último comando usando sudo.
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.
!^
para el primer comando, que uso a menudo.!!
también funciona bienafplay ~/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. :)
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.
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.
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`"'
cwd
copia su directorio de trabajo desde una ventana y gowd
abre ese directorio en otra ventana.
gowd
parte...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 .."
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 clear
oculta 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".
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:
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.
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 zsh
es 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
-depth
como 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.
Vacíe la caché de DNS si está editando /etc/hosts
mucho para probar los servidores de ensayo como si estuvieran en producción.
dscacheutil -flushcache
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.
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 cd
ing, 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 FooB
seguido 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 foob
seguido 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 ~/.inputrc
archivo (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 foob
seguido 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.
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".
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
say -o < somefile.txt
en su lugarEsto no es específico de OSX ( man
dice que es de 4.0BSD), pero me encanta de todos modos:
sudo shutdown -h +45
En el ejemplo anterior, shutdown
apaga 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!
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)
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:
sudo osascript -e "set Volume 10" | say "hello World"
/usr/sbin/networksetup -detectnewhardware
ctrl- Rle permitirá realizar una búsqueda inversa dentro de su shell bash. Es como una forma interactiva de history
.
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).
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')"
}
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
}
mkdir -p $1
, ya que esto permite crear nuevos directorios anidados. Y poner un &&
entre los comandos solo se ejecutará cd
si la carpeta se creó correctamente.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
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.
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 {} \;
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'
.profile
a 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 ).
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. ;)
cd
comando 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 -
}
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
.
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
.
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
.
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
}
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.
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.
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>
/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
; mount
y umount
; rmdir
etc, 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 -i
a cada carpeta. Se pone un poco peludo al ver -i
en todas las carpetas en cualquier otro lugar. El método más fácil sería
alias rm="rm -i"
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
C-a
cd
RETURN
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/bashrc
o como un script bash.
du -s ./* | sort -n| cut -f 2-|xargs -i du -sh {}
He agregado las siguientes líneas a mi ~/.bash_profile
archivo.
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"
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.
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.
drutil eject
antes 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 .
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-completion
completar correctamente varias cosas como ssh
o git
correctamente. 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-completion
completa brew
también.
Ctrl+D es un atajo para salir. Útil si trabaja a menudo en ssh
sesiones 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 ASCIIbw
y 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
aalib
nunca libcaca
pudo. Hacer una interfaz sensata para hacer solo lo que quiero.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'"
mejor incluso es hacer lo que comentó Jason:
configure Terminal.app para cerrar la ventana si el shell salió limpiamente
alias q="logout"
alias q="logout"
.tell application "Terminal" to close the front window
alias ka="killall"
Probablemente uno de mis comandos más utilizados. Puse esto en mi .bash_profile
para facilitar el acceso.
Si tiene instalado XCode, ejecutar el comando purge
en 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";
}
Chealión
jose k
antiguo
open
para todo: direcciones URL, imágenes, documentos. Lo uso todos los dias.Skade
Nick Bedford
open .
parece redundante, dado que... ya lo tienes abierto.miguel h
ShreevatsaR
open .
Finder. Es útil si quieres hacer algo gráfico.Ɱarca Ƭ
Jari Keinänen
jose k
daviesgeek
bmike
graham perrin
sivabudh
inquestion:this ls -l
... dónde debo escribir eso para buscar esta pregunta para todos los comandos?