web-dev-qa-db-fra.com

Quelles sont les commandes de ligne de commande utiles sur Mac OS X?

D'après les fils Windows et Linux , quelles commandes trouvez-vous les plus utiles dans Mac OS X Server (ou Client)?

58
username
say "some text"

Utilisé pour ramener les gens dans leurs appartements , say prend vos arguments et les lit à haute voix via le périphérique de sortie audio.

28
Tim

pbpaste et pbcopy pour interagir avec le presse-papiers (alias presse-papiers).

Exemples:

# copies the directory listing
ls -l | pbcopy

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

Je pense qu'ils utilisent par défaut l'encodage macroman, donc si vous voulez UTF-8 (ce que vous faites), vous devriez vérifier ces liens:

23
kch
fs_usage

Vous permet de surveiller l'activité du système de fichiers. Pratique si vous voulez voir quels fichiers une application crée. Voir http://rentzsch.com/macosx/fs_usageIntro pour plus d'explications.

19
username
open .

Ouvre une fenêtre du Finder dans le répertoire de travail actuel.

17
richardhoskins

Depuis la ligne de commande, j'aime pouvoir:

Créez et gravez un CD/DVD "universel":

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

Créez une image ISO à partir d'un CD/DVD:

.

Pouvoir oublier la commande otool lorsque je cherche ldd:

 $ alias ldd = 'printf "Envoi de la commande à \'\'' otool -L\'\' '-\n" && otool -L' 

Montez une image disque à partir de la ligne de commande:

 $ hdid diskimage.dmg (ou .iso) 

Utilisez l'aperçu pour accéder à une page de manuel:

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

L'utilitaire CLI "aéroport" est mon préféré. Voir http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/ . Il vous montrera des détails comme le niveau du signal, le niveau de bruit et le BSSID de l'AP auquel vous êtes associé.

12
Jason Luther
drutil tray open

Inestimable (sur ssh) quand aucun clavier n'est connecté car le bouton d'éjection sur les lecteurs optiques Apple Apple n'est pas accessible de l'extérieur du boîtier).

11
James
ipconfig getpacket en0

Affiche la configuration du réseau pour l'interface Ethernet principale (en0).

Si vous êtes habitué à Windows et pensez que "ipconfig" est cassé - ce n'est pas le cas ;-) Il vous suffit d'ajouter quelques arguments

11
username

On ne peut pas en dire assez, "ouvert" est super. Vous pouvez ouvrir des documents dans leur programme GUI et vous pouvez également sélectionner le programme GUI avec -a. Par exemple,

open -a vlc movie.avi

ouvrira VLC et lui dira de charger movie.avi dans votre répertoire actuel.

open movie.avi

l'ouvrirait avec le programme par défaut. Si vous voulez simplement ouvrir un programme, vous pouvez aussi le faire:

open -a system\ preferences

exécutera les Préférences Système. Vous pouvez également ouvrir les URL:

open vnc://myserver:5900

ouvrira le partage d'écran et se connectera à myserver.

Check-out

man open

pour voir tous les indicateurs que vous pouvez utiliser.

11
w00t
softwareupdate

Mettez à jour votre mac depuis la CLI.

10
dvoita
networksetup

Configurez tout ce que vous trouvez dans le volet Préférences réseau dans les Préférences Système sur la ligne de commande. Permet d'écrire des scripts ou de faire des choses à distance beaucoup plus facile.

9
Chealion
Sudo changeip -checkhostname

Vérifie que la résolution DNS avant et arrière est saine et vous montre souvent la commande que vous pouvez utiliser pour résoudre le problème. S'il dit "les noms correspondent, il n'y a rien à changer", vous êtes en bonne forme. Indispensable si jamais vous changez la configuration réseau de votre serveur. Il est également important de l'utiliser avant de promouvoir votre serveur en maître Open Directory.

8
username
dscacheutil -flushcache

Je me retrouve à utiliser celui-ci pour vider le cache DNS, sur 10.5+.

8
Bruce McLeod
ping 224.0.0.1

Ping tous périphériques sur votre sous-réseau

7
username
srm

Version en ligne de commande pour une suppression sécurisée.

7
Jauder Ho
last

indique qui s'est connecté à un système, combien de temps ils l'ont utilisé et quand le système a été redémarré.

Voici un échantillon de la sortie:

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
 lsof

liste des fichiers ouverts

Pratique lorsque vous souhaitez éjecter votre clé USB et qu'on vous dit qu'elle est en cours d'utilisation. Veuillez quitter toutes les applications et réessayer.

$ 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

Dans ce cas, j'avais cded sur le lecteur et donc bash accédait au volume.

Notez que si vous voyez des entrées "mds", cela signifie que Spotlight indexe le lecteur.

7

Le guide d'administration de ligne de commande publié par Apple est inestimable).

Googler pour "mac d'administration en ligne de commande" donne de bons résultats.

Administration de la ligne de commande pour Mac OS X 10.5 , 10.4 et 10. .

D'autres guides utiles sont disponibles sur http://www.Apple.com/server/macosx/resources/ .

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

Vous permet de quitter une application à partir du shell.

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

Dernière ligne utile d'un long script Shell, met Mac en veille lorsque le script est terminé. Je l'ai aliasé à iSleep.

pbpaste | script.sh |pbcopy

prend le contenu de la table de montage (éditer-> copier) et le redirige vers script.sh. Les résultats sont placés sur la table de montage pour que vous puissiez les éditer-> coller dans un document.

6
sal

http://www.commandlinefu.com

Bien qu'il ne s'agisse pas spécifiquement d'une ressource Mac, il utilise l'icône du terminal, et la plupart des commandes vraiment utiles fonctionneront.

6
mcxquery

cela vous permettra de voir quel type de paramètres MCX (Client géré) sont appliqués à une machine cliente.

[L'équivalent GUI est d'aller à System Profiler, et, dans la section Logiciel, cliquez sur "Client géré".]

Il est utile de déterminer si une machine est gérée et de voir si elle obtient les paramètres que vous attendez.

5
sw_vers

Affiche la version et la version de Mac OS X actuellement installées.

5
username
df -h

Pour vérifier combien d'espace disque j'ai actuellement sur tout le disque.

4
hendrasaputra
opendiff file1 file2

Exécute FileMerge (un diff graphique fourni avec Apple Developer Tools) sur file1 et file2.

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

Liste des serveurs publicitaires dans Bonjour. La dernière suggestion répertorie les types de services que vous pouvez répertorier. La liste est en direct, appuyez sur Ctrl-C lorsque vous en avez vu assez.

La même commande est disponible dans les Linux récents et dans le SDK Bonjour pour Windows.

4
James
system_profiler

Donnez-vous les mêmes résultats que lorsque vous choisissez À propos de ce Mac -> Plus d'informations, uniquement sur la ligne de commande.

Fonctionnement

system_profiler -usage

ou en regardant la page de manuel vous donnera des conseils sur la façon de l'utiliser.

Quelques exemples:

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

cela videra le profil système dans un fichier qui pourra être consulté ultérieurement sur une autre machine.

system_profiler SPUSBDataType

Vous informe sur tous vos périphériques USB (y compris leurs ID de fournisseur et de produit, ce qui peut aider à retrouver les pilotes).

system_profiler SPUSBDataType | grep "Product ID" -c

vous dira combien de périphériques USB sont branchés (y compris les périphériques USB internes), ce qui est utile pour voir si l'ordinateur voit un périphérique (ou, si, disons, Parallel l'a saisi ou est mort.) [Notez que dans le App GUI System Profiler, vous pouvez choisir Affichage -> Actualiser dans le menu pour mettre à jour la liste; cela peut être plus simple.]

system_profiler SPHardwareDataType

vous obtiendrez des informations de base sur le matériel (utiles pour le suivi des actifs), et

system_profiler SPHardwareDataType | grep Serial

vous donnera le numéro de série de la machine.

4
Sudo opensnoop

dans Leopard et plus récent, les rapports qui traitent les fichiers ouverts, avec succès ou non. Vous pouvez lui demander d'examiner tous les fichiers ouverts sur le système, par un processus spécifique, ou si un processus ouvre un fichier donné, avec différentes sortes d'horodatages, et de montrer si des erreurs se produisent.

Voici quelques détails supplémentaires:

opensnoop est un script dtrace ; il y en a beaucoup d'autres dans/usr/bin qui regardent des choses comme le système qui appelle un processus, quels processus il crée et ce qu'il fait. Courir apropos DTrace pour une liste et consultez les pages de manuel pour plus de détails.


J'ai découvert opensnoop lorsque j'ai eu du mal à diagnostiquer pourquoi un Comic Life Magiq 1.1 plantait sur OS 10.5.8 pour les utilisateurs avec des comptes réseau.

J'ai couru (plusieurs fois, sur différents comptes, via ssh):

Sudo opensnoop -e -n Comic > output.txt

Le dernier fichier ouvert par les utilisateurs du réseau ressemblait à ceci (avec un chemin complet):

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

ce qui m'a rappelé que Safari 5.0 se bloquait pour les utilisateurs du réseau, et nous avons contourné ce problème soit en gérant une préférence pour ne pas mettre en cache les favicons ou en redirigeant un fichier. Apple a apparemment résolu le problème dans Safari 5.0.1, et lorsque j'ai effectué une mise à niveau vers Safari 5.0.2 hier, il a corrigé le plantage des utilisateurs de Comic Life Magiq.

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

Modifie (usurpation d'adresse MAC) jusqu'au prochain redémarrage

4
username

Vraiment Mac uniquement: j'ai vu "ouvert". ci-dessus, mais open ouvrira tout document ou application que vous lui transmettez.

Unix générique que j'utilise le plus: Sudo est assez pratique pour changer les fichiers de configuration du système, etc., que je modifie en fait dans vi.

kill ne peut pas être surestimé quand quelque chose se bloque (ou lorsqu'un autre utilisateur est toujours connecté à mon bureau en arrière-plan et que je veux les déconnecter, méchant je sais mais c'est mon bureau)

ssh/scp - J'aime que dans OSX je puisse simplement ouvrir un terminal et me connecter à n'importe lequel de nos serveurs. Cela seul m'a fait plaisir de laisser tomber Windows.

ifconfig/ping/whois/nmap etc.

3
Alex

scutil --dns

Affiche l'ordre de résolution DNS. Utile lorsque vous créez ou déboguez vos paramètres réseau.

3
romant
lsof -i 

répertorie les ports Internet ouverts. Exemple de sortie:

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)

Utilisez Sudo si vous souhaitez que les ports soient ouverts par tous les utilisateurs et les indicateurs -n et -P désactivera la résolution de nom et les noms de port et vous donnera des numéros à la place.

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

Démarre le service Bureau à distance (utile si vous ne disposez que d'un accès SSH mais que vous voulez faire quelque chose en utilisant l'interface graphique sur votre Mac client). Pour plus d'options, voir: http://support.Apple.com/kb/HT237

3
username
drutil eject

éjectera un CD.

3

Si vous voulez savoir quel type de fin de ligne possède un fichier, lancez

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 peu piéton pour ce public, sans doute, mais j'utilise:

capture d'écran -i -c

pour saisir tout ce que je veux sur l'écran C'est très pratique et fait des choses que Grab ne me permettra pas de saisir.

2
Dave

Gagnez un shell root sans activer l'utilisateur root (comme Apple lui-même nécessite parfois dans leurs docs afin de faire des trucs "geek", c'est-à-dire pour définir à l'échelle du système) Langue)

Sudo bash

Cela vous donne un shell root où vous pouvez faire tout ce que vous voulez en tant que root, sans avoir à ajouter chaque commande avec la commande Sudo.

Cela peut être dangereux, mais nous sommes des administrateurs système, nous savons ce que nous faisons, n'est-ce pas? :)

2
drAlberT

Outre les suspects Unix habituels, je trouve les informations suivantes utiles: -

  • dsconfigad - Modifie les paramètres Active Directory et lie un ordinateur

  • par défaut - Modifier les préférences

  • plutil - Convertit plist vers et depuis le texte

  • softwareupdate - exécuter la mise à jour logicielle à partir de la ligne de commande

  • installer - installe les packages à partir de la ligne de commande

  • networksetup - définir et obtenir diverses choses telles que le nom de l'ordinateur

Si vous maîtrisez ceux-ci et les trucs Unix habituels, vous avez tout ce dont vous avez besoin pour l'administration Mac à partir de la ligne de commande.

2
Honestpuck

Comment activer Time Machine pour sauvegarder sur un NAS.

defaults write com.Apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Trouver l'adresse MAC

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

Commande pour créer un sparsebundle à copier sur le NAS

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

Fonctionne comme un support de sauvegarde sur mon ReadyNAS.

2
Jauder Ho

Il s'agit d'un outil tiers gratuit, mais

edit

est vraiment pratique. Il s'agit d'un outil en ligne de commande que vous pouvez éventuellement installer la première fois que vous exécutez TextWrangler . [D'autres éditeurs de texte (BBEdit, TextMate) fournissent probablement quelque chose d'analogue.]

edit path/to/somefile

Ouvre le fichier dans TextWrangler et vous permettra de vous authentifier si vous n'avez normalement pas l'autorisation de le modifier. (Vous pouvez même le faire à partir d'une session ssh, et il l'ouvrira pour l'utilisateur graphique connecté).

Mieux encore, vous pouvez y apporter des tuyaux.

lsof -i | edit

par exemple, vous montrera vos connexions réseau ouvertes et les ouvrira dans TextWrangler, où vous pourrez les rechercher (et les faire défiler) facilement.

2

Cette question se chevauche un peu avec celle-ci sur les outils dont un administrateur UNIX ne peut pas se passer . De nombreux outils de ligne de commande pour Mac OS X ont des racines UNIX, tels que df, du et which; cependant, il existe des exceptions notables qui n'ont pas d'équivalents UNIX évidents, telles que osascript, open, pbcopy, pbpaste et say.

2
las3rjock

killall -9 appname force quitte une application. Très utile si vous ne pouvez pas accéder au moniteur d'activité.

2
al.

ipconfig est parfois utile:

Obtenir l'adresse IP actuelle sur l'interface:

$ ipconfig getifaddr en1
10.110.2.25

Obtention des dernières informations DHCP reçues:

$ 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

est idéal pour obtenir votre adresse IP, et

ifconfig en1 | grep eth

fonctionne bien pour obtenir une adresse MAC. L'utilisation de en1 obtiendra (presque toujours) l'adresse MAC de l'aéroport, ce qui est pratique si seuls les appareils connus sont autorisés sur votre réseau sans fil. Inversement, si vous utilisez en0 - le port Ethernet intégré - vous pouvez alors rechercher la machine dans votre Open Directory, comme ceci:

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

(En supposant que votre serveur était "odm" et que le domaine est ODM.PRETENDCO.COM).

2

Je viens de découvrir qu'il existe une construction bash astucieuse que vous pouvez utiliser à la place de la commande seq manquante dans Mac OS:

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

Démarre une session interactive SQLite . Si foo.db n'existe pas, il sera créé.

1
richardhoskins

du -d 1 -h

Affiche les statistiques d'utilisation du disque pour le répertoire actuel sous une forme lisible par l'homme.

homme [commande]

L'une des commandes les plus utilisées. Vous indique comment utiliser tout le reste.

1
Peter Hoven

Choses spécifiques à OS X que je n'ai pas vues:

mdfind utilise les index de recherche Spotlight à partir de la ligne de commande, vous pouvez donc effectuer des recherches en texte intégral sans utiliser le menu déroulant de recherche.

networksetup - vous montrera toute la syntaxe folle qu'il prend en charge; il s'agit de l'équivalent en ligne de commande du volet Préférences réseau.

Sudo launchctl list - affiche les travaux launchctl en cours d'exécution. rappelles toi launchctl stop X.XX.X va simplement "arrêter" (tuer) l'instance en cours d'exécution d'un processus persistant; pour vraiment le faire cesser de fonctionner, utilisez launchctl unload /System/Library/LaunchDaemons/X.XX.X.plist.

1
eric sorenson
Sudo slapconfig -destroyldapserver

Forcer la rétrogradation d'une réplique LDAP en mode autonome. Si votre Open Directory Master est mal configuré, il peut arriver que la rétrogradation d'un réplica Open Directory à l'aide d'Admin Serveur échoue (par exemple: vous pourriez constater que votre serveur de réplica refuse de rétrograder). Vous pouvez utiliser slapconfig pour le forcer à rétrograder à ces occasions.

1
username
 which program

a recherché le chemin d'accès au programme et vous indique quel exécutable est appelé si vous exécutez le programme sans spécifier de chemin d'accès complet.

Il est généralement plus utile comme raccourci pour taper un chemin.

$ 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

Vous avez toujours voulu savoir quelle est l'adresse IP d'un autre Mac que vous pouvez voir dans le Finder sur votre réseau local grâce à Bonjour?

dscacheutil -q Host -a name OtherMac.local

dscacheutil est étonnamment utile et polyvalent. Vous pouvez faire beaucoup plus avec cela que simplement vider le cache DNS (comme mentionné ailleurs ici), c'est-à-dire les recherches d'utilisateurs et les statistiques et les vidages du cache.

1
Joe Carroll

Quelles licences DHCP le client détient-il?

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

Répertoriez le pare-feu autoriser/refuser:

Sudo ipfw list

Générez un mot de passe à haute entropie (double-cliquez sur une chaîne prometteuse de 16 caractères à copier/coller):

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

Ce sont basiques, mais pratiques si vous souffrez d'amnésie:

Qui suis je?

id

Où suis-je?

pwd

Quel bâtiment suis-je?

hostname

Quelle est son adresse?

ifconfig |grep inet
1
username

Ce n'est peut-être pas la commande la plus "utile" mais say est assez amusant.

Par exemple say I love serverfault pour qu'il relise ce que vous tapez après "dire".

0
HostBits
locate "foo"

Affiche n'importe quel fichier sur votre système avec "foo" dans son nom de fichier. Je dois l'utiliser presque aussi souvent que j'utilise Spotlight.

0
username
 Sudo reboot

redémarre l'ordinateur.

0