macOS Terminal : cat, lire vos fichiers en un instant

Notre commande Unix du Vendredi soir

Notre commande Unix du Vendredi soir : cat

Vous connaissez cette scène. Vous êtes dans le Terminal, quelque part dans votre arborescence de fichiers, et vous voulez juste jeter un œil au contenu d’un petit fichier de configuration, d’un journal court ou d’une note en texte brut.

Faut-il vraiment ouvrir le Finder, retrouver le fichier, faire un double-clic, attendre que TextEdit se lance, puis refermer la fenêtre trois secondes plus tard ?

La réponse tient en trois lettres : cat.

Cette commande fait partie de l’ADN d’Unix depuis la toute première version d’AT&T UNIX, écrite par Dennis Ritchie en personne. Sur votre MacBook Pro M4 ou votre iMac sous macOS Sequoia, elle est toujours là, prête à afficher instantanément le contenu d’un fichier dans votre fenêtre de Terminal.

Le nom cat est le raccourci de concatenate, c’est-à-dire mettre bout à bout. Car cette petite commande fait bien plus que lire un fichier. Elle sait aussi les enchaîner, numéroter leurs lignes, ou révéler les caractères invisibles qui se cachent dans vos textes.

Voyons ensemble comment l’utiliser au quotidien.

Anatomie d’une commande vétérante

La syntaxe officielle de cat, telle qu’elle figure dans la man page de macOS, tient sur une seule ligne.

cat [-belnstuv] [file ...]

Le principe est simple. La commande lit un ou plusieurs fichiers de manière séquentielle, puis écrit le résultat sur la sortie standard, autrement dit votre fenêtre de Terminal.

Si vous ne donnez aucun nom de fichier, ou si vous utilisez un simple tiret à la place, cat lit alors depuis l’entrée standard, ce qui ouvre la porte à toutes sortes de combinaisons avec d’autres commandes.

Passons en revue les options disponibles sur macOS, extraites textuellement de la man page officielle du système.

L’option -b numérote uniquement les lignes non vides du fichier, en commençant à 1.

L’option -e affiche les caractères non imprimables (comme le fait l’option -v) et ajoute un signe dollar en fin de chaque ligne.

L’option -l pose un verrou exclusif consultatif sur le descripteur de fichier de la sortie standard. Utile pour éviter les collisions d’écriture concurrentes.

L’option -n numérote toutes les lignes de sortie, y compris les lignes vides, en commençant à 1.

L’option -s compresse les lignes vides consécutives, ce qui rend la sortie visuellement plus aérée.

L’option -t affiche les caractères non imprimables et représente les tabulations par la notation ^I.

L’option -u désactive la mise en tampon de la sortie, pour un affichage immédiat caractère par caractère.

L’option -v rend visibles les caractères non imprimables. Un caractère de contrôle devient par exemple ^X, et le caractère de suppression apparaît sous la forme ^?.

Le tiret seul en position d’argument indique que cat doit lire depuis l’entrée standard à cet endroit précis.

Bon à savoir : la commande cat renvoie le code de sortie 0 en cas de succès, et une valeur supérieure à 0 si une erreur survient. Ce détail sera précieux le jour où vous chaînerez cat dans un script shell.

Trois scénarios du quotidien Mac

Passons de la théorie à la pratique. Voici des cas d’usage que vous rencontrerez très probablement sur votre propre machine.

Premier scénario : vous avez créé une petite note en Markdown pour préparer un article, et vous voulez la vérifier rapidement avant de la partager.

cat /Users/henrido/Documents/idees-articles.md

Le contenu apparaît immédiatement dans le Terminal, sans lancer aucune application graphique. Parfait pour une relecture éclair depuis votre MacBook Air M3 posé sur les genoux.

Deuxième scénario : vous inspectez un fichier de configuration système pour comprendre un comportement de votre Mac mini. Vous voulez numéroter les lignes pour pouvoir référencer précisément un passage dans un ticket support.

cat -n /etc/hosts

Chaque ligne du fichier hôte apparaît alors précédée de son numéro. Vous pouvez ainsi indiquer regardez la ligne 8 sans ambiguïté à la personne qui vous aide.

Troisième scénario : vous préparez un rapport à partir de plusieurs fichiers texte séparés, par exemple des exports de statistiques semaine par semaine, et vous voulez tout réunir dans un unique document.

cat semaine-01.txt semaine-02.txt semaine-03.txt > rapport-mensuel.txt

Ici, cat lit les trois fichiers dans l’ordre et les concatène. La redirection avec le chevron envoie l’ensemble vers un nouveau fichier appelé rapport-mensuel.txt. Attention, ce chevron simple écrase le fichier de destination s’il existait déjà.

C’est là que le nom de la commande prend tout son sens. cat concatène bien, avant tout, plusieurs entrées en une seule sortie.

Le combo qui change la donne : cat et le tuyau

Sur macOS, cat révèle toute sa puissance lorsqu’il est associé à d’autres commandes via le caractère tuyau, aussi appelé pipe et représenté par la barre verticale.

Prenons un exemple concret. Vous voulez retrouver toutes les lignes d’un fichier journal qui mentionnent une erreur, et compter combien il y en a.

cat /var/log/install.log | grep -i "error" | wc -l

Décomposons cette petite chaîne. La commande cat lit le fichier install.log, l’envoie à grep qui filtre les lignes contenant le mot error sans distinction de casse grâce à l’option -i, puis wc -l compte le nombre de lignes résultantes.

Vous avez ainsi un compteur d’erreurs en une seule ligne.

À noter : les utilisateurs Unix aguerris rappellent volontiers que grep sait déjà lire un fichier directement, ce qui rend l’appel à cat superflu ici. Écrire grep -i error /var/log/install.log | wc -l est plus efficace car cela évite un processus intermédiaire. Ce cas est même connu sous le nom de useless use of cat.

Mais pour un débutant, la version avec cat a le mérite de la clarté. On lit littéralement prends ce fichier, puis filtre-le, puis compte-le. Une fois le principe compris, vous pourrez optimiser.

Autre variante moins connue et vraiment utile : la commande cat avec l’option -A n’existe pas sur macOS. Elle est propre à la version GNU de cat que l’on trouve sur Linux. Pour obtenir un équivalent sur votre Mac, combinez -v, -e et -t.

cat -vet mon-fichier.txt

Cette combinaison affiche tous les caractères invisibles, ajoute un dollar en fin de ligne et matérialise les tabulations. Idéal pour traquer un espace intempestif ou une tabulation cachée dans un fichier YAML ou un script shell qui refuse obstinément de fonctionner.

Un petit outil, un grand allié

La commande cat est probablement l’une des premières que tout utilisateur Terminal apprend, et l’une de celles qu’il utilisera le plus longtemps. Sa simplicité est aussi sa force.

Elle ne vous demande rien de plus qu’un nom de fichier, et vous rend en échange une lecture instantanée, sans détour graphique.

Prenez cinq minutes ce week-end. Ouvrez le Terminal, naviguez avec cd vers votre dossier Documents, et essayez cat sur un petit fichier texte que vous connaissez. Puis ajoutez -n pour voir les numéros de ligne apparaître.

Enfin, tentez la concaténation de deux fichiers dans un troisième. Vous verrez très vite pourquoi cat est resté indispensable pendant plus de cinquante ans.

 

Vous avez une question, une idée ou une remarque ? Je serai ravi de vous lire ! ✉️ henrido@hdrapin.com

macOS Terminal : touch, créer et dater vos fichiers

Notre commande Unix du Vendredi soir

Notre commande Unix du Vendredi soir : touch

Vous avez déjà passé trois minutes à créer un fichier vide dans le Finder pour tester un script Automator, un modèle Pages ou une nouvelle règle Hazel ?

Clic droit, nouveau document, choix de l’application, saisie du nom, retour à la ligne. Cinq gestes pour rien.

Sur macOS, la commande touch fait le même travail en une seule ligne, sans quitter votre clavier.

Et ce n’est pas tout. Cette petite commande sait aussi rafraîchir la date d’un fichier existant, aligner deux fichiers sur la même horodatage, ou forcer Time Machine et Spotlight à reconsidérer un document qui n’a pas bougé depuis longtemps.

Dans cet article, vous découvrirez la syntaxe exacte de touch sur macOS Sequoia, les options utiles issues de la man page BSD locale, et des scénarios concrets qui feront de cette commande un réflexe quotidien.

À la fin, vous saurez créer une arborescence de fichiers de test, dater un projet à la seconde près, et combiner touch avec d’autres outils Unix pour automatiser des tâches répétitives.

Objectif : gagner du temps et garder la maîtrise complète de vos dates de fichiers, sans jamais ouvrir une application graphique.

Ce que fait vraiment la commande sous macOS

La commande touch a deux missions principales sur macOS.

Première mission, elle modifie la date d’accès et la date de modification d’un fichier existant. Deuxième mission, si le fichier ciblé n’existe pas, elle le crée aussitôt avec un contenu vide.

C’est cette double fonction, discrète mais puissante, qui la rend indispensable dans la boîte à outils de tout utilisateur macOS un peu curieux.

La syntaxe officielle telle qu’affichée par la man page BSD de macOS est la suivante :

touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...

Chaque option a un rôle précis et se combine librement avec les autres.

-a demande à ne modifier que la date d’accès du fichier, sans toucher à la date de modification.

-m fait exactement l’inverse et ne change que la date de modification, en laissant la date d’accès intacte.

-c indique à touch de ne pas créer le fichier s’il n’existe pas déjà. Utile quand vous voulez rafraîchir uniquement des fichiers existants sans en ajouter par mégarde.

-h sert lorsque le fichier cible est un lien symbolique. Par défaut, touch modifie le fichier de destination, mais avec -h, il modifie le lien lui-même.

-r fichier_référence copie la date d’un autre fichier vers celui que vous ciblez. Pratique pour synchroniser deux fichiers sur la même signature temporelle.

-t horodatage applique une date précise que vous saisissez, au format [[CC]YY]MMDDhhmm[.SS]. Autrement dit, quatre chiffres pour l’année, deux pour le mois, deux pour le jour, deux pour l’heure et deux pour les minutes.

-A décalage ajuste les dates existantes en ajoutant ou retirant un nombre précis de secondes, minutes et heures.

-f force l’opération quand certaines protections système empêchent la modification.

Trois scénarios concrets pour votre MacBook Pro

Premier scénario, vous préparez un cours ou un tutoriel et vous devez fabriquer rapidement une arborescence de fichiers vides pour illustrer une manipulation.

Ouvrez le Terminal, placez-vous dans votre dossier de travail et tapez :

touch /Users/henrido/Documents/Cours/exercice1.txt exercice2.txt exercice3.txt

En moins d’une seconde, trois fichiers texte vides apparaissent dans le dossier Cours. Vous auriez mis dix fois plus de temps à faire la même chose depuis le Finder.

Deuxième scénario, vous travaillez sur un projet Xcode ou un projet Pages depuis plusieurs semaines. Vous voulez signaler à Time Machine et à Spotlight que le fichier principal est bien actif, même si vous n’avez rien modifié aujourd’hui.

Utilisez la commande dans sa forme la plus simple :

touch /Users/henrido/Documents/Projets/rapport_annuel.pages

Le fichier reçoit une nouvelle date de modification calée sur l’heure exacte de la commande. Time Machine considère qu’il faut sauvegarder ce fichier au prochain passage, et Spotlight remet à jour son index interne.

Troisième scénario, vous téléchargez un ensemble de fichiers depuis un vieux disque dur externe. Les dates de modification sont incohérentes, certains fichiers affichent 1970, d’autres 2001.

Vous voulez que tous les fichiers d’un dossier reçoivent la même date, alignée sur un fichier de référence que vous savez correct.

touch -r /Users/henrido/Documents/Reference/fichier_correct.txt /Users/henrido/Documents/Import/*.txt

Tous les fichiers .txt du dossier Import héritent des dates du fichier de référence. En une seule ligne, votre archive retrouve une cohérence temporelle.

Fixer une date précise à la seconde près

Il arrive qu’un utilisateur macOS ait besoin de forcer une date très spécifique sur un fichier.

Cela arrive par exemple lors du montage vidéo dans Final Cut Pro, où l’ordre chronologique des rushes détermine la construction de la timeline. Ou lorsque vous préparez un dossier de preuves pour un dépôt de dossier administratif et que la date exacte compte.

Voici la syntaxe pour appliquer une date au 25 décembre 2026, à 14h30 précises :

touch -t 202612251430 /Users/henrido/Documents/Preuves/document_final.pdf

L’année complète est notée 2026, le mois 12, le jour 25, l’heure 14 et les minutes 30. Le tout collé en un seul bloc, sans espace ni tiret.

Vous pouvez ajouter les secondes en les séparant par un point. La commande devient alors :

touch -t 202612251430.45 /Users/henrido/Documents/Preuves/document_final.pdf

Ici, le fichier reçoit la date du 25 décembre 2026 à 14 heures, 30 minutes et 45 secondes.

Si vous ne précisez ni -a ni -m, touch applique cette date aux deux horodatages, celui d’accès et celui de modification. Cela reste le comportement par défaut sur macOS Sequoia et les versions antérieures.

Enchaîner touch avec find et xargs pour aller plus loin

L’une des forces d’touch est de très bien s’entendre avec les autres outils Unix disponibles sur macOS.

Prenons un cas réel. Vous souhaitez rafraîchir la date de modification de tous les fichiers Markdown situés dans votre dossier de notes Obsidian, mais uniquement ceux dont la date est antérieure à 2024.

Vous combinez find et touch grâce à un pipe :

find /Users/henrido/Documents/Obsidian -name "*.md" -not -newermt "2024-01-01" | xargs touch

find sélectionne les fichiers .md plus anciens que la date pivot. xargs passe la liste des fichiers trouvés à touch, qui met à jour leur date.

Autre variante utile, quand vous voulez créer d’un seul geste un ensemble de fichiers vides selon une liste préparée dans un fichier texte :

cat /Users/henrido/Documents/liste_fichiers.txt | xargs touch

Chaque ligne du fichier liste_fichiers.txt devient un fichier vide dans le dossier courant. Cette technique fait gagner un temps considérable pour préparer des lots de fichiers de test.

Dernière combinaison élégante, l’ajustement relatif avec l’option -A. Vous pouvez décaler tous les fichiers d’un dossier de trois heures vers l’arrière, ce qui est utile pour corriger un fuseau horaire incorrect après import :

touch -A -030000 /Users/henrido/Documents/Import/*.jpg

Le format -030000 signifie moins trois heures, zéro minute, zéro seconde. Toutes les photos importées voient leur date reculer de trois heures d’un seul coup.

Un réflexe simple qui change la relation au Terminal

Vous voyez maintenant qu’touch fait bien plus que créer un fichier vide.

Elle prépare une arborescence de test en quelques touches, force Time Machine à considérer un fichier comme actif, harmonise les dates d’un dossier importé, et se combine avec find et xargs pour automatiser des lots entiers.

Le mieux est de la pratiquer dans un dossier bac à sable, sans risque. Créez un dossier test_touch dans votre dossier Documents, et enchaînez les commandes de cet article une par une.

Vérifiez le résultat après chaque exécution en tapant ls -la pour voir les dates modifiées, ou en ouvrant l’inspecteur du Finder sur les fichiers concernés.

En quelques minutes, touch deviendra un geste réflexe, aussi naturel que la commande pwd ou ls que vous connaissez déjà. Et vous mesurerez, semaine après semaine, tout le temps gagné à ne plus quitter le clavier pour ces petites tâches du quotidien.

Vous avez une question, une idée ou une remarque ? Je serai ravi de vous lire ! ✉️ henrido@hdrapin.com

macOS Terminal : mkdir, créer des dossiers en un instant

Commande Terminal du vendredi soir : mkdir

Notre commande Unix du Vendredi soir : mkdir

Vous connaissez ce moment un peu agaçant où vous devez organiser un nouveau projet ? Ouvrir le Finder, clic droit, Nouveau dossier, nommer, entrer dedans, refaire un clic droit pour un sous-dossier, recommencer pour le suivant.

Trois minutes plus tard, votre arborescence est en place. Mais votre concentration, elle, s’est envolée.

Le Terminal de macOS embarque depuis toujours une commande qui règle ce problème en quelques secondes : mkdir. Prononcez make directory et vous avez tout compris.

En une seule ligne, vous créez un dossier, dix dossiers, ou une arborescence entière prête à accueillir vos fichiers.

Le vrai plus se trouve dans l’option -p. Elle génère plusieurs niveaux de sous-dossiers d’un seul coup. Idéal pour lancer un nouveau projet, structurer un site web, ou monter une bibliothèque de documents parfaitement rangée avant même d’y déposer le moindre fichier.

Cette commande, présente sur tous les Mac depuis les premières versions de macOS, mérite un vrai coup de projecteur. Voyons ensemble comment elle peut transformer votre façon de créer des dossiers au quotidien.

Anatomie d’une commande discrète mais puissante

La commande mkdir appartient à la boîte à outils Unix historique intégrée à macOS. Sa mission est claire : créer un ou plusieurs répertoires dans le système de fichiers, à l’emplacement de votre choix.

La syntaxe de base tient sur une ligne :

mkdir [options] nom_du_dossier

Vous pouvez aussi passer plusieurs noms de dossiers à la suite, séparés par des espaces, pour en créer autant en une commande.

Voici les options les plus utiles à connaître, telles qu’elles apparaissent dans la man page macOS :

-p crée les répertoires parents si nécessaire. Autrement dit, si vous demandez mkdir -p Photos/2026/Vacances et que rien n’existe encore, mkdir fabrique les trois niveaux en une seule opération.

-v active le mode verbeux. La commande affiche chaque dossier créé, ce qui est pratique pour vérifier votre travail sur des arborescences complexes.

-m définit les permissions du nouveau dossier directement lors de sa création. Un exemple : mkdir -m 755 monDossier produit un dossier avec des permissions de lecture et d’exécution pour tous, et d’écriture pour votre utilisateur uniquement.

Sans option, mkdir refuse de créer un dossier si le nom existe déjà, et il renvoie une erreur si l’un des dossiers parents du chemin est absent. L’option -p corrige ces deux limites d’un seul geste. Elle ne renvoie pas d’erreur si le dossier existe déjà et elle crée automatiquement tous les niveaux intermédiaires manquants.

Un petit détail à retenir. Sur macOS, le shell par défaut est zsh depuis la version Catalina en 2019. Il accepte des raccourcis très pratiques comme l’expansion des accolades que nous verrons plus loin, et qui multiplie encore la puissance de mkdir.

Trois scénarios tirés du quotidien Mac

Préparer l’arborescence d’un nouveau projet Xcode

Vous démarrez un projet de développement macOS ou iOS. Vous voulez une structure propre dès le départ, sans passer dix minutes dans le Finder.

Ouvrez le Terminal, placez-vous dans votre dossier ~/Documents/ avec cd ~/Documents/, puis lancez :

mkdir -p ProjetSwiftUI/Sources/Views ProjetSwiftUI/Sources/Models ProjetSwiftUI/Resources/Images ProjetSwiftUI/Tests

En moins d’une seconde, vous obtenez une arborescence organisée. Un dossier ProjetSwiftUI contient Sources avec ses sous-dossiers Views et Models, un dossier Resources prêt à recevoir vos images, et un dossier Tests réservé aux tests unitaires.

Ajoutez l’option -v pour voir chaque création s’afficher dans le Terminal :

mkdir -pv ProjetSwiftUI/Sources/Views ProjetSwiftUI/Sources/Models

Le shell vous confirme chaque dossier créé. C’est rassurant quand vous jonglez avec plusieurs niveaux d’imbrication.

Organiser une bibliothèque photo par années et par mois

Vous décidez enfin de ranger vos photos personnelles ou vos captures d’écran. Depuis le dossier ~/Pictures/, cette commande crée toute la structure d’un seul coup :

mkdir -p Archives/{2023,2024,2025,2026}/{Janvier,Fevrier,Mars,Avril,Mai,Juin}

La syntaxe avec les accolades s’appelle l’expansion des accolades. Elle est intégrée au shell zsh de macOS. Résultat concret : vingt-quatre dossiers sont créés en une seule commande. Quatre années, avec six mois chacune, parfaitement rangées.

Vous n’avez plus qu’à glisser vos photos aux bons endroits, ou à écrire un petit script pour automatiser le tri.

Créer un espace de test rapide sur le bureau

Vous testez une nouvelle procédure et vous voulez un dossier temporaire sans toucher à vos vrais fichiers. Cette commande fait le travail :

mkdir ~/Desktop/test-mkdir

Le dossier apparaît immédiatement sur votre bureau, prêt à être utilisé. Une fois vos tests terminés, un simple déplacement vers la corbeille fait disparaître la trace.

Petit bonus, si vous voulez également que ce dossier ait des permissions restreintes dès sa création, par exemple pour éviter que d’autres utilisateurs de votre Mac n’y accèdent :

mkdir -m 700 ~/Desktop/test-prive

Le mode 700 signifie que seul votre utilisateur peut lire, écrire et entrer dans ce dossier. Utile pour des tests contenant des informations sensibles.

Le combo qui automatise tout

mkdir prend toute sa dimension lorsqu’on l’associe à d’autres commandes Unix. Voici deux exemples concrets qui montrent la puissance des combinaisons.

Créer un dossier daté automatiquement pour vos sauvegardes.

mkdir -p ~/Backups/$(date +%Y-%m-%d)

Le morceau $(date +%Y-%m-%d) insère la date du jour au format année-mois-jour, en s’appuyant sur la commande date intégrée à macOS. Vous obtenez un dossier ~/Backups/2026-07-10 qui pourra accueillir vos fichiers de sauvegarde du jour.

Le lendemain, un autre dossier sera créé avec la nouvelle date, sans conflit possible. Cette astuce est particulièrement pratique dans des scripts de sauvegarde ou en association avec rsync.

Préparer un espace de rédaction complet en une seule ligne.

mkdir -p ~/Documents/Articles/2026/Juillet && touch ~/Documents/Articles/2026/Juillet/{brouillon,notes,references}.md

L’opérateur && enchaîne deux commandes. Le dossier est créé d’abord, puis trois fichiers Markdown vides apparaissent à l’intérieur, grâce à la commande touch. Pratique pour démarrer chaque nouvel article sur des bases identiques, avec un brouillon, des notes et un fichier de références déjà en place.

Vous pouvez aussi combiner mkdir avec un pipe et la commande xargs pour créer des dossiers à partir d’une liste. Cet exemple prend une liste de noms dans un fichier texte et crée un dossier pour chacun d’eux :

cat noms.txt | xargs -I{} mkdir -p Clients/{}

Si votre fichier noms.txt contient trois lignes avec des noms de clients, vous obtenez trois dossiers dans Clients/, sans avoir à taper chaque nom à la main.

Un réflexe qui fait gagner du temps

La commande mkdir est probablement l’une des premières que vous adopterez durablement. Elle remplace une série de clics par une phrase courte, et son option -p évite les allers-retours quand vous manipulez des arborescences complexes.

Elle a aussi l’avantage d’être scriptable. Une fois que vous savez organiser vos projets avec mkdir, vous pouvez enregistrer vos commandes favorites dans un fichier de script ou un alias, et lancer toute une structure en tapant un seul mot dans le Terminal.

Prenez cinq minutes pour tester ces exemples dans votre dossier ~/Documents/ ou sur votre bureau. Créez, supprimez, recréez. Une fois le geste acquis, vous ne reviendrez plus jamais au clic droit du Finder pour bâtir vos structures de dossiers.

Prochaine étape naturelle : la commande touch, qui complète parfaitement mkdir en créant les fichiers vides à l’intérieur des dossiers que vous venez de générer.

Vous avez une question, une idée ou une remarque ? Je serai ravi de vous lire ! ✉️ henrido@hdrapin.com

macOS Terminal : cp, copier vos fichiers facilement

Notre commande Unix du Vendredi soir : cp

Vous avez déjà dupliqué un projet entier sur votre Mac en glissant un dossier dans le Finder, pour réaliser dix minutes plus tard que la copie n’est pas terminée et qu’aucune barre de progression ne vous indique où vous en êtes ?

Ou peut-être avez-vous besoin de copier une arborescence complexe vers un disque externe, en excluant certains types de fichiers, depuis un script automatisé qui tourne la nuit ?

Le Finder est un outil remarquable pour la navigation visuelle au quotidien. Mais dès que la tâche gagne en volume, en précision ou en répétition, il montre ses limites.

La commande cp du Terminal macOS répond exactement à ces situations. Elle copie des fichiers et des dossiers avec une précision chirurgicale, sans interface graphique, sans délai d’affichage superflu, et avec un contrôle total sur ce qui est copié, comment, et vers où.

Ce guide vous montre comment utiliser cp et son option -r de manière concrète, depuis les cas les plus simples jusqu’aux usages que même les utilisateurs expérimentés négligent parfois.

Anatomie d’une commande qui copie tout ce qu’on lui demande

cp est l’abréviation de copy. C’est une commande POSIX standard, présente sur macOS depuis ses origines Unix, et documentée dans la man page officielle livrée avec le système d’exploitation.

Sa syntaxe de base est la suivante :

cp [options] source destination

La source est le chemin du fichier ou du dossier à copier. La destination est l’endroit où la copie doit être placée. Ces deux arguments sont obligatoires.

Les options essentielles à connaître

-r ou -R : copie récursive. Cette option est indispensable dès que vous souhaitez copier un dossier et tout ce qu’il contient (sous-dossiers inclus). Sans elle, cp refuse de copier un répertoire et retourne une erreur.

-i : mode interactif. Avant d’écraser un fichier existant à la destination, cp vous demande une confirmation explicite. Recommandé lorsque vous n’êtes pas certain que la destination est vide.

-n : sans écrasement. Si un fichier portant le même nom existe déjà à la destination, cp l’ignore silencieusement. Pratique pour des sauvegardes où vous ne voulez pas toucher à ce qui existe déjà.

-p : préservation des métadonnées. La copie conserve les permissions, les dates de modification et le propriétaire du fichier d’origine. Utile lorsque les attributs du fichier ont une importance pour une application ou un script.

-v : mode verbeux. Affiche chaque fichier au fur et à mesure qu’il est copié. Rassurant pour les opérations longues sur de gros volumes de données.

Ces options peuvent être combinées. Par exemple :

cp -rp source/ destination/

Cette combinaison copie récursivement tout le contenu de source/ vers destination/, en préservant les métadonnées de chaque fichier.

Trois scénarios du quotidien, un seul outil

Scénario 1 : dupliquer un document de travail avant de le modifier

Vous allez restructurer en profondeur un rapport annuel stocké dans votre dossier Documents. Avant de toucher au fichier original, vous souhaitez en conserver une copie de sécurité dans le même répertoire.

cp /Users/henrido/Documents/rapport-annuel-2025.pdf /Users/henrido/Documents/rapport-annuel-2025-backup.pdf

La commande crée immédiatement une copie identique sous un nouveau nom. Pas de dialogue, pas d’attente : l’opération est instantanée pour un fichier de taille standard.

Scénario 2 : copier un projet entier vers un disque externe

Vous travaillez sur un projet de développement dans /Users/henrido/Documents/MonProjet/. Votre disque externe LaCie s’est monté à /Volumes/LaCie/. Vous souhaitez archiver l’intégralité du projet.

cp -r /Users/henrido/Documents/MonProjet/ /Volumes/LaCie/Sauvegardes/MonProjet/

L’option -r garantit que chaque sous-dossier, fichier de configuration, asset et script est copié, quelle que soit la profondeur de l’arborescence.

Note : si votre projet contient plusieurs centaines de fichiers, ajoutez -v pour voir la progression en temps réel.

Scénario 3 : copier plusieurs fichiers d’un coup vers un même dossier

Vous voulez rassembler trois contrats PDF depuis votre dossier Bureau dans un dossier d’archive :

cp /Users/henrido/Desktop/contrat-A.pdf /Users/henrido/Desktop/contrat-B.pdf /Users/henrido/Desktop/contrat-C.pdf /Users/henrido/Documents/Archives/Contrats/

Lorsque plusieurs sources précèdent une destination, cp comprend que la destination est un dossier et y dépose chacun des fichiers. La destination doit exister au préalable : cp ne crée pas les dossiers manquants. Si nécessaire, créez-les d’abord avec mkdir -p.

La combinaison qui change tout : cp avec les wildcards

La véritable puissance de cp en ligne de commande se révèle lorsqu’on l’associe aux caractères génériques du shell, appelés wildcards ou glob patterns.

Copier uniquement les fichiers d’un certain type

Imaginons que vous souhaitez archiver tous les fichiers JPEG d’un dossier de photos sans toucher aux fichiers RAW :

cp /Users/henrido/Pictures/Vacances2025/*.jpg /Users/henrido/Documents/Archives/Photos/

Le caractère * est interprété par le shell macOS comme « tout ce qui précède .jpg« . Seuls les fichiers JPEG sont concernés par la copie.

Copier en excluant les doublons existants

Si votre dossier d’archive contient déjà des copies partielles de vos photos, utilisez l’option -n pour ne copier que les nouveaux fichiers :

cp -n /Users/henrido/Pictures/Vacances2025/*.jpg /Users/henrido/Documents/Archives/Photos/

Chaque fichier déjà présent à la destination est ignoré. Ceux qui manquent sont copiés. C’est l’équivalent d’une synchronisation unidirectionnelle simple, sans outil tiers.

Combiner plusieurs options pour une copie sécurisée et lisible

cp -rnv /Users/henrido/Documents/MonProjet/ /Volumes/LaCie/Sauvegardes/MonProjet/

Cette ligne combine trois comportements : copie récursive (-r), protection contre l’écrasement (-n) et affichage de chaque fichier traité (-v). C’est la formule recommandée pour une première sauvegarde manuelle vers un disque externe.

Comprendre la différence entre /dossier et /dossier/

Un détail qui échappe souvent aux débutants : le comportement de cp -r change selon que le chemin source se termine par une barre oblique ou non.

cp -r /Users/henrido/Documents/MonProjet /Volumes/LaCie/

Cette commande crée /Volumes/LaCie/MonProjet/ avec tout son contenu.

cp -r /Users/henrido/Documents/MonProjet/ /Volumes/LaCie/

Ici, si /Volumes/LaCie/ existe déjà, cp dépose le contenu de MonProjet directement dans /Volumes/LaCie/MonProjet/. Le comportement est identique dans les deux cas si la destination n’existe pas encore, mais il diverge si elle existe. Prenez l’habitude d’indiquer le chemin de destination complet pour éviter toute ambiguïté.

Ce que cp ne fait pas, et comment ne pas se tromper

La commande cp copie. Elle ne vérifie pas si l’espace disque disponible à la destination est suffisant avant de commencer. Elle ne signale pas une erreur d’espace insuffisant de manière proactive sur les très grands volumes.

Si vous copiez des centaines de gigaoctets, vérifiez l’espace disponible au préalable avec df -h /Volumes/VotreDisque/.

La commande cp ne gère pas non plus la reprise après interruption. Si la copie est interrompue (disque débranché, fermeture du Terminal), les fichiers déjà copiés restent en place, mais la copie est incomplète. Pour des transferts critiques ou très volumineux, préférez rsync, qui permet une reprise là où elle s’était arrêtée.

Pour la création de copies de sauvegarde Time Machine ou de clones de disque, les outils dédiés d’Apple (Time Machine, Carbon Copy Cloner, SuperDuper) restent plus adaptés car ils gèrent les attributs étendus, les ACL et les liens symboliques de manière exhaustive.

cp reste la solution idéale pour les copies ponctuelles, les scripts d’automatisation et les opérations où la simplicité et la rapidité d’exécution priment.

Ce que vous emportez avec vous

La commande cp est l’une des premières commandes qu’un utilisateur macOS rencontre dans le Terminal, et l’une des plus durables dans sa pratique quotidienne.

Sa syntaxe est prévisible : une source, une destination, des options selon le besoin. Elle s’intègre naturellement dans des scripts shell, des automatisations via launchd, ou des routines de sauvegarde personnalisées.

Trois points à retenir pour bien démarrer :

Utilisez toujours -r pour les dossiers. Oubliez cette option et cp vous retourne une erreur sans copier quoi que ce soit.

Ajoutez -i ou -n dès que la destination contient déjà des fichiers. Cela évite d’écraser accidentellement une version plus récente par une plus ancienne.

Testez vos chemins avec ls avant d’exécuter une copie importante. S’assurer que la source contient bien ce qu’on croit, et que la destination existe, prend dix secondes et évite des surprises.

La prochaine commande de cette série, mv, vous permettra d’aller un cran plus loin : déplacer et renommer vos fichiers depuis le Terminal, avec la même précision et la même efficacité.

Vous avez une question, une idée ou une remarque ? Je serai ravi de vous lire ! ✉️ henrido@hdrapin.com

macOS Terminal : rm : supprimer un fichier sans détour

Notre commande Unix du Vendredi soir

Notre commande Unix du Vendredi soir : rm

Vous connaissez ce moment de flottement.

Vous venez de générer trente captures d’écran pour un article, elles s’accumulent dans Documents, et la Corbeille commence à ressembler à un grenier oublié.

Vider la Corbeille depuis le Finder fonctionne, mais dès que vos fichiers sont profondément rangés dans une arborescence, cliquer devient laborieux.

Le Terminal offre une alternative précise, rapide et sans détour : la commande rm, pour remove.

Elle supprime le fichier immédiatement, sans passer par la Corbeille.

Cette efficacité est aussi son piège. Un rm mal formulé peut effacer en une fraction de seconde des documents impossibles à récupérer.

C’est exactement pour cette raison que rm existe en version prudente : rm -i.

Cette variante vous demande une confirmation avant chaque suppression, transformant une commande brute en outil professionnel maîtrisé.

Dans ce guide, nous allons apprendre à supprimer un fichier proprement, à activer les garde-fous adaptés, et à combiner rm avec d’autres commandes pour automatiser votre ménage numérique.

Anatomie d’une commande de suppression sous Unix

La commande rm fait partie du socle historique des utilitaires Unix.

Elle est présente sur macOS depuis les toutes premières versions du système et respecte la norme POSIX.

Son rôle est de retirer une entrée de fichier du système de fichiers.

La syntaxe générale telle qu’elle apparaît dans la man page officielle Apple est la suivante :

rm [-f | -i] [-dIRrvWx] fichier ...

Les crochets indiquent que les options sont facultatives.

Vous pouvez utiliser rm seul, ou l’accompagner d’un ou plusieurs indicateurs qui modifient son comportement.

Voici les options les plus utilisées au quotidien sur macOS, telles que définies dans la documentation Apple.

L’option -i demande une confirmation avant chaque suppression, quel que soit le fichier concerné.

L’option -f force la suppression sans confirmation, même pour les fichiers en lecture seule. Cette option annule tout -i placé avant elle.

L’option -I propose un compromis. Elle demande une seule confirmation quand plus de trois fichiers sont concernés, ou lorsqu’un dossier est supprimé récursivement.

L’option -R supprime récursivement un dossier et tout ce qu’il contient. Elle implique automatiquement l’option -d qui autorise la suppression des dossiers.

L’option -r est strictement équivalente à -R. Les deux minuscules et majuscules produisent le même résultat.

L’option -v active le mode verbeux. Chaque fichier est affiché au moment où il est supprimé.

L’option -d autorise la suppression d’un dossier vide sans mode récursif.

L’option -x empêche rm de traverser les points de montage. Utile lorsque vous manipulez un disque externe monté à l’intérieur d’un autre volume.

Un détail à connaître concerne l’option -P héritée de FreeBSD. Elle prétendait écraser les fichiers avant suppression, mais la man page macOS indique clairement que cette option n’a plus aucun effet et est conservée uniquement pour compatibilité rétroactive.

Trois scénarios concrets pour prendre rm en main

Prenons trois situations que tout utilisateur macOS rencontre tôt ou tard.

Scénario 1 : nettoyer un dossier de captures d’écran obsolètes.

Vous avez capturé une trentaine d’écrans sur votre MacBook Pro pour illustrer un article de blog, et vous voulez repartir sur une base propre.

rm /Users/henrido/Documents/Captures/screenshot-2026-06-01.png

Ici, rm supprime uniquement le fichier nommé, immédiatement, sans confirmation.

Aucun retour dans le Terminal signifie que la commande a réussi.

Scénario 2 : supprimer un fichier avec confirmation.

Vous n’êtes plus tout à fait certain que ce fichier de travail est vraiment inutile. Vous voulez une dernière chance de dire non.

rm -i /Users/henrido/Documents/Projets/brouillon-final.pages

Le Terminal affiche alors une question comme remove brouillon-final.pages?.

Vous tapez y pour confirmer, ou n pour annuler.

Cette microseconde de réflexion évite bien des drames.

Scénario 3 : vider récursivement un dossier temporaire.

Vous avez créé un dossier de tests avec plusieurs sous-dossiers et vous voulez tout effacer.

rm -r /Users/henrido/Documents/Test-2026/

Cette commande supprime le dossier Test-2026 ainsi que l’intégralité de son contenu.

Si vous voulez conserver un dernier filet de sécurité, ajoutez -i :

rm -ri /Users/henrido/Documents/Test-2026/

Le Terminal vous demandera alors une confirmation pour chaque élément traversé, dossier par dossier, fichier par fichier.

Sur une arborescence volumineuse, cette approche devient rapidement fastidieuse. C’est là qu’entre en scène l’option -I en majuscule.

Une variante moins connue : l’option -I et le pipe avec find

Beaucoup d’utilisateurs découvrent tardivement l’option -I en majuscule, qui apporte un équilibre intéressant entre sécurité et confort.

Contrairement à -i qui demande une confirmation par fichier, l’option -I ne pose qu’une seule question, et uniquement dans deux cas précis : lorsque vous demandez la suppression de plus de trois fichiers en une seule commande, ou lorsque vous supprimez récursivement un dossier.

Cette option est particulièrement utile dans les scripts que vous voulez exécuter en semi-automatique.

Exemple concret sur un iMac utilisé pour la retouche photo :

rm -IR /Users/henrido/Pictures/Import-Brut/

Le Terminal affichera une seule question du type examine files in directory Import-Brut? (y/n).

Répondez y et la totalité disparaît sans nouvelle interruption.

Autre combinaison très puissante : rm chaîné avec la commande find via un pipe.

Cette approche permet de cibler des fichiers selon des critères précis, comme leur ancienneté ou leur extension.

Imaginons que vous souhaitiez supprimer tous les fichiers .DS_Store présents dans votre dossier Documents :

find /Users/henrido/Documents -name ".DS_Store" -type f -delete

Ici, find se charge à la fois de la recherche et de la suppression grâce à son option -delete.

Si vous préférez utiliser rm explicitement pour garder un contrôle plus lisible, la formulation suivante fonctionne aussi :

find /Users/henrido/Documents -name ".DS_Store" -type f -exec rm -v {} \;

L’option -v de rm affichera chaque fichier supprimé, ce qui vous permet de vérifier visuellement le résultat.

Attention à un point crucial. La commande rm ne passe jamais par la Corbeille macOS.

Contrairement au raccourci Command-Suppression du Finder, il n’existe aucun moyen de restaurer un fichier supprimé avec rm depuis l’interface graphique.

Une seule solution : disposer d’une sauvegarde Time Machine à jour ou d’une copie sur un service cloud comme iCloud Drive.

Le réflexe à installer une fois pour toutes

La commande rm est un couteau à double tranchant.

Elle brille par sa rapidité et sa précision, mais elle ne pardonne aucune erreur de saisie.

L’astuce la plus utile pour un utilisateur macOS soucieux de sa sérénité consiste à créer un alias permanent dans son fichier de configuration shell, pour que rm demande systématiquement une confirmation.

Cette approche sera l’objet d’un futur article dédié à la commande alias.

En attendant, prenez l’habitude de taper rm -i par défaut sur vos fichiers importants, et rm -I sur les opérations récursives.

Testez toujours vos commandes rm dans un dossier de test avant de les appliquer à vos données personnelles.

Le Terminal récompense la prudence par une efficacité redoutable, mais il ne fait aucun cadeau à la précipitation.

Vous avez une question, une idée ou une remarque ? Je serai ravi de vous lire ! ✉️ henrido@hdrapin.com

macOS : Redémarrer son Mac depuis le Terminal

Pour redémarrer votre Mac à l’aide du terminal, vous pouvez utiliser la commande sudo shutdown -r now. Cette commande va redémarrer votre ordinateur immédiatement.

Voici les étapes à suivre :

  1. Ouvrez le terminal en appuyant sur Commande + Espace et en tapant Terminal.
  2. Tapez la commande sudo shutdown -r now et appuyez sur Entrée.
  3. Saisissez votre mot de passe administrateur lorsque vous y êtes invité et appuyez sur Entrée.
  4. Attendez que votre ordinateur redémarre.

Remarque : la commande sudo permet de lancer la commande en tant qu’administrateur, ce qui est nécessaire pour redémarrer l’ordinateur. Shutdown est la commande pour arrêter ou redémarrer l’ordinateur, tandis que -r indique de redémarrer l’ordinateur et now indique de le faire immédiatement.

Bon redémarrage !

Vous avez une question, une idée ou une remarque ?
Je serai ravi de vous lire !
✉️ henrido@hdrapin.com

macOS : sauvegarder automatiquement un dossier modifié avec un script Shell

Voici comment vous pouvez créer un script shell sur macOS qui sauvegarde automatiquement un dossier qui a été modifié :

  1. Ouvrez l’application Terminal, qui se trouve dans le dossier Utilitaires de votre ordinateur.
  2. Créez un nouveau script shell en utilisant votre éditeur de texte préféré. Par exemple, vous pouvez utiliser nano pour créer un nouveau fichier nommé « backup.sh » en utilisant la commande suivante :
nano backup.sh
  1. Dans le fichier, tapez les commandes suivantes pour définir le dossier à sauvegarder et le dossier de sauvegarde :
# Définissez le dossier à sauvegarder SOURCE="/chemin/vers/dossier/à/sauvegarder"

# Définissez le dossier de sauvegarde DESTINATION="/chemin/vers/dossier/de/sauvegarde"
  1. Ajoutez une commande pour vérifier si le dossier a été modifié depuis la dernière sauvegarde. Vous pouvez utiliser la commande « find » pour vérifier si le dossier contient des fichiers modifiés depuis la dernière sauvegarde :
# Vérifiez si le dossier a été modifié 
MODIFIED=$(find $SOURCE -mtime -1)
  1. Si le dossier a été modifié, ajoutez une commande pour copier le dossier vers le dossier de sauvegarde en utilisant la commande « cp » :
# Si le dossier a été modifié, copiez-le vers le dossier de sauvegarde 
if [ -n "$MODIFIED" ]; then cp -R $SOURCE $DESTINATION fi
  1. Enregistrez et fermez le fichier.
  2. Rendez le script exécutable en utilisant la commande suivante :
chmod +x backup.sh
  1. Pour exécuter le script de sauvegarde automatique, utilisez la commande suivante :
./backup.sh

Ce script vérifiera si le dossier a été modifié depuis la dernière sauvegarde et, si c’est le cas, copiera le dossier modifié dans le dossier de sauvegarde. Vous pouvez également planifier l’exécution de ce script à intervalles réguliers en utilisant l’outil de planification de tâches de macOS, cron.

Je suis là pour vous aider si vous avez besoin de plus d’aide pour créer ce script ou si vous avez des questions sur l’utilisation de commandes shell spécifiques n’hésitez pas !

HD Rapin

Comparer les sauvegardes Time Machine

Pour comparer deux sauvegardes Time Machine sur macOS en utilisant le Terminal, vous pouvez utiliser la commande tmutil, qui permet de manipuler les sauvegardes Time Machine. Voici une méthode simple pour comparer les différences entre deux sauvegardes :

1. Montez les sauvegardes Time Machine

Assurez-vous que les deux sauvegardes que vous souhaitez comparer sont accessibles, par exemple sur un disque externe ou un serveur réseau.

2. Utilisez tmutil compare

La commande tmutil compare vous permet de comparer deux points de sauvegarde et d’afficher les différences.

Ouvrez le Terminal, puis utilisez la commande suivante pour comparer deux sauvegardes spécifiques :

sudo tmutil compare /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS

Remplacez VOTRE_DISQUE par le nom de votre disque Time Machine, MacintoshHD par le nom de votre Mac (ou celui de la sauvegarde), et YYYY-MM-DD-HHMMSS par les dates et heures exactes des sauvegardes à comparer.

3. Affiner les résultats

Pour obtenir des résultats plus précis, vous pouvez ajouter des options pour tmutil compare. Par exemple :

--only-changes pour afficher uniquement les fichiers qui ont été modifiés, ajoutés ou supprimés.
--exclude pour exclure certains dossiers ou fichiers spécifiques.

Exemple avec options :

sudo tmutil compare /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS --only-changes

4. Interpréter les résultats

Le Terminal affichera les fichiers ou dossiers qui ont été modifiés, supprimés ou ajoutés entre les deux sauvegardes.

Cette méthode est puissante et vous permet de voir les différences de manière détaillée entre deux états de sauvegarde Time Machine.

HDR

macOS : Scanner les ports d’une adresses IP

Pour scanner les adresses IP dans le shell sous macOS, vous pouvez utiliser la commande nmap. Cette commande permet de scanner les ports d’un ordinateur ou d’un réseau et de déterminer les services qui y sont exécutés. ( Suivi ce post pour installer la commande map )

Voici comment utiliser la commande nmap pour scanner les adresses IP d’un réseau :

  1. Ouvrez l’application Terminal en la cherchant dans le Finder ou en la sélectionnant dans le dossier « Utilitaires » du dossier « Applications ».
  2. Saisissez la commande nmap, suivie de l’adresse IP du réseau que vous souhaitez scanner et du masque de sous-réseau. Par exemple, pour scanner le réseau 192.168.1.0/24, vous pouvez utiliser la commande suivante :
nmap 192.168.1.0/24
  1. Appuyez sur la touche Entrée pour lancer le scan. nmap va alors analyser chaque adresse IP du réseau et afficher les résultats du scan.

Il existe de nombreuses options et paramètres que vous pouvez utiliser avec la commande nmap pour personnaliser le scan. Par exemple, vous pouvez utiliser l’option -p pour spécifier les ports que vous souhaitez scanner, ou l’option -sS pour utiliser un scan TCP SYN discret. Pour plus d’informations sur les différentes options et paramètres disponibles, vous pouvez consulter la documentation en ligne en tapant man nmap dans le Terminal.

Variante placer le résultat dans un fichier Texte :

Voici comment utiliser la commande nmap et tee pour scanner les adresses IP d’un réseau et enregistrer les résultats dans un fichier texte :

  1. Ouvrez l’application Terminal en la cherchant dans le Finder ou en la sélectionnant dans le dossier « Utilitaires » du dossier « Applications ».
  2. Saisissez la commande nmap, suivie de l’adresse IP du réseau que vous souhaitez scanner et du masque de sous-réseau. Ensuite, ajoutez la commande tee et le nom du fichier texte dans lequel vous souhaitez enregistrer les résultats. Par exemple, pour scanner le réseau 192.168.1.0/24 et enregistrer les résultats dans un fichier texte nommé « results.txt », vous pouvez utiliser la commande suivante :
nmap 192.168.1.0/24 | tee results.txt
  1. Appuyez sur la touche Entrée pour lancer le scan. nmap va alors analyser chaque adresse IP du réseau et afficher les résultats du scan dans le Terminal tout en les enregistrant dans le fichier « results.txt ».

macOS : tester la connexion Bluetooth avec le Terminal

Voici comment tester le Bluetooth sur votre Mac en utilisant le Terminal :

  1. Ouvrez le Terminal en allant dans le dossier « Utilitaires » de votre dossier « Applications ».
  2. Tapez la commande suivante et appuyez sur « Entrée » :
system_profiler SPBluetoothDataType
  1. Le Terminal affichera alors une liste des appareils Bluetooth connectés à votre Mac et de leurs caractéristiques, ainsi que des informations sur la configuration Bluetooth de votre Mac. Si vous ne voyez pas votre appareil Bluetooth dans la liste, cela signifie qu’il n’est pas correctement connecté ou qu’il y a un problème de compatibilité.
  2. Les appareils connectés sont places dans la section : Connected et ceux référencés mais non connectés dans la section : Not Connected.
  1. Si vous voulez vérifier la version du logiciel Bluetooth de votre Mac, vous pouvez utiliser la commande suivante :
system_profiler SPBluetoothDataType | grep "Firmware Version:"

Cette commande affichera la version du logiciel Bluetooth de votre Mac (premiere ligne) ainsi que des autres appareils (lignes suivantes). Si vous avez des problèmes de compatibilité avec un appareil Bluetooth, vous devriez vérifier que vous avez la version la plus récente du logiciel Bluetooth et mettre à jour si nécessaire.

macOS : générer un rapport SYSDIAGNOSE

Pour obtenir un rapport de sécurité / diagnostique sur votre Mac, vous pouvez utiliser la commande sysdiagnose dans le terminal. Cette commande va créer un fichier de rapport qui contient des informations détaillées sur votre système, y compris des informations sur les fichiers de journal, les préférences du système, les configurations réseau et les ressources du système.

Pour utiliser sysdiagnose, ouvrez le terminal (que vous pouvez trouver dans le dossier « Utilitaires » de votre application « Applications ») et tapez la commande suivante :

sysdiagnose -f rapport.tar.gz

Cela va créer un fichier de rapport nommé « rapport.tar.gz » dans le répertoire courant du terminal. Vous pouvez utiliser un utilitaire de décompression comme « Tar » ou « The Unarchiver » pour ouvrir et consulter les fichiers contenus dans ce fichier de rapport.

Il existe également d’autres outils de diagnostic disponibles sur votre Mac, tels que « Console » et « Météo », qui peuvent vous aider à obtenir des informations détaillées sur votre système et à détecter des problèmes potentiels. Vous pouvez trouver ces outils dans le dossier « Utilitaires » de votre application « Applications ».

Lire le fichier Sysdiagnose :

Pour lire un fichier de rapport généré par la commande sysdiagnose sur votre Mac, vous devez d’abord le décompresser. Le fichier de rapport généré par sysdiagnose est au format « tar.gz », qui est un format de fichier compressé utilisant l’algorithme de compression « gzip » et le logiciel de gestion de fichiers « tar ».

Pour décompresser le fichier de rapport, vous pouvez utiliser un utilitaire de décompression comme « Tar » ou « The Unarchiver ». Téléchargez et installez l’un de ces utilitaires, puis faites glisser le fichier de rapport sur l’icône de l’utilitaire pour décompresser le fichier. Cela va créer un dossier qui contient tous les fichiers inclus dans le rapport.

Une fois le fichier de rapport décompressé, vous pouvez consulter les différents fichiers inclus dans le dossier. Le fichier de rapport comprend des informations détaillées sur votre système, y compris des fichiers de journal, des préférences du système, des configurations réseau et des ressources du système. Vous pouvez ouvrir ces fichiers à l’aide d’un éditeur de texte ou d’un utilitaire de visualisation de fichiers de journal, selon le type de fichier que vous souhaitez consulter.

Exemple : les informations des préférences systèmes

Les informations de préférences système comprennent tous les réglages et les préférences que vous avez configurés sur votre Mac, ainsi que les réglages par défaut du système. Elles incluent des informations sur l’apparence et le comportement de votre Mac, ainsi que sur les applications et les services installés sur votre système.

Voici quelques exemples d’informations de préférences système qui peuvent être incluses dans un rapport généré par la commande sysdiagnose sur votre Mac :

  • Réglages de l’interface utilisateur, tels que la couleur et la police de l’interface utilisateur, la disposition du Dock et du Finder, et les paramètres de notification
  • Réglages de sécurité, tels que les paramètres de mot de passe et les paramètres de pare-feu
  • Réglages de réseau, tels que les paramètres de connexion WiFi et Ethernet, et les paramètres de partage de fichiers
  • Réglages de l’application Mail, tels que les comptes de messagerie configurés et les paramètres de filtrage de spam
  • Réglages des applications installées sur votre système, tels que les paramètres de l’application de traitement de texte et les préférences de l’application de navigation web

Pour aller plus loin sur le sujet : https://eclecticlight.co/2016/02/06/the-ultimate-diagnostic-tool-sysdiagnose/

(source eclecticlight) Parmi les outils qui ont été exécutés, et dont la sortie a été collectée pour vous, se trouvent :

  • Ps, qui répertorie des informations sur tous les processus en cours d’exécution actuellement, et sa variante sensible au thread
  • Fs_usage, qui signale les appels système et les défauts de page liés à l’activité du système de fichiers
  • Spindump, qui profile l’ensemble de votre système pendant une période
  • Vm_stat, qui montre les statistiques de mémoire virtuelle Mach
  • Top, qui affiche des informations triées sur tous les processus en cours d’exécution actuellement
  • Powermetrics, qui montre les statistiques d’utilisation du processeur
  • Lsof, qui répertorie les détails de tous les fichiers ouverts
  • Empreinte, qui donne des informations de mémoire sur les processus
  • Vmmap et tas sur le(s) processus(s) utilisant de grandes quantités de mémoire, montrant leur mémoire virtuelle et leurs allocations de tas
  • Diskutil, vérification des lecteurs montés
  • Gpt, détaillant les tableaux de partition GUID
  • Hdiutil, vérification des images de disque montées
  • BootCacheControl, vérification des caches utilisés lors du démarrage
  • Df, vérification de l’espace libre sur le disque
  • Monter, vérifier les systèmes de fichiers montés
  • Netstat, donnant l’état détaillé du réseau
  • Ifconfig, détaillant les interfaces réseau
  • Ipconfig, détaillant la configuration IP
  • Scutil, vérification de la configuration du système
  • Creuser, vérifier la recherche du service de nom (DNS)
  • Pmset, détaillant les paramètres de gestion de l’alimentation
  • System_profiler, qui compile un profil système complet tout comme l’application System Profiler
  • Ioreg, donne des détails sur tous les périphériques d’entrée et de sortie enregistrés avec le kit d’E/S.

Décompressés, ses rapports occuperont généralement plus de 200 Mo avec plus de 1500 fichiers et dossiers. La compétence consiste maintenant à savoir où chercher et comment interpréter ses résultats.

HD Rapin

macOS : Exporter les contacts avec Applescript

Voici comment utiliser AppleScript pour exporter les contacts de l’application Contacts :

  1. Ouvrez l’application Script Editor sur votre Mac.
  2. Copiez et collez le code suivant dans la fenêtre de script :
tell application "Contacts" 
set allContacts to every person
repeat with aContact inallContacts
set contactName to name of aContact 
log contactName 
end repeat 
end tell
  1. Cliquez sur « Exécuter » pour exécuter le script.

Le script va parcourir chaque contact dans l’application Contacts et afficher le nom de chaque contact dans la fenêtre de journal. Vous pouvez modifier le script pour afficher d’autres informations sur les contacts, comme leur adresse électronique ou leur numéro de téléphone, en utilisant les propriétés appropriées de l’objet « person » dans l’application Contacts.

Par exemple, pour afficher l’adresse électronique de chaque contact, vous pouvez utiliser la propriété « email » de l’objet « person » comme ceci :

tell application "Contacts" 
set allContacts to every person 
repeat with aContact inallContacts 
set contactName to name of aContact 
set contactEmail to email of aContact 
log contactName & ": " & contactEmail 
end repeat 
end tell

Je vous recommande de consulter la documentation de l’application Contacts pour obtenir une liste complète des propriétés et méthodes disponibles pour travailler avec des contacts dans AppleScript.

macOS : Scanner un range d’IP avec AppleScript et Python

AppleScript n’est pas mort 😉 . Vous pouvez utiliser AppleScript pour envoyer des requêtes « ping » à une plage d’adresses IP sur macOS. Voici un exemple de script qui effectue cette tâche :

-- Définissez la plage d'adresses IP à laquelle envoyer des requêtes ping 
set ipRange to {"192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"} 

-- Pour chaque adresse IP dans la plage 
repeat with anIP in ipRange 

-- Envoyez une requête ping à l'adresse IP 
set pingResult to do shell script "ping -c 1 " & anIP 

-- Affichez le résultat de la requête 
ping display dialog pingResult buttons {"OK"} end repeat

Ce script envoie une requête ping à chaque adresse IP dans la liste ipRange, et affiche le résultat de chaque requête dans une boîte de dialogue. Vous pouvez remplacer la liste ipRange par la plage d’adresses IP que vous souhaitez utiliser.

import subprocess 

# Définissez la plage d'adresses IP à laquelle envoyer des requêtes ping ip_range =["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"] 

# Pour chaque adresse IP dans la plage 
for an_ip in ip_range: 

# Envoyez une requête ping à l'adresse IP 
ping_result = subprocess.run(["ping", "-c", "1", an_ip], capture_output=True) 

# Affichez le résultat de la requête ping
print(ping_result.stdout.decode())

Ce code utilise la fonction subprocess.run() de Python pour envoyer une requête ping à chaque adresse IP dans la liste ip_range, et affiche le résultat de chaque requête dans la console. Vous pouvez remplacer la liste ip_range par la plage d’adresses IP que vous souhaitez utiliser.

HDR

macOS : Modifier le Shell par défaut

Pour modifier le programme de démarrage par défaut sur macOS, vous pouvez utiliser la commande « chsh » (change shell). Voici comment procéder :

  1. Ouvrez un terminal.
  2. Saisissez la commande suivante et appuyez sur Entrée :
csh 
  1. Saisissez votre mot de passe et appuyez sur Entrée.
  2. Saisissez le chemin complet vers le shell souhaité. Par exemple, pour utiliser zsh comme shell par défaut, vous pouvez saisir :
/bin/zsh
  1. Appuyez sur Entrée pour enregistrer les modifications.

Notez que vous devrez redémarrer votre ordinateur pour que les changements prennent effet. Il existe également d’autres méthodes pour changer le shell par défaut sur macOS, comme en utilisant le gestionnaire de comptes utilisateur ou en modifiant directement le fichier /etc/shells. Cependant, la méthode ci-dessus est généralement la plus simple.

macOS : Modifier le mode d’alimentation avec le shell

Sur macOS, vous pouvez utiliser la commande pmset pour modifier les paramètres de l’économiseur de batterie. Voici quelques exemples de ce que vous pouvez faire :

  • Pour désactiver l’économiseur de batterie, utilisez la commande suivante :
sudo pmset -b disablesleep 1
  • Pour activer l’économiseur de batterie, utilisez la commande suivante :
sudo pmset -b disablesleep 0
  • Pour afficher les paramètres actuels de l’économiseur de batterie, utilisez la commande suivante :
pmset -g

Vous pouvez également utiliser la commande pmset pour configurer d’autres paramètres de l’économiseur de batterie, tels que le temps avant mise en veille ou le mode de mise en veille.

Quelques options :

  • -a : appliquer les paramètres à l’ensemble de l’ordinateur (alimentation et batterie).
  • -b : appliquer les paramètres uniquement à la batterie.
  • -c : appliquer les paramètres uniquement lorsque l’ordinateur est connecté à l’alimentation.
  • disablesleep : désactiver ou activer la mise en veille.
  • sleep : définir le temps avant mise en veille.
  • displaysleep : définir le temps avant mise en veille de l’écran.
  • womp : activer ou désactiver la réveil sur réseau (Wake on LAN).
  • acwake : définir l’action à effectuer lorsque l’ordinateur est connecté à l’alimentation.
  • battwake : définir l’action à effectuer lorsque l’ordinateur utilise la batter

Notez que vous devrez utiliser sudo pour exécuter ces commandes avec les privilèges du superutilisateur (root). Assurez-vous de comprendre ce que vous faites avant de modifier ces paramètres, car cela peut avoir des conséquences sur la durée de vie de la batterie et la performance de votre ordinateur.

Henri Dominique Rapin

macOS : Modifier l’heure de démarrage automatique avec le Terminal

L’option de configuration de démarrage à disparue dans macOS Ventura, la solution est d’utiliser Terminal.

Pour changer l’heure de démarrage de votre ordinateur en utilisant la ligne de commande (ou « shell ») sous macOS, vous pouvez utiliser la commande sudo pmset repeat wakeorpoweron. Cette commande permet de définir une heure de démarrage répétée pour votre ordinateur.

Voici comment l’utiliser :

  1. Ouvrez l’application Terminal en la cherchant dans le Finder ou en la sélectionnant dans le dossier « Utilitaires » du dossier « Applications ».
  2. Saisissez la commande suivante, en remplaçant « HH:MM » par l’heure de démarrage souhaitée et « day » par le jour de la semaine ou le mois sur lequel vous souhaitez démarrer (par exemple, « Mon » pour lundi, « Jan » pour janvier, etc.) :
Copy codesudo pmset repeat wakeorpoweron HH:MM day
  1. Appuyez sur la touche Entrée pour exécuter la commande. Si vous êtes invité à entrer votre mot de passe administrateur, saisissez-le et appuyez à nouveau sur Entrée.

La commande pmset a de nombreuses options et paramètres qui vous permettent de personnaliser la façon dont votre ordinateur est démarré. Pour plus d’informations sur cette commande et sur les différents paramètres disponibles, vous pouvez consulter la documentation en ligne en tapant man pmset dans le Terminal.

Note : Si vous souhaitez désactiver complètement le démarrage automatique de votre ordinateur, vous pouvez utiliser la commande sudo pmset repeat wakeorpoweron 00:00 never. Cela désactivera le démarrage automatique de votre ordinateur jusqu’à ce que vous utilisiez à nouveau la commande pmset pour le réactiver.

HDR

macOS : Supprimer la notification de migration de Catalina.

Vous êtes agacé de voir la notification de migration vers Catalina ! Ce point rouge qui apparait sur l’icône de préférence de macOS vous énerve ? Voici comment supprimer cette alerte :

Alerte prefernce

  1. Ouvrez l’app. : Terminal dans le dossier Applications / Utilitaires/
  2. Entrez la commande suivante dans le terminal :
  3. $ sudo softwareupdate --ignore "macOS Catalina"

  4. Appuyez sur la touche Entrée.
    Vous devrez indiquer le mot de passe administrateur.

La notification d’installation de la mise à jour “macOS Catalina” n’ets plus là.
HD Rapin

macOS : Réinitialiser les réglages réseau avec le Terminal

Voici la troisième et dernière version. Il s’agit toujours de réinitialiser les réglages réseau de macOS. Cette fois tout se passe dans le Terminal :

Déplacez vous dans le dossier :


$ cd /Library/Preferences/SystemConfiguration/

Effectuez une sauvegarde des fichiers dans une archive ZIP :


$ sudo zip backup.zip \
com.apple.airport.preferences.plist \
com.apple.network.identification.plist \
com.apple.wifi.message-tracer.plist \
NetworkInterfaces.plist preferences.plist

Supprimez définitivement les fichiers :


$ sudo rm com.apple.airport.preferences.plist \
com.apple.network.identification.plist \
com.apple.wifi.message-tracer.plist \
NetworkInterfaces.plist preferences.plist

Vous pouvez aussi supprimer les fichiers une par une.

$ sudo rm com.apple.airport.preferences.plist

Et reproduire cette commande pour les 3 autres fichiers.

Cette opération supprime définitivement les fichiers de configuration du réseau et wifi de macOS. Vous avez le fichier Zip qui contient les fichiers sauvegardés en cas de besoin.

HD Rapin

macOS : Comment déterminer l’adresse IP de votre réseau (IP externe) ?

Comment déterminer l’adresse IP de votre réseau ?

Votre fournisseur d’adresse attribue à votre Box une adresse IP, celle-ci change régulièrement (quoi que j’ai noté que ce changement intervienne moins fréquemment).

Obtenir cette adresse IP n’est pas simple, un des moyens est de se connecter sur la borne depuis sa page d’administration et de récupérer l’information. Une autre approche consiste à consulter un site Web du type : http://www.myip.dk (il en existe de nombreux sur Internet).

Mais si vous avez besoin de cette information plus fréquemment, une solution existe en utilisant la commande Curl et le site ipecho.net

Saisissez cette commande dans le Terminal :

[code]
$ curl ipecho.net/plain
[/code]

Vous obtiendrez en retour l’adresse ip qui vous a été attribuée. Pour placer la ligne de commande dans un flux Automator, voici comment faire :

Lancez Automator, ajoutez l’action Exécuter un script Shell, placez le texte de la commande. Il faut ensuite récupérer l’adresse IP pour la placer dans une notification (ou un email selon votre besoin) et pour terminer utiliser la variable dans la notification et voilà.

image-01 (écran Automator avec le flux complet)

Henri Dominique Rapin

macOS : Comment vérifier les fichiers exclus de Time Machine ?

Backup

Vous avez un doute sur la prise en charge d’un nouveau dossier ou vous souhaitez simplement vérifier les fichiers exclus de Time Machine ?

Ouvrez le Terminal et saisissez cette ligne :
[code] $ tmutil isexcluded (et le nom du fichier) [/code]

Le plus simple est de glisser/déposer le fichier sur le Terminal.

Le résultat est le suivant :

tmutil_isexcluded

[included] signifiant que le fichier est bien sauvegardé.

Pour découvrir les autres options de la commande tmutil (Time Machine) :

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/tmutil.8.html

Henri Dominique Rapin


Applwe reasonably small Recevez toutes les semaines le résumé des publications : Abonnez-vous à la Newsletter !

Sécurité :: Comment fonctionne le Sandboxing sur Mac OS X ?

Finder

Le SandBoxing sur Mac OS X.

Le terme «SandBox» est particulièrement utilisé dans le monde Linux. Il se traduit par «bac à sable» et décrit un type de protection lors de l’exécution d’un logiciel.

Voir la page WIKI : http://fr.wikipedia.org/wiki/Sandbox_(sécurité_informatique) 

Imaginons un logiciel qui fonctionne sur un Mac, par défaut ce logiciel a les droits en écriture et lecture qui sont ceux de l’utilisateur qui a lancé le programme. Toujours par défaut, un utilisateur sur Mac peut écrire à volonté dans son dossier personnel (la petit maison blanche) mais dès qu’il veut modifier le contenu d’un répertoire hors de ce dossier il lui faut montrer pâte blanche et indiquer un mot de passe.

Cette approche par «compartiments» fait la force des systèmes Unix et participe à leur réputation. Dans le monde Windows les choses sont beaucoup moins claires.

Revenons sur notre exemple, notre application fonctionne sur votre Mac et un personnage mal intentionné a réussi à utiliser une faille de ce programme et le contrôle maintenant de l’extérieur. Il peut à cet instant détruire les fichiers auxquelles votre application et plus directement votre compte ont accès.

Ce genre d’attaque existe bien, certes elle ne s’applique pas en particulier aux applications lancées sur un ordinateur mais plutôt à des fonctions de» serveur» comme le serveur Internet Apache qui est livré avec Mac OS.

Une première réponse à ce type d’attaque est bien sur l’utilisation d’un «firewall», qui empêcherait l’accès de l’extérieur à ce programme. Mais quand vous mettez en place un serveur, c’est en général pour qu’il soit accessible de l’extérieur. Donc cette réponse n’est pas la plus appropriée.

Une autre solution consiste à «isoler» l’application, c’est à dire qu’elle s’exécute, mais n’a pas accès à certaines ressources de la machine. Prenons de nouveau notre exemple, cette fois imaginons que nous avons un moyen technique qui nous permet d’interdire à l’application toute écriture dans le dossier personnel de l’utilisateur ou dans une autre zone du système. Dans ce cas de figure, peut importe celui qui lance l’application, celle-ci ne peut plus écrire n’importe ou.

Ainsi donc un assaillant ayant pris possession du programme ne peut écrire et donc être nuisible. Cette technique est celle du «bac à sable» parce que l’application ou le serveur ne peut pas accéder au dehors de la zone de sécurité et ceci peu importe celui qui lance le service ou l’application.

Si les SandBox sont très communs sur Linux ou BSD, ils étaient très complexes à mettre en place sur Mac… Sauf depuis Leopard, Apple propose un solution qu’elle appelle ironiquement «SeatBelt» ou «ceinture de sécurité» (ils sont toujours très poétiques à cupertino).

Le problème de cette solution est qu’elle n’est pas documentée et Apple a raison sur ce sujet. Moins ils en diront et moins de personne tenteront de la contourner.

La solution d’Apple n’est pas inconnue des Unixiens, il s’agit de l’utilisation du framework de TrustedBSD et SELinux pour les distributions linux. A une époque Apple a essayé une version dite «SEDarwin» compatible SELinux mais a renoncé à ce projet pour se consacrer à «Seatbelt».

En pratique comment ça marche sur Mac OS X  :

les applications qu’Apple a placé dans un Bac à sable sont listées dans le dossier suivant :

/usr/share/sandbox. pour en explorer le contenu dans le terminal lancez cette commande :

$ cd /usr/share/sandbox

puis

$ ls

Une partie de la liste devrait être la suivante :

bsd.sb ntpd.sb
cvmsCompAgent.sb portmap.sb
cvmsServer.sb quicklookd-job-creation.sb
fontmover.sb quicklookd.sb
kadmind.sb sshd.sb
krb5kdc.sb syslogd.sb
mDNSResponder.sb xgridagentd.sb
mds.sb xgridagentd_task_nobody.sb
mdworker.sb xgridagentd_task_somebody.sb
named.sb xgridcontrollerd.sb

Tous les fichiers portent l’extension «.sb». SURTOUT ne modifiez ni ne supprimez ces fichiers. Pour en voir le contenu tapez la commande suivante :

$ cat fontmover.sb

Ce qui affichera le contenu du fichier «fontmover.sb». Ce fichier est divisé en sections :

Capture d écran 2012 05 07 à 18 03 59

Dont une section du nom de « (allo file-read* «, celle-ci détermine l’espace ou le chemin dans lequel l’application peut lire de fichiers. Une autre section du nom de « (allow file-write*» précise les dossiers où peuvent être écrits des informations par l’application «fontmover.» et ainsi de suite, le bac à sable est ainsi défini.

Vous pouvez vous interroger sur l’intérêt de cette technologie pour un utilisateur, prenons un programme qui voudrait communiquer avec l’extérieur (comme «Adobe»), il n’est pas possible de leur interdire l’accès au réseau. ( Pour être honnête, il existe une solution avec le firewall IPFW embarqué dans Mac OS, mais là n’est pas le sujet).

Il est possible grâce à ce mécanisme «SeatBelt» et de« SandBoxing » de lui interdire par exemple le réseau . Pour cela l’opération est simple, j’ai pris comme exemple d’interdire à l’Utilitaire Réseau » d’accéder au réseau :

Premièrement nous allons créer un profil, c’est un simple fichier texte. Dans un éditeur de texte «texedit» ou «Bean» tapez ces trois lignes :

(version 1)

(debug deny)
(deny network*)
(allow default)

La ligne (deny Network*) indique qu’aucun accès au réseau n’est permis à l’application. Vous pouvez ajouter une ligne (deny file-write*) qui interdit l’écriture de fichiers. Vous l’aurez compris l’astérixe signifie «tout».

Bean

Enregistrez le tout sous le nom «noreseau.sb» dans votre dossier personnel.

Lancez cette commande :

$ sudo

Puis après avoir saisi votre mot de passe :

$ sandbox-exec -f ~/noreseau.sb /Applications/Utilities/Network\ Utility.app/Contents/MacOS/Network\ Utility

Il faut, si vous souhaiter placer dans un sandbox une application, récupérer son exécutable qui se trouve dans le paquet de l’application. Dans le cas de l’utilitaire réseau le chemin ets : « /Applications/Utilities/Network\ Utility.app/Contents/MacOS/Network\ Utility » .

Utilitaire1

L’application sera ouverte automatique et ne pourra accéder au réseau. Vous avez là un moyen simple d’empêcher une application d’écrire dans des fichiers ou d’accéder au réseau comme par exemple «Adobe»…

Utilitaire2

Le fait d’être dans un bac à sable ne dure que le temps ou l’application est ouverte, après sa fermeture elle redémarre hors du « sandbox ».

Le principe du Sandbox n’est pas courant, mais il semble que Google Chrome l’utilise, ceci afin de prévenir des composants qui pourraient être néfastes pour les utilisateurs de ce Butineur.

Henri Dominique Rapin

Mac :: Comment identification des Processus sur Mac ?

Un grand nombre de processus fonctionnent dans votre Mac. Ils ont parfois des noms bizarres… héritage du monde Unix. Un site vous propose d’identifier ces processus. Il est en Anglais mais très accessible. Voici l’opération étape par étape. 1) ouvrez Safari avec l’adresse ci dessous : http://triviaware.com/macprocess/

Image_40.png

2) lancez le Terminal (vous le trouverez dans le dossier Applications puis Utilitaires). Dans la fenêtre saisissez :

$ ps -A > process.txt
Terminal — bash — 61×17.jpg

Le A est en majuscule et le signe supérieur bien séparé du texte par des espaces. Cela aura pour effet de créer un fichier texte du nom de « process.txt », vous le trouverez dans votre dossier personnel, la petite maison blanche. 3) Cliquez sur le bouton  » Choisir le Fichier » et sélectionnez le fichier « process.txt » et enfin cliquez sur le bouton « Upload File » . Après quelques secondes une page similaire apparaît.

triviaware.jpg

Les processus jaunes sont connus, ceux en bleu ne le sont pas, en cliquant sur la ligne « google process or application » le nom du process est envoyé à Google pour recherche. En théorie vous ne devriez pas avoir un grand nombre de processus inconnus, ce site peut vous permettre d’identifier un processus installé par un cheval de troie… en autre. HDR

TimeMachine :: Comment obtenir la liste des fichier non pris en compte par TimeMachine ?

image.jpg

Voici comme obtenir la liste des fichier non pris en compte par TimeMachine :

$ sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"
Terminal — bash — 84×25.jpg

HDR

Mac :: Comment afficher des messages lors de connexion (Shell, FTP, SSH)

Terminal.png

Comment afficher des messages lors de connexion (Shell, FTP, SSH) ?

Ajouter du texte affiché à la connexion au Shell, SSH et FTP c’est souvent un bon point de départ en ce qui concerne la sécurité. Cela fait parti des bonnes pratiques, informez vos utilisateurs des conditions d’utilisations, cela évite souvent les abus.

Pour le Shell

Le fichier de configuration à éditer pour le Shell est : /etc/motd

« Motd » signifie « message of the day », et il contient généralement des messages destinés aux utilisateurs concernant l’administration du système. Ce fichier est affiché avant l’ouverture du Shell par le process login.

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/motd

Pour lire le contenu du fichier :

$ sudo cat /etc/motd

Pour le serveur FTP :

Le fichier de configuration à éditer pour ftp est : /etc/ftpwelcome

Le fichier « ftpwelcome » verra son contenu affiché lors d’une connexion avant que soit affiché le login.

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/ftpwelcome

Pour lire le contenu du fichier :

$ sudo cat /etc/ftpwelcome

Pour SSH :

Le fichier de configuration à éditer pour le SHELL est : /etc/sshd_config

SSH affiche le contenu du fichier Banner : « /etc/banner »

Pour obtenir le chemin vers le fichier

$ sudo cat /etc/sshd_config | grep Banner

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/banner

Pour lire le contenu du fichier :

$ sudo cat /etc/banner

Henri Dominique Rapin

Mountain Lion :: Comment désactiver la fermeture automatique des applications ?

Saviez-vous que depuis Mac OS X Lion, le système ferme les applications non utilisées depuis un certain temps ? Et bien c’est une fonction qui permet à Mac OS X de libérer de la mémoire.

Et si vous craignez pour les documents ouverts et non enregistrés, sachez que grâce à la fonction « Auto Save »  (ou « enregistrement en continu » en français), ils sont continuellement enregistrés. Dès lors fermer autoritairement une application ne pose plus de problème.

Si toutefois vous craignez pour vos documents, il existe un moyen de désactiver cette fonctionalité, saisissez dans le Terminal la ligne de commandes suivante :

$ defaults write -g NSDisableAutomaticTermination -bool TRUE

Automator :: Comment obtenir la liste des ports ouverts ?

AutomatorVous souhaitez identifier les ports TCP/IP ouverts ainsi que les connexions actives ? Les ports ouverts indiquent les applications qui sont en écoutent, elles attendent une connexion depuis l’extérieur. Ce qui peut révéler un partage actif alors que vous ne l’avez pas lancé.

Les connexions, elles, désignent les applications qui réalisent des échanges avec l’extérieur. Il faut faire attention à cette liste car les logiciels malveillants ont pour habitude d’envoyer des informations récupérées sur votre machine vers des serveurs sur Internet. Si le nom d’une application semble étrange, il convient de l’interrompre.

Le plus simple est de passer par le terminal et d’utiliser cette ligne de commande :

 $ lsof -i

Le voici avec un affichage un peu plus « lisible « :

 $ lsof -i | awk '{printf("%-14s%-20s%s\n", $10, $1, $9)}' | sort

 Vous obtiendrez un affichage de ce type :

 

Image 01

(écran du terminal affichant la liste des ports TCP/IP ouverts)

J’utilise Automator pour m’envoyer cette liste par Email depuis des Mac distants, voici comment :

 Lancez Automator, sélectionnez « Alarme Calendrier » si votre objectif est de programmer cet envoi de façon régulière. Sinon optez pour la création d’une application que vous lancerez pour récupérer ces informations par Mail.

 Commencez par placez l’action « Exécuter un script Shell », copiez la commande Unix. Ensuite ajoutez l’action « Créer un fichier Texte » et compléter les paramètres. Terminez par l’action de Mail : « Nouveau Message Mail».

 

Image 02

Image-02.png (le flux au complet).

 Une fois exécuté, le flux crée un message avec comme pièce jointe le fichier contenant l’ensemble des ports ouverts.

Image 03

 (le mail avec le fichier en pièce jointe)

 Si vous ne voulez pas laisser de trace du fichier créé, ajoutez deux actions.

 « Obtenir les éléments du Finder indiqué », indiquez le chemin jusqu’au fichier à supprimer. Puis placez l’action « Placer les éléments du Finder à la corbeille ».

 

Image 04

 (Les deux actions à ajouter pour supprimer le fichier créé.)

Et voila rien de très compliqué…

Finder :: Comment changer l’affichage du chemin afin qu’il débute à partir du dossier personnel

Finder

Le chemin (ou « path » en Anglais) affiche en bas de la Fenêtre du Finder l’arborescence qui mène vers le dossier ouvert. Il s’agit d’une option qu’il faut activer manuellement, par défaut l’affichage de chemin est désactivé.

Image01

(La fenêtre du Finder avec la barre du chemin d’accès activée)

Pour l’activer, sélectionnez « Afficher la barre du chemin d’accès » dans le menu « Présentation ». Cette option est très pratique et permet de se déplacer plus facilement dans les dossiers, vous pouvez par exemple cliquer sur l’un des dossiers présents dans cette barre pour l’ouvrir.

Image02

(Le menu « Présentation » qui donne accès à l’option d’affichage de la barre du chemin d’accès.)

Le chemin ou l’arborescence indiquée commence toujours à partir de la racine du disque dur. Hors, un utilisateur ne devrait naviguer que dans son espace, c’est à dire le dossier qui lui est attribué : la petite maison blanche qui porte le nom de l’identifiant de connexion.

Il serait donc plus simple que l’arborescence placée dans le chemin commence uniquement à partir du dossier personnel. C’est possible et pour cela, il suffit de saisir la ligne suivante dans le terminal :

$ defaults write com.apple.finder PathBarRootAtHome -bool TRUE

Une fois fait, relancez le Finder en tapant cette commande :

$ killall Finder

Chemin avant la modification :

Image03

(Base de départ la racine du disque dur)

Chemin après la modification :

Image04

(base de départ le dossier personnel, la petite maison blanche)

Vous pouvez bien sur revenir à la version d’origine en utilisant cette commande dans le Terminal :

$ defaults delete com.apple.finder PathBarRootAtHome

N’oubliez pas de relancer le Finder.

L’avantage de cette astuce est de réduire la longueur du chemin, c’est pratique pour les utilisateurs qui ont beaucoup de dossiers.

 

AppleScript :: Tuer un processus

SEScriptEditorX

 

Vous pourriez souhaiter annuler la copie du fichier, si vous tentez l’opération dans l’éditeur de Script, il ne répondra pas immédiatement… il prend son temps.

Dans cette version, nous informons l’utilisateur qu’une erreur est intervenue et nous lui demandons s’il souhaite continuer la copie : 

Nous récupérons dans la variable « mon_pid » le numéro de pid de la commande « cp » en cours d’exécution. Chaque programme ou commande

possèdes son identifiant unique le « pid ».

mon_pid to do shell script"ps aux | grep Safari | grep -v grep"
set pid to second word of mon_pid
display dialog pid
do shell script "kill " & pid

 

Le script s’explique ainsi :

 « mon_pid » contient le résultat d’une commande qui recherche l’application « Safari », la variable « pid » renferme le numéro du pid (qui est le 2nd mot contenu dans la variable « mon_pid »).

 Pour confirmation j’affiche le numéro du pid. Et enfin j’exécute la commande « Kill » qui tue le processus qui porte le numéro contenu dans la variable « pid ».

 Voici une version plus élégante du Script dans l’éditeur de Script.

 

Image 3

(Le script au complet dans l’éditeur de script avec la gestion des erreurs)

Mac :: Astuce :: Afficher le dossier « Bibliothèque »

 

Finder

Cette astuce consiste à faire apparaitre le dossier « Bibliothèque » qui sous Mac OS X 10.7 est caché.

Dans le Terminal exécutez cette commande :

$ chflags nohidden ~/Library

Comme ceci :

Capture d écran 2012 05 21 à 18 59 45

Rien de plus…

Pour cacher un dossier effectuez l’opération inverse :

$ chflags hidden [et le chemin du fichier]

Mac :: Safari :: Classer les signets par ordre alphabétique

safari.png

Classer vos signets par Ordre Alphabétique :

Safari possède son propre système de gestion de signets, il est simple et efficace. Toutefois une fonction manque à l’appel : Le classement par ordre alphabétique.

Lorsque vous ouvrez un dossier de signets, ils apparaissent suivant l’ordre dans lequel vous les avez ajouté, vous pouvez essayer de cliquer sur l’entête de la colonne « Signet » rien n’y fait, il ne seront pas classés dans l’ordre alphabétique.

Une solution existe. Afin de classer vos signets par ordre alphabétique vous devez glisser/déposer le dossier contenant ces signets sur le « Bureau » et oui vous pouvez le faire !

Image 1.jpg

Vous remarquerez la facilité de l’opération, c’est aussi un bon moyen pour sauvegarder ces signets ou les partager avec ses amis. Le dossier existe toujours dans Safari, il n’est pas supprimé.

Une fois le dossier sur le « Bureau «, appliquez une présentation en colonne. La dernière opération consiste maintenant à replacer le dossier dans Safari et comme par enchantement les signets sont classés alphabétiquement.

Pour cela glissez/déposez le dossier non pas sur la barre latérale gauche des signets mais au sein d’une liste de signets, (le panneau de droite).

Image 2.jpg

Il faut que le dossier soit placé dans un dossier où il ne sera pas accepté, c’est la seule contrainte « étrange « de cette opération.

Attention vous risquez d’avoir deux dossiers identiques et dont l’un aura ses signets non classés. Supprimé le contenu de l’ancien dossier et placez y les signets cette fois dans l’ordre alphabétique. Il faut répéter l’opération avec tous les dossiers que vous souhaitez ordonner.

Il existe un petit script exécutable à partir du terminal du nom de « Sortosaurus », il classe tous les signets et dossiers par ordre alphabétique, vous devez le télécharger sur ce site http://homepage.mac.com/jameshoward/ et cliquer sur « Sortosaurus », fermez Safari et cliquez sur l’icône de « Sortosaurus » qui se trouve dans le dossier « Téléchargement ». Et voilà. Ce script ne propose pas de « retour arrière » donc une fois lancé, le script modifie définitivement le classement de signets.

Si cette astuce vous semble compliquée, il existe un utilitaire qui vous permettra d’organiser vos signets dans Safari : Il s’agit de « Saft », mais il en fait bien plus… Vous pouvez télécharger une version d’essai : http://haoli.dnsalias.com/shared/Saft_Leopard.dmg. A utiliser avec modération à l’heure où Safari 4 est en passe de sortir, ce qui risque de rendre délicate la compatibilité avec ce produit.

HDR

Mac :: Snow Leopard :: Exécuter des programmes 32 bits sur un OS 64 bits

64bit_icon_20090824.jpg

Fondamentalement du code compilé en 32 bits ou 64 bits peut être exécutés quelque soit la plateforme 32 bits ou 64 bits. La contrainte principale concerne la taille des données et donc du type de variable utilisée par le compilateur.

Lorsque vous créez un programme en C, Objective-C ou tout autre langage vous devez définir vos variables, en général un entier est déclaré par le mot « int ». D’un façon tout aussi commune cet « entier » est codé sur 32 bits sur un système 32 et bien sur sur une longueur de 64 bits sur un OS de 64 bits.

En choisissant un modèle de données codées sur 64 bits, un système 32 bits ne peut exploiter les données ce qui à pour effet direct de ne pas autoriser l’exécution du programme. Alors comment fait Apple pour permettre l’exécution de programmes compilées en 32 bits pour être exécutés sur Snow Leopard 64 bits ?

En choisissant le mode LP64, Apple reste sur un modèle 32 Bits sauf pour l’adressage des pointeurs qui lui utilise 64 Bits. Un pointeur étant juste une adresse en mémoire, Apple se donne ainsi la possibilité d’utiliser plus d’adresses de mémoire qu’avec des pointeurs en 32 Bits.

Par contre les types de variable restent sur un mode 32 Bits afin d’assurer la compatibilité.

Microsoft à choisi un solution plus radicale : LLP64 tous est en 64 bits, dès lors aucune application 32 Bits ne peut être exécutée sur un système 64 Bits de Microsoft. L’astuce trouvée par Redmond est de placer un « émulateur » 3 bits dans ces systèmes.

les deux premières lignes sont présentes à titre indicatif, car le probleme apparu aussi lors du passage vers une architecture 32 Bits.

Tableau comparatif des différents modes :

Modèle de données Taille d’un short (bits) Taille d’un int (bits) Taille d’un long (bits) Taille d’un pointeur (bits)
LP32 16 16 32 32
ILP32 16 32 32 32
LP64 16 32 64 64
LLP64 16 32 32 64
ILP64 16 64 64 64

Mac :: OS :: Vérifier les permissions dans le Terminal

Terminal.png

Il existe plusieurs technique afin de vérifier les permissions des dossiers et fichiers. Le plus simple est d’utiliser l’utilitaire « Outil disque » mais vous pouvez aussi exploiter le terminal pour le même résultat :

Il faut pour cela utiliser la commande  » diskutil  » pour vérifier et réparer les autorisations d’un fichier sur le disque système. Vous ne pouvez spécifier le volume de démarrage OS X et ni utiliser le nom du volume qui apparait sur le bureau.

La « node » est le noeux ou point de montage du disque, il est différent du nom du volume qui apparait sur le Bureau ou dans le Finder.

Pour trouver le node du périphérique, vous avez deux possibilités :

$ df
Terminal — bash — 80×24.jpg
$ diskutil list
Terminal — bash — 80×24-1.jpg

Personnellement la seconde me parait plus « lisible ». Dans le cas présent j’ai sélectionné le volume « Macintosh HD », il S’agit du disque « /dev/disk0 » puis de la partition n°2 que l’on désigne par la combinaison « s2 ».

Je vais donc maintenant lancer la commande de vérification et de réparation des permissions.

$ diskutil verifyPermissions /dev/disk0s2
Terminal — diskutil — 80×24.jpg

L’opération prend un certain temps, cela dépend du nombre de fichiers et dossiers présents au sein de la partition vérifiée.

Si vous souhaitez effectuer cette opération de façon plus simple, placez la ligne de commande dans un script AppleScript ou un WorkFlow dans Automator. Vous pouvez ensuite facilement programmer cette tache avec
iCal.

Henri Dominique Rapin

Mac :: Spotlight :: Astuces part 2

image.jpg

Les recherches sauvegardées sont placées dans le dossier : « Bibliothèque/Recherches enregistrées/ « ce qui donne  » ~/Library/Saved Searches » dans le Terminal.

Il est tout à fait possible de les exécuter et d’en récupérer le résultat dans le Terminal, il faut pour cela utiliser l’option « -s » et indiquer le nom de la recherche :

$ mdfind -s "Mac"

Dans cet exemple ma recherche enregistrée s’appelle « Mac »

Vous pouvez effectuer une recherche en utilisant les mêmes options que dans l’interface graphique, il faut indiquer les mots clés suivi de leur valeurs.

Dans cet exemple nous obtiendrons les fichiers de type « image » contenant le mot « Mac »

$ mdfind voiture kind:image
Terminal — bash — 74×14.jpg

Vous pouvez obtenir en lieu et place de la liste de documents le décompte comme ceci :

$ mdfind -count Mac kind:text

J’ai 2410 fichiers de type texte qui contiennent le mot « Mac ».

Terminal — bash — 80×7.jpg

Henri Dominique Rapin

Mac :: Spotlight :: Les fichiers et dossiers importants

image.jpg

Emplacement des « Importers »

/Library/Spotlight
/System/Library/Spotlight

Le panneau de préférences de spotlight:

/System/Library/PreferencePanes/Spotlight.prefPane

Le Service :

/System/Library/Services/Spotlight.service
/System/Library/CoreServices/Spotlight.app/Contents/MacOS/Spotlight

Les commandes :

/usr/bin/mdimport
/usr/bin/mdcheckschema
/usr/bin/mdfind
/usr/bin/mdls
/usr/bin/mdutil
/usr/bin/md

Mac :: Spotlight :: les commandes de base

image.jpg

Ajouter un fichier à Spotlight :

Normalement tout fichier ajouté au sein d’un volume est indexé automatiquement. Il n’y a donc pas de commande particulière à cet effet.

Vous pouvez bien sur forcer l’ajout, pour cela la commande mdimport doit être saisie dans le Terminal et suivi d’un espace, vous devez donner le chemin du fichier. Le plus simple est de copier/déplacer sur le Terminal le fichier que vous souhaitez indexer.

$ mdimport chemin_du_fichier
Terminal — bash — 80×24-1.jpg

Ajouter un dossier à Spotlight : Uniquement sous Tiger

Vous pouvez forcer Sptolight afin que soit ajouté le contenu d’un dossier, cela peut être utilisé pour des dossiers qui ne sont pas par défaut indexés tel les dossiers cachés par le Finder comme :

/System

Il faut pour cela utiliser l’option « -f » le f de « folder » ou dossier en Anglais.

$ mdimport -f /System
Terminal — bash — 80×24-2.jpg

Attention cela ne fonctionne plus sous Leopard !

Mac :: Préférences :: désactiver le contrôle des mises a jour

iTunes.png

Il existe plusieurs préférences qui permettent de limiter le fonctionnement d’iTunes, en voici quelques un :

disableCheckForUpdates
disableAutomaticDeviceSync
disableGetAlbumArtwork
disablePlugins

L’exemple le plus intéressant est d’empêcher la vérification par iTunes de l’existence d’une mise à jour:

$ defaults write com.apple.iTunes disableCheckForUpdates -bool YES

Mac :: utilitaire :: GeekTool 3

GeekTool se bonifie et passe en version 3. Le site est lui aussi refait et propose des sections pour utilisateurs.

Cet utilitaire permet d’afficher le résultat de commandes Unix (shell), images ou éléments de pages Web sur le fond de votre bureau.

La nouvelle interface :

Voila_Capture32.png

http://projects.tynsoe.org/fr/geektool/

Les Processus en tête de liste :

top -ocpu -FR -l2 -n20 | grep '^....[1234567890] ' | grep -v ' 0.0% ..:' | cut -c 1-24,33-42,64-77

Informations sur vos connexions Wifi :

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I

CPU Idle %

top -l 2 | awk '/CPU usage/ && NR > 5 {print $12, $13}'

IP Address (from nicinabox.com)

ifconfig en1 | grep "inet " | awk '{print $2}'

Calendrier (nicinabox.com)

cal | awk -v cday=`date "+%d"` '{ fill=(int(cday)>9?"":" ");
a=$0; sub(" "fill int(cday)" ","["fill int(cday)"]",a); print a }'

Upload

if=`ifconfig | awk '($1 ~ /^inet$/ && $2 !~ /^127.0.0.1$/) || /BROADCAST/ {if ($1 == "inet") {sub(/:/,"",i); print i; exit;} else i = $1;}'`; o=`netstat -I $if -bn | awk 'NR == 2 {print $10}'`; sleep 4; if [ -n "$if" ]; then echo `expr \( \`netstat -I $if -bn | awk 'NR == 2 {print $10}'\` - $o \) | awk '{printf("%.1f KB/s",$1 / (1024 * 4))}'` up; fi

Download

if=`ifconfig | awk '($1 ~ /^inet$/ && $2 !~ /^127.0.0.1$/) || /BROADCAST/ {if ($1 == "inet") {sub(/:/,"",i); print i; exit;} else i = $1;}'`; i=`netstat -I $if -bn | awk 'NR == 2 {print $7}'`; sleep 4; if [ -n "$if" ]; then echo `expr \( \`netstat -I $if -bn | awk 'NR == 2 {print $7}'\` - $i \) | awk '{printf("%.1f KB/s",$1 / (1024 * 4))}'` dn; fi

Mac :: Capture d’ecran :: Changer les parametres

Vous pouvez changer l’emplacement par défaut d’enregistrement des copies d’écrans faites à partir de Mac OS X en exécutant ces deux lignes dans le Terminal ;

A saisir l’une après l’autre :

$ defaults write com.apple.screencapture location

Taper sur la touche « Entrer » puis procédez de même pour la ligne suivante ;

$ killall SystemUIServer

Et voilà !

Henri Dominique Rapin

Mac :: Shell :: Posix

Apple se targue avec Mac OS X Leopard d’être compatible avec les spécifications de la norme POSIX 1003.1.

Cela concerne essentiellement l’implémentation du Shell et des commandes Unix.

Toutefois pour utiliser cette norme POSIX 1003.1 vous devez ajouter les options suivantes à la ligne de commande d’exécution du Shell.

Par exemple avec Bash ;

$ bash --posix

L’implémentation actuelle est la version 3.2.

Notez que certaines commandes dans les Man Pages font référence a la norme 1003.2, qui comme on peut l’imaginer fait référence a une conventio plus récente :

c’est le cas par exemple pour la commande :

$ re_format

ou

$ man re_format

Qui est liée aux expressions régulières.

Henri Dominique Rapin

Mac :: Unix :: Shell

Savez vous quels sont les « Shell » livrés avec Mac OS X Leopard ?

Nous avons en premier le « Bourne Again SHell » ou Bash, c’est l’interpréteur de commande par défaut.

Puis nous avons le « TENEX C shell » plus connu sous le nom de tcsh. Nous trouvons aussi le « Korn Shell » ou ksh et enfin le Z Shell appellé comunement le zshell.

Les 3 Shell : bash, ksh, zsh sont compatibles avec le « pere » des Shell qui est sh ou « Bourne Shell ».

La liste des Shells est disponible dans le fichier « Shells » placé dans /etc/.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

Vous pouvez en obtenir le contenu par la commande :

$ cat /etc/shells

Petite anecdote, le Shell « sh » que vous trouverez dans « /bin/sh » n’est en fait qu’un lien vers « bash »… Tout comme « tsch » qui est utilisé lorsque vous lancez « csh ».

Henri Dominique Rapin

Mac :: Spotlight :: mdutil

image.jpg

La commande « mdutil » permet de désactiver l’indexation d’un volume. La commande est simple (sudo est nécessaire) :

$ sudo mdutil -i off "/Volumes/Macintosh HD/" 

Dorénavant Spotlight n’indexera plus le volume « Macintosh HD ». Ce réglage ne sera pas modifiée même après un redémarrage.

Pour revenir au réglage précèdent, la commande est toute aussi simple :

$ sudo mdutil -i on "/Volumes/Macintosh HD/" 

Afin de connaître l’état de ce réglage pour un volume donné, utilisez la commande suivante :

$ sudo mdutil -s "/Volumes/Macintosh HD/" 

* Remplacez « Macintosh HD » par le nom du volume.

Supprimer l’indexation d’un volume peut être nécessaire, notamment lorsque vous utilisez un volume de sauvegarde ou sont répliqués les fichiers. Une indexation de ce volume fera apparaître dans le résultat de la recherche de Spotlight les document originaux et dupliqués.

Henri Dominique Rapin

Mac :: Shell :: Liste des partitions

Obtenir la liste des partitions :

$ diskutil list

équivalent sous Linux de :

$ sfdisk -l
Terminal — bash — bash — ttys000 — 80×25.jpg

HDR

Mac :: VMware Fusion 2 :: Le guide gratuit

J’ai écrit à la demande de VMware un guide sur le logiciel « Fusion 2 ». Pour rappel Fusion est un programme de virtualisation qui permet entre autre d’exécuter Microsoft Windows sur Mac.

Ce guide est terminé et sera mis à disposition gratuitement par VMware dans les semaines à venir.

Ceux qui le souhaitent peuvent en avoir une pré-version en cliquant sur le lien ce dessous :

http://files.me.com/hdrapin/h4tusq

Les six premiers chapitres sur la découverte de VMware Fusion 2 ont été réalisé par François Tonic le rédacteur en chef et fondateur du magazine « Programmez », vous y découvrirez les bases de Fusion. J’ai réalisé les sections dites « avancées » à partir du chapitre 7. Vous y trouverez des astuces ainsi que des explications sur différents aspects de Fusion. pour les connaisseurs, certaines astuces sont aussi valables pour les autres produits de VMware.

En espérant qu’il vous aidera dans l’utilisation de VMware Fusion 2… et bien sur si vous avez des remarques… sur des sujets non abordés ou des incompréhensions, je suis preneur.

Bon Mac et Bonne lecture

Image 5.jpg

Windows :: Utilitaire :: Expression Régulières

GRATUIT

Qui n’a pas cherché un bon outil afin de créer des RegEx (Expression régulières) pertinentes ? Voici un utilitaire bien fait et pertinent. Indispensable dans la trousse à outil de bon développeur…

[EN] http://www.radsoftware.com.au/regexdesigner/

Traduction de la page avec Google :

http://74.125.39.132/translate_c?hl=fr&ie=UTF-8&sl=en&tl=fr&u=http://www.radsoftware.com.au/regexdesigner/&prev=_t&usg=ALkJrhhqDw4QrhFOw4VuuwwVnERROh2bIA

Mac :: Renice

Cette astuce est utilisable uniquement lorsque vous avez une application qui sollicite beaucoup le processeur, les derniers « quad core » d’Intel ont de la puissance à revendre, sur ce type de machine cette méthode à un intérêt moindre.

Lorsque vous utilisez un Mac, vous avez la sensation que plusieurs taches s’exécutent en même temps, pourtant à la base un Mac n’a qu’un seul processeur, dès lors il doit gérer une file d’attente pour que tous les logiciels ou fonctions du système puissent avoir un peu de temps consacré par le processeur.

La bonne solution pour qu’un logiciel soit plus réactif est de limiter le nombre d’applications qui fonctionnent en même temps, ainsi votre application aura plus de « temps de calculs » . Malheureusement, ce n’est pas toujours possible, Mac Os X est aussi constitué d’un ensemble de « services » qui fonctionnent en tache de fond (appelés démons ou processus), vouloir les supprimer c’est se défaire de fonctions souvent indispensables, alors que faire ? la dernière solution : gérer les priorités entre tous les « processus » qui tournent sur votre Mac.

Gérer la file d’attente des processus ne vous apportera pas de puissance de calculs supplémentaires, simplement donnera un peu de priorité à certain logiciel au dépend d’autres, si vous effectuez de l’encodage vidéo, de la retouche de photo par lot etc.… Cette approche peu avoir un intérêt si vous n’avez pas dédié une machine puissante.

Lorsque vous lancez une application par défaut son niveau de priorité est : « zéro », ainsi, dans la file d’attente « nulle ne passe en priorité », pour modifier le niveau de priorité d’une application il faut utiliser son « PID », le Process ID (Process Identity) est un numéro attribué à un processus (programme) exécuté sur l’ordinateur, il est unique. Si vous fermiez votre application et que vous la relanciez, il y a peu de chance que le PID soit le même.

Comment récupérer le PID, le plus simple est d’utiliser l’utilitaire « Moniteur d’activité » que vous trouverez dans le dossier utilitaire, le PID correspond à la colonne de droite « N° de l’Opération », par exemple dans mon cas Word porte le numéro 7712.

Image 1.jpg

Une autre solution consiste à utiliser le terminal et de taper la ligne suivante :

$ ps ax | grep word 

(remplacer word par l’application que vous souhaitez identifier).

Vous obtiendrez quelque chose d’apparent :
$ ps ax | grep word
7761 p1 S+ 0:00.01 grep word

La commande magique est : « renice » (voir dans le terminal: man renice) , au départ certains processus système voient leur priorité établit par « nice » (voir dans le terminal : man nice). Lorsqu’il s’agit de priorité, il ne s’agit pas de dire premier ou dernier, il faut établir une échelle, elle commence à « -20 » et monte jusqu’à « +20 », pour « ralentir » une application utilisez des valeurs positive (étrange) et la valeur +20 indiquera au système que la priorité à donner est la moins élevée.

Si maintenant vous voulez augmenter la priorité, utilisez une valeur « négative » ainsi « -20 » donnera à votre application la plus haute priorité, les concepteurs d’unix n’étant pas des « écervelés » (quoi que) , ils prirent quelques protections, ainsi vous pouvez « ralentir » les processus avec votre compte utilisateur, mais vous ne pouvez pas « accélérer » une tache sans être administrateur :

La commande suivante (baisse de priorité) ne pose pas de problème :

$ renice +15 5671

Par opposition celle-ci (hausse de la priorité) ne fonctionnera pas avec votre compte utilisateur:

$ renice -10 5671
renice: 5671: setpriority: Permission denied

Pour que cela fonctionne, vous devez utiliser « sudo » :

$ sudo renice -10 5671

Après la saisie de votre mot de passe, la commande sera prise en compte.

Le gros problème de « renicer » c’est qu’il faille à chaque redémarrage d’application retrouver le PID, il existe bien un script Applescript, mais cela ne reste pas très simple, Pour maintenir un niveau priorité sur une application utilisez : « Renicer » de NorthenSoftworks ( )

Image 2.jpg

Vous aussi trouverez un utilitaire qui lui donne un maximum de priorité aux applications de premier plan: « Speed Freak » ( http://home.comcast.net/~jeff.ulicny/software/)

Utiliser « Renice » peut vous procurer plus de « temps de calculs » pour votre programme, mais cela ne sera perceptible que sur des applications nécessitant de la puissance processeur, n’oubliez pas qu’il s’agit d’un ratio, vous avez une puissance de calculs, cette puissance n’est extensible, mais en son sein vous pouvez gérer les priorités.

HDR

Mac :: Applescript :: Récupérer la version de Mac OS X

Comment récupérer la version de Mac OS X ?

Le plus direct est d’utiliser la commande « sw_vers » exécutée dans le Terminal.

Cette commande retourne des informations en fonction de l’argument :

- "sw_vers -productName" 		: Retourne le nom de l'OS
- "sw_vers -productVersion" 	: Retourne la version de Mac OS X
- "sw_vers -buildVersion"		: Retourne le Build

La page man de cette commande : http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man1/sw_vers.1.html

set os_version to do shell script "sw_vers -productVersion"
Image 2.png

Mac :: Terminal :: Caractères spéciaux

Il y a quelques caractères utilisés dans le « Terminal » qui n’apparaissent pas sur les touches d’un clavier standard « Apple ».

Pour obtenir la barre verticale « | » = Pressez Majuscule+Option+l

Pour obtenir la barre oblique inversée « \ » = Pressez Majuscule+Option+/

Pour obtenir les Crochets « [ » ou « ] » = Pressez Majuscule+Option+( ou Pressez Majuscule+Option+)

Pour obtenir le symbole « ` » = Pressez cette touche `
puis la barre d’espace.

Mac :: Terminal :: Comparer deux fichiers (diff)

La commande « diff » est très puissante. Sa vocation est de comparer deux fichiers et d’en afficher les résultats :

$ diff fichier1.txt fichier2.txt

L’option « -b » permet d’ignorer les espaces en se concentrant sur les caractères.

Cette commande vous permet par exemple de vérifier quel fichiers est le plus recent ou ayant un contenu particulier.

Reamarque : « diff » ne renvoi rien si les fichiers sont identiques.

Mac :: Shell :: Comment récuperer le numéro de série du Mac ?

Vous pouvez simplement le numéro de série de votre Mac en ouvrant choisissant « A propos » dans le menu « Pomme » puis en cliquant deux fois sur le numéro de version.

À propos de ce Mac.jpg

Au deuxième clic le numéro apparaît.

À propos de ce Mac-1.jpg

Mais comment faire pour un Mac distant ?

$ ioreg -l | grep IOPlatformSerialNumber 

le tout au travers de SSH..et vous récupérerez le numéro de série du Mac.

Henri Dominique Rapin