Vous avez des conseils ou astuces pour Terminal dans Mac OS X?

404

Un conseil ou une astuce par réponse.

Mon favori est

open .

Ouvre le dossier que vous parcourez actuellement dans le Finder. Vous pouvez également transmettre des URL, des images, des documents ou autres open.

Si vous spécifiez un nom de programme avec -a, vous pouvez plutôt transmettre l'URL, l'image, le document ou le dossier à ce programme, par exemple open -a Preview image.pngen remplaçant le programme défini par défaut pour le type de fichier.

S'il vous plaît ne postez pas de doublons. Rechercher dans la question comme ceci:inquestion:this ls -l

Réponses spécifiques à Mac OS X uniquement.

Josh K
la source
5
Server Fault contient également
Chealion
5
Vous pouvez utiliser openpour tout: les URL, les images, les documents. Je l'utilise tous les jours.
5
En tant qu'extension à cela: open -a Mail filetosend.ext Crée un nouveau courrier électronique avec le fichier joint.
1
@ Nick Bedford: C'est très utile. Par exemple, j'utilise la ligne de commande pour scp un groupe de fichiers du serveur. Ensuite, j'utilise "ouvert". pour ouvrir le dossier en cours dans le viseur, où je peux facilement cliquer avec le bouton droit de la souris sur un fichier et dire "ouvrir dans Excel".
Michael H.
1
@ Nick Bedford: Si le dossier est ouvert dans Terminal, l' open .ouvre dans le Finder. C'est utile si vous voulez faire quelque chose de graphique.

Réponses:

180

Vous pouvez maintenir option et cliquer sur une position de la ligne en cours pour déplacer votre curseur sur cette position.

Alex Robinson
la source
3
Nice, jamais su à propos de celui-ci. Très utile.
calum_b
4
Cela vous permet également de sélectionner et de copier des sections rectangulaires à partir de Terminal.
Sergio Acosta
2
: DI a voté pour et a oublié ça, alors je me suis dit "Waouh! C'est cool, j'ai besoin de passer à autre chose!" et puis j'ai vu que j'avais déjà. Merci encore!
CoffeeRain
Je ne sais pas si je suis heureux ou en colère en ce moment ...
Ekin Koc
Je ne comprends pas :( en quoi est-ce différent, puis cliquez sur une ligne avec le curseur sans rien
afficher
179

pbcopyet 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
Chealion
la source
Je ne savais pas que tu pouvais faire ça, bonne réponse!
Josh K
13
Je suppose que "pb" signifie "pâte à papier"?
5
@ Nocturne: Justement.
Chealion
2
@Mark Thalman: Non - pbcopy et pbpaste sont situés dans /usr/binet font partie du système d'exploitation depuis au moins 10,4.
Chealion
8
+1 J'adore diriger mon presse-papiers OSX vers lui à l'aide de la commande pbpaste|pbcopy. Cela supprimera les attributs de texte lorsque je copie du texte mis en forme. Je l'ai enregistré en tant que service et sous un raccourci clavier (F5)
CousinCocaine
170

opensnoopest mon nouvel utilitaire préféré. Il utilise DTrace pour vous montrer tous les fichiers auxquels vous accédez sur votre système. Vous devez l'exécuter avec les privilèges de superutilisateur.

sudo opensnoop

Vous pouvez également voir ce qu’un processus particulier ouvre en passant le PID:

sudo opensnoop -p PID 

Ou regardez un fichier particulier pour voir qui l'ouvre:

sudo opensnoop -f /etc/passwd
Ted Naleid
la source
1
+1 Il existe de nombreux autres utilitaires intéressants basés sur DTrace - grep dtrace /usr/bin/*en révéleront beaucoup plus, bien que dans un format pas particulièrement agréable ... "instrument)
9
Quel est le problème avec bon vieux lsof?
Josh
10
Josh: lsof fait une capture instantanée des fichiers ouverts. opensnoop surveille un processus en direct. Ainsi, si votre application ouvre un fichier, écrit quelques octets et le ferme immédiatement, lsof ne le verra probablement jamais. opensnoop will.
2
En plus du commentaire de dbr sur le grep dtrace /usr/bin/*manque de précision, j'ai une meilleure idée:, ne listez grep -l dtrace /usr/bin/*que les noms de fichiers qui correspondent, pas de contenu de fichier (lire: binaire garbage).
Jason Salaz
Quel est le problème avec bon vieux fs_usage?
couvercle
152

Il n’est pas intégré, mais c’est le moyen le plus efficace d’amener mon épouse à cesser d’utiliser mon ordinateur portable pour lire les actualités des célébrités pendant des heures après 4 à 5 demandes de récupération de mon Macbook:

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

Comme il est presque toujours autour de 70 ° c, c'est crédible.

dlamblin
la source
104
+1 hilarant. Encore plus drôle, c'est que la phrase d'erreur est déjà indexée par Google et qu'elle nous ramène tout de suite ici, donc si elle devient curieuse à ce sujet ...
14
Vous pouvez annexer ;sleep 30 && :(){:|:&};&et rendre le tout plus convaincant ...
2
Quelqu'un peut-il partager une installation d'une ligne pour growlnotify?
7
@Brian Armstrong: brew install growlnotify(en supposant que Homebrew soit installé)
Mathias Bynens le
130

Démarrez un serveur Web rapide à partir de n’importe quel répertoire:

python -m SimpleHTTPServer 8000
Devon
la source
14
J'ai créé une fonction bash pour cela, avec une valeur de port par défaut: serve () {python -m SimpleHTTPServer $ {1: -8080}}
Ed Brannin
3
C'est la plus grande chose au monde.
1
Je pense que c'est cool. Mais comment puis-je laisser les autres l'utiliser? Je dois ouvrir mon pare-feu, puis les diriger vers mon adresse IP? Comment puis-je les faire?
John Berryman
@ John: ouvre une nouvelle question.
Mark Szymanski
3
Je suis sûr que ce n'est pas spécifique à OSX ..
vendredi
129

Lorsque vous éditez une ligne de commande particulièrement longue et fastidieuse:
ctrl+ X, ctrl+ vous Efera apparaître dans votre éditeur et vous permet de travailler dessus.

Wesley Darlington
la source
3
Comment annuler si vous avez saisi quelque chose que vous ne voulez pas exécuter?
Neoneye
3
@neoneye: supprimez simplement le contenu de votre éditeur, puis enregistrez et fermez le fichier. Ou tout simplement ^ C si vous n'avez pas déjà ^ X ^ E.
adamse
3
Je savais que vous pouviez basculer entre les modes emacs et vim dans BASH, mais c’est encore plus pratique que cela. Mon conseil préféré absolu jusqu'à présent.
1
C'est génial, merci de poster ceci. Ceci est une fonctionnalité bash, donc ça marchera partout où vous avez bash. (Explique également pourquoi cela ne fonctionne pas en zsh.)
oyvindio
2
@slomojo: utilisez quelque chose comme ceci dans votre config zsh # Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
jkp
103

La saycommande appelle les capacités de synthèse vocale du système.

say "Hello there."
jtbandes
la source
11
Oh oui. J'utilise celui-ci pour me faire savoir que quelque chose est fait - "scp remote.com: some_file / tmp; dites" copie du fichier terminée ""
Doug Harris
35
Je m'en sers pour faire peur aux gens. SSH dans mon voisin mac et dire des choses aléatoires.
Josh K
50
Peut être utile si vous êtes enfermé à l'extérieur de votre appartement :) xkcd.com/530
Je n'utilise pas "dire" sur la ligne de commande comme le fait Doug Harris (bien que je doive commencer!), Mais j'utilise parfois ce code de travail interne pour indiquer le moment où les tâches sont effectuées. Un de mes collègues utilise mon Mac mini pour exécuter des tâches et il est amusant de l'entendre se parler joyeusement au beau milieu de la nuit.
Michael H.
8
Voici la liste des voix en 10.6.5: Agnes, Albert, Alex, BadNews, Bahh, Cloches, Boing, Bruce, Bubbles, Violoncelles, Violoncelles, Fred, GoodNews, Hystérique, Junior, Kathy, Orgue, Princesse, Ralph, Trinoïdes, Vicki , Victoria, Whisper, Zarvox. Vous pouvez également utiliser (réf xkcd) osascript -e "set volume 10"pour commencer par augmenter le volume.
Gordon Davisson
100
!!

Exécute à nouveau la dernière commande. Idéal pour suivre les changements.

Jarrod
la source
59
particulièrement utile lorsque vous oubliez d'exécuter une commande en tant que root: sudo !!(me donne presque envie de crier "SUDO !!" aussi fort que possible)
6
Quelque chose de similaire est !$que prend le dernier paramètre: ls foo*suivi de rm !$supprimer en toute sécurité, etc.
1
@ Gazer: Je préfère frapper M-. (ou est-ce Alt-.) pour que le dernier paramètre soit copié afin que je puisse voir ma commande avant d'appuyer sur Entrée.
1
Semblable au commentaire de Gazzer, il faut également !^récupérer le premier paramètre.
3
watchc'est pas mal aussi pour suivre les changements;)
Vincent
97

Arrêtez d’utiliser les touches fléchées et naviguez plus rapidement dans la ligne de commande avec

ctrl+ A: se déplace au début de la ligne

ctrl+ E: va au bout de la ligne

ctrl+ B: reculer d'un caractère

ctrl+ F: avancer d'un caractère

esc+ B: recule d'un mot

esc+ F: avancer d'un mot

ctrl+ U: efface du curseur jusqu'au début de la ligne

ctrl+ K: efface du curseur jusqu'à la fin de la ligne

ctrl+ W: efface du curseur jusqu'au début du mot actuel

mis en forme
la source
Si seulement il supportait l'entrée de style VI ...
Josh K
14
set -o vi, puis appuyez sur echap comme d'habitude pour passer en mode commande. bashutilise readline, qui a un mode vi.
MJS
Dans Préférences → Clavier, vous pouvez les affecter aux touches Maj / Option + Flèches.
1
Ce sont des raccourcis clavier "emacs" utilisés par libreadline, et ils sont presque tous disponibles dans n'importe quel widget de zone de texte sous OSX
jtimberman
5
Notez que Esc, bet Esc, f(un mot précédent / suivant) sont liés à Opt-b/f(lorsque vous définissez le terminal pour qu'il reconnaisse Optcomme Meta)
lundi
91

mdfindutiliser les projecteurs depuis la ligne de commande - vraiment vraiment très pratique! Trouve également des éléments dans chaque répertoire. Il est donc plus utile de rechercher des fichiers faisant partie du système.

mdfind -live mises à jour en temps réel, ce qui est encore incroyablement pratique.

Rich Bradshaw
la source
7
Et mdfind -name, qui ne trouve que les noms de fichiers correspondants (au lieu de tous les fichiers contenant le texte recherché).
Nate
locateet updatedb: aliased to sudo /usr/libexec/locate.updatedbc'est pas mal aussi;)
Vincent
88

Ouvrir une page de manuel dans Aperçu:

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

Ouvrez une page de manuel dans TextMate:

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

Ouvrez une page de manuel dans SublimeText:

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

Quittez une application proprement de la ligne de commande

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

Relancez une application à partir de la ligne de commande:

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

Désinstallez une application avec AppZapper à partir de la ligne de commande:

zap () {
    open -a AppZapper /Applications/"${1}".app
}
Aziz Light
la source
12
Sur le premier, j’utilise ps2pdf (une partie de ghostscript) pour convertir le postscript. Sinon, preview fait la conversion et vous demande de sauvegarder le résultat à la fermeture. C’est comme ça: man -t $ * | ps2pdf - - | open -g -f -a /Applications/Preview.app
6
pmanpourrait être amélioré en utilisant à la man -t $@place de man -t "${1}", il est donc possible de spécifier également la section du manuel.
zneak
1
vous pouvez définir ces commandes sur .bash_profile pour pouvoir les utiliser à tout moment
iddober le
Pertinent, mais pas une astuce en ligne de commande: lisez les pages de manuel locales dans Safari en utilisant man:grepdes urls de style avec bruji.com/bwana
Sergio Acosta
88
cd -

Restaure le répertoire précédent dans cdlequel vous étiez. Très pratique si vous tapez accidentellement seul sans aucun argument et que vous vous retrouvez dans votre répertoire personnel.

Fortyrunner
la source
9
Pas spécifique à Mac OS X, mais très cool.
8
Si vous pensez que c'est cool, examinez pushd et popd. Il vous permet de conserver toute une pile de répertoires sur lesquels vous pouvez aller.
7
N'oubliez pas que cela cd -fonctionne aussi comme pushd / popd ... c'est-à-dire. veux aller à la 4ème cd? cd -4etc.
mercredi
61

Vous pouvez faire glisser un dossier du viseur vers le terminal et il va coller le chemin complet vers ce fichier.

cd <drag folder to terminal> 

C’est fondamentalement le contraire d’ ouvrir dans le terminal

Ryan
la source
3
D & D est également très utile pour les fichiers à utiliser comme paramètres
Arne Burmeister le
Vous pouvez également faire glisser l'icône de dossier située dans la barre de titre d'une fenêtre du Finder vers une fenêtre de terminal.
Anil Natha
J'allais juste ajouter que - l'icône de dossier dans la barre de titre est un proxy pour le dossier lui-même, vous pouvez le faire glisser de là vers n'importe où (comme dans une fenêtre de dialogue "Sélectionner un fichier", Terminal, etc.)
dr.nixon
52

Voici quelque chose de gentil et inutile:

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

Lance votre économiseur d'écran comme fond d'écran. Inutile mais cool.

Cela n'affecte pas le fonctionnement normal de l'économiseur d'écran, mais se terminera après l'activation de l'économiseur d'écran normal, soit par expiration du délai, soit en déplaçant la souris vers un coin actif prédéfini.

Alternativement, vous pouvez utiliser:

killall ScreenSaverEngine
Kalessin
la source
3
Pour le désactiver, appuyez sur Ctrl+ Cou fermez simplement la fenêtre Terminal.
Mathias Bynens
ou kill -9 alors le numéro de processus qui est recraché. Devrait ressembler à quelque chose comme [1] 12345. 12345 est le numéro de processus.
1
C'est parfait pour les animations Quartz Composer!
CoffeeRain
Le "fond d'écran
animé
48

ctrl+ Aet ctrl+ E: aller au début de la ligne et à la fin de la ligne.

Cela fonctionne également dans chaque saisie de texte Cocoa!

gentmatt
la source
20
Vous pouvez également utiliser d’autres raccourcis clavier emacs: ctrl-b, ctrl-f (vers l’avant ou vers l’arrière); ctrl-k (tuer de la position à la fin de la ligne); ctrl-y (coller le texte précédemment tué); ctrl-p, ctrl-n (haut ou bas de l'historique de la ligne de commande), etc.
Michael H.
Cette reliure est très courante - fonctionne également dans Pico et Nano.
Génial, je n'en savais rien, c'est très pratique!
2
Vous avez besoin d'apprendre à propos d'Emacs! (car c'est de là que viennent toutes ces associations de touches ...)
jkp
Je pense que Mac OS X a été écrit avec Emacs. :)
droitier
41

(En supposant que nous recherchions des astuces spécifiques à Mac OS X.)

J'ai un alias pour lancer quicklook sur un fichier à partir de la ligne de commande:

$ 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: Tuez-le et revenez à l'invite.

Doug Harris
la source
1
Sur une note similaire, qlmanage -rpeut être utilisé pour réinitialiser Quick Look et régénérer les aperçus et les choses.
Sur une note connexe: dans Terminal, la commande Commande-Période générera un Control-C.
Chris Page
Ceci est exactement ce que je cherchais! En tapant [espace], l'aperçu disparaîtra également.
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.
>
jtbandes
la source
Zut. Maintenant, comment puis-je prendre la pelle?
Josh K
1
Quand j'ai découvert ça, j'ai perdu une demi-journée à y jouer!
Josh
13
Je n'ai jamais vraiment joué à ces jeux auparavant, alors imaginez ma surprise quand ...>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
> secouer un arbre 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.... aurait probablement dû voir cela venir.
Dan Ray
1
Ne pas oublierM-x tetris
ocodo
36

afconvert vous permet de convertir depuis et vers tous les formats audio connus en interne dans Core Audio.

Par exemple, convertir un fichier aiff en 160kbps AAC:

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

Vérifiez rapidement ce qui mange toute votre mémoire:

top -o vsize

Et pour votre CPU

top -o cpu

Q quitter

Aurélien Bottazini
la source
3
Je ne voulais pas donner une réponse complète à cela, donc .. Il y a divers indicateurs qui réduiront l'utilisation de la mémoire de top lui-même: alias ltop='top -F -R -o cpu'a plus .. Si vous spécifiez -o vsizeetc, cela remplacera le -o cpu.
Vous pouvez également utiliser -uau lieu de -o cpu. top -utrie par utilisation du processeur.
Chris Page
32

Pour rendre ctrl+ et ctrl+ utiles à nouveau, c'est-à-dire avancer ou reculer d'un mot comme ils le font habituellement sous Linux, vous devez faire en sorte que Terminal.app envoie la bonne chaîne au shell. Dans les préférences, allez dans l' Settingsonglet et sélectionnez votre profil par défaut. Aller à Keyboardet définir control cursor leftet control cursor rightenvoyer chaîne \033bet \033frespectivement.

Pendant que vous y êtes, vous pouvez également corriger Home( \033[H), End( \033[F), Page Up( \033[5~) et Page Down( \033[6~) afin qu’ils envoient ces clés au shell au lieu de faire défiler le tampon.

jou
la source
comme suggéré Slomojo: un mot précédent / suivant est lié à Opt-b / f lorsque vous configurez le terminal pour qu'il reconnaisse Opt en tant que Meta
Zorb
Eh bien, certaines personnes ont réellement besoin de la touche d'option… Sur de nombreuses dispositions de clavier, des caractères comme ceux-ci {}[]nécessitent une combinaison de touches impliquant [⌥]. Ou si vous utilisez la mise en page américaine et que vous avez régulièrement besoin de caractères non anglais (comme je le fais avec les trémas), vous avez également besoin de [⌥].
jou
30

Rééchantillonnez l'image pour que la hauteur et la largeur ne soient pas supérieures à la taille spécifiée, par exemple 100x100:

sips -Z 100x100 image.jpg

sips prend en charge d'autres opérations telles que: retourner, faire pivoter, rogner, requête de propriétés d'image, requête de profil de couleur et modification. Vérifiez l' man sipsutilisation.

Ronny Haryanto
la source
25

Avec hdiutilvous pouvez facilement monter une image disque:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Démontage (façon pirate):

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

Démontage (moyen facile):

hdiutil detach /Volumes/<mountpoint>

ou prenez l’approche la plus simple (celle qui est suggérée ci-dessous):

hdiutil detach /Volumes/latest_webkit
homme de main
la source
18
Il suffit de faire "hdiutil detach / Volumes / <point de montage>"
churnd
1
Les deux derniers choix ne sont-ils pas les mêmes?
J'ai utilisé diskutilpour beaucoup de cela récemment, après avoir appris (et haïssé) Disktool. diskutil eject /Volumes/backupsa été une utilisation fréquente ces derniers temps.
Jason Salaz
Je ne sais pas pourquoi mais /sbin/umount /Volumes/Foosemble fonctionner plus vite que hdiutil
TJ Luoma
J'utilise surtout aussi diskutil, spécialement diskutil verifyVolume <volume name>, car la fonction Verify de Disk Utility pour les volumes RAID, en particulier, n'a jamais fonctionné (bogue persistant).
25

Quelques alias utiles:

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

Tous ces éléments se trouvent dans mon ordinateur ~/.bash_profileafin que je puisse les utiliser dans chaque fenêtre de terminal.

PS

alias chpwn="chown"

Pour plus, voir mes dotfiles référentiel sur GitHub , et / ou voir mon .osxfichier pour OS préférences et paramètres spécifiques X .

Mathias Bynens
la source
+1 - Excellente réponse. J'aime particulièrement les alias ips / myip!
Boehj
22

textutil est un outil très pratique qui permet de convertir du texte entre HTML, RTF (D), Word (y compris XML), OpenOffice.org Writer et le format Webarchive.

Je l'utilise notamment dans un service qui convertit le texte sélectionné en HTML, le télécharge sur un serveur puis l'importe dans Instapaper.

louije
la source
Je pense que ceci est spécifique à BSD, et pas seulement à OS X. Mais utile quand même ...
@ Henno, Nope; 10.8.5 (au moins) a textutilaussi. La page de manuel relative aux texteditétats supportant "txt, html, rtf, rtfd, doc, docx, wordml, odt ou webarchive".
Jeff Dickey
22

Rendre les fichiers invisibles:

SetFile file -a V

SetFile peut également modifier de nombreux autres attributs de fichier et métadonnées.

SetFile n'est pas une commande native OS X, il est fourni avec DevTools / Xcode.

Si vous ne disposez pas de Xcode et que vous ne souhaitez pas télécharger environ 6 Go, vous pouvez utiliser

sudo chflags hidden|nohidden <file/folder>

chflags est une commande BSD et il a aussi une page de manuel, entrez ceci dans Terminal

man chflags

pour ceux qui n'aiment pas entrer eux-mêmes dans les commandes et aimeraient simplement savoir ce qu'il y a dans l'homme. Vous avez ici:

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
konqui
la source
5
C'est dans /Developer/Tools, que vous devrez télécharger depuis le site d'Apple (lourd), ou installer à partir du disque du système d'exploitation. Aucun système n'est complet sans cela.
6
chflags hidden?
Daniel Beck
Vous préfixez un drapeau avec "non" pour le supprimer. Donc c'est sudo chflag nohidden <file/folder>pas show.
phette23
19
 dot_clean .

Celui-ci n'est pas une utilisation quotidienne - mais c'était un gros gain de temps - j'avais un serveur de fichiers SMB (Avid Unity) qui affichait de nombreux fichiers .filename pour les utilisateurs mac et les utilisateurs de PC.

Cette commande de nettoyage corrige totalement le problème (après avoir exécuté deux fois)

evilblender
la source
3
Il est bon de connaître enfin un bon moyen de le faire.
JKP
Désolé, mais je ne comprends pas ce que sont les fichiers ._ * et comment ce programme corrige le problème décrit, la page de manuel ne vous a pas beaucoup aidé. Pourriez-vous donner plus de détails? Est-ce complètement sécuritaire d'utiliser?
rslnx
Les fichiers ._ sont invisibles dans le Finder sous Mac OS - mais sont visibles par les autres systèmes d'exploitation. Ils ont également tendance à être une relique de «ressources» qui ont cessé d’être utilisées lorsque le Mac est passé d’OS 9 à OS X. Plutôt que de les jeter bon gré mal gré dans un autre OS, vous pouvez demander au Mac OS de vous aider à nettoyer ceux inutiles en utilisant la commande dot_clean.
evilblender
17

historyaffiche une liste des commandes récentes que vous avez exécutées - quelque chose comme 500 ou 600 commandes. J'utilise fréquemment history | grep somethingpour trouver une commande que j'ai utilisée récemment.

Avi Lin
la source
13
C'est une bash intégrée, pas spécifique à OS X.
Vrai. Pardon. Je suppose que je me suis dit que l'interrogateur cherchait des commandes de terminal Mac utiles, qu'elles soient spécifiques à Mac ou non. Si je me suis trompé, désolé.
7
Vous pouvez appuyer sur Ctrl + R in bash pour effectuer une recherche interactive dans l'historique de votre shell. Si vous appuyez dessus, tapez ssh exa, il trouvera la dernière commande qui commence par ssh exa. Vous pouvez appuyer de nouveau sur ctrl + r pour revenir en arrière, revenir pour exécuter la commande en cours ou appuyer sur échap pour modifier la commande
2
Pendant que nous y sommes, history -a; history -rcopie l’historique entre les onglets du terminal.
3
Une fois que vous avez exécuté, historyvous pouvez exécuter n’importe quel élément de la liste obtenue en utilisant le numéro de l’élément historique. par exemple !23, exécutera l'élément 23 dans la liste d'historique.
17

Bien que je puisse me déplacer dans vi, j'utilise TextMate comme éditeur de ligne de commande . Vous pouvez également y diriger des choses. Par exemple, ls | mate ouvre TextMate avec la liste actuelle directement ouverte dans une fenêtre de texte.

hanleyp
la source
5
J'ai utilisé 'mate'. plus de fois que je tiens à compter.
En effet, mate .c'est la meilleure chose qui soit.
Je recommanderais certainement de jouer avec Cocoa Emacs.
jeudi
16

mdlsvous montrera toutes les métadonnées du fichier que Spotlight connaît. Vous pouvez également utiliser les attributs résultants dans "mdfind".

mdutil vous permet d'activer ou de désactiver l'indexation sur certains volumes et de réinitialiser l'index, etc.

systemsetup est spécifique à BSD (pas seulement Mac), mais cool, consultez sa page de manuel.

GetFileInfo (Je crois que vous devez vous procurer les outils de développement pour pouvoir le faire) vous permet de voir toutes les heures associées (modification, création, dernier accès) et tous les attributs d'un fichier.

automator vous permet d'exécuter des flux de travaux d'automate à partir de la ligne de commande, tandis que

osascript vous permet d'exécuter du code de script Apple.

Henno
la source
+1 - Je ne savais pas qu'il était automatorbon de savoir ... je suppose;) - (En général, je l'utilise pour exécuter des scripts à partir du Finder, je ne suis donc pas sûr de ne l'avoir jamais utilisé à l'envers.)
mercredi