it-swarm-es.com

¿Cuáles son los comandos de línea de comandos útiles en Mac OS X?

Según los hilos Windows y Linux , ¿qué comandos encuentra más útiles en Mac OS X Server (o Cliente)?

58
username
say "some text"

Famoso para hacer que la gente regrese a sus apartamentos , say toma sus argumentos y los lee en voz alta a través del dispositivo de salida de audio.

28
Tim

pbpaste y pbcopy para interactuar con el portapapeles (también conocido como portapapeles).

Ejemplos:

# copies the directory listing
ls -l | pbcopy

# get pasteboard lines containing foo and save them in a_file
pbpaste | grep foo > a_file

Creo que usan la codificación macroman de manera predeterminada, por lo que si desea UTF-8 (que es lo que hace) debe consultar estos enlaces:

23
kch
fs_usage

Le permite monitorear la actividad del sistema de archivos. Útil si desea ver qué archivos crea alguna aplicación. Ver http://rentzsch.com/macosx/fs_usageIntro para más explicaciones.

19
username
open .

Abre una ventana del Finder en el directorio de trabajo actual.

17
richardhoskins

Desde la línea de comandos, me gusta tener la capacidad de:

Cree y grabe un CD/DVD "universal":

 $ mkisofs -allow-multidot -allow-Leading-dots -d -hide-rr-moved\
 - l -joliet-long -R -T -v\
 - V VOLUME_NAME -o output.iso root-cd-dir /[.____.font>$ hdiutil burn -noverifyburn output.iso 

Cree una imagen ISO desde un CD/DVD:

 $ diskutil unmountDisk /dev/disk2s0[.____.font>$ dd if =/dev/disk2s0 of = cdname.iso bs = 32m 

Poder olvidar el comando otool cuando estoy buscando ldd:

 $ alias ldd = 'printf "Enviando comando a \'\'' otool -L\'\' '-\n" && otool -L' 

Montar una imagen de disco desde la línea de comando:

 $ hdid diskimage.dmg (o .iso) 

Utilice la vista previa para acceder a una página de manual:

 $ man -t rsync | open -f -a /Applications/Preview.app
13
Gary Chambers

La utilidad CLI 'aeropuerto' es mi favorita. Ver http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/ . Le mostrará detalles como el nivel de señal, el nivel de ruido y el BSSID del AP al que está asociado.

12
Jason Luther
drutil tray open

Invaluable (sobre ssh) cuando no hay un teclado conectado ya que el botón de expulsión en Apple unidades ópticas no es accesible desde fuera de la carcasa.

11
James
ipconfig getpacket en0

Muestra la configuración de red para la interfaz Ethernet primaria (en0).

Si está acostumbrado a Windows y piensa que "ipconfig" está roto, no lo está ;-) Solo necesita agregar un par de argumentos

11
username

No se puede decir lo suficiente, "abierto" es genial. Puede abrir documentos en su programa GUI y también puede seleccionar el programa GUI con -a. Por ejemplo,

open -a vlc movie.avi

abrirá VLC y le dirá que cargue movie.avi en su directorio actual.

open movie.avi

lo abriría con cualquier programa que sea el predeterminado. Si solo desea abrir un programa, también puede hacerlo:

open -a system\ preferences

ejecutará las Preferencias del sistema. También puedes abrir Urls:

open vnc://myserver:5900

abrirá Compartir pantalla y se conectará a myserver.

Revisa

man open

para ver todas las banderas que puedes usar.

11
w00t
softwareupdate

Actualice su mac desde la CLI.

10
dvoita
networksetup

Configure todo lo que encuentre en el Panel de preferencias de red en Preferencias del sistema en la línea de comandos. Hace que escribir guiones o hacer cosas de forma remota mucho sea más fácil.

9
Chealion
Sudo changeip -checkhostname

Comprueba que la resolución de DNS directa e inversa es correcta y, a menudo, le muestra el comando que puede usar para solucionar el problema. Si dice "los nombres coinciden, no hay nada que cambiar", estás en buena forma. Vital si alguna vez cambia la configuración de red de su servidor. También es importante usar esto antes de promocionar su servidor a Open Directory Master.

8
username
dscacheutil -flushcache

Me encuentro usando ese montón para vaciar el caché DNS, en 10.5+.

8
Bruce McLeod
ping 224.0.0.1

Ping todos dispositivos en su subred

7
username
srm

Versión de línea de comando para eliminación segura.

7
Jauder Ho
last

muestra quién inició sesión en un sistema, cuánto tiempo lo utilizó y cuándo se reinició el sistema.

Aquí hay una muestra de la salida:

clinton   ttys000                   Thu May 28 22:33   still logged in
clinton   console                   Thu May 28 08:05   still logged in
reboot    ~                         Thu May 28 08:05 
shutdown  ~                         Wed May 27 20:15 
clinton   console                   Wed May 27 17:33 - 20:15  (02:42)
...

wtmp begins Thu May 14 09:26 
7
Clinton Blackmore
 lsof

lista de archivos abiertos

Es útil cuando desea expulsar su unidad USB y se le dice que está en uso y que cierre todas las aplicaciones e intente nuevamente.

$ Sudo lsof /Volumes/CLINTON
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    55966 clinton  cwd    DIR  14,12    16384    2 /Volumes/CLINTON
lsof    56042    root  cwd    DIR  14,12    16384    2 /Volumes/CLINTON
lsof    56043    root  cwd    DIR  14,12    16384    2 /Volumes/CLINTON

En este caso, tenía cded en el disco y entonces bash estaba accediendo al volumen.

Tenga en cuenta que si ve entradas 'mds', significa que Spotlight está indexando la unidad.

7
Clinton Blackmore

La guía Administración de línea de comandos publicada por Apple es invaluable.

Buscar en Google "mac de administración de línea de comandos" da buenos resultados.

Administración de línea de comandos para Mac OS X 10.5 , 10.4 y 10. .

Otras guías útiles están en http://www.Apple.com/server/macosx/resources/ .

7
Clinton Blackmore
osascript -e 'tell application "AppName" to quit'

Le permite salir de una aplicación desde Shell.

osascript -e 'tell application "Finder" to sleep'

Útil última línea de una secuencia de comandos de Shell larga, pone a Mac en suspensión cuando se completa la secuencia de comandos. Lo tengo alias a iSleep.

pbpaste | script.sh |pbcopy

toma el contenido del cartón (editar-> copiar) y lo canaliza a script.sh. Los resultados se colocan en el tablero para que los edite-> pegue en un documento.

6
sal

http://www.commandlinefu.com

Si bien no es específicamente un recurso de Mac, está utilizando el ícono de la Terminal, y la mayoría de la lista de comandos realmente útiles funcionará.

6
Clinton Blackmore
mcxquery

esto le permitirá ver qué tipo de configuración de MCX (cliente administrado) se aplica a una máquina cliente.

[El equivalente de la GUI es ir a System Profiler y, en la sección Software, hacer clic en "Cliente administrado"].

Es útil determinar si una máquina está administrada y ver si está obteniendo la configuración que espera.

5
Clinton Blackmore
sw_vers

Muestra la versión instalada actualmente y la compilación de Mac OS X.

5
username
df -h

Para verificar cuánto espacio en disco tengo actualmente en todo el disco.

4
hendrasaputra
opendiff file1 file2

Se ejecuta FileMerge (un gráfico diff que viene con Apple Herramientas para desarrolladores) en file1 y file2.

4
las3rjock
dns-sd -B _ssh
dns-sd -B _rfb
dns-sd -B _services._dns-sd._udp

Listado de servidores de publicidad en Bonjour. La última sugerencia enumera los tipos de servicio que puede enumerar. La lista está en vivo, presione Ctrl-C cuando haya visto suficiente.

El mismo comando viene en Linuxes recientes y en Bonjour SDK para Windows.

4
James
system_profiler

Le da los mismos resultados que obtiene cuando elige Acerca de esta Mac -> Más información, solo en la línea de comandos.

Corriendo

system_profiler -usage

o mirando la página del manual le dará consejos sobre cómo usarlo.

Un par de ejemplos:

system_profiler -xml > MySystem.spx
# and later,
open MySystem.spx  # or just double click on it in the Finder

esto volcará el perfil del sistema a un archivo que se puede ver más adelante en una máquina diferente.

system_profiler SPUSBDataType

Le informa acerca de todos sus dispositivos USB (incluidos sus ID de proveedor y producto, que pueden ayudarlo a rastrear los controladores).

system_profiler SPUSBDataType | grep "Product ID" -c

le dirá cuántos dispositivos USB están conectados (incluidos los dispositivos USB internos), lo cual es útil para ver si la computadora ve un dispositivo (o, si, por ejemplo, Parallel lo ha agarrado o está muerto). [Tenga en cuenta que en el Aplicación System Profiler GUI, puede elegir Ver -> Actualizar en el menú para actualizar la lista; eso puede ser más fácil]

system_profiler SPHardwareDataType

obtendrá información básica del hardware (útil para el seguimiento de activos) y

system_profiler SPHardwareDataType | grep Serial

le dará el número de serie de la máquina.

4
Clinton Blackmore
Sudo opensnoop

en Leopard y versiones posteriores, informa qué procesa los archivos abiertos, con éxito o no. Puede pedirle que mire todos los archivos que se están abriendo en el sistema, mediante un proceso específico, o si algún proceso está abriendo un archivo determinado, con diferentes tipos de marcas de tiempo, y que muestre si se producen errores.

Aquí hay algunos detalles más:

opensnoop es un script dtrace ; Hay muchos otros en/usr/bin que analizan cosas como qué sistema realiza un proceso, qué procesos está creando y qué E/S está haciendo. Correr apropos DTrace para obtener una lista, y mire las páginas del manual para más detalles.


Me enteré de opensnoop cuando luchaba por diagnosticar por qué un Comic Life Magiq 1.1 estaba fallando en OS 10.5.8 para usuarios con cuentas de red.

Corrí (varias veces, en diferentes cuentas, a través de ssh):

Sudo opensnoop -e -n Comic > output.txt

El último archivo abierto por los usuarios de la red fue algo así (con una ruta completa):

/Network/Servers/.../username/Library/Icons/WebpageIcons.db

lo que me recordó que Safari 5.0 se estaba bloqueando para los usuarios de la red, y lo solucionamos gestionando una preferencia para no almacenar en caché los favicons o redirigiendo un archivo. Apple aparentemente solucionó el problema en Safari 5.0.1, y cuando actualicé a Safari 5.0.2 ayer, solucionó el bloqueo para los usuarios de Comic Life Magiq.

4
Clinton Blackmore
ifconfig en0 ether 00:00:00:00:00:00

Cambia (falsifica) la dirección MAC hasta el próximo reinicio

4
username

Verdaderamente Mac solamente: vi 'abierto'. arriba, pero abrir abrirá cualquier documento o aplicación que le pase.

Unix genérico que más uso: Sudo es bastante útil para cambiar los archivos de configuración del sistema, etc., que en realidad edito en vi.

no se puede exagerar kill cuando algo se cuelga (o cuando otro usuario todavía está conectado a mi escritorio en segundo plano y quiero cerrar sesión, desagradable, lo sé, pero es mi escritorio)

ssh/scp: me encanta que en OSX pueda abrir un terminal y conectarme a cualquiera de nuestros servidores. Eso solo me hizo feliz de dejar caer Windows.

ifconfig/ping/whois/nmap, etc.

3
Alex

scutil --dns

Mostrará el pedido de resolución DNS. Útil para cuando crea o depura la configuración de su red.

3
romant
lsof -i 

enumera los puertos de Internet que están abiertos. Salida de muestra:

COMMAND     PID    USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
SystemUIS   223 clinton   11u  IPv4 0x3e21b08      0t0  UDP *:*
ARDAgent    262 clinton   16u  IPv4 0x3e21be0      0t0  UDP *:net-assistant
ARDAgent    262 clinton   18u  IPv4 0x5f01a68      0t0  TCP *:net-assistant (LISTEN)
AppleVNCS   263 clinton    4u  IPv6 0x3e274bc      0t0  TCP *:vnc-server (LISTEN)
Opera     48365 clinton   20u  IPv4 0x5f01e64      0t0  TCP WTD-Staff-BlackmoreC:57094->stackoverflow.com:http (ESTABLISHED)
Opera     48365 clinton   23u  IPv4 0x5b12a68      0t0  TCP WTD-Staff-BlackmoreC:57095->stackoverflow.com:http (ESTABLISHED)

Utilice Sudo si desea que todos los usuarios abran los puertos y las banderas -n y -P deshabilitará la resolución de nombres y los nombres de puerto y le dará números en su lugar.

3
Clinton Blackmore
Sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent

Inicia el servicio de Escritorio remoto (útil si solo tiene acceso SSH pero quiere hacer algo usando la GUI en su Mac cliente). Para obtener más opciones, consulte: http://support.Apple.com/kb/HT237

3
username
drutil eject

expulsará un CD.

3
Clinton Blackmore

Si desea saber qué tipo de terminaciones de línea tiene un archivo, simplemente ejecute

file /path/to/your-file

ex:

$ file imports/sample-students.txt 
imports/sample-students.txt: ASCII text, with CR line terminators
3
Clinton Blackmore

Un poco peatonal para esta audiencia, sin duda, pero uso:

captura de pantalla -i -c

para tomar lo que quiera de la pantalla Es realmente útil y hace cosas que Grab no me permite tomar.

2
Dave

Obtenga un root Shell sin habilitar al usuario root (como Apple sí mismo requiere a veces en sus documentos para hacer algunas cosas "geek", es decir, configurar todo el sistema idioma)

Sudo bash

Esto le proporciona un Shell raíz donde puede hacer todo lo que quiera como root, sin tener que anteponer cada comando con el comando Sudo.

Esto puede ser peligroso, pero somos administradores de sistemas, sabemos lo que estamos haciendo, ¿no? :)

2
drAlberT

Además de los sospechosos habituales de Unix, encuentro útil lo siguiente:

  • dsconfigad: edita la configuración de Active Directory y vincula una computadora

  • valores predeterminados - Editar preferencias

  • plutil - Convierte plist ay desde el texto

  • softwareupdate: ejecute Actualización de software desde la línea de comandos

  • instalador: instala paquetes desde la línea de comandos

  • configuración de red: configure y obtenga varias cosas, como el nombre de la computadora

Si domina esas y las cosas habituales de Unix, tiene todo lo que necesita para la administración de Mac desde la línea de comandos.

2
Honestpuck

Cómo habilitar Time Machine para hacer una copia de seguridad en un NAS.

defaults write com.Apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Encuentra la dirección MAC

ifconfig en0 | grep ether | sed s/://g | sed s/ether//

Comando para crear sparsebundle para copiar en NAS

Sudo hdiutil create -nospotlight -library SPUD -size 160g -fs "Case-sensitive Journaled HFS+" -type SPARSEBUNDLE -volname "<VOLNAME>" ./<HOSTNAME>_<MAC_ADDRESS>.sparsebundle

Funciona como encanto respaldando a mi ReadyNAS.

2
Jauder Ho

Es una herramienta gratuita de terceros, pero

edit

es muy útil. Es una herramienta de línea de comandos que puede instalar opcionalmente la primera vez que ejecuta TextWrangler . [Es probable que otros editores de texto (BBEdit, TextMate) proporcionen algo análogo].

edit path/to/somefile

Abre el archivo en TextWrangler y le permitirá autenticarse si normalmente no tiene permiso para editarlo. (Incluso puede hacerlo desde una sesión ssh, y lo abrirá para el usuario gráfico conectado).

Mejor aún es que puedes canalizarle cosas.

lsof -i | edit

por ejemplo, le mostrará sus conexiones de red abiertas y las abrirá en TextWrangler, donde puede buscar (y desplazarse) a través de ellas fácilmente.

2

Esta pregunta se superpone bastante con esta sobre herramientas sin las que un administrador de UNIX no puede vivir . Muchas de las herramientas de línea de comandos para Mac OS X tienen raíces UNIX, como df, du y which; sin embargo, hay excepciones notables que no tienen equivalentes obvios de UNIX, como osascript, open, pbcopy, pbpaste y say.

2
las3rjock

killall -9 appname force cierra una aplicación. Bastante útil si no puede ingresar al Monitor de actividad.

2
al.

ipconfig a veces es útil:

Obtener la dirección IP actual en la interfaz:

$ ipconfig getifaddr en1
10.110.2.25

Obtención de la información de DHCP que se recibió por última vez:

$ ipconfig getpacket en1
op = BOOTREPLY
htype = 1
flags = 0
hlen = 6
Hops = 0
xid = 143857879
secs = 0
ciaddr = 0.0.0.0
yiaddr = 10.110.2.25
siaddr = 0.0.0.0
giaddr = 0.0.0.0
chaddr = 00:aa:bb:cc:dd:ee
sname = 
file = 
options:
Options count is 7
dhcp_message_type (uint8): ACK 0x5
server_identifier (ip): 1.1.1.1
lease_time (uint32): 0xe10
router (ip_mult): {10.110.0.1}
domain_name_server (ip_mult): {1.1.1.1, 1.1.1.2}
subnet_mask (ip): 255.255.252.0
end (none): 
2
dexedrine
ifconfig | grep cast

es excelente para obtener su dirección IP, y

ifconfig en1 | grep eth

funciona bien para obtener una dirección MAC. El uso de en1 obtendrá (casi siempre) la dirección MAC del aeropuerto, lo cual es útil si solo se permiten dispositivos conocidos en su red inalámbrica. Por el contrario, si usa en0, el puerto ethernet incorporado, puede buscar la máquina en su Open Directory, así:

ldapsearch -x -h odm -b "cn=computers,dc=odm,dc=pretendoco,dc=com" "macAddress=00:0d:93:b5:82:88"

(Asumiendo que su servidor era 'odm' y el reino es ODM.PRETENDCO.COM).

2
Clinton Blackmore

Me acabo de enterar de que hay una ingeniosa construcción bash que puedes usar en lugar del comando seq que falta en Mac OS:

echo { 18..21 }
2
geewiz
sqlite3 foo.db

Inicia una sesión interactiva SQLite . Si foo.db no existe, se creará.

1
richardhoskins

du -d 1 -h

Muestra estadísticas de uso del disco para el directorio actual en forma legible por humanos.

hombre [comando]

Uno de los comandos más utilizados. Te dice cómo usar todo lo demás.

1
Peter Hoven

Las cosas específicas de OS X que no he visto mencionar:

mdfind utiliza los índices de búsqueda de Spotlight desde la línea de comandos, por lo que puede realizar búsquedas de texto completo sin utilizar el menú desplegable Buscar.

networksetup - te mostrará toda la sintaxis loca que admite; Este es el equivalente de la línea de comandos del panel de preferencias Red.

Sudo launchctl list: muestra los trabajos de launchctl en ejecución. recuerda launchctl stop X.XX.X simplemente 'detendrá' (matará) la instancia actualmente en ejecución de un proceso persistente; para que realmente deje de funcionar use launchctl unload /System/Library/LaunchDaemons/X.XX.X.plist.

1
eric sorenson
Sudo slapconfig -destroyldapserver

Forzar la degradación de una réplica LDAP a independiente. Si su Open Directory Master está mal configurado, algunas veces tratar de degradar una réplica de Open Directory usando Server Admin fallará (por ejemplo: puede encontrar que su servidor Replica se niega a degradar). Puede usar slapconfig para forzarlo a degradar en estas ocasiones.

1
username
 which program

buscó la ruta del programa y le indica qué ejecutable se invoca si ejecuta el programa sin especificar una ruta completa.

Por lo general, es más útil como una forma abreviada para escribir una ruta.

$ which python
/usr/bin/python
$ ls -l `which python`
lrwxr-xr-x  1 root  wheel  72 30 Jan 22:56 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python
1
Clinton Blackmore

¿Alguna vez quisiste saber cuál es la dirección IP de otra Mac que puedes ver en el Finder en tu LAN gracias a Bonjour?

dscacheutil -q Host -a name OtherMac.local

dscacheutil es sorprendentemente útil y versátil. Puede hacer mucho más con eso que simplemente vaciar el caché de DNS (como se menciona en otro lugar aquí), es decir, búsquedas de usuarios y estadísticas y volcados de caché.

1
Joe Carroll

¿Qué licencias de DHCP tiene el cliente?

Sudo ls -lt /private/var/db/dhcpclient/leases

Liste el firewall permitido/denegado:

Sudo ipfw list

Genere una contraseña de alta entropía (haga doble clic en una cadena prometedora de 16 caracteres para copiar/pegar):

head -c90 /dev/random | uuencode -m pwd | hexdump -C
1
Charles Stewart

Estos son básicos, pero útiles si tiene amnesia:

¿Quién soy?

id

Donde estoy parado

pwd

¿Qué edificio soy yo?

hostname

¿Cuál es su dirección?

ifconfig |grep inet
1
username

Quizás no sea el comando más "útil" pero say es bastante divertido.

Por ejemplo say I love serverfault para que lea lo que escribe después de "decir".

0
HostBits
locate "foo"

Muestra cualquier archivo en su sistema con "foo" en su nombre de archivo. Debo usar esto casi tan a menudo como uso Spotlight.

0
username
 Sudo reboot

reinicia la computadora.

0
Clinton Blackmore