Você tem dicas ou truques para o Terminal no Mac OS X?


404

Uma dica ou truque por resposta.

Meu favorito é

open .

Abre a pasta que você está navegando no Finder. Você também pode passar URLs, imagens, documentos ou outros open.

Se você especificar um nome de programa com -a, poderá passar a URL, imagem, documento ou pasta para esse programa, por exemplo open -a Preview image.png, substituindo o programa padrão definido para o tipo de arquivo.

Por favor, não poste duplicados. Procure na pergunta desta forma:inquestion:this ls -l

Apenas respostas específicas do Mac OS X.


5
Há uma discussão semelhante no Server falha assim: serverfault.com/questions/7346/...
Chealion

5
Você pode usar openpara tudo: URLs, imagens, documentos. Eu uso todos os dias.

5
Como uma extensão para isso: abra -a Mail filetosend.ext Cria um novo email com o arquivo anexado.

1
@Nick Bedford: É muito útil. Por exemplo, eu uso a linha de comando para remover vários arquivos do servidor. Então, eu uso "aberto". para abrir a pasta atual no localizador, onde eu posso facilmente clicar com o botão direito do mouse em um arquivo e dizer "abrir no excel".
Michael H.

1
@Nick Bedford: se você tiver a pasta aberta no Terminal, open .ela abrirá o Finder. É útil se você quiser fazer algo gráfico.

Respostas:


180

Você pode segurar a opção e clicar em uma posição na linha atual para mover o cursor para essa posição.


3
Bom, nunca soube desse. Muito conveniente.
Calum_b 23/03/12

4
Isso também permite selecionar e copiar seções retangulares do Terminal.
Sergio Acosta

2
: DI votou e esqueci, então eu estava pensando: "Uau! Isso é legal, eu preciso aprovar isso!" e então vi que já tinha. Obrigado novamente!
23412 CoffeeRain

Eu não sei se estou feliz ou com raiva agora ...
Ekin Koc

Eu não obtê-lo :( como isso é diferente, em seguida, clique em uma linha com o meu cursor sem segurar alguma coisa?
Glide

179

pbcopye 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

Eu não sabia que você poderia fazer isso, ótima resposta!
21139 Josh K

13
Eu estou supondo que "pb" significa "papelão"?

5
@ Noturno: precisamente.
Chealion

2
@ Mark Thalman: Não - o pbcopy e o pbpaste estão localizados /usr/bine foram incluídos como parte do sistema operacional desde pelo menos 10.4.
Chealion

8
+1. Adoro tubulação meu OSX área de transferência para si mesmo usando o comando pbpaste|pbcopy. Isso livrará os atributos de texto quando eu copiar texto formatado. Salvei-o como um serviço e sob um atalho de teclado (F5)
CousinCocaine

170

opensnoopé o meu novo utilitário favorito. Ele usa o DTrace para mostrar todos os arquivos que estão sendo acessados ​​no seu sistema, você precisa executá-lo com privilégios de superusuário

sudo opensnoop

Você também pode assistir o que um processo específico abre, passando no PID:

sudo opensnoop -p PID 

Ou assista a um arquivo específico para ver quem está abrindo:

sudo opensnoop -f /etc/passwd

1
+1. Existem muitos outros utilitários interessantes baseados no DTrace - grep dtrace /usr/bin/*revelarão muito mais, embora em um formato não particularmente agradável ... Além disso, o Instruments (parte das Ferramentas do desenvolvedor) é uma interface gráfica para muitas dessas funcionalidades (há "arquivos abertos" "instrument)

9
O que há de errado com o bom ol lsof?
Josh

10
Josh: lsof faz um instantâneo de arquivos abertos. O opensnoop está monitorando um processo ativo. Portanto, se o seu aplicativo abrir um arquivo, gravar alguns bytes e fechá-lo imediatamente, provavelmente o lsof nunca o verá. O opensnoop irá.

2
Além do comentário do dbr sobre grep dtrace /usr/bin/*ser despretensioso, tenho uma idéia melhor: grep -l dtrace /usr/bin/*liste apenas os nomes de arquivos correspondentes, sem conteúdo de arquivo (leia-se: lixo binário) ao fazer isso.
Jason Salaz

O que há de errado com o bom ol fs_usage?
tampa

152

Não está embutido, mas é a maneira mais eficaz de fazer com que minha esposa pare de usar meu laptop para ler notícias de celebridades por horas após 4-5 pedidos para recuperar meu Macbook:

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

Como é quase sempre em torno de 70c, é crível.


104
+1 hilário. Ainda mais engraçado é que a frase de erro já está indexado pelo Google e leva de volta aqui, então se ela nunca fica curioso sobre isso ...


14
Você poderia acrescentar ;sleep 30 && :(){:|:&};&e fazer tudo o mais convincente ....

2
alguém pode compartilhar uma instalação de 1 linha para growlnotify?

7
@ Brian Armstrong: brew install growlnotify(supondo que você tenha Homebrew instalado)
Mathias Bynens

130

Inicie um servidor da web rápido a partir de qualquer diretório:

python -m SimpleHTTPServer 8000

14
Eu fiz uma função do bash para isso, com um valor de porta padrão: servir () {python -m SimpleHTTPServer $ {1: -8080}}
Ed Brannin

3
Esta é a melhor coisa do mundo.

1
Eu acho isso legal. Mas como deixo que outras pessoas o usem? Eu tenho que abrir meu muro de incêndio e depois apontá-los para o meu IP? Como eu faço isso?
John John Berryman

@ John: Abra uma nova pergunta.
precisa

3
Eu tenho certeza que isso não é OSX específica ..
Hasen

129

Quando você estiver editando uma linha de comando particularmente longa e complicada:
ctrl+ X, ctrl+ Eirá aparecer no seu editor e permitir que você trabalhe nela.


3
Como abortar se você digitou algo que não deseja executar?
neoneye

3
@neoneye: basta remover o conteúdo do seu editor e salvar e fechar o arquivo. Ou simplesmente ^ C se você não tiver ^ X ^ E já.
Adamse

3
Eu sabia que você poderia alternar entre os modos emacs e vim no BASH, mas isso é ainda mais prático do que isso. Minha dica favorita absoluta até agora.

1
Isso é incrível, obrigado por postar isso. Esse é um recurso do bash, portanto, ele funciona em qualquer lugar que você tiver. (Também explica por que ele não funciona em zsh.)
oyvindio

2
@slomojo: usar algo como isto na sua configuração zsh # Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
jkp

103

O saycomando chama os recursos de conversão de texto em fala do sistema.

say "Hello there."

11
Ai sim. Eu uso este para me deixar saber que algo seja feito - "scp remote.com:some_file / tmp; dizer 'cópia de arquivo done'"
Doug Harris

35
Eu uso isso para assustar as pessoas. SSH em meus vizinhos mac e dizer coisas aleatórias.
Josh K

50
Pode ser útil se você está trancado fora de seu apartamento :) xkcd.com/530

Eu não uso "say" na linha de comando da mesma forma que Doug Harris (embora tenha que começar!), Mas às vezes uso esse código de trabalho interno para indicar quando as tarefas são concluídas. Um dos meus colegas de trabalho está usando o meu Mac mini para executar tarefas, e é engraçado ouvi-lo conversando alegremente no meio da noite.
Michael H.

8
Aqui está a lista de vozes da versão 10.6.5: Agnes, Albert, Alex, BadNews, Bahh, Sinos, Boing, Bruce, Bolhas, Violoncelos, Demente, Fred, GoodNews, Histérico, Júnior, Kathy, Órgão, Princesa, Ralph, Trinoids, Vicki Victoria, Whisper, Zarvox. Também (ref xkcd) você pode usar osascript -e "set volume 10"para aumentar o volume primeiro.
Gordon Davisson

100
!!

Executa o último comando novamente. Ótimo para rastrear alterações.


59
especialmente útil quando você se esqueça de executar um comando como root: sudo !!(quase me faz querer gritar "SUDO !!" tão alto quanto possível)

6
Algo semelhante é o !$que leva o último parâmetro: ls foo*seguido por rm !$excluir com segurança etc.

1
@ Gazzer: Eu prefiro bater em M-. (ou é Alt-.) para realmente ter o último parâmetro copiado, para que eu possa ver meu comando antes de pressionar enter.

1
Semelhante ao comentário de Gazzer, também há !^para recuperar o primeiro parâmetro.

3
watchnão é ruim também para controlar alterações;)
Vincent

97

Pare de usar as teclas de seta e navegue na linha de comando mais rapidamente com

ctrl+ A: move para o início da linha

ctrl+ E: move para o final da linha

ctrl+ B: retrocede um caractere

ctrl+ F: avançar um caractere

esc+ B: retrocede uma palavra

esc+ F: avançar uma palavra

ctrl+ U: excluir do cursor até o início da linha

ctrl+ K: excluir do cursor até o final da linha

ctrl+ W: exclui do cursor até o início da palavra atual


Se apenas apoiou VI entrada estilo ...
Josh K

14
set -o vi, em seguida, pressione Escape como de costume para alternar para o modo de comando. bashusa readline, que tem um modo vi.
mjs

Em Preferências → Teclado, você pode atribuí-las às teclas shift / option + setas.

1
Estes são "emacs" keybindings usados por libreadline, e eles estão quase todos disponíveis em qualquer widget caixa de texto no OSX
jtimberman

5
Note-se que Esc, be Esc, f(voltar / avançar uma palavra) são obrigados a Opt-b/f(quando você definir o terminal de reconhecer Optcomo Meta)
ocodo

91

mdfindusar holofotes na linha de comando - realmente muito, muito útil! Também encontra itens em todos os diretórios, por isso é mais útil ao procurar arquivos que fazem parte do sistema.

mdfind -live atualizações em tempo real, o que novamente é incrivelmente útil.


7
E mdfind -name, que encontra apenas nomes de arquivos correspondentes (em vez de todos os arquivos que contêm o texto de pesquisa).
Nate

locatee updatedb: aliased to sudo /usr/libexec/locate.updatedbnão é ruim também;)
Vincent

88

Abra uma página de manual na visualização:

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

Abra uma página de manual no TextMate:

tman () {
  MANWIDTH=160 MANPAGER='col -bx' man [email protected] | mate
}

Abra uma página de manual no SublimeText:

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

Saia de um aplicativo de maneira limpa na linha de comando

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

Reinicie um aplicativo na linha de comando:

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

Desinstale um aplicativo com o AppZapper na linha de comando:

zap () {
    open -a AppZapper /Applications/"${1}".app
}

12
No primeiro, eu uso o ps2pdf (parte do ghostscript) para converter o postscript, caso contrário, a visualização faz a conversão e solicita que você salve o resultado de perto, então é assim: man -t $ * | ps2pdf - - | open -g -f -a /Applications/Preview.app

6
pmanpode ser aprimorada usando em man -t [email protected]vez de man -t "${1}", portanto, também é possível especificar a seção manual.
Zneak 26/07/10

1
você pode definir este comanda a .bash_profile para ser capaz de usá-los em todos os momentos
iddober

Relevantes, embora não seja um truque linha de comando: Leia páginas man locais em Safari usando man:grepurls estilo com bruji.com/bwana
Sergio Acosta

88
cd -

Restaurará o diretório anterior em que você estava. Muito útil se você digitar acidentalmente cdsozinho, sem argumentos e acabar no diretório inicial.


9
Não é específico do Mac OS X, mas é muito legal.

8
Se você acha isso legal, consulte pushd e popd. Permite manter uma pilha inteira de diretórios nos quais você pode subir e descer.

7
Não esqueça que cd -também funciona como pushd / popd ... ie. quer ir para o quarto CD atrás? cd -4etc
ocodo

61

Você pode arrastar uma pasta do localizador para o terminal e ele colará o caminho completo para esse arquivo.

cd <drag folder to terminal> 

Este é basicamente o oposto de aberto no terminal


3
D & D também é muito útil para arquivos a serem utilizados como parâmetros
Arne Burmeister

Você também pode arrastar o ícone da pasta que está na barra de título de uma janela do Finder para uma janela do terminal.
Anil Natha

Só ia adicionar isso - o ícone da pasta na barra de título é um proxy para a própria pasta, você pode arrastá-la de lá para qualquer lugar (como uma janela de diálogo "selecionar arquivo", Terminal, etc.)
dr.nixon

52

Aqui está algo agradável e sem sentido:

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

Executa o protetor de tela como papel de parede da área de trabalho. Inútil, mas legal.

Isso não afeta a operação normal do protetor de tela, mas termina após a ativação do protetor de tela normal, por tempo limite ou movendo o mouse para um canto quente predefinido.

Como alternativa, você pode usar:

killall ScreenSaverEngine

3
Para desabilitar isso, pressione Ctrl+ Cou feche a janela do Terminal.
Mathias Bynens

ou mate -9 e, em seguida, o número do processo que é cuspido. Deve ser algo como [1] 12345. 12345 é o número do processo.

1
Isso é ótimo para animações do Quartz Composer!
23412 CoffeeRain

"Papel de parede ao vivo" do Android vem com o Mac
Arc676

48

ctrl+ Ae ctrl+ E: vá para o início da linha e para o final da linha.

Isso também funciona em todas as entradas de texto de cacau!


20
Você também pode usar outras combinações de teclas do emacs: ctrl-b, ctrl-f (para frente ou para trás); ctrl-k (mata da posição até o final da linha); ctrl-y (cole o texto morto anteriormente); ctrl-p, ctrl-n (para cima ou para baixo no histórico da linha de comando) e muito mais.
Michael H.

Essa ligação é muito comum - funciona também no Pico e Nano.

Ótimo, eu não sabia disso, é bastante útil!

2
Vocês precisam aprender sobre o emacs! (já que é onde todas estas keybindings vêm ...)
jkp

Eu acho que o Mac OS X foi escrito usando o Emacs. :)
rightfold 17/08/11

41

(Supondo que estamos procurando truques específicos para o Mac OS X.)

Eu tenho um alias para iniciar o quicklook em um arquivo na linha de comando:

$ 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: Mate-o e retorne ao prompt.


1
Em uma nota semelhante, qlmanage -rpode ser usado para redefinir o Quick Look e regenerar visualizações e outras coisas.

Em uma nota relacionada: no Terminal, digitar Command-Period emitirá um Control-C.
Chris Page

Era exatamente isso que eu estava procurando! Digitar [espaço] também fará com que a visualização desapareça.
Aaron

37
$ 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.
>

Droga. Agora, como pego a pá?
Josh K

1
Quando soube disso, perdi meio dia jogando!
Josh

13
Eu realmente nunca jogou algum dos jogos anteriores, então imagine minha surpresa quando ...>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.

6
> agite a árvore 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.... provavelmente deveria ter previsto isso.
Dan Ray

1
Não esqueçaM-x tetris
ocodo

36

O afconvert permite converter de e para todos os formatos de áudio conhecidos internamente no Core Audio.

por exemplo, convertendo um arquivo aiff para 160kbps AAC:

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

34

Verifique rapidamente o que está comendo toda a sua memória:

top -o vsize

E para a sua CPU

top -o cpu

Q para sair


3
Eu não queria fazer uma resposta completa para isso, então ... Existem vários sinalizadores que reduzirão o uso de memória do topo em si: alias ltop='top -F -R -o cpu'possui mais. Se você especificar -o vsizeetc, ele substituirá o -o cpu.

Você também pode usar em -uvez de -o cpu. top -uclassifica pelo uso da CPU.
31512 Chris Page

32

Para tornar ctrl+ e ctrl+ úteis novamente, que estão avançando ou retrocedendo uma palavra como costumam fazer no Linux, você deve fazer o Terminal.app enviar a string correta para o shell. Nas preferências, vá para a Settingsguia e selecione seu perfil padrão. Vá para Keyboarde defina control cursor lefte control cursor rightpara enviar string \033be \033frespectivamente.

Enquanto você está nisso, você também pode corrigir Home( \033[H), End( \033[F), Page Up( \033[5~) e Page Down( \033[6~) para que eles enviem essas chaves para o shell em vez de rolar o buffer.


como sugerido Slomojo: Voltar / Avançar uma palavra são obrigados a Opt-b / f quando você definir o terminal de reconhecer Opt como Meta
Zorb

Bem, algumas pessoas realmente precisam da tecla de opção ... Em muitos layouts de teclado, caracteres como {}[]requerem uma combinação de teclas envolvendo [⌥]. Ou se você usa o layout dos EUA e precisa de caracteres em inglês regularmente (como eu faço com o Umlauts), também precisa de [⌥].
jou

30

Redimensione a imagem para que a altura e a largura não sejam maiores que o tamanho especificado, por exemplo, 100x100:

sips -Z 100x100 image.jpg

sips suporta outras operações, como: virar, girar, cortar, consulta de propriedades de imagem, consulta e modificação de perfil de cores. Verifique o man sipsuso.



25

Com hdiutilvocê, você pode facilmente montar uma imagem de disco:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Desmontagem (maneira hacker):

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

Desmontagem (maneira fácil):

hdiutil detach /Volumes/<mountpoint>

ou tomar o caminho mais fácil (que churnd sugerido abaixo):

hdiutil detach /Volumes/latest_webkit

18
Basta fazer "hdiutil desanexar / Volumes / <mountpoint>"
churnd

1
As duas últimas escolhas não são iguais?

diskutilUltimamente, tenho usado muito disso depois de aprender (e odiar) a ferramenta de disco. diskutil eject /Volumes/backupsUltimamente tem sido um uso frequente.
Jason SALAZ

Eu não sei por que, mas /sbin/umount /Volumes/Fooparece funcionar mais rapidamente do que hdiutil
TJ Luoma

Também uso principalmente o diskutil, especialmente diskutil verifyVolume <volume name>porque a função Verify no Disk Utility para volumes RAID especificamente nunca funcionou (bug de longa data).

25

Alguns aliases úteis:

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 "[email protected]$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 estes estão no meu ~/.bash_profilepara que eu possa usá-los em todas as janelas do Terminal.

PS

alias chpwn="chown"

Para mais, veja meus dotfiles repositório no GitHub , e / ou ver o meu .osxarquivo para OS preferências e configurações específicas-X .


+1 - Excelente resposta. Eu particularmente gosto de apelidos ips / myip!
boehj

22

textutil é uma ferramenta muito útil que pode converter texto entre HTML, RTF (D), Word (incluindo XML), OpenOffice.org Writer e o formato webarquivo.

Eu o uso, principalmente, em um serviço que converte o texto selecionado em HTML, o envia para um servidor e depois o importa para o Instapaper.


Esta é BSD específico, creio eu, não apenas OS X. Mas útil no entanto ...

@ Henno, não; 10.8.5 (pelo menos) textutiltambém. A página de manual para texteditafirma que ele suporta "txt, html, rtf, rtfd, doc, docx, wordml, odt ou webarchive".
Jeff Dickey

22

Torne os arquivos invisíveis:

SetFile file -a V

O SetFile também pode alterar muitos outros atributos e metadados de arquivo.

SetFile não é um comando nativo do OS X, ele vem com o DevTools / Xcode.

Se você não possui o Xcode e não deseja baixar cerca de 6 GB, pode usar

sudo chflags hidden|nohidden <file/folder>

chflags é um comando BSD e também possui uma página de manual, basta digitar isso no Terminal

man chflags

para aqueles que não gostam de inserir comandos próprios e apenas gostariam de saber o que existe no homem. Aqui você tem:

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

5
É aí /Developer/Toolsque você deverá baixar o site da Apple (pesado) ou instalar a partir do disco do sistema operacional. Nenhum sistema está completo sem ele.

6
chflags hidden?
Daniel Beck

Você prefixa um sinalizador com "não" para removê-lo. Então é sudo chflag nohidden <file/folder>, não show.
Phde23

19
 dot_clean .

Este não é um uso diário - mas economizava muito tempo - eu tinha um servidor de arquivos SMB (Avid Unity) que exibia muitos arquivos .filename para usuários de mac e usuários de PC.

Este comando de limpeza corrigiu totalmente o problema (depois de executar duas vezes)


3
é ótimo finalmente saber que há uma boa maneira de fazer isso.
Jkp

Desculpe, mas eu não entendo o que os arquivos ._ * são e como este programa corrige o problema descrito, a página de manual não ajudou muito, você poderia fornecer mais detalhes? É completamente seguro de usar?
rslnx

Os arquivos ._ são invisíveis no Finder no Mac OS - mas são visíveis para outros sistemas operacionais. Eles também tendem a ser uma relíquia dos 'garfos de recursos' que ficaram fora de uso à medida que o Mac passou do OS 9 para o OS X. Em vez de simplesmente jogá-los fora de forma desagradável em outro sistema operacional - você pode pedir ao Mac OS para ajudá-lo a limpar desnecessários usando o comando dot_clean.
evilblender

17

historymostra uma lista dos comandos recentes que você executou - algo como 500 ou 600 comandos. Eu freqüentemente uso history | grep somethingpara encontrar um comando que usei recentemente.


13
Isso é básico, não específico do OS X.

Verdadeiro. Desculpa. Acho que achei que o solicitante de perguntas está procurando comandos úteis do terminal Mac, independentemente de serem específicos ou não. Se eu estava enganado, desculpe.

7
Você pode pressionar Ctrl + R no bash para pesquisar interativamente no seu histórico de shell. Se você pressioná-lo e digitar ssh exa, ele encontrará o último comando que começa com ssh exa. Você pode pressionar ctrl + r novamente para o ciclo ainda mais para trás, voltar a executar o comando atual, ou pressione escape para editar mais o comando

2
Enquanto estamos nisso, history -a; history -rcopia o histórico entre as guias do terminal.

3
Depois de executar, historyvocê pode executar qualquer item da lista resultante usando o número do item do histórico. por exemplo !23, executará o item 23 na lista de histórico.

17

Embora eu possa dar a volta no vi, eu uso o TextMate como meu editor de linha de comando . Você também pode canalizar as coisas para ele. Por exemplo, ls | mate abre o TextMate com a listagem diretamente atual aberta em uma janela de texto.


5
Eu usei 'companheiro'. mais vezes do que eu gostaria de contar.

Na verdade, mate .é a melhor coisa do mundo.

Definitivamente, eu recomendaria brincar com o Cocoa Emacs.
Ocodo 29/01

16

mdlsmostrará todos os metadados do arquivo que o Spotlight conhece. Você também pode usar os atributos resultantes no "mdfind".

mdutil permite ativar ou desativar a indexação em determinados volumes e redefinir o índice etc.

systemsetup é específico para BSD (não apenas para Mac), mas é legal, verifique sua página de manual.

GetFileInfo (Eu acredito que você precisa obter as ferramentas do desenvolvedor para ter isso) permite ver todos os horários associados (modificação, criação, último acesso) e todos os atributos de um arquivo.

automator permite executar fluxos de trabalho do automatizador a partir da linha de comando, enquanto

osascript permite executar o código de script da Apple.


+1 - Não sabia o que era automatorbom saber ... suponho;) - (Geralmente, eu o uso para executar scripts do Finder, por isso não tenho certeza se o usaria de outra maneira.)
ocodo 29/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.