De acordo com os segmentos Windows e Linux , quais comandos você considera mais úteis em Mac OS X Server (ou Cliente)?
say "some text"
Usado de maneira famosa para levar as pessoas de volta para seus apartamentos , say
pega seus argumentos e os lê em voz alta através do dispositivo de saída de áudio.
pbpaste
e pbcopy
para interagir com a área de transferência (também conhecida como área de transferência).
Exemplos:
# copies the directory listing
ls -l | pbcopy
# get pasteboard lines containing foo and save them in a_file
pbpaste | grep foo > a_file
Eu acho que eles usam a codificação macroman, por isso, se você quiser UTF-8 (o que você faz), verifique estes links:
fs_usage
Permite monitorar a atividade do sistema de arquivos. Prático, se você quiser ver quais arquivos um aplicativo cria. Consulte http://rentzsch.com/macosx/fs_usageIntro para obter mais explicações.
open .
Abre uma janela do Finder no diretório de trabalho atual.
Na linha de comando, eu gosto de ter a capacidade de:
Crie e grave um CD/DVD "universal":
$ mkisofs -allow-multidot -owow-pontos-principais -d -hide-rr-moveu\ - l -joliet-long -R -T -v\ - V VOLUME_NAME -o output.iso root-cd-dir /[.____.ξ $$$ hdiutil burn -noverifyburn output.iso
Crie uma imagem ISO a partir de um CD/DVD:
$ diskutil unmountDisk /dev/disk2s0[.____.ξ $$$ dd se =/dev/disk2s0 de = cdname.iso bs = 32m
Ser capaz de esquecer o comando otool quando estou procurando o ldd:
$ alias ldd = 'printf "Enviando comando para \'\'' otool -L\'\' '-\n" && otool -L'
Monte uma imagem de disco na linha de comando:
$ hdid diskimage.dmg (ou .iso)
Use a visualização para acessar uma página de manual:
$ man -t rsync | abra -f -a /Applications/Preview.app
O utilitário CLI 'airport' é o meu favorito. Consulte http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/ . Ele mostrará detalhes como o nível do sinal, o nível de ruído e o BSSID do AP ao qual você está associado.
drutil tray open
Inestimável (acima do ssh) quando não há teclado conectado, pois o botão de ejeção de Apple não está acessível fora do gabinete).
ipconfig getpacket en0
Exibe a configuração de rede para a interface Ethernet primária (en0).
Se você está acostumado ao Windows e acha que "ipconfig" está quebrado - não está ;-) Você só precisa adicionar alguns argumentos
Não se pode dizer o suficiente, "aberto" é ótimo. Você pode abrir documentos em seu programa GUI e também pode selecionar o programa GUI com -a. Por exemplo,
open -a vlc movie.avi
irá abrir o VLC e pedir para carregar o movie.avi no seu diretório atual.
open movie.avi
abriria com qualquer programa que seja o padrão. Se você deseja apenas abrir um programa, também pode fazer isso:
open -a system\ preferences
irá executar as Preferências do Sistema. Você também pode abrir URLs:
open vnc://myserver:5900
abrirá o compartilhamento de tela e se conectará ao myserver.
Verificação de saída
man open
para ver todos os sinalizadores que você pode usar.
softwareupdate
Atualize seu mac a partir da CLI.
networksetup
Configure tudo o que encontrar no Painel de Preferências de Rede em Preferências do Sistema na linha de comando. Torna a escrever scripts ou fazer as coisas remotamente muito mais fácil.
Sudo changeip -checkhostname
Verifica se a resolução de DNS para frente e para trás é íntegra e geralmente mostra o comando que você pode usar para corrigir o problema. Se diz "os nomes correspondem, não há nada para mudar", você está em boa forma. É vital se você alterar a configuração de rede do servidor. Também é importante usar isso antes de promover seu servidor para um Open Directory Master.
dscacheutil -flushcache
Eu me pego usando essa pilha para liberar o cache do DNS, na versão 10.5 ou superior.
ping 224.0.0.1
Ping todos dispositivos na sua sub-rede
srm
Versão da linha de comandos para exclusão segura.
last
mostra quem está conectado a um sistema, por quanto tempo eles foram usados e quando o sistema foi reiniciado.
Aqui está uma amostra da saída:
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
lsof
lista de arquivos abertos
Prático quando você deseja ejetar sua unidade USB e lhe dizem que ela está em uso, feche todos os aplicativos e tente novamente.
$ 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
Nesse caso, eu tinha cd
ed na unidade e, portanto, o bash estava acessando o volume.
Observe que, se você vir entradas 'mds', significa que o foco está indexando a unidade.
O guia Administração da linha de comando apresentado por Apple é inestimável.
Pesquisando em "mac da administração da linha de comando" fornece bons resultados.
Administração de linha de comando para Mac OS X 10.5 , 10.4 e 10. .
Outros guias úteis estão em http://www.Apple.com/server/macosx/resources/ .
osascript -e 'tell application "AppName" to quit'
Permite sair de um aplicativo do Shell.
osascript -e 'tell application "Finder" to sleep'
A última linha útil de um longo script do Shell coloca o Mac em suspensão quando o script é concluído. Eu tenho o alias do iSleep.
pbpaste | script.sh |pbcopy
pega o conteúdo da área de transferência (editar-> copiar) e canaliza para script.sh. Os resultados são colocados na área de transferência para você editar-> colar em um documento.
Embora não seja especificamente um recurso do Mac, ele está usando o ícone do Terminal, e a maior parte da lista de comandos realmente úteis funcionará.
mcxquery
isso permitirá que você veja quais tipos de configurações do MCX (cliente gerenciado) estão sendo aplicadas a uma máquina cliente.
[O equivalente da GUI é acessar o System Profiler e, na seção Software, clique em "Managed Client".]
É útil determinar se uma máquina é gerenciada e verificar se está obtendo as configurações esperadas.
sw_vers
Exibe a versão atualmente instalada e a compilação do Mac OS X.
df -h
Para verificar quanto espaço em disco tenho atualmente em todo o disco.
opendiff file1 file2
Executa FileMerge (um diff
gráfico que acompanha Apple Developer Tools) em file1
e file2
.
dns-sd -B _ssh
dns-sd -B _rfb
dns-sd -B _services._dns-sd._udp
Listar servidores que anunciam em Bonjour. A última sugestão lista os tipos de serviço que você pode listar. A listagem está no ar. Pressione Ctrl-C quando tiver visto o suficiente.
O mesmo comando vem nos Linux recentes e no Bonjour SDK para Windows.
system_profiler
Forneça os mesmos resultados que você obtém ao escolher Sobre este Mac -> Mais informações, apenas na linha de comando.
Corrida
system_profiler -usage
ou, olhando a página do manual, você terá dicas sobre como usá-lo.
Alguns exemplos:
system_profiler -xml > MySystem.spx
# and later,
open MySystem.spx # or just double click on it in the Finder
isso despejará o perfil do sistema em um arquivo que poderá ser visto posteriormente em uma máquina diferente.
system_profiler SPUSBDataType
Informa sobre todos os seus dispositivos USB (incluindo IDs de fornecedor e produto, que podem ajudar a rastrear drivers).
system_profiler SPUSBDataType | grep "Product ID" -c
informará quantos dispositivos USB estão conectados (incluindo dispositivos USB internos), o que é útil para ver se o computador vê um dispositivo (ou, se, por exemplo, o Parallel o pegou ou está morto). App System Profiler GUI, você pode escolher Exibir -> Atualizar no menu para atualizar a lista; isso pode ser mais fácil.]
system_profiler SPHardwareDataType
você obterá informações básicas de hardware (úteis para rastreamento de ativos) e
system_profiler SPHardwareDataType | grep Serial
fornecerá o número de série do equipamento.
Sudo opensnoop
no Leopard e mais recentes, relatórios que processam arquivos abertos, com ou sem êxito. Você pode solicitar que ele analise todos os arquivos que estão sendo abertos no sistema, por um processo específico ou se algum processo está abrindo um determinado arquivo, com diferentes tipos de data e hora, e mostre se ocorrem erros.
Aqui estão mais alguns detalhes:
opensnoop é um script dtrace ; existem muitos outros em/usr/bin que analisam coisas como qual sistema o processo está chamando, quais processos ele está criando e o que a E/S está fazendo. Corre apropos DTrace
para obter uma lista e consulte as páginas do manual para obter detalhes.
Descobri o opensnoop ao tentar diagnosticar por que um Comic Life Magiq 1.1 estava travando no OS 10.5.8 para usuários com contas de rede.
Corri (várias vezes, em contas diferentes, via ssh):
Sudo opensnoop -e -n Comic > output.txt
O último arquivo aberto pelos usuários da rede era mais ou menos assim (com um caminho completo):
/Network/Servers/.../username/Library/Icons/WebpageIcons.db
o que me lembrou que o Safari 5.0 estava travando para os usuários da rede, e resolvemos isso gerenciando uma preferência para não armazenar em cache os favoritos ou redirecionando um arquivo. Apple aparentemente corrigiu o problema no Safari 5.0.1) e quando atualizei para o Safari 5.0.2 ontem, corrigiu a falha dos usuários do Comic Life Magiq.
ifconfig en0 ether 00:00:00:00:00:00
Altera o endereço MAC (spoofs) até a próxima reinicialização
Verdadeiramente apenas para Mac: vi 'aberto'. acima, mas abrir abrirá qualquer documento ou aplicativo que você passar para ele.
Unix genérico que eu mais uso: O Sudo é bastante útil para alterar os arquivos de configuração do sistema, etc, que eu realmente edito no vi.
kill não pode ser superestimado quando algo trava (ou quando outro usuário ainda está conectado à minha área de trabalho em segundo plano e eu quero desconectá-los, desagradável eu sei, mas é minha área de trabalho)
ssh/scp - Eu amo que, no OSX, posso simplesmente abrir um terminal e conectar-me a qualquer um de nossos servidores. Só isso me fez feliz em abandonar o Windows.
ifconfig/ping/whois/nmap etc
scutil --dns
Exibe a ordem da resolução do DNS. Útil para quando você estiver criando ou depurando suas configurações de rede.
lsof -i
lista as portas da Internet que estão abertas. Saída de amostra:
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)
Use Sudo
se desejar que as portas sejam abertas por todos os usuários e os sinalizadores -n
e -P
desativará a resolução de nomes e nomes de portas e fornecerá números.
Sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent
Inicia o serviço Área de trabalho remota (útil se você tiver apenas acesso SSH, mas quiser fazer algo usando a GUI do Mac cliente). Para obter mais opções, consulte: http://support.Apple.com/kb/HT237
drutil eject
irá ejetar um CD.
Se você quiser saber que tipo de final de linha um arquivo possui, basta executar
file /path/to/your-file
ex:
$ file imports/sample-students.txt
imports/sample-students.txt: ASCII text, with CR line terminators
Um pouco pedestre para esse público, sem dúvida, mas eu uso:
screencapture -i -c
pegar o que eu quiser da tela É realmente útil e faz coisas que o Grab não me permite pegar.
Obtenha um Shell raiz sem ativar o usuário root (como o próprio Apple exige algumas vezes em seus documentos para fazer algumas coisas "nerds", ou seja, para definir o idioma do sistema)
Sudo bash
Isso fornece um Shell raiz onde você pode fazer tudo o que deseja como root, sem precisar acrescentar todos os comandos com o comando Sudo.
Isso pode ser perigoso, mas somos administradores de sistemas, sabemos o que estamos fazendo, não sabemos? :)
Além dos habituais suspeitos de Unix, acho o seguinte útil:
dsconfigad - Edita as configurações do Active Directory e liga um computador
padrões - Editar preferências
plutil - Converte plist para e do texto
softwareupdate - execute a Atualização de software na linha de comando
installer - instala pacotes a partir da linha de comando
networksetup - defina e obtenha várias coisas, como o nome do computador
Se você domina essas e as coisas comuns do Unix, tem tudo o que precisa para administração do Mac a partir da linha de comando.
Como habilitar o Time Machine para fazer backup em um NAS.
defaults write com.Apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Encontre o endereço MAC
ifconfig en0 | grep ether | sed s/://g | sed s/ether//
Comando para criar pacote esparso para copiar para o NAS
Sudo hdiutil create -nospotlight -library SPUD -size 160g -fs "Case-sensitive Journaled HFS+" -type SPARSEBUNDLE -volname "<VOLNAME>" ./<HOSTNAME>_<MAC_ADDRESS>.sparsebundle
Funciona como charme fazendo backup do meu ReadyNAS.
É uma ferramenta de terceiros freeware, mas
edit
é realmente útil. É uma ferramenta de linha de comando que você pode instalar opcionalmente na primeira vez em que executa TextWrangler . [Outros editores de texto (BBEdit, TextMate) provavelmente fornecem algo análogo.]
edit path/to/somefile
Abre o arquivo no TextWrangler e permite que você se autentique se normalmente não tiver permissão para editá-lo. (Você pode até fazer isso a partir de uma sessão ssh, e ela será aberta para o usuário gráfico conectado).
Melhor ainda é que você pode canalizar as coisas para ele.
lsof -i | edit
por exemplo, mostrará suas conexões de rede abertas e as abrirá no TextWrangler, onde você pode pesquisar (e rolar) através delas com facilidade.
Esta questão se sobrepõe um pouco a esta sobre ferramentas que um administrador UNIX não pode viver sem . Muitas das ferramentas de linha de comando do Mac OS X têm raízes UNIX, como df
, du
e which
; no entanto, existem exceções notáveis que não têm equivalentes óbvios ao UNIX, como osascript
, open
, pbcopy
, pbpaste
e say
.
killall -9 appname
force sai de um aplicativo. Bastante útil se você não conseguir acessar o Activity Monitor.
o ipconfig às vezes é útil:
Obtendo o endereço IP atual na interface:
$ ipconfig getifaddr en1
10.110.2.25
Obtendo as informações de DHCP que foram recebidas pela ú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):
ifconfig | grep cast
é ótimo para obter seu endereço IP e
ifconfig en1 | grep eth
funciona bem para obter um endereço MAC. O uso de en1 (quase sempre) obterá o endereço MAC do aeroporto, o que é útil se apenas dispositivos conhecidos forem permitidos na sua rede sem fio. Por outro lado, se você usar en0 - a porta Ethernet integrada - poderá procurar a máquina no seu Open Directory, da seguinte maneira:
ldapsearch -x -h odm -b "cn=computers,dc=odm,dc=pretendoco,dc=com" "macAddress=00:0d:93:b5:82:88"
(Supondo que seu servidor seja 'odm' e o domínio seja ODM.PRETENDCO.COM).
Acabei de descobrir que há uma construção bacana bacana que você pode usar em vez do comando seq ausente no Mac OS:
echo { 18..21 }
sqlite3 foo.db
Inicia uma sessão SQLite interativa. Se foo.db não existir, ele será criado.
du -d 1 -h
Exibe estatísticas de uso do disco para o diretório atual em formato legível por humanos.
homem [comando]
Um dos comandos mais usados. Informa como usar todo o resto.
Coisas específicas do OS X que eu não vi mencionadas:
mdfind
usa os índices de pesquisa Spotlight na linha de comando, para que você possa fazer pesquisas de texto completo sem usar o menu suspenso Pesquisar.
networksetup -
mostrará a você toda a sintaxe maluca que ele suporta; esse é o equivalente da linha de comando do painel de preferências de rede.
Sudo launchctl list
- mostra os trabalhos launchctl em execução. lembrar launchctl stop X.XX.X
irá apenas 'parar' (matar) a instância atualmente em execução de um processo persistente; para realmente parar de rodar, use launchctl unload /System/Library/LaunchDaemons/X.XX.X.plist
.
Sudo slapconfig -destroyldapserver
Forçar rebaixar uma réplica LDAP para autônomo. Se o seu mestre do Open Directory estiver configurado incorretamente, às vezes, a tentativa de rebaixar uma réplica do Open Directory usando o Admin do servidor falhará (por exemplo: você pode achar que o servidor de réplica se recusa a rebaixar). Você pode usar slapconfig para forçá-lo a rebaixar nessas ocasiões.
which program
procurou o caminho pelo programa e informa qual executável é chamado se você executar o programa sem especificar um caminho completo.
Geralmente é mais útil como uma abreviação para digitar um caminho.
$ 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
Sempre quis saber qual o endereço IP de outro Mac que você pode ver no Finder está na sua LAN, graças ao Bonjour?
dscacheutil -q Host -a name OtherMac.local
o dscacheutil é surpreendentemente útil e versátil. Você pode fazer muito mais com isso do que apenas liberar o cache DNS (como mencionado em outro lugar aqui), ou seja, pesquisas de usuários, estatísticas e despejos de cache.
Quais licenças DHCP o cliente possui?
Sudo ls -lt /private/var/db/dhcpclient/leases
Liste o firewall permite/nega:
Sudo ipfw list
Gere uma senha de alta entropia (clique duas vezes em uma promissora cadeia de 16 caracteres para copiar/colar):
head -c90 /dev/random | uuencode -m pwd | hexdump -C
Estes são básicos, mas úteis se você tiver amnésia:
Quem sou eu?
id
Onde estou?
pwd
Que prédio eu sou?
hostname
Qual é o endereço dele?
ifconfig |grep inet
Talvez não seja o comando mais "útil", mas say
é bastante divertido.
Por exemplo say I love serverfault
para ler novamente o que você digita após "dizer".
locate "foo"
Exibe qualquer arquivo no seu sistema com "foo" no nome do arquivo. Devo usar isso quase sempre com o Spotlight.
Sudo reboot
reinicia o computador.